Maurice Herlihy

dblp:h/MauriceHerlihy · DBLP profile ↗
← Back
223ranked-venue papers
96as first author
23since 2021 · last 2026
0000-0002-3059-8926ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 112 · 47 first-author · 7 since 2021Theory of computation · 42 · 18 first-author · 7 since 2021Software engineering, systems software and programming languages · 16 · 10 first-authorSecurity and privacy · 12 · 2 first-author · 7 since 2021Applied, interdisciplinary, general and emerging computing · 9 · 3 first-author · 1 since 2021Databases, data management, data science and information retrieval · 6 · 6 first-author · 1 since 2021
YearPublicationVenuePosition
2026 Byzantine Approximate Agreement Cross-chain Task
Maurice Herlihy, Maria Potop-Butucaru, Liuba Shrira
SIROCCO1
2026 Byzantine reliable broadcast and tendermint consensus with trusted components
Yackolley Amoussou-Guenou, Lionel Beltrando, Maurice Herlihy, Maria Potop-Butucaru
Theor. Comput. Sci.3
2025 Asynchronous Byzantine Consensus with Trusted Monotonic Counters
Yackolley Amoussou-Guenou, Maurice Herlihy, Maria Potop-Butucaru
SIROCCO2
2025 Brief Announcement: Cross-Chain Consensus
Sucharita Jayanti, Maurice Herlihy
SSS2
2024 Byzantine Reliable Broadcast with One Trusted Monotonic Counter
Yackolley Amoussou-Guenou, Lionel Beltrando, Maurice Herlihy, Maria Potop-Butucaru
SSS3
2024 Invited Paper: The Smart Contract Model
Yackolley Amoussou-Guenou, Maurice Herlihy, Maria Potop-Butucaru, Sergio Rajsbaum
SSS2
2024 Distributed runtime verification of metric temporal properties
Ritam Ganguly, Yingjie Xue, Aaron Jonckheere, Parker Ljung, Benjamin Schornstein, Borzoo Bonakdarpour, Maurice Herlihy
J. Parallel Distributed Comput.7
2023 Flexible scheduling of transactional memory on trees
Costas Busch, Bogdan S. Chlebus, Maurice Herlihy, Miroslav Popovic, Pavan Poudel, Gokarna Sharma
Theor. Comput. Sci.3
2022 Distributed Runtime Verification of Metric Temporal Properties for Cross-Chain Protocols
abstract
Transactions involving multiple blockchains are implemented by cross-chain protocols. These protocols are based on smart contracts, programs that run on blockchains, executed by a network of computers. Verifying the runtime correctness of smart contracts is a problem of compelling practical interest since, smart contracts can automatically transfer ownership of cryptocurrencies, electronic securities, and other valuable assets among untrusting parties. Such verification is challenging since smart contract execution is time sensitive, and the clocks on different blockchains may not be perfectly synchronized. This paper describes a method for runtime monitoring of blockchain executions. First, we propose a generalized runtime verification technique for verifying partially synchronous distributed computations for the metric temporal logic (MTL) by exploiting bounded-skew clock synchronization. Second, we introduce a progression-based formula rewriting scheme for monitoring MTL specifications which employs SMT solving techniques and report experimental results.
Ritam Ganguly, Yingjie Xue, Aaron Jonckheere, Parker Ljung, Benjamin Schornstein, Borzoo Bonakdarpour, Maurice Herlihy
ICDCS7
2022 HybriDS: Cache-Conscious Concurrent Data Structures for Near-Memory Processing Architectures
abstract
In recent years, the ever-increasing impact of memory access bottlenecks has brought forth a renewed interest in near-memory processing (NMP) architectures. In this work, we propose and empirically evaluate hybrid data structures, which are concurrent data structures custom-designed for these new NMP architectures. We focus on cache-optimized data structures, such as skiplists and B+ trees, that are often used as index structures in online transaction processing (OLTP) systems to enable fast key-based lookups. These data structures are hierarchical, where lookups begin at a small number of top-level nodes and diverge to many different node paths as they move down the hierarchy, such that nodes in higher levels benefit more from caching. Our proposed hybrid data structures split traditional hierarchical data structures into a host-managed portion consisting of higher-level nodes and an NMP-managed portion consisting of the remaining lower-level nodes, thus retaining and further enhancing the cache-conscious optimizations of their conventional implementations. Although the idea might seem relatively simple, the splitting of the data structure prompts new synchronization problems, and careful implementation is required to ensure high concurrency and correctness. We provide implementations of a hybrid skiplist and a hybrid B+ tree, and we empirically evaluate them on a cycle-accurate full-system architecture simulator. Our results show that the hybrid data structures have the potential to improve performance by more than 2x compared to state-of-the-art concurrent data structures.
Jiwon Choe, Andrew Crotty, Tali Moreshet, Maurice Herlihy, R. Iris Bahar
SPAA4
2022 Flexible Scheduling of Transactional Memory on Trees
Costas Busch, Bogdan S. Chlebus, Maurice Herlihy, Miroslav Popovic, Pavan Poudel, Gokarna Sharma
SSS3
2022 Invited Paper: Cross-Chain State Machine Replication
Yingjie Xue, Maurice Herlihy
SSS2
2022 Dynamic scheduling in distributed transactional memory
Costas Busch, Maurice Herlihy, Miroslav Popovic, Gokarna Sharma
Distributed Comput.2
2022 Clairvoyant state machine replication
Rida A. Bazzi, Maurice Herlihy
Inf. Comput.2
2022 Load balanced distributed directories
Shishir Rai, Gokarna Sharma, Costas Busch, Maurice Herlihy
Inf. Comput.4
2022 Cross-chain deals and adversarial commerce
abstract
Abstract Modern distributed data management systems face a new challenge: how can autonomous, mutually distrusting parties cooperate safely and effectively? Addressing this challenge brings up familiar questions from classical distributed systems: how to combine multiple steps into a single atomic action, how to recover from failures, and how to synchronize concurrent access to data. Nevertheless, each of these issues requires rethinking when participants are autonomous and potentially adversarial. We propose the notion of a cross-chain deal, a new way to structure complex distributed computations that manage assets in an adversarial setting. Deals are inspired by classical atomic transactions, but are necessarily different, in important ways, to accommodate the decentralized and untrusting nature of the exchange. We describe novel safety and liveness properties, along with two alternative protocols for implementing cross-chain deals in a system of independent blockchain ledgers. One protocol, based on synchronous communication, is fully decentralized, while the other, based on semi-synchronous communication, requires a globally shared ledger. We also prove that some degree of centralization is required in the semi-synchronous communication model.
Maurice Herlihy, Barbara Liskov, Liuba Shrira
VLDB J.1
2021 Composing networks of automated market makers
abstract
Automated market makers (AMMs) are automata that trade electronic assets at rates set by mathematical formulas. AMMs are usually implemented by smart contracts on blockchains. In practice, AMMs are often composed: trades can be split across AMMs, and outputs from one AMM can be directed to another. This paper proposes a mathematical model for AMM composition. We define sequential and parallel composition operators for AMMs in a way that ensures that AMMs are closed under composition, in a way that works for "higher-dimensional" AMMs that manage more than two asset classes, and so the composition of AMMs in "stable" states remains stable.
Daniel Engel, Maurice Herlihy
AFT2
2021 Brief Announcement: Linearizability: A Typo
abstract
Linearizability is the de facto consistency condition for concurrent objects, widely used in theory and practice. Loosely speaking, linearizability classifies concurrent executions as correct if operations on shared objects appear to take effect instantaneously during the operation execution time. This paper calls attention to a somewhat-neglected aspect of linearizability: restrictions on how pending invocations are handled, an issue that has become increasingly important for software running on systems with non-volatile main memory. Interestingly, the original published definition of linearizability includes a typo (a symbol is missing a prime) that concerns exactly this issue. In this paper we point out the typo and provide an amendment to make the definition complete. We believe that pointing this typo out rigorously and proposing a fix is important and timely.
Gal Sela 0001, Maurice Herlihy, Erez Petrank
PODC2
2021 Hedging Against Sore Loser Attacks in Cross-Chain Transactions
abstract
A sore loser attack in cross-blockchain commerce rises when one party decides to halt participation partway through, leaving other parties' assets locked up for a long duration. Although vulnerability to sore loser attacks cannot be entirely eliminated, it can be reduced to an arbitrarily low level. This paper proposes new distributed protocols for hedging a range of cross-chain transactions in a synchronous communication model, such as two-party swaps, n-party swaps, brokered transactions, and auctions.
Yingjie Xue, Maurice Herlihy
PODC2
2021 VBR: Version Based Reclamation
abstract
Safe lock-free memory reclamation is a difficult problem. Existing solutions follow three basic methods: epoch based reclamation, hazard pointers, and optimistic reclamation. Epoch-based methods are fast, but do not guarantee lock-freedom. Hazard pointer solutions are lock-free but typically do not provide high performance. Optimistic methods are lock-free and fast, but previous optimistic methods did not go all the way. While reads were executed optimistically, writes were protected by hazard pointers. In this work we present a new reclamation scheme called version based reclamation (VBR), which provides a full optimistic solution to lock-free memory reclamation, obtaining lock-freedom and high efficiency. Speculative execution is known as a fundamental tool for improving performance in various areas of computer science, and indeed evaluation with a lock-free linked-list, hash-table and skip-list shows that VBR outperforms state-of-the-art existing solutions.
Gali Sheffi, Maurice Herlihy, Erez Petrank
SPAA2
2021 Failure is (literally) an Option: Atomic Commitment vs Optionality in Decentralized Finance
Daniel Engel, Maurice Herlihy, Yingjie Xue
SSS2
2021 VBR: Version Based Reclamation
abstract
Safe lock-free memory reclamation is a difficult problem. Existing solutions follow three basic methods (or their combinations): epoch based reclamation, hazard pointers, and optimistic reclamation. Epoch-based methods are fast, but do not guarantee lock-freedom. Hazard pointer solutions are lock-free but typically do not provide high performance. Optimistic methods are lock-free and fast, but previous optimistic methods did not go all the way. While reads were executed optimistically, writes were protected by hazard pointers. In this work we present a new reclamation scheme called version based reclamation (VBR), which provides a full optimistic solution to lock-free memory reclamation, obtaining lock-freedom and high efficiency. Speculative execution is known as a fundamental tool for improving performance in various areas of computer science, and indeed evaluation with a lock-free linked-list, hash-table and skip-list shows that VBR outperforms state-of-the-art existing solutions.
Gali Sheffi, Maurice Herlihy, Erez Petrank
DISC2
2021 Fast Scheduling in Distributed Transactional Memory
Costas Busch, Maurice Herlihy, Miroslav Popovic, Gokarna Sharma
Theory Comput. Syst.2
2020 FFT-based Gradient Sparsification for the Distributed Training of Deep Neural Networks
abstract
The performance and efficiency of distributed training of Deep Neural Networks (DNN) highly depend on the performance of gradient averaging among participating processes, a step bound by communication costs. There are two major approaches to reduce communication overhead: overlap communications with computations (lossless), or reduce communications (lossy). The lossless solution works well for linear neural architectures, e.g. VGG, AlexNet, but more recent networks such as ResNet and Inception limit the opportunity for such overlapping. Therefore, approaches that reduce the amount of data (lossy) become more suitable. In this paper, we present a novel, explainable lossy method that sparsifies gradients in the frequency domain, in addition to a new range-based float point representation to quantize and further compress gradients. These dynamic techniques strike a balance between compression ratio, accuracy, and computational overhead, and are optimized to maximize performance in heterogeneous environments.
Linnan Wang, Wei Wu 0016, Junyu Zhang 0002, Hang Liu 0001, George Bosilca, Maurice Herlihy, Rodrigo Fonseca
HPDC6
2020 Dynamic Scheduling in Distributed Transactional Memory
abstract
We investigate scheduling algorithms for distributed transactional memory systems where transactions residing at nodes of a communication graph operate on shared, mobile objects. A transaction requests the objects it needs, executes once those objects have been assembled, and then sends the objects to other waiting transactions. We study scheduling algorithms with provable performance guarantees. Previously, only the offline batch scheduling setting was considered in the literature where transactions and the objects they access are known a priori. Minimizing execution time, even for the offline batch scheduling, is known to be NP-hard for arbitrary communication graphs. In this paper, we analyze for the very first time scheduling algorithms in the online dynamic scheduling setting where transactions and the objects they access are not known a priori and the transactions may arrive online over time. We provide efficient and near-optimal execution time schedules for dynamic scheduling in many specialized network architectures. The core of our technique is a method to convert offline schedules to online. We first describe a centralized scheduler which we then adapt it to a purely distributed scheduler. To our knowledge, these are the first attempts to obtain provably efficient online execution schedules for distributed transactional memory.
Costas Busch, Maurice Herlihy, Miroslav Popovic, Gokarna Sharma
IPDPS2
2020 Adding concurrency to smart contracts
Thomas D. Dickerson, Paul Gazzillo, Maurice Herlihy, Eric Koskinen
Distributed Comput.3
2019 Conflict Abstractions and Shadow Speculation for Optimistic Transactional Objects
Thomas D. Dickerson, Eric Koskinen, Paul Gazzillo, Maurice Herlihy
APLAS4
2019 Concurrent Data Structures with Near-Data-Processing: an Architecture-Aware Implementation
abstract
Recent advances in memory architectures have provoked renewed interest in near-data-processing (NDP) as way to alleviate the "memory wall" problem. An NDP architecture places logic circuits, such as simple processors, in close proximity to memory. Effective use of NDP architectures requires rethinking data structures and their algorithms. Here, we provide an empirical evaluation of several NDP-aware algorithms for general-purpose concurrent data structures such as linked-lists, skiplists, and FIFO queues. The empirical analysis reveals that the potential benefits of NDP-based concurrent data structures are less than what had been expected in earlier studies. In turn, we introduce lightweight NDP hardware modifications, inspired by initial observations on data access patterns and underlying DRAM activity. Even the minimal changes to hardware significantly improve the performance and energy consumption of NDP-based concurrent data structures, and in many cases, the resulting data structures outperform state-of-the-art concurrent data structures.
Jiwon Choe, Amy Huang, Tali Moreshet, Maurice Herlihy, R. Iris Bahar
SPAA4
2019 Encrypted Databases for Differential Privacy
abstract
Abstract The problem of privatizing statistical databases is a well-studied topic that has culminated with the notion of differential privacy. The complementary problem of securing these differentially private databases, however, has—as far as we know—not been considered in the past. While the security of private databases is in theory orthogonal to the problem of private statistical analysis (e.g., in the central model of differential privacy the curator is trusted) the recent real-world deployments of differentially-private systems suggest that it will become a problem of increasing importance. In this work, we consider the problem of designing encrypted databases (EDB) that support differentially-private statistical queries. More precisely, these EDBs should support a set of encrypted operations with which a curator can securely query and manage its data, and a set of private operations with which an analyst can privately analyze the data. Using such an EDB, a curator can securely outsource its database to an untrusted server (e.g., on-premise or in the cloud) while still allowing an analyst to privately query it. We show how to design an EDB that supports private histogram queries. As a building block, we introduce a differentially-private encrypted counter based on the binary mechanism of Chan et al. (ICALP, 2010). We then carefully combine multiple instances of this counter with a standard encrypted database scheme to support differentially-private histogram queries.
Archita Agarwal, Maurice Herlihy, Seny Kamara, Tarik Moataz
Proc. Priv. Enhancing Technol.2
2019 Cross-chain Deals and Adversarial Commerce
abstract
Modern distributed data management systems face a new challenge: how can autonomous, mutually-distrusting parties cooperate safely and effectively? Addressing this challenge brings up questions familiar from classical distributed systems: how to combine multiple steps into a single atomic action, how to recover from failures, and how to synchronize concurrent access to data. Nevertheless, each of these issues requires rethinking when participants are autonomous and potentially adversarial. We propose the notion of a cross-chain deal , a new way to structure complex distributed computations that manage assets in an adversarial setting. Deals are inspired by classical atomic transactions, but are necessarily different, in important ways, to accommodate the decentralized and untrusting nature of the exchange. We describe novel safety and liveness properties, along with two alternative protocols for implementing cross-chain deals in a system of independent blockchain ledgers. One protocol, based on synchronous communication, is fully decentralized, while the other, based on semi-synchronous communication, requires a globally shared ledger.
Maurice Herlihy, Liuba Shrira, Barbara Liskov
Proc. VLDB Endow.1
2019 Bounds on the Step and Namespace Complexity of Renaming
abstract
The $M(n)$-renaming task requires $n+1$ processes, each starting with a unique input name (from an arbitrary large range), to coordinate the choice of new output names from a range of size $M(n)$. It is known that $2n$-renaming can be solved if and only if $n+1$ is not a prime power. However, the previous proof of solvability was not constructive, involving a complex approximation theorem, and so it did not yield a concrete upper bound on the complexity of the resulting protocol. Here, we present the first upper bound on the step complexity of $2n$-renaming, whenever it is solvable, i.e., when $n+1$ is not a prime power. The paper also presents the first lower bound on the output namespace, showing that if $n+1$ is not a prime power and $n$ is a prime power, then $2n$ is a tight bound on the output namespace for $n+1$ processes.
Hagit Attiya, Armando Castañeda, Maurice Herlihy, Ami Paz
SIAM J. Comput.3
2018 Atomic Cross-Chain Swaps
Maurice Herlihy
PODC1
2018 A persistent lock-free queue for non-volatile memory
abstract
Non-volatile memory is expected to coexist with (or even displace) volatile DRAM for main memory in upcoming architectures. This has led to increasing interest in the problem of designing and specifying durable data structures that can recover from system crashes. Data structures may be designed to satisfy stricter or weaker durability guarantees to provide a balance between the strength of the provided guarantees and performance overhead. This paper proposes three novel implementations of a concurrent lock-free queue. These implementations illustrate algorithmic challenges in building persistent lock-free data structures with different levels of durability guarantees. In presenting these challenges, the proposed algorithmic designs, and the different durability guarantees, we hope to shed light on ways to build a wide variety of durable data structures. We implemented the various designs and compared their performance overhead to a simple queue design for standard (volatile) memory.
Michal Friedman 0001, Maurice Herlihy, Virendra J. Marathe, Erez Petrank
PPoPP2
2018 Clairvoyant State Machine Replications
Rida A. Bazzi, Maurice Herlihy
SSS2
2018 Load Balanced Distributed Directories
Shishir Rai, Gokarna Sharma, Costas Busch, Maurice Herlihy
SSS4
2018 Time-communication impossibility results for distributed transactional memory
Costas Busch, Maurice Herlihy, Miroslav Popovic, Gokarna Sharma
Distributed Comput.2
2018 Improving Parallelism in Hardware Transactional Memory
abstract
Today’s hardware transactional memory (HTM) systems rely on existing coherence protocols, which implement a requester-wins strategy. This, in turn, leads to poor performance when transactions frequently conflict, causing them to resort to a non-speculative fallback path. Often, such a path severely limits parallelism. In this article, we propose very simple architectural changes to the existing requester-wins HTM implementations that enhance conflict resolution between hardware transactions and thus improve their parallelism. Our idea is compatible with existing HTM systems, requires no changes to target applications that employ traditional lock synchronization, and is shown to provide robust performance benefits.
David Dice, Maurice Herlihy, Alex Kogan
ACM Trans. Archit. Code Optim.2
2017 The Teleportation Design Pattern for Hardware Transactional Memory
abstract
We identify a design pattern for concurrent data structures, called teleportation, that uses best- effort hardware transactional memory to speed up certain kinds of legacy concurrent data struc- tures. Teleportation unifies and explains several existing data structure designs, and it serves as the basis for novel approaches to reducing the memory traffic associated with fine-grained locking, and with hazard pointer management for memory reclamation.
Nachshon Cohen, Maurice Herlihy, Erez Petrank, Elias Wald
OPODIS2
2017 Brief Announcement: Proust: A Design Space for Highly-Concurrent Transactional Data Structures
abstract
Most STM systems are poorly equipped to support libraries of concurrent data structures. One reason is that they typically detect conflicts by tracking transactions' read sets and write sets, an approach that often leads to false conflicts. A second is that existing data structures and libraries often need to be rewritten from scratch to support transactional conflict detection and rollback. This brief announcement introduces Proust, a framework for the design and implementation of transactional data structures. Proust is designed to maximize reuse of existing well-engineered libraries by providing transactional "wrappers" to make existing thread-safe concurrent data structures transactional. Proustian objects are also integrated with an underlying STM system, allowing them to take advantage of well-engineered STM conflict detection mechanisms. Proust generalizes and unifies prior approaches such as boosting and predication.
Thomas D. Dickerson, Paul Gazzillo, Maurice Herlihy, Eric Koskinen
PODC3
2017 Adding Concurrency to Smart Contracts
abstract
Modern cryptocurrency systems, such as Ethereum, permit complex financial transactions through scripts called smart contracts. These smart contracts are executed many, many times, always without real concurrency. First, all smart contracts are serially executed by miners before appending them to the blockchain. Later, those contracts are serially re-executed by validators to verify that the smart contracts were executed correctly by miners. Serial execution limits system throughput and fails to exploit today's concurrent multicore and cluster architectures. Nevertheless, serial execution appears to be required: contracts share state, and contract programming languages have a serial semantics.
Thomas D. Dickerson, Paul Gazzillo, Maurice Herlihy, Eric Koskinen
PODC3
2017 Blockchains and the Future of Distributed Computing
abstract
There has been a recent explosion of interest in blockchain-based distributed ledger systems such as Bitcoin, Ethereum, and many others. Much of this work originated outside the distributed computing community, but the questions raised, such as consensus, replication, fault-tolerance, privacy, and security, and so on, are all issues familiar to our community.
Maurice Herlihy
PODC1
2017 POSTER: State Teleportation via Hardware Transactional Memory
abstract
State teleportation is a new technique for exploiting hardware transactional memory (HTM) to improve existing synchronization and memory management schemes for highly-concurrent data structures. When applied to fine-grained locking, a thread holding the lock for a node launches a hardware transaction that traverses multiple successor nodes, acquires the lock for the last node reached, and releases the lock on the starting node, skipping lock acquisitions for intermediate nodes. When applied to lock-free data structures, a thread visiting a node protected by a hazard pointer launches a hardware transaction that traverses multiple successor nodes, and publishes the hazard pointer only for the last node reached, skipping the memory barriers needed to publish intermediate hazard pointers. Experimental results show that these applications of state teleportation can substantially increase the performance of both lock-based and lock-free data structures.
Nachshon Cohen, Maurice Herlihy, Erez Petrank, Elias Wald
PPoPP2
2017 Fast Scheduling in Distributed Transactional Memory
abstract
We investigate scheduling algorithms for distributed transactional memory systems where transactions residing at nodes of a communication graph operate on shared, mobile objects. A transaction requests the objects it needs, executes once those objects have been assembled, and then possibly forwards those objects to other waiting transactions. Minimizing execution time in this model is known to be NP-hard for arbitrary communication graphs, and also hard to approximate within any factor smaller than the size of the graph. Nevertheless, networks on chips, multi-core systems, and clusters are not arbitrary. Here, we explore efficient execution schedules in specialized graphs likely to arise in practice: Clique, Line, Grid, Cluster, Hypercube, Butterfly, and Star. In most cases, when individual transactions request k objects, we obtain solutions close to a factor O(k) from optimal, yielding near-optimal solutions for constant k. These execution times approximate the TSP tour lengths of the objects in the graph. We show that for general networks, even for two objects (k=2), it is impossible to obtain execution time close to the objects' optimal TSP tour lengths, which is why it is useful to consider more realistic network models. To our knowledge, this is the first attempt to obtain provably fast schedules for distributed transactional memory.
Costas Busch, Maurice Herlihy, Miroslav Popovic, Gokarna Sharma
SPAA2
2017 Concurrent Data Structures for Near-Memory Computing
abstract
The performance gap between memory and CPU has grown exponentially. To bridge this gap, hardware architects have proposed near-memory computing (also called processing-in-memory, or PIM), where a lightweight processor (called a PIM core) is located close to memory. Due to its proximity to memory, a memory access from a PIM core is much faster than that from a CPU core. New advances in 3D integration and die-stacked memory make PIM viable in the near future. Prior work has shown significant performance improvements by using PIM for embarrassingly parallel and data-intensive applications, as well as for pointer-chasing traversals in sequential data structures. However, current server machines have hundreds of cores, and algorithms for concurrent data structures exploit these cores to achieve high throughput and scalability, with significant benefits over sequential data structures. Thus, it is important to examine how PIM performs with respect to modern concurrent data structures and understand how concurrent data structures can be developed to take advantage of PIM.
Irina Calciu, Maurice Herlihy, Onur Mutlu
SPAA3
2017 Brief Announcement: A Persistent Lock-Free Queue for Non-Volatile Memory
abstract
Non-volatile memory is expected to coexist with (or even displace) volatile DRAM for main memory in upcoming architectures. As a result, there is increasing interest in the problem of designing and specifying durable data structures that can recover from system crashes. Data-structures may be designed to satisfy stricter or weaker durability guarantees to provide a balance between the strength of the provided guarantees and performance overhead. This paper proposes three novel implementations of a concurrent lock-free queue. These implementations illustrate the algorithmic challenges in building persistent lock-free data structures with different levels of durability guarantees. We believe that by presenting these challenges, along with the proposed algorithmic designs, and the possible levels of durability guarantees, we can shed light on avenues for building a wide variety of durable data structures. We implemented the various designs and evaluate their performance overhead compared to a simple queue design for standard (volatile) memory.
Michal Friedman 0001, Maurice Herlihy, Virendra J. Marathe, Erez Petrank
DISC2
2017 Tight Bounds for Connectivity and Set Agreement in Byzantine Synchronous Systems
abstract
In this paper, we show that the protocol complex of a Byzantine synchronous system can remain (k-1)-connected for up to ceil(t/k) rounds, where t is the maximum number of Byzantine processes, and t >= k >= 1. This topological property implies that ceil(t/k) + 1 rounds are necessary to solve k-set agreement in Byzantine synchronous systems, compared to floor(t/k) + 1 rounds in synchronous crash-failure systems. We also show that our connectivity bound is tight as we indicate solutions to Byzantine k-set agreement in exactly ceil(t/k) + 1 synchronous rounds, at least when n is suitably large compared to t. In conclusion, we see how Byzantine failures can potentially require one extra round to solve k-set agreement, and, for n suitably large compared to t, at most that.
Hammurabi Mendes, Maurice Herlihy
DISC2
2017 From wait-free to arbitrary concurrent solo executions in colorless distributed computing
Maurice Herlihy, Sergio Rajsbaum, Michel Raynal, Julien Stainer
Theor. Comput. Sci.1
2017 Edge-TM: Exploiting Transactional Memory for Error Tolerance and Energy Efficiency
abstract
Scaling of semiconductor devices has enabled higher levels of integration and performance improvements at the price of making devices more susceptible to the effects of static and dynamic variability. Adding safety margins (guardbands) on the operating frequency or supply voltage prevents timing errors, but has a negative impact on performance and energy consumption. We propose Edge-TM , an adaptive hardware/software error management policy that ( i ) optimistically scales the voltage beyond the edge of safe operation for better energy savings and ( ii ) works in combination with a Hardware Transactional Memory (HTM)-based error recovery mechanism. The policy applies dynamic voltage scaling (DVS) (while keeping frequency fixed) based on the feedback provided by HTM, which makes it simple and generally applicable. Experiments on an embedded platform show our technique capable of 57% energy improvement compared to using voltage guardbands and an extra 21-24% improvement over existing state-of-the-art error tolerance solutions, at a nominal area and time overhead.
Dimitra Papagiannopoulou, Andrea Marongiu, Tali Moreshet, Maurice Herlihy, R. Iris Bahar
ACM Trans. Embed. Comput. Syst.4
2016 Thrifty-malloc: A HW/SW codesign for the dynamic management of hardware transactional memory in embedded multicore systems
abstract
We present thrifty-malloc: a transaction-friendly dynamic memory manager for high-end embedded multicore systems. The manager combines modularity, ease-of-use and hardware transactional memory (HTM) compatibility in a light-weight and memory-efficient design. Thrifty-malloc is easy to deploy and configure for non-expert programmers, yet provides good performance with low memory overhead for highly-parallel embedded applications running on massively parallel processor arrays (MPPAs) or many-core architectures. In addition, the transparent mechanisms that increase our manager's resilience to unpredictable dynamic situations incur a low timing overhead in comparison to established techniques.
Thomas Carle, Dimitra Papagiannopoulou, Tali Moreshet, Andrea Marongiu, Maurice Herlihy, R. Iris Bahar
CASES5
2016 Fast non-intrusive memory reclamation for highly-concurrent data structures
abstract
Current memory reclamation mechanisms for highly-concurrent data structures present an awkward trade-off. Techniques such as epoch-based reclamation perform well when all threads are running on dedicated processors, but the delay or failure of a single thread will prevent any other thread from reclaiming memory. Alternatives such as hazard pointers are highly robust, but they are expensive because they require a large number of memory barriers. This paper proposes three novel ways to alleviate the costs of the memory barriers associated with hazard pointers and related techniques. These new proposals are backward-compatible with existing code that uses hazard pointers. They move the cost of memory management from the principal code path to the infrequent memory reclamation procedure, significantly reducing or eliminating memory barriers executed on the principal code path. These proposals include (1) exploiting the operating system's memory protection ability, (2) exploiting certain x86 hardware features to trigger memory barriers only when needed, and (3) a novel hardware-assisted mechanism, called a hazard lookaside buffer (HLB) that allows a reclaiming thread to query whether there are hazardous pointers that need to be flushed to memory. We evaluate our proposals using a few fundamental data structures (linked lists and skiplists) and libcuckoo, a recent high-throughput hash-table library, and show significant improvements over the hazard pointer technique.
David Dice, Maurice Herlihy, Alex Kogan
ISMM2
2016 Blockchains and the Logic of Accountability: Keynote Address
abstract
research-article Share on Blockchains and the Logic of Accountability: Keynote Address Authors: Maurice Herlihy Brown University and Oracle Labs Brown University and Oracle LabsView Profile , Mark Moir Oracle Labs Oracle LabsView Profile Authors Info & Claims LICS '16: Proceedings of the 31st Annual ACM/IEEE Symposium on Logic in Computer ScienceJuly 2016 Pages 27–30https://doi.org/10.1145/2933575.2934579Published:05 July 2016Publication History 6citation736DownloadsMetricsTotal Citations6Total Downloads736Last 12 Months19Last 6 weeks2 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access
Maurice Herlihy, Mark Moir
LICS1
2016 Fast and Robust Memory Reclamation for Concurrent Data Structures
abstract
In concurrent systems without automatic garbage collection, it is challenging to determine when it is safe to reclaim memory, especially for lock-free data structures. Existing concurrent memory reclamation schemes are either fast but do not tolerate process delays, robust to delays but with high overhead, or both robust and fast but narrowly applicable. This paper proposes QSense, a novel concurrent memory reclamation technique. QSense is a hybrid technique with a fast path and a fallback path. In the common case (without process delays), a high-performing memory reclamation scheme is used (fast path). If process delays block memory reclamation through the fast path, a robust fallback path is used to guarantee progress. The fallback path uses hazard pointers, but avoids their notorious need for frequent and expensive memory fences.
Oana Balmau, Rachid Guerraoui, Maurice Herlihy, Igor Zablotchi
SPAA3
2016 Asynchronous Computability Theorems for t-Resilient Systems
Vikram Saraph, Maurice Herlihy, Eli Gafni
DISC2
2015 A Practical Transactional Memory Interface
Shahar Timnat, Maurice Herlihy, Erez Petrank
Euro-Par2
2015 Playing with Fire: Transactional Memory Revisited for Error-Resilient and Energy-Efficient MPSoC Execution
abstract
As silicon integration technology pushes toward atomic dimensions, errors due to static and dynamic variability are an increasing concern. To avoid such errors, designers often turn to "guardband" restrictions on the operating frequency and voltage. If guardbands are too conservative, they limit performance and waste energy, but less conservative guardbands risk moving the system closer to its Critical Operating Point (COP), a frequency-voltage pair that, if surpassed, causes massive instruction failures. In this paper, we propose a novel scheme that allows to dynamically adjust to an evolving COP and operate at highly reduced margins, while guaranteeing forward progress. Specifically, our scheme dynamically monitors the platform and adaptively adjusts to the COP among multiple cores, using lightweight checkpointing and roll-back mechanisms adopted from Hardware Transactional Memory (HTM) for error recovery. Experiments demonstrate that our technique is particularly effective in saving energy while also offering safe execution guarantees. To the best of our knowledge, this work is the first to describe a full-fledged HTM implementation for error-resilient and energy-efficient MPSoC execution.
Dimitra Papagiannopoulou, Andrea Marongiu, Tali Moreshet, Luca Benini, Maurice Herlihy, R. Iris Bahar
ACM Great Lakes Symposium on VLSI5
2015 The Relative Power of Composite Loop Agreement Tasks
abstract
Loop agreement is a family of distributed tasks that includes set agreement and simplex agreement, and was used to prove the undecidability of wait-free solvability of distributed tasks by read/write memory. Herlihy and Rajsbaum defined the algebraic signature of a loop agreement task, which consists of a group and a distinguished element. They used the algebraic signature to characterize the relative power of loop agreement tasks. In particular, they showed that one task implements another exactly when there is a homomorphism between their respective signatures sending one loop to the other. In this paper, we extend the previous result by defining the composition of multiple loop agreement tasks to create a new one with the same combined power. We generalize the original algebraic characterization for relative power to compositions of tasks. In this way, we can think of loop agreement tasks in terms of their basic building blocks. We also investigate a category-theoretic perspective of loop agreement by defining a category of loops, showing that the algebraic signature is a functor, and proving that our definition of task composition is the "correct" one, in a categorical sense.
Vikram Saraph, Maurice Herlihy
OPODIS2
2015 Impossibility Results for Distributed Transactional Memory
abstract
We consider scheduling problems in the data flow model of distributed transactional memory. Objects shared by transactions move from one network node to another by following network paths. We examine how the objects' transfer in the network affects the completion time of all transactions and the total communication cost. We show that there are problem instances for which there is no scheduling algorithm that can simultaneously minimize the completion time and communication cost. These instances reveal a trade-off, minimizing execution time implies high communication cost and vice versa. On the positive side, we provide scheduling algorithms which are independently communication cost near-optimal or execution time efficient.
Costas Busch, Maurice Herlihy, Miroslav Popovic, Gokarna Sharma
PODC2
2015 Multidimensional agreement in Byzantine systems
Hammurabi Mendes, Maurice Herlihy, Nitin H. Vaidya, Vijay K. Garg
Distributed Comput.2
2015 Energy-Efficient and High-Performance Lock Speculation Hardware for Embedded Multicore Systems
abstract
Embedded systems are becoming increasingly common in everyday life and like their general-purpose counterparts, they have shifted towards shared memory multicore architectures. However, they are much more resource constrained, and as they often run on batteries, energy efficiency becomes critically important. In such systems, achieving high concurrency is a key demand for delivering satisfactory performance at low energy cost. In order to achieve this high concurrency, consistency across the shared memory hierarchy must be accomplished in a cost-effective manner in terms of performance, energy, and implementation complexity. In this article, we propose Embedded-Spec, a hardware solution for supporting transparent lock speculation, without the requirement for special supporting instructions. Using this approach, we evaluate the energy consumption and performance of a suite of benchmarks, exploring a range of contention management and retry policies. We conclude that for resource-constrained platforms, lock speculation can provide real benefits in terms of improved concurrency and energy efficiency, as long as the underlying hardware support is carefully configured.
Dimitra Papagiannopoulou, Giuseppe Capodanno, Tali Moreshet, Maurice Herlihy, R. Iris Bahar
ACM Trans. Embed. Comput. Syst.4
2014 Invyswell: a hybrid transactional memory for haswell's restricted transactional memory
abstract
The Intel Haswell processor includes restricted transactional memory (RTM), which is the first commodity-based hardware transactional memory (HTM) to become publicly available. However, like other real HTMs, such as IBM's Blue Gene/Q, Haswell's RTM is best-effort, meaning it provides no transactional forward progress guarantees. Because of this, a software fallback system must be used in conjunction with Haswell's RTM to ensure transactional programs execute to completion. To complicate matters, Haswell does not provide escape actions. Without escape actions, non-transactional instructions cannot be executed within the context of a hardware transaction, thereby restricting the ways in which a software fallback can interact with the HTM. As such, the challenge of creating a scalable hybrid TM (HyTM) that uses Haswell's RTM and a software TM (STM) fallback is exacerbated.
Irina Calciu, Justin Emile Gottschlich, Tatiana Shpeisman, Gilles Pokam, Maurice Herlihy
PACT5
2014 Warp-aware trace scheduling for GPUs
abstract
GPU performance depends not only on thread/warp level parallelism (TLP) but also on instruction-level parallelism (ILP). It is not enough to schedule instructions within basic blocks, it is also necessary to exploit opportunities for ILP optimization beyond branch boundaries. Unfortunately, modern GPUs cannot dynamically carry out such optimizations because they lack hardware branch prediction and cannot speculatively execute instructions beyond a branch.
James A. Jablin, Thomas B. Jablin, Onur Mutlu, Maurice Herlihy
PACT4
2014 Composable Transactional Objects: A Position Paper
Maurice Herlihy, Eric Koskinen
ESOP1
2014 StackTrack: an automated transactional approach to concurrent memory reclamation
abstract
Dynamic memory reclamation is arguably the biggest open problem in concurrent data structure design: all known solutions induce high overhead, or must be customized to the specific data structure by the programmer, or both. This paper presents StackTrack, the first concurrent memory reclamation scheme that can be applied automatically by a compiler, while maintaining efficiency. StackTrack eliminates most of the expensive bookkeeping required for memory reclamation by leveraging the power of hardware transactional memory (HTM) in a new way: it tracks thread variables dynamically, and in an atomic fashion. This effectively makes all memory references visible without having threads pay the overhead of writing out this information. Our empirical results show that this new approach matches or outperforms prior, non-automated, techniques.
Dan Alistarh, Patrick Eugster, Maurice Herlihy, Alexander Matveev, Nir Shavit
EuroSys3
2014 Sporadic Solutions to Zero-One Exclusion Tasks
Eli Gafni, Maurice Herlihy
ICALP (1)2
2014 Computing in the Presence of Concurrent Solo Executions
Maurice Herlihy, Sergio Rajsbaum, Michel Raynal, Julien Stainer
LATIN1
2014 The future(s) of shared data structures
abstract
This paper considers how to use futures, a well-known mechanism to manage parallel computations, to improve the performance of long-lived, mutable shared data structures in large-scale multicore systems. We show that futures can enable type-specific optimizations such as combining and elimination, improve cache locality and reduce contention. To exploit these benefits in an effective way, however, it is important to define clear notions of correctness. We propose new extensions to linearizability appropriate for method calls that return futures as results. To illustrate the utility and trade-offs of these extensions, we describe implementations of three common data structures: stacks, queues, and linked lists, designed to exploit futures. Our experimental results show that optimizations enabled by futures lead to substantial performance improvements, in some cases up to two orders of magnitude, compared to well-known lock-free alternatives.
Alex Kogan, Maurice Herlihy
PODC2
2014 Well-structured futures and cache locality
abstract
In fork-join parallelism, a sequential program is split into a directed acyclic graph of tasks linked by directed dependency edges, and the tasks are executed, possibly in parallel, in an order consistent with their dependencies. A popular and effective way to extend fork-join parallelism is to allow threads to create {futures. A thread creates a future to hold the results of a computation, which may or may not be executed in parallel. That result is returned when some thread touches that future, blocking if necessary until the result is ready. Recent research has shown that while futures can, of course, enhance parallelism in a structured way, they can have a deleterious effect on cache locality. In the worst case, futures can incur Ω(P T∞ + t T∞) deviations, which implies Ω(C P T∞ + C t T∞) additional cache misses, where C is the number of cache lines, P is the number of processors, t is the number of touches, and T∞ is the computation span. Since cache locality has a large impact on software performance on modern multicores, this result is troubling.
Maurice Herlihy
PPoPP1
2014 Fun with hardware transactional memory
abstract
Leading hardware vendors such as Intel and IBM are releasing a new generation of processor architectures that provide hardware transactional memory (HTM), a synchronization mechanisms for fast in-memory transactions. This talk will argue that HTM is not just a faster way of doing the same old latches and monitors. Instead, it could bring about a fundamental positive change in the way we program multicores (and eventually perhaps even databases) by allowing a fundamental rethinking of basic synchronization structures such as locks, memory management, and a range of concurrent data structures.
Maurice Herlihy
SIGMOD Conference1
2014 Distributed computability in Byzantine asynchronous systems
abstract
In this work, we extend the topology-based approach for characterizing computability in asynchronous crash-failure distributed systems to asynchronous Byzantine systems. We give the first theorem with necessary and sufficient conditions to solve arbitrary tasks in asynchronous Byzantine systems where an adversary chooses faulty processes. For colorless tasks, an important subclass of distributed problems, the general result reduces to an elegant model that effectively captures the relation between the number of processes, the number of failures, as well as the topological structure of the task's simplicial complexes.
Hammurabi Mendes, Christine Tasson, Maurice Herlihy
STOC3
2014 Scheduling Multiple Objects in Distributed Transactional Memory
Costas Busch, Maurice Herlihy, Miroslav Popovic, Gokarna Sharma
DISC2
2014 The Adaptive Priority Queue with Elimination and Combining
Irina Calciu, Hammurabi Mendes, Maurice Herlihy
DISC3
2014 Approximate Local Sums and Their Applications in Radio Networks
Maurice Herlihy
DISC2
2014 A Practical Transactional Memory Interface
Shahar Timnat, Maurice Herlihy, Erez Petrank
DISC2
2014 An Equivariance Theorem with Applications to Renaming
Armando Castañeda, Maurice Herlihy, Sergio Rajsbaum
Algorithmica2
2013 Message Passing or Shared Memory: Evaluating the Delegation Abstraction for Multicores
Irina Calciu, David Dice, Tim Harris 0001, Maurice Herlihy, Alex Kogan, Virendra J. Marathe, Mark Moir
OPODIS4
2013 Upper bound on the complexity of solving hard renaming
abstract
The M-renaming task requires n+1 processes, each starting with a unique input name (from an arbitrary large range), to coordinate the choice of new output names from a range of size M. This paper presents the first upper bound on the complexity of hard renaming, i.e., 2n-renaming, when n+1 is not a prime power. It is known that 2n-renaming can be solved if and only if n+1 is not a prime power; however, the previous proof of the "if" part was non-constructive, involving an approximation theorem; in particular, it did not yield a concrete upper bound on the complexity of the resulting protocol.
Hagit Attiya, Armando Castañeda, Maurice Herlihy, Ami Paz
PODC3
2013 Multidimensional approximate agreement in Byzantine asynchronous systems
abstract
The problem of ε-approximate agreement in Byzantine asynchronous systems is well-understood when all values lie on the real line. In this paper, we generalize the problem to consider values that lie in Rm, for m ≥ 1, and present an optimal protocol in regard to fault tolerance. Our scenario is the following. Processes start with values in Rm, for m ≥ 1, and communicate via message-passing. The system is asynchronous: there is no upper bound on processes' relative speeds or on message delay. Some faulty processes can display arbitrarily malicious (i.e. Byzantine) behavior. Non-faulty processes must decide on values that are: (1) in Rm; (2) within distance ε of each other; and (3) in the convex hull of the non-faulty processes' inputs. We give an algorithm with a matching lower bound on fault tolerance: we require n > t(m+2), where n is the number of processes, t is the number of Byzantine processes, and input and output values reside in Rm. Non-faulty processes send O(n2 d log(m/ε max{δ(d): 1 ≤ d ≤ m})) messages in total, where δ(d) is the range of non-faulty inputs projected at coordinate d. The Byzantine processes do not affect the algorithm's running time.
Hammurabi Mendes, Maurice Herlihy
STOC2
2013 The topology of distributed adversaries
Maurice Herlihy, Sergio Rajsbaum
Distributed Comput.1
2013 Power and limits of distributed computing shared memory models
Maurice Herlihy, Sergio Rajsbaum, Michel Raynal
Theor. Comput. Sci.1
2012 Visualizing transactional memory
abstract
This paper presents TMProf, a transactional memory (TM) profiler, based on three visualization principles. These principles are (i) the precise graphical representation of transaction interactions including cross-correlated information and source code, (ii) visualized soft real-time playback of concurrently executing transactions, and (iii) dynamic visualizations of multiple executions. We describe how these principles break new ground and create new challenges for TM profilers.
Justin Emile Gottschlich, Maurice Herlihy, Gilles Pokam, Jeremy G. Siek
PACT2
2012 An Equivariance Theorem with Applications to Renaming
Armando Castañeda, Maurice Herlihy, Sergio Rajsbaum
LATIN2
2012 Simulations and reductions for colorless tasks
abstract
If one model of computation can simulate another, then the existence (or non-existence) of an algorithm in the simulated model reduces to a related question about the simulating model. The BG-simulation algorithm uses this approach to prove that k-set agreement cannot be solved when t processes can crash, 1≤t≤k, by reduction to the wait-free case, where it is known that n+1 processes cannot solve n-set agreement, and similarly for any other colorless task. We give a definition, expressed in the language of combinatorial topology, for what it means for one model of distributed computation to simulate another with respect to the ability to solve colorless tasks. This definition is not linked to specific models or specific protocols. We show how to exploit elementary topological arguments to show when a simulation exists, without the need for an explicit construction. We use this approach to generalize the BG-simulation and to unify a number of simulation relations linking various models, some previously known, some not.
Maurice Herlihy, Sergio Rajsbaum
PODC1
2011 On the Nature of Progress
Maurice Herlihy, Nir Shavit
OPODIS1
2011 On the power of hardware transactional memory to simplify memory management
abstract
Dynamic memory management is a significant source of complexity in the design and implementation of practical concurrent data structures. We study how hardware transactional memory (HTM) can be used to simplify and streamline memory reclamation for such data structures. We propose and evaluate several new HTMbased algorithms for the “Dynamic Collect ” problem that lies at the heart of many modern memory management algorithms. We demonstrate that HTM enables simpler and faster solutions, with better memory reclamation properties, than prior approaches. Despite recent theoretical arguments that HTM provides no worst-case advantages, our results support the claim that HTM can provide significantly better common-case performance, as well as reduced conceptual complexity.
Aleksandar Dragojevic, Maurice Herlihy, Yossi Lev, Mark Moir
PODC2
2011 Transforming worst-case optimal solutions for simultaneous tasks into all-case optimal solutions
abstract
Decision tasks require that nonfaulty processes make decisions based on their input values. Simultaneous decision tasks require that nonfaulty processes decide in the same round. Most decision tasks have known worst-case lower bounds. Most also have known worst-case optimal protocols that halt in the number of rounds given by the worst-case lower bound, and some have early-stopping protocols that can halt earlier than the worst-case lower bound (sometimes in as early as two rounds). We consider what might be called earliest-possible protocols for simultaneous decision tasks. We present a new technique that converts worst-case optimal decision protocols into all-case optimal simultaneous decision protocols: For every behavior of the adversary, the all-case optimal protocol decides as soon as any protocol can decide in a run with the same adversarial behavior. Examples to which this can be applied include set consensus, condition-based consensus, renaming and order-preserving renaming. Some of these tasks can be solved significantly faster than the classical simultaneous consensus task. A byproduct of the analysis is a proof that improving on the worst-case bound for any simultaneous task by even a single round is as hard as reaching simultaneous consensus.
Maurice Herlihy, Yoram Moses, Mark R. Tuttle
PODC1
2010 Applications of Shellable Complexes to Distributed Computing - (Invited Talk)
Maurice Herlihy
CONCUR1
2010 Energy and Throughput Efficient Transactional Memory for Embedded Multicore Systems
Cesare Ferri, Samantha Wood 0001, Tali Moreshet, R. Iris Bahar, Maurice Herlihy
HiPEAC5
2010 The topology of shared-memory adversaries
abstract
Failure patterns in modern parallel and distributed system are not necessarily uniform. The notion of an adversary scheduler is a natural way to extend the classical wait-free and t-faulty models of computation. A well-established way to characterize an adversary is by its set of cores, where a core is any minimal set of processes that cannot all fail in any execution. We show that the protocol complex associated with an adversary is (c-2)-connected, where c is the size of the adversary's smallest core. This implies, among other results, that such an adversary can solve c-set agreement, but not (c-1)-set agreement. The proofs are combinatorial, relying on a novel application of the Nerve Theorem of modern combinatorial topology.
Maurice Herlihy, Sergio Rajsbaum
PODC1
2010 Coarse-grained transactions
abstract
Traditional transactional memory systems suffer from overly conservative conflict detection, yielding so-called false conflicts, because they are based on fine-grained, low-level read/write conflicts. In response, the recent trend has been toward integrating various abstract data-type libraries using ad-hoc methods of high-level conflict detection. These proposals have led to improved performance but a lack of a unified theory has led to confusion in the literature.
Eric Koskinen, Matthew J. Parkinson, Maurice Herlihy
POPL3
2010 Concurrent Computing and Shellable Complexes
Maurice Herlihy, Sergio Rajsbaum
DISC1
2010 Threshold protocols in survivor set systems
Flavio Paiva Junqueira, Keith Marzullo, Maurice Herlihy, Lucia Draque Penso
Distributed Comput.3
2010 Embedded-TM: Energy and complexity-effective hardware transactional memory for embedded multicore systems
Cesare Ferri, Samantha Wood 0001, Tali Moreshet, R. Iris Bahar, Maurice Herlihy
J. Parallel Distributed Comput.5
2009 tm_db: A Generic Debugging Library for Transactional Programs
abstract
Transactional memory (TM) has received a lot of attention as a programming API for concurrent programs on emerging multicore architectures. If the transactional programming model is to realize its promise of simplifying the problem of writing correct and scalable concurrent programs, debuggers will have to change. In this paper, we introduce tm_db, an open-source library to provide debuggers with a general debugging support for transactional programs. The library helps debuggers provide programmers with generic transactional debugging features, independent of the particular TMpsilas runtime internals. In addition, it provides TM designers with a well defined interface for transactional debugging support. We discuss the basic debugging features we believe are essential to debug transactional programs, how they are provided by the library, and how they integrate into a general debugging infrastructure.
Maurice Herlihy, Yossi Lev
PACT1
2009 Enhanced Fault-Tolerance through Byzantine Failure Detection
Rida A. Bazzi, Maurice Herlihy
OPODIS2
2009 Transactional Memory Today: A Status Report
Maurice Herlihy
OPODIS1
2009 Brief announcement: concurrent non-commutative boosted transactions
abstract
Transactional boosting is a methodology which improves transaction performance by using data-structure commutativity and abstract locks for synchronization.
Eric Koskinen, Maurice Herlihy
PODC2
2009 Committing conflicting transactions in an STM
abstract
Dependence-aware transactional memory (DATM) is a recently proposed model for increasing concurrency of memory transactions without complicating their interface. DATM manages dependences between conflicting, uncommitted transactions so that they commit safely.
Hany E. Ramadan, Indrajit Roy 0001, Maurice Herlihy, Emmett Witchel
PPoPP3
2009 On the weakest failure detector ever
Rachid Guerraoui, Maurice Herlihy, Petr Kuznetsov, Nancy A. Lynch, Calvin C. Newport
Distributed Comput.2
2009 A topological treatment of early-deciding set-agreement
Rachid Guerraoui, Maurice Herlihy, Bastian Pochon
Theor. Comput. Sci.2
2008 Energy efficient synchronization techniques for embedded architectures
abstract
We evaluate the energy-efficiency and performance of a number of synchronization mechanisms adapted for embedded devices. We focus on simple hardware accelerators for common software synchronization patterns. We compare the energy efficiency of a range of shared memory benchmarks using both spin-locks and a simple hardware transactional memory. In most cases, transactional memory provides both significantly reduced energy consumption and increased throughput. We also consider applications that employ concurrency patterns based on semaphores, such as pipelines and barriers. We propose and evaluate a novel energy-efficient hardware semaphore construction in which cores spin on local scratchpad memory, reducing the load on the shared bus.
Cesare Ferri, Amber Viescas, Tali Moreshet, R. Iris Bahar, Maurice Herlihy
ACM Great Lakes Symposium on VLSI5
2008 The future of distributed computing: renaissance or reformation?
abstract
In the near future, nearly all computers, ranging from supercomputers to smoke detectors, will be shared-memory multiprocessors. This change will affect the distributed computing community in two ways. First, as a Renaissance: perhaps for the first time ever, research in concurrent and distributed computing matters to people outside the community. Second, as a Reformation: the experience of confronting real multiprocessors, like early theorists' experience confronting FORTRAN, will force us to address problems obscured by many of today's elegant but naive computational models. This talk explores these possibilities.
Maurice Herlihy
PODC1
2008 Transactional boosting: a methodology for highly-concurrent transactional objects
abstract
We describe a methodology for transforming a large class of highly-concurrent linearizable objects into highly-concurrent transactional objects. As long as the linearizable implementation satisfies certain regularity properties (informally, that every method has an inverse), we define a simple wrapper for the linearizable implementation that guarantees that concurrent transactions without inherent conflicts can synchronize at the same granularity as the original linearizable implementation.
Maurice Herlihy, Eric Koskinen
PPoPP1
2008 Checkpoints and continuations instead of nested transactions
abstract
We present a mechanism for partially aborting transactions through the use of data structure checkpoints and control-flow continuations. In particular, we show that boosted transactions [9] already have built-in restoration points and afford a simple, efficient implementation. Our mechanism is far simpler than previous work, which relied on complex nesting schemes to establish checkpoints. We demonstrate syntactic advantages and we quantify the overhead of checkpoints and explore several examples, illustrating the utility of partially aborting transactions.
Eric Koskinen, Maurice Herlihy
SPAA2
2008 Dreadlocks: efficient deadlock detection
abstract
We present Dreadlocks, an efficient new shared-memory spin lock that actively detects deadlocks. Instead of spinning on a Boolean value, each thread spins on the lock owner's per-thread digest, a compact representation of a portion of the lock's waits-for graph. Digests can be implemented either as bit vectors (for small numbers of threads) or as Bloom filters (for larger numbers of threads). Updates to digests are propagated dynamically as locks are acquired and released. Dreadlocks can be applied to any spin lock algorithm that allows threads to time out. Experimental results show that Dreadlocks outperform timeouts under many circumstances, and almost never do worse.
Eric Koskinen, Maurice Herlihy
SPAA2
2008 Optimizing Threshold Protocols in Adversarial Structures
Maurice Herlihy, Flavio Paiva Junqueira, Keith Marzullo, Lucia Draque Penso
DISC1
2008 Hopscotch Hashing
Maurice Herlihy, Nir Shavit, Moran Tzafrir
DISC1
2007 The Multicore Revolution
Maurice Herlihy
FSTTCS1
2007 On the weakest failure detector ever
abstract
Many problems in distributed computing are impossible when no information about process failures is available. It is common to ask what information about failures is necessary and sufficient to circumvent some specific impossibility, e.g., consensus, atomic commit, mutual exclusion, etc. This paper asks what information about failures is needed to circumvent any impossibility and sufficient to circumvent some impossibility. In other words, what is the minimal yet non-trivial failure informatio.
Rachid Guerraoui, Maurice Herlihy, Petr Kuznetsov, Nancy A. Lynch, Calvin C. Newport
PODC2
2007 Potential show-stoppers for transactional synchronization
abstract
No abstract available.
Ali-Reza Adl-Tabatabai, David Dice, Maurice Herlihy, Nir Shavit, Christoforos E. Kozyrakis, Christoph von Praun, Michael L. Scott
PPoPP3
2007 A Simple Optimistic Skiplist Algorithm
Maurice Herlihy, Yossi Lev, Victor Luchangco, Nir Shavit
SIROCCO1
2007 Distributed transactional memory for metric-space networks
Maurice Herlihy
Distributed Comput.1
2006 A flexible framework for implementing software transactional memory
abstract
We describe DSTM2, a Java™ software library that provides a flexible framework for implementing object-based software transactional memory (STM). The library uses transactional factories to transform sequential (unsynchronized) classes into atomic (transactionally synchronized) ones, providing a substantial improvement over the awkward programming interface of our previous DSTM library. Furthermore, researchers can experiment with alternative STM mechanisms by providing their own factories. We demonstrate this flexibility by presenting two factories: one that uses essentially the same mechanisms as the original DSTM (with some enhancements),and another that uses a completely different approach.Because DSTM2 is packaged as a Java library, a wide range of programmers can easily try it out, and the community can begin to gain experience with transactional programming. Furthermore, researchers will be able to use the body of transactional programs that arises from this community experience to test and evaluate different STM mechanisms simply by supplying new transactional factories. We believe that this flexible approach will help to build consensus about the best ways to implement transactions, and will avoid the premature "lock-in" that may arise if STM mechanisms are baked into compilers before such experimentation is done.
Maurice Herlihy, Victor Luchangco, Mark Moir
OOPSLA1
2006 A Topological Treatment of Early-Deciding Set-Agreement
Rachid Guerraoui, Maurice Herlihy, Bastian Pochon
OPODIS2
2006 Towards a theory of transactional contention managers
abstract
No abstract available.
Rachid Guerraoui, Maurice Herlihy, Bastian Pochon
PODC2
2006 The art of multiprocessor programming
abstract
Computer architecture is about to undergo, if not another revolution, then a vigorous shaking-up. The major chip manufacturers have, for the time being, simply given up trying to make processors run faster. Instead, they have recently started shipping "multicore" architectures, in which multiple processors (cores) communicate directly through shared hardware caches, providing increased concurrency instead of increased clock speed.As a result, system designers and software engineers can no longer rely on increasing clock speed to hide software bloat. Instead, they must somehow learn to make effective use of increasing parallelism. This adaptation will not be easy. Conventional synchronization techniques based on locks and conditions are unlikely to be effective in such a demanding environment. Coarse-grained locks, which protect relatively large amounts of data, do not scale, and fine-grained locks introduce substantial software engineering problem.Transactional memory is a computational model in which threads synchronize by optimistic, lock-free transactions. This synchronization model promises to alleviate many (not all) of the problems associated with locking, and there is a growing community of researchers working on both software and hardware support for this approach. This talk will survey the area, with a focus on open research problems.
Maurice Herlihy
PODC1
2006 Proving correctness of highly-concurrent linearisable objects
abstract
We study a family of implementations for linked lists using fine-grain synchronisation. This approach enables greater concurrency, but correctness is a greater challenge than for classical, coarse-grain synchronisation. Our examples are demonstrative of common design patterns such as lock coupling, optimistic, and lazy synchronisation. Although they are are highly concurrent, we prove that they are linearisable, safe, and they correctly implement a high-level abstraction. Our proofs illustrate the power and applicability of rely-guarantee reasoning, as well of some of its limitations. The examples of the paper establish a benchmark challenge for other reasoning techniques.
Viktor Vafeiadis, Maurice Herlihy, Tony Hoare, Marc Shapiro 0001
PPoPP2
2006 Energy implications of multiprocessor synchronization
abstract
No abstract available.
Tali Moreshet, R. Iris Bahar, Maurice Herlihy
SPAA3
2006 Subconsensus Tasks: Renaming Is Weaker Than Set Agreement
Eli Gafni, Sergio Rajsbaum, Maurice Herlihy
DISC3
2006 Self-stabilizing smoothing and balancing networks
Maurice Herlihy, Srikanta Tirthapura
Distributed Comput.1
2006 Virtual Leashing: Creating a computational foundation for software protection
Ori Dvir, Maurice Herlihy, Nir Shavit
J. Parallel Distributed Comput.2
2006 Randomized smoothing networks
Maurice Herlihy, Srikanta Tirthapura
J. Parallel Distributed Comput.1
2006 Dynamic Analysis of the Arrow Distributed Protocol
Maurice Herlihy, Fabian Kuhn, Srikanta Tirthapura, Roger Wattenhofer
Theory Comput. Syst.1
2006 Self-Stabilizing Distributed Queuing
abstract
Distributed queuing is a fundamental coordination problem arising in a variety of applications, including distributed shared memory, distributed directories, and totally ordered multicast. A distributed queue can be used to order events, user operations, or messages in a distributed system. This paper presents a new self-stabilizing distributed queuing protocol. This protocol adds self-stabilizing actions to the arrow distributed queuing protocol, a simple path-reversal protocol that runs on a spanning tree of the network. We present a proof that the protocol stabilizes to a stable state irrespective of the (perhaps faulty) initial state, and also present an analysis of the time until convergence. The self-stabilizing queuing protocol is structured as a layer that runs on top of any self-stabilizing spanning tree protocol. This additional queuing layer is guaranteed to stabilize in time bounded by a constant number of message delays across an edge, thus establishing that the stabilization time for distributed queuing is not much more than the stabilization time for spanning tree maintenance. The key idea in our protocol is that the global predicate defining the legality of a protocol state can be written as the conjunction of many purely local predicates, one for each edge of the spanning tree
Srikanta Tirthapura, Maurice Herlihy
IEEE Trans. Parallel Distributed Syst.2
2005 Virtual Leashing: Internet-Based Software Piracy Protection
abstract
Software-splitting is a technique for protecting software from piracy by removing code fragments from an application and placing them on a remote trusted server. The server provides the missing functionality but never the missing code. As long as the missing functionality is hard to reverse-engineer, the application cannot run without validating itself to the server. Current software-splitting techniques scale poorly to the Internet because interactions with the remote server are synchronous: the application must frequently block waiting for a response from the server. Perceptible delays due to network latency are unacceptable for many kinds of highly-reactive applications, such as games or graphics applications. This paper introduces virtual leashing, the first non-blocking software-splitting technique. Virtual leashing ensures that the application and the server communicate asynchronously, so the application’s performance is independent (within reason) of large or variable network latencies. Experiments show that virtual leashing makes only modest demands on communication bandwidth, space, and computation.
Ori Dvir, Maurice Herlihy, Nir Shavit
ICDCS2
2005 Virtualizing Transactional Memory
abstract
Writing concurrent programs is difficult because of the complexity of ensuring proper synchronization. Conventional lock-based synchronization suffers from well-known limitations, so researchers have considered nonblocking transactions as an alternative. Recent hardware proposals have demonstrated how transactions can achieve high performance while not suffering limitations of lock-based mechanisms. However, current hardware proposals require programmers to be aware of platform-specific resource limitations such as buffer sizes, scheduling quanta, as well as events such as page faults, and process migrations. If the transactional model is to gain wide acceptance, hardware support for transactions must be virtualized to hide these limitations in much the same way that virtual memory shields the programmer from platform-specific limitations of physical memory. This paper proposes virtual transactional memory (VTM), a user-transparent system that shields the programmer from various platform-specific resource limitations. VTM maintains the performance advantage of hardware transactions, incurs low overhead in time, and has modest costs in hardware support. While many system-level challenges remain, VTM takes a step toward making transactional models more widely acceptable.
Ravi Rajwar, Maurice Herlihy, Konrad Lai
ISCA2
2005 Energy reduction in multiprocessor systems using transactional memory
abstract
The emphasis in microprocessor design has shifted from high performance, to a combination of high performance and low power. Until recently, this trend was mostly true for uniprocessors. In this work we focus on new energy consumption issues unique to multiprocessor systems: synchronization of accesses to shared memory. We investigate and compare different means of providing atomic access to shared memory, including locks and lock-free synchronization (i.e., transactional memory), with respect to energy as well as performance. We show that transactional memory has an advantage in terms of energy consumption over locks, but that this advantage largely depends on the system architecture, the contention level, and the policy of conflict resolution
Tali Moreshet, R. Iris Bahar, Maurice Herlihy
ISLPED3
2005 Optimal Randomized Fair Exchange with Secret Shared Coins
Felix C. Freiling, Maurice Herlihy, Lucia Draque Penso
OPODIS2
2005 A Lazy Concurrent List-Based Set Algorithm
Steve Heller, Maurice Herlihy, Victor Luchangco, Mark Moir, William N. Scherer III, Nir Shavit
OPODIS2
2005 The transactional manifesto: software engineering and non-blocking synchronization
abstract
Computer architecture is about to undergo, if not another revolution, then a vigorous shaking-up. The major chip manufacturers have, for the time being, simply given up trying to make processors run faster. Instead, they have recently started shipping "multicore" architectures, in which multiple processors (cores) communicate directly through shared hardware caches, providing increased concurrency instead of increased clock speed.As a result, system designers and software engineers can no longer rely on increasing clock speed to hide software bloat. Instead, they must somehow learn to make effective use of increasing parallelism. This adaptation will not be easy. Conventional synchronization techniques based on locks and conditions are unlikely to be effective in such a demanding environment. Coarse-grained locks, which protect relatively large amounts of data, do not scale, and fine-grained locks introduce substantial software engineering problems.Transactional memory is a computational model in which threads synchronize by optimistic, lock-free transactions. This synchronization model promises to alleviate many (perhaps not all) of the problems associated with locking, and there is a growing community of researchers working on both software and hardware support for this approach. This talk will survey the area, with a focus on open research problems.
Maurice Herlihy
PLDI1
2005 Toward a theory of transactional contention managers
abstract
In recent software transactional memory proposals, a contention manager module is responsible for ensuring that the system as a whole makes progress. A number of contention manager algorithms have been proposed and empirically evaluated.In this paper we lay some foundations for a theory of contention management. We present the greedy contention manager, the first to combine non-trivial provable properties with good practical performance.In a model where transaction delays are finite, the greedy manager guarantees that every transaction commits within a bounded time, and the time to complete n concurrent transactions that share s objects is within a factor of s(s+1)/2 of the time that would have been taken by an optimal off-line list scheduler. No contention manager reviewed in the literature satisfies both the properties. Benchmark results convey our claim of the practicality of the greedy manager.
Rachid Guerraoui, Maurice Herlihy, Bastian Pochon
PODC2
2005 Composable memory transactions
abstract
Writing concurrent programs is notoriously difficult, and is of increasing practical importance. A particular source of concern is that even correctly-implemented concurrency abstractions cannot be composed together to form larger abstractions. In this paper we present a new concurrency model, based on transactional memory, that offers far richer composition. All the usual benefits of transactional memory are present (e.g. freedom from deadlock), but in addition we describe new modular forms of blocking and choice that have been inaccessible in earlier work.
Tim Harris 0001, Simon Marlow, Simon L. Peyton Jones, Maurice Herlihy
PPoPP4
2005 Polymorphic Contention Management
Rachid Guerraoui, Maurice Herlihy, Bastian Pochon
DISC2
2005 Distributed Transactional Memory for Metric-Space Networks
Maurice Herlihy
DISC1
2005 Tight bounds for k-set agreement with limited-scope failure detectors
Maurice Herlihy, Lucia Draque Penso
Distributed Comput.1
2005 Snapshots and software transactional memory
Christopher Cole, Maurice Herlihy
Sci. Comput. Program.2
2005 Nonblocking memory management support for dynamic-sized data structures
abstract
Conventional dynamic memory management methods interact poorly with lock-free synchronization. In this article, we introduce novel techniques that allow lock-free data structures to allocate and free memory dynamically using any thread-safe memory management library. Our mechanisms are lock-free in the sense that they do not allow a thread to be prevented from allocating or freeing memory by the failure or delay of other threads. We demonstrate the utility of these techniques by showing how to modify the lock-free FIFO queue implementation of Michael and Scott to free unneeded memory. We give experimental results that show that the overhead introduced by such modifications is moderate, and is negligible under low contention.
Maurice Herlihy, Victor Luchangco, Paul A. Martin, Mark Moir
ACM Trans. Comput. Syst.1
2004 Randomized Smoothing Networks
abstract
Summary form only given. A smoothing network is a distributed data structure that accepts tokens on input wires and routes them to output wires. It ensures that however imbalanced the traffic on input wires, the numbers of tokens emitted on output wires are approximately balanced. We study randomized smoothing networks, whose initial states are chosen at random. Randomized smoothing networks require no global initialization, and also require no global reconfiguration after faults. We make the following contributions. We show that the well-known block smoothing network, when started in a random initial state, is O(/spl radic/log(w))-smooth with high probability, where w is the number of input/output wires. We show that as a corollary, the bitonic and periodic networks are also O( /spl radic/log(w))-smooth with high probability, when started in random initial states. In contrast, it is known that these networks are (log w)-smooth in the worst case.
Maurice Herlihy, Srikanta Tirthapura
IPDPS1
2004 Bringing practical lock-free synchronization to 64-bit applications
abstract
Many lock-free data structures in the literature exploit techniques that are possible only because state-of-the-art 64-bit processors are still running 32-bit operating systems and applications. As software catches up to hardware, "64-bit-clean" lock-free data structures, which cannot use such techniques, are needed.We present several 64-bit-clean lock-free implementations: load-linked/store-conditional variables of arbitrary size, a FIFO queue, and a freelist. In addition to being portable to 64-bit software, our implementations also improve on previous ones in that they are space-adaptive and do not require knowledge of the number of threads that will access them.
Simon Doherty, Maurice Herlihy, Victor Luchangco, Mark Moir
PODC2
2004 Read-modify-write networks
Panagiota Fatourou, Maurice Herlihy
Distributed Comput.2
2003 Obstruction-Free Synchronization: Double-Ended Queues as an Example
abstract
We introduce obstruction-freedom, a new nonblocking property for shared data structure implementations. This property is strong enough to avoid the problems associated with locks, but it is weaker than previous nonblocking properties-specifically lock-freedom and wait-freedom-allowing greater flexibility in the design of efficient implementations. Obstruction-freedom admits substantially simpler implementations, and we believe that in practice it provides the benefits of wait-free and lock-free implementations. To illustrate the benefits of obstruction-freedom, we present two obstruction-free CAS-based implementations of double-ended queues (deques); the first is implemented on a linear array, the second on a circular array. To our knowledge, all previous nonblocking deque implementations are based on unrealistic assumptions about hardware support for synchronization, have restricted functionality, or have operations that interfere with operations at the opposite end of the deque even when the deque has many elements in it. Our obstruction-free implementations have none of these drawbacks, and thus suggest that it is much easier to design obstruction-free implementations than lock-free and wait-free ones. We also briefly discuss other obstruction-free data structures and operations that we have implemented.
Maurice Herlihy, Victor Luchangco, Mark Moir
ICDCS1
2003 Self-Stabilizing Smoothing and Counting Maurice Herlihy, Srikanta Tirthapura
abstract
A smoothing network is a distributed data structure that accepts tokens on input wires and routes them to output wires. It ensures that however imbalanced the traffic on input wires, the numbers of tokens emitted on output wires are approximately balanced. Prior work on smoothing networks always assumed that such networks were properly initialized. In a real distributed system, however, network switches may be rebooted or replaced dynamically, and it may not be practical to determine the correct initial state for the new switch. Prior analyses do not work under these new assumptions. This paper makes the following contributions. First, we show that some well-known 1-smoothing networks, known as counting networks, when started in an arbitrary initial state (perhaps chosen by an adversary), remain remarkably smooth, degrading from 1-smooth to log(n)-smooth, where n is the number of input/output wires. Second, we show that the same networks can be made eventually 1-smooth by "piggy-backing" a small amount of additional information on messages when (and only when) trouble is detected.
Maurice Herlihy, Srikanta Tirthapura
ICDCS1
2003 Software transactional memory for dynamic-sized data structures
abstract
We propose a new form of software transactional memory (STM) designed to support dynamic-sized data structures, and we describe a novel non-blocking implementation. The non-blocking property we consider is obstruction-freedom. Obstruction-freedom is weaker than lock-freedom; as a result, it admits substantially simpler and more efficient implementations. A novel feature of our obstruction-free STM implementation is its use of modular contention managers to ensure progress in practice. We illustrate the utility of our dynamic STM with a straightforward implementation of an obstruction-free red-black tree, thereby demonstrating a sophisticated non-blocking dynamic data structure that would be difficult to implement by other means. We also present the results of simple preliminary performance experiments that demonstrate that an "early release" feature of our STM is useful for reducing contention, and that our STM lends itself to the effective use of modular contention managers.
Maurice Herlihy, Victor Luchangco, Mark Moir, William N. Scherer III
PODC1
2003 tight bounds for k-set agreement with limited-scope failure detectors
abstract
No abstract available.
Maurice Herlihy, Lucia Draque Penso
PODC1
2003 Tight Bounds for k-Set Agreement with Limited-Scope Failure Detectors
Maurice Herlihy, Lucia Draque Penso
DISC1
2003 A classification of wait-free loop agreement tasks
Maurice Herlihy, Sergio Rajsbaum
Theor. Comput. Sci.1
2002 Dynamic-sized lock-free data structures
abstract
We address the problem of integrating lockfree shared data structures with standard dynamic allocation mechanisms (such as malloc and free). We have two main contributions. The first is the design and experimental analysis of two dynamic-sized lockfree FIFO queue implementations, which extend Michael and Scott’s previous implementation by allowing unused memory to be freed. We compare our dynamic-sized implementations to the original on 16-processor and 64-processor multiprocessors. Our experimental results indicate that the performance penalty for making the queue dynamic-sized is modest, and is negligible when contention is not too high. These results were achieved by applying a solution to the Repeat Offender Problem (ROP), which we recently posed and solved. Our second contribution is another application of ROP solutions. Specifically, we show how to use any ROP solution to achieve a general methodology for transforming lockfree data structures that rely on garbage collection into ones that use explicit storage reclamation.
Maurice Herlihy, Victor Luchangco, Paul A. Martin, Mark Moir
PODC1
2002 The Repeat Offender Problem: A Mechanism for Supporting Dynamic-Sized, Lock-Free Data Structures
Maurice Herlihy, Victor Luchangco, Mark Moir
DISC1
2002 Sorting and Counting Networks of Arbitrary Width and Small Depth
Costas Busch, Maurice Herlihy
Theory Comput. Syst.2
2002 Threshold counters with increments and decrements
Costas Busch, Neophytos Demetriou, Maurice Herlihy, Marios Mavronicolas
Theor. Comput. Sci.3
2001 Adding networks
abstract
An adding network is a distributed data structure that supports a concurrent, lock-free, low-contention implementation of a fetch&add counter. We give a lower bound showing that adding networks have inherently high latency. We prove that our lower bound is tight.
Panagiota Fatourou, Maurice Herlihy
PODC2
2001 On beyond registers: wait-free readable objects
abstract
Leslie Lamport was the first to pose many of the fundamental questions about synchronization that drive much of our community's research, even today. In this paper, we revisit some of Lamport's classic questions in a modern context. In particular, we consider some of the implications
Maurice Herlihy
PODC1
2001 Competitive concurrent distributed queuing
abstract
Distributed queuing is a fundamental problem in distributed computing, arising in a variety of applications. The challenge in designing a distributed queuing algorithm is to minimize message traffic and delay.
Maurice Herlihy, Srikanta Tirthapura, Roger Wattenhofer
PODC1
2001 Routing without flow control
abstract
We present the first dynamic hot-potato routing algorithm that does not require any form of explicit flow control: a node may inject a message into the network (n × n mesh) whenever a link is free. In the worst case, a node may have to wait an expected Ο(n) time before it has a free link. If destinations are chosen uniformly at random, this algorithm guarantees delivery in an expected Ο(n) time steps. Both measures are optimal up to a constant factor.
Costas Busch, Maurice Herlihy, Roger Wattenhofer
SPAA2
2001 Adding Networks
Panagiota Fatourou, Maurice Herlihy
DISC2
2001 A New Synchronous Lower Bound for Set Agreement
Maurice Herlihy, Sergio Rajsbaum, Mark R. Tuttle
DISC1
2001 Self Stabilizing Distributed Queuing
Maurice Herlihy, Srikanta Tirthapura
DISC1
2000 A Combinatorial Characterization of Properties Preserved by Antitokens
Costas Busch, Neophytos Demetriou, Maurice Herlihy, Marios Mavronicolas
Euro-Par3
2000 On the Existence of Booster Types
abstract
A data type's consensus number measures its power in asynchronous concurrent models of computation. We characterize the circumstances under which types of high consensus number can be constructed from types with lower consensus numbers, a process called boosting. In settings where boosting is impossible, we can reason about the synchronization power of objects in isolation. We give a new and simple topological condition, called /spl kappa/-solo-connectivity sufficient to ensure that one-shot types cannot be boosted to consensus number /spl kappa/. The booster type need not be one-shot; it can be arbitrary. We also show that, for /spl kappa/>2, any type that is not /spl kappa/-solo-connected can be boosted to consensus number /spl kappa/. For types that can be boosted, we establish an upper bound on the amount the consensus number can be increased. For finite types, these properties and bounds are computable. For deterministic one-shot types, the /spl kappa/-solo-connectivity property also exactly characterizes the types that have consensus number less than /spl kappa/.
Maurice Herlihy, Eric Ruppert
FOCS1
2000 Randomized greedy hot-potato routing
Costas Busch, Maurice Herlihy, Roger Wattenhofer
SODA2
2000 Hard-Potato routing
abstract
We present the first hot-potato routing algorithm for the n × n mesh whose running time on any "hard" (i.e., n)) "many-to-one" batch routing problem is, with high probability, within a polylogarithmic factor of optimal. For any instance I of a batch routing problem, there exists a well-known lower bound LBI based on maximum path length and maximum congestion. If LBI is n), our algorithm solves I with high probability in time O(LBI log 3 n). The algorithm is distributed and greedy, and it makes use of a new routing technique based on multi-bend paths, a departure from paths using a constant number of bends used in prior hot-potato algorithms.
Costas Busch, Maurice Herlihy, Roger Wattenhofer
STOC2
2000 A tale of two directories: implementing distributed shared objects in Java
abstract
A directory service keeps track of the location and status of mobile objects in a distributed system. This paper describes our experience implementing two distributed directory protocols as part of the Aleph toolkit, a distributed shared object system implemented in Java. One protocol is a conventional home-based protocol, in which a fixed node keeps track of the object's location and status. The other is a novel Arrow protocol, based on a simple path-reversal algorithm. We were surprised to discover that the Arrow protocol outperformed the home protocol, sometimes substantially, across a range of system sizes. This paper describes a series of experiments testing whether the discrepancy is due to an artifact of the Java run-time system (such as differences in thread management or object serialization costs), or whether it is something inherent in the protocols themselves. In the end, we use insights gained from these experimental results to design a new directory protocol that combines advantages of both. Copyright © 2000 John Wiley & Sons, Ltd.
Maurice Herlihy, Michael P. Warres
Concurr. Pract. Exp.1
2000 Tight bounds for k-set agreement
abstract
We prove tight bounds on the time needed to solve k-set agreement . In this problem, each processor starts with an arbitrary input value taken from a fixed set, and halts after choosing an output value. In every execution, at most k distinct output values may be chosen, and every processor's output value must be some processor's input value. We analyze this problem in a synchronous, message-passing model where processors fail by crashing. We prove a lower bound of ⌊f/k⌋+1 degree of coordination required, and the number of faults tolerated, even in idealized models like the synchronous model. The proof of this result is interesting because it is the first to apply topological techniques to the synchronous model.
Soma Chaudhuri, Maurice Herlihy, Nancy A. Lynch, Mark R. Tuttle
J. ACM2
2000 Algebraic spans
Maurice Herlihy, Sergio Rajsbaum
Math. Struct. Comput. Sci.1
1999 New Perspectives in Distributed Computing
Maurice Herlihy, Sergio Rajsbaum
MFCS1
1999 Threshold Counters with Increments and Decrements
Costas Busch, Neophytos Demetriou, Maurice Herlihy, Marios Mavronicolas
SIROCCO3
1999 Sorting and Counting Networks of Small Depth and Arbitrary Width
abstract
We present the fist construction for sorting and counting networks of arbitrary width that uses both small depth and small constant factors.Let w be the product w = pe + + .p,,-l,
Costas Busch, Maurice Herlihy
SPAA2
1999 Supporting Increment and Decrement Operations in Balancing Networks
William Aiello, Costas Busch, Maurice Herlihy, Marios Mavronicolas, Nir Shavit, Dan Touitou
STACS3
1999 The topological structure of asynchronous computability
abstract
We give necessary and sufficient combinatorial conditions characterizing the class of decision tasks that can be solved in a wait-free manner by asynchronous processes that communicate by reading and writing a shared memory.We introduce a new formalism for tasks, based on notions from classical algebraic and combinatorial topology, in which a task's possible input and output values are each associated with highdimensional geometric structures called simplicial complexes.We characterize computability in terms of the topological properties of these complexes.This characterization has a surprising geometric interpretation: a task is solvable if and only if the complex representing the task's allowable inputs can be mapped to the complex representing the task's allowable outputs by a function satisfying certain simple regularity properties.Our formalism thus replaces the "operational" notion of a wait-free decision task, expressed in terms of interleaved computations unfolding in time, by a static "combinatorial" description expressed in terms of relations among topological spaces.This allows us to exploit powerful theorems from the classic literature on algebraic and combinatorial topology.The approach yields the first impossibility results for several long-standing open problems in distributed computing, such as the "renaming" problem of Attiya et al., and the "k-set agreement" problem of Chaudhuri.Preliminary versions of these results appeared as HERLIHY, M. P., AND SHAVIT, N. 1993.The asynchronous computability theorem for t-resilient tasks.In
Maurice Herlihy, Nir Shavit
J. ACM1
1999 Time-Lapse Snapshots
abstract
A snapshot scan algorithm produces an "instantaneous" picture of a region of shared memory that may be updated by concurrent processes. Many complex shared memory algorithms can be greatly simplified by structuring them around the snapshot scan abstraction. Unfortunately, the substantial decrease in conceptual complexity quite often is counterbalanced by an increase in computational complexity. In this paper, we introduce the notion of a weak snapshot scan, a slightly weaker primitive that has a more efficient implementation. We propose the following methodology for using this abstraction: first, design and verify an algorithm using the more powerful snapshot scan; second, replace the more powerful but less efficient snapshot with the weaker but more efficient snapshot, and show that the weaker abstraction nevertheless suffices to ensure the correctness of the enclosing algorithm. We give two examples of algorithms whose performance is enhanced while retaining a simple modular structure: bounded concurrent timestamping and bounded randomized consensus. The resulting timestamping protocol dominates all other currently known timestamping protocols: it matches the speed of the fastest known bounded concurrent timestamping protocol while actually reducing the register size by a logarithmic factor. The resulting randomized consensus protocol matches the computational complexity of the best known protocol that uses only bounded values.
Cynthia Dwork, Maurice Herlihy, Serge A. Plotkin, Orli Waarts
SIAM J. Comput.2
1999 Wait-Free Implementations in Message-Passing Systems
Soma Chaudhuri, Maurice Herlihy, Mark R. Tuttle
Theor. Comput. Sci.2
1998 Unifying Synchronous and Asynchronous Message-Passing Models
abstract
We take a significant step toward unifying the synchronous, semi-synchronous, and asynchronous message-passing models of distributed computation.The key idea is the concept of a pseudosphere, a new combinatorial structure in which each process from a set of processes is independently assigned a value from a set of values.Pseudospheres have a number of nice combinatorial properties, but their principal interest lies in the observation that the behavior of protocols in the three models can be characterized as simple unions of pseudospheres, where the exact structure of these unions is determined by the timing properties of the model.We use this pseudosphere construction to derive new and remarkably succinct proofs of bounds on consensus and k-set agreement in the asynchronous and synchronous models, as well as the first lower bound on wait-free k-set agreement in the semi-synchronous model.
Maurice Herlihy, Sergio Rajsbaum, Mark R. Tuttle
PODC1
1998 The Arrow Distributed Directory Protocol
Michael J. Demmer, Maurice Herlihy
DISC2
1998 A Wait-Free Classification of Loop Agreement Tasks
Maurice Herlihy, Sergio Rajsbaum
DISC1
1998 On the Space Complexity of Randomized Synchronization
abstract
The “waite-free hierarchy” provides a classification of multiprocessor synchronization primitives based on the values ofnfor which there are deterministic wait-free implementations ofn-process consensus using instances of these objects andread-writeregisters. In a randomized wait-free setting, this classification is degenerate, sincen-process consensus can be solved using onlyO(n) read-writeregisters. In this paper, we propose a classification of synchronization primitives based on thespace complexityof randomized solutions ton-process consensus. Ahistoryless object,such as aread-writeregister, aswapregister, or atest&setregister, is an object whose state depends only on the lost nontrivial operation thate was applied to it. We show that, usinghistorylessobjects, Ω(√n) object instances are necessary to solven-process consensus. This lower bound holds even if the objects have unbounded size and the termination requirement isnondeterministic solo termination, a property strictly weaker than randomized wait-freedom. We then use this result to related the randomized space complexity of basic multiprocessor synchronization primitives such asshared counters, fetch&addregisters, andcompare&swapregisters. Viewed collectively, our results imply that there is a separation based on space complexity for synchronization primitives in randomized computation, and that this separation differs from that implied by the deterministic “wait-free hierarchy.”
Faith Ellen, Maurice Herlihy, Nir Shavit
J. ACM2
1997 The Decidability of Distributed Decision Tasks (Extended Abstract)
abstract
A task is a distributed coordination problem in which each process starts with a private input value taken from a tlnite set, communicates with the other processes by applying operations to shared objects, and eventually halts with a private output value, also taken from a finite set.A protocol is a distributed program that solves a task.A protocol is t-resikent if it tolerates failures by t or fewer processes.A task is solvable in a given model of computation if it has a t-resilientprotocol in that model.A set of tasks is decidable in a given model of computation if there exists an effective procedure for deciding whether any task in that set has a t-resilient protocol.This paper gives the first necessary and sufficient conditions for task decidability in a range of different models and resilience levels.We prove undecidability by exploiting classical decidabilit y results from algebraic topology, and we prove decidability by explicit construction.
Maurice Herlihy, Sergio Rajsbaum
STOC1
1997 Contention in shared memory algorithms
abstract
Most complexity measures for concurrent algorithms for asynchronous shared-memory architectures focus on process steps and memory consumption. In practice, however, performance of multiprocessor algorithms is heavily influenced bycontention, the extent to which processess access the same location at the same time. Nevertheless, even though contention is one of the principal considerations affecting the performance of real algorithms on real multiprocessors, there are no formal tools for analyzing the contention of asynchronous shared-memory algorithms. This paper introduces the first formal complexity model for contention in shared-memory multiprocessors. We focus on the standard multiprocessor architecture in whichnasynchronous processes communicate by applyingread, write,andread-modify-writeoperations to a shared memory. To illustrate the utility of our model, we use it to derive two kinds of results: (1) lower bounds on contention for well-known basic problems such as agreement and mutual exclusion, and (2) trade-offs between the length of the critical path (maximal number of accesses to shared variables performed by a single process in executing the algorithm) and contention for these algorithms. Furthermore, we give the first formal contention analysis of a variety of counting networks, a class of concurrent data structures inplementing shared counters. Experiments indicate that certain counting networks outperform conventional single-variable counters at high levels of contention. Our analysis provides the first formal model explaining this phenomenon.
Cynthia Dwork, Maurice Herlihy, Orli Waarts
J. ACM2
1996 On the Decidability of Distributed Decision Tasks (Brief Announcement)
abstract
No abstract available.
Maurice Herlihy, Sergio Rajsbaum
PODC1
1996 Linearizable Counting Networks
Maurice Herlihy, Nir Shavit, Orli Waarts
Distributed Comput.1
1995 Algebraic Spans (Preliminary Version)
abstract
Topological methods have yielded a variety of lower bounds and impossibility results for distributed computing.In this paper, we introduce a new tool for proving impossibility results, based on a core theorem of algebraic topology, the acyclic carrier theorem, which unifies, generalizes, and extends earlier results.q
Maurice Herlihy, Sergio Rajsbaum
PODC1
1995 Atomic Snapshots Using Lattice Agreement
Hagit Attiya, Maurice Herlihy, Ophir Rachman
Distributed Comput.2
1995 Scalable Concurrent Counting
abstract
The notion of counting is central to a number of basic multiprocessor coordination problems, such as dynamic load balancing, barrier synchronization, and concurrent data structure design. We investigate the scalability of a variety of counting techniques for large-scale multiprocessors. We compare counting techniques based on: (1) spin locks, (2) message passing, (3) distributed queues, (4) software combining trees, and (5) counting networks. Our comparison is based on a series of simple benchmarks on a simulated 64-processor Alewife machine, a distributed-memory multiprocessor currently under development at MIT. Although locking techniques are known to perform well on small-scale, bus-based multiprocessors, serialization limits performance, and contention can degrade performance. Both counting networks and combining trees outperform the other methods substantially by avoiding serialization and alleviating contention, although combining-tree throughput is more sensitive to variations in load. A comparison of shared-memory and message-passing implementations of counting networks and combining trees shows that message-passing implementations have substantially higher throughput.
Maurice Herlihy, Beng-Hong Lim, Nir Shavit
ACM Trans. Comput. Syst.1
1994 Set Consensus Using Arbitrary Objects (Preliminary Version)
abstract
Article Free Access Share on Set consensus using arbitrary objects (preliminary version) Authors: Maurice Herlihy Digital Equipment Corporation, Cambridge Research Laboratory, One Kendall Square, Cambridge, MA Digital Equipment Corporation, Cambridge Research Laboratory, One Kendall Square, Cambridge, MAView Profile , Sergio Rajsbaum MIT Laboratory for Computer Science, 545 Technology Square, Cambridge, MA and Instituto de Matemáticas, U. N. A.M., México MIT Laboratory for Computer Science, 545 Technology Square, Cambridge, MA and Instituto de Matemáticas, U. N. A.M., MéxicoView Profile Authors Info & Claims PODC '94: Proceedings of the thirteenth annual ACM symposium on Principles of distributed computingAugust 1994 Pages 324–333https://doi.org/10.1145/197917.198119Published:14 August 1994Publication History 37citation313DownloadsMetricsTotal Citations37Total Downloads313Last 12 Months18Last 6 weeks2 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Maurice Herlihy, Sergio Rajsbaum
PODC1
1994 A simple constructive computability theorem for wait-free computation
abstract
memory multiprocessors, processes
Maurice Herlihy, Nir Shavit
STOC1
1994 Counting Networks
abstract
Many fundamental multi-processor coordination problems can be expressed as counting problems : Processes must cooperate to assign successive values from a given range, such as addresses in memory or destinations on an interconnection network. Conventional solutions to these problems perform poorly because of synchronization bottlenecks and high memory contention. Motivated by observations on the behavior of sorting networks, we offer a new approach to solving such problems, by introducing counting networks , a new class of networks that can be used to count. We give two counting network constructions, one of depth log n (1 + log n )/2 using n log (1 + log n )/4 “gates,” and a second of depth log 2 n using n log 2 n /2 gates. These networks avoid the sequential bottlenecks inherent to earlier solutions and substantially lower the memory contention. Finally, to show that counting networks are not merely mathematical creatures, we provide experimental evidence that they outperform conventional synchronization techniques under a variety of circumstances.
James Aspnes, Maurice Herlihy, Nir Shavit
J. ACM2
1993 A Tight Lower Bound for k-Set Agreement
abstract
We prove tight bounds on the time needed to solve k-set agreement, a natural generalization of consensus. We analyze this problem in a synchronous, message-passing model where processors fail by crashing. We prove a lower bound of [f/k]+1 rounds of communication for solutions to k-set agreement that tolerate f failures. This bound is tight, and shows that there is an inherent tradeoff between the running time, the degree of coordination required, and the number of faults tolerated, even in idealized models like the synchronous model. The proof of this result is interesting because it is a geometric combination of other well-known proof techniques.>
Soma Chaudhuri, Maurice Herlihy, Nancy A. Lynch, Mark R. Tuttle
FOCS2
1993 Transactional Memory: Architectural Support for Lock-Free Data Structures
abstract
A shared data structure is lock-free if its operations do not require mutual exclusion. If one process is interrupted in the middle of an operation, other processes will not be prevented from operating on that object. In highly concurrent systems, lock-free data structures avoid common problems associated with conventional locking techniques, including priority inversion, convoying, and difficulty of avoiding deadlock. This paper introduces transactional memory, a new multiprocessor architecture intended to make lock-free synchronization as efficient (and easy to use) as conventional techniques based on mutual exclusion. Transactional memory allows programmers to define customized read-modify-write operations that apply to multiple, independently-chosen words of memory. It is implemented by straightforward extensions to any multiprocessor cache-coherence protocol. Simulation results show that transactional memory matches or outperforms the best known locking techniques for simple benchmarks, even in the absence of priority inversion, convoying, and deadlock.
Maurice Herlihy, J. Eliot B. Moss
ISCA1
1993 Bounded Round Numbers
abstract
This paper presents a systematic, modular technique for transforming a large class of unbounded shared-memory algorithms into bounded algorithms.We show that any unbounded algorithm based on a certain asynchronous rounds structure can be "compiled" into a bounded algorithm in a way that preserves correctness and running time.As evidence that the asynchronous rounds
Cynthia Dwork, Maurice Herlihy, Orli Waarts
PODC2
1993 On the Space Complexity of Randomized Synchronization
abstract
The "wait-free hierarchy" defines a deterministic computability separation among multiprocessor syn-
Faith Ellen, Maurice Herlihy, Nir Shavit
PODC2
1993 Contention in shared memory algorithms
abstract
Abstract. Most complexity measures for concurrent algorithms for asynchronous shared-memory architectures focus on process steps and memory consumption. In practice, however, performance of multiprocessor algorithms is heavily influenced by contention, the extent to which processes access the same location at the same time. Nevertheless, even though contention is one of the principal considerations affecting the performance of real algorithms on real multiprocessors, there are no formal tools for analyzing the contention of asynchronous shared-memory algorithms. This paper introduces the first formal complexity model for contention in shared-memory multiprocessors. We focus on the standard multiprocessor architecture in which n asynchronous processes communicate by applying read, write, and read-modify-write operations to a shared memory. To illustrate the utility of our model, we use it to derive two kinds of results: (1) lower bounds on contention for well-known basic problems such as agreement and mutual exclusion, and (2) trade-offs between the length of the critical path (maximal number of accesses to shared variables performed by a single process in executing the algorithm) and contention for these algorithms. Furthermore, we give the first formal contention analysis of a variety of counting networks, a class of concurrent data
Cynthia Dwork, Maurice Herlihy, Orli Waarts
STOC2
1993 The asynchronous computability theorem for t-resilient tasks
abstract
We give necessary and sufficient combinatorial conditions characterizing the computational tasks that can be solved by N asynchronous processes, up to t of which can fail by halting. The range of possible input and output values for an asynchronous task can be associated with a high-dimensional geometric structure called a simplicial complex. Our main theorem characterizes computability in terms of the topological properties of this complex. Most notably, a given task is computable only if it can be associated with a complex that is simply connected with trivial homology groups. In other words, the complex has "no holes!" Applications of this characterization include the first impossibility results for several long-standing open problems in distributed computing, such as the "renaming" problem of Attiya et. al., the "k-set agreement" problem of Chaudhuri, and a generalization of the approximate agreement problem. 1 Introduction A decision task is an input/output problem where N asyn...
Maurice Herlihy, Nir Shavit
STOC1
1993 A Methodology for Implementing Highly Concurrent Objects
abstract
A concurrent object is a data structure shared by concurrent processes. Conventional techniques for implementing concurrent objects typically rely on critical sections ; ensuring that only one process at a time can operate on the object. Nevertheless, critical sections are poorly suited for asynchronous systems: if one process is halted or delayed in a critical section, other, nonfaulty processes will be unable to progress. By contrast, a concurrent object implementation is lock free if it always guarantees that some process will complete an operation in a finite number of steps, and it is wait free if it guarantees that each process will complete an operation in a finite number of steps. This paper proposes a new methodology for constructing lock-free and wait-free implementations of concurrent objects. The object's representation and operations are written as stylized sequential programs, with no explicit synchronization. Each sequential operation is atutomatically transformed into a lock-free or wait-free operation using novel synchronization and memory management algorithms. These algorithms are presented for a multiple instruction/multiple data (MIMD) architecture in which n processes communicate by applying atomic read, write, load_linked, and store_conditional operations to a shared memory.
Maurice Herlihy
ACM Trans. Program. Lang. Syst.1
1992 Low Contention Load Balancing on Large-Scale Multiprocessors
abstract
Article Free Access Share on Low contention load balancing on large-scale multiprocessors Authors: Maurice Herlihy View Profile , Beng-Hong Lim View Profile , Nir Shavit View Profile Authors Info & Claims SPAA '92: Proceedings of the fourth annual ACM symposium on Parallel algorithms and architecturesJune 1992 Pages 219–227https://doi.org/10.1145/140901.140924Published:01 June 1992Publication History 25citation297DownloadsMetricsTotal Citations25Total Downloads297Last 12 Months7Last 6 weeks3 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Maurice Herlihy, Beng-Hong Lim, Nir Shavit
SPAA1
1992 On the Correctness of Orphan Management Algorithms
abstract
In a distributed system, node failures, network delays, and other unpredictable occurences can result in orphan computations—subcomputations that continue to run but whose results are no longer needed. Several algorithms have been proposed to prevent such computations from seeing inconsistent states of the shared data. In this paper, two such orphan management algorithms are analyzed. The first is an algorithm implemented in the Argus distributed-computing system at MIT, and the second is an algorithm proposed at Carnegie-Mellon. The algorithms are described formally, and complete proofs of their correctness are given. The proofs show that the fundamental concepts underlying the two algorithms are very similar in that each can be regarded as an implementation of the same high-level algorithm. By exploiting properties of information flow within transaction management systems, the algorithms ensure that orphans only see states of the shared data that they could also see if they were not orphans. When the algorithms are used in combination with any correct concurrency control algorithm, they guarantee that all computations, orphan as well as nonorphan, see consistent states of the shared data.
Maurice Herlihy, Nancy A. Lynch, Michael Merritt, William E. Weihl
J. ACM1
1992 Lock-Free Garbage Collection for Multiprocessors
abstract
Garbage collection algorithms for shared-memory multiprocessors typically rely on some form of global synchronization to preserve consistency. Such global synchronization may lead to problems on asynchronous architectures: if one process is halted or delayed, other, nonfaulty processes will be unable to progress. By contrast, a storage management algorithm is lock-free if (in the absence of resource exhaustion) a process that is allocating or collecting memory can be delayed at any point without forcing other processes to block. The authors present the first algorithm for lock-free garbage collection in a realistic model. The algorithm assumes that processes synchronize by applying read, write, and compare&swap operations to shared memory. This algorithm uses no locks, busy-waiting, or barrier synchronization, it does not assume that processes can observe or modify one another's local variables or registers, and it does not use inter-process interrupts.>
Maurice Herlihy, J. Eliot B. Moss
IEEE Trans. Parallel Distributed Syst.1
1991 Low Contention Linearizable Counting
abstract
The linearizable counting problem requires asynchronous concurrent processes to assign themselves successive values so that the order of the values assigned reflects the real-time order in which they were requested. It is shown that the problem can be solved without funneling all processes through a common memory location. Two new constructions for linearizable counting networks, data structures that solve the linearizable counting problem, are given. The first construction is nonblocking: some process takes a value after O(n) network gates have been traversed. The second construction is wait-free: it guarantees that each process takes a value after it traverses O(wn) gates, where w is a parameter affecting contention. It is shown that in any nonblocking or wait-free linearizable counting network, processes must traverse an average of Omega (n) gates, and so the constructions are close to optimal. A simpler and more efficient network is constructed by giving up the robustness requirements and allowing processes to wait for one another.>
Maurice Herlihy, Nir Shavit, Orli Waarts
FOCS1
1991 Randomized Wait-Free Concurrent Objects (Extended Abstract)
abstract
A concurrent object is a data structure shared by concurrent processes, A w aii-free implementation of a concurrent object guarantees that every operation completes in a finite number of steps, regardless of how processes interleave.It is known, however, that if concurrent processes communicate only by applying read and write operations to a shared memory, then it is impossible to construct wait-free implementations of many simple and useful data objects.In this paper we show how to construct randomized wait-free implementations of long-lived concurrent objects, implementations that guarantee that every operation completes in a finite ezpected number of steps, even against a powerful adversary.
Maurice Herlihy
PODC1
1991 Impossibility Results for Asynchronous PRAM (Extended Abstract)
abstract
In the asynchronous PRAM model, processes communicate by atomically reading and writing shared memory locations.This paper investigates the extent to which asynchronous PRAM permits long-lived, highly concurrent data structures.An implementation of a concurrent object is non-Zrloclcing if some operation will always complete in a finite number of steps, it is wait-free if every operation will complete in a finite number of steps, and it is k-bounded wait-free, for some k > 0, if every operation will complete within k steps.It is known that asynchronous PRAM cannot be used to construct a non-blocking implementation of any object that solves two-process consensus, a class of objects that includes many common data types.It is natural to ask whether the converse holds: does asynchronous PRAM permit non-blocking implementations of any object that does not solve consensus?This papers shows that the answer is no.There is a strict infinite hierarchy among objects that do not solve consensus: there exist objects (1) without non-blocking implementations, (2) with implementations that are non-blocking but not wait-free, (3) with implementations that are wait-free but not bounded wait-free, and (4) with implementations that are K-bounded wait-free but not k-bounded wait-free for all k >0 and some K > k.
Maurice Herlihy
SPAA1
1991 Lock-Free garbage Collection for Multiprocessors
abstract
Garbage collection algorithms for shared-memory multiprocessors typically rely on some form of global synchronization to preserve consistency.Such global synchronization may lead to problems on asynchronous architectures: if one process is halted or delayed, other, non-faulty processes will be unable to progress.By contrast, a storage management algorithm is loclc-j%ee if (in the absence of resource exhaustion) a process that is allocating or collecting memory can be delayed at any point without forcing other processes to block.This paper presents the first algorithm for lock-free garbage collection in a realistic model.The algorithm assumes that processes synchronize by applying read, write, and compare&swap operations to shared memory.This algorithm uses no locks, busy-waiting, or barrier synchronization, it does not assume that processes can observe or modify one another's local variables or registers, and it does not use inter-process interrupts.
Maurice Herlihy, J. Eliot B. Moss
SPAA1
1991 Counting Networks and Multi-Processor Coordination
abstract
Many fundamental multi-processor coordination problems can be expressed as counting problems: processes must cooperate to assign successive values from a given range, such as addresses in memory or destinations on an interconnection network. Conventional solutions to these problems perform poorly because of synchronization bottlenecks and high memory contention. Motivated by observations on the behavior of sorting networks, we o er a completely new approach to solving such problems. We introduce a new class of networks called counting networks, i.e., networks that can be used to count. We give a counting network construction of depth log 2 n using n log 2 n \\gates, " avoiding the sequential bottlenecks inherent to former solutions, and having a provably lower contention factor on its gates. Finally, to show that counting networks are not merely mathematical creatures, we provide experimental evidence that they outperform conventional synchronization techniques under a variety of circumstances.
James Aspnes, Maurice Herlihy, Nir Shavit
STOC2
1991 Hybrid Concurrency Control for Abstract Data Types
Maurice Herlihy, William E. Weihl
J. Comput. Syst. Sci.1
1991 Wait-Free Synchronization
abstract
A wait-free implementation of a concurrent data object is one that guarantees that any process can complete any operation in a finite number of steps, regardless of the execution speeds of the other processes. The problem of constructing a wait-free implementation of one data object from another lies at the heart of much recent work in concurrent algorithms, concurrent data structures, and multiprocessor architectures. First, we introduce a simple and general technique, based on reduction to a concensus protocol, for proving statements of the form, “there is no wait-free implementation of X by Y.” We derive a hierarchy of objects such that no object at one level has a wait-free implementation in terms of objects at lower levels. In particular, we show that atomic read/write registers, which have been the focus of much recent attention, are at the bottom of the hierarchy: thay cannot be used to construct wait-free implementations of many simple and familiar data types. Moreover, classical synchronization primitives such as test&set and fetch&add , while more powerful than read and write , are also computationally weak, as are the standard message-passing primitives. Second, nevertheless, we show that there do exist simple universal objects from which one can construct a wait-free implementation of any sequential object.
Maurice Herlihy
ACM Trans. Program. Lang. Syst.1
1991 Specifying Graceful Degradation
abstract
A description is given of the relaxation lattice method, a new approach to specifying graceful degradation for a large class of programs. A relaxation lattice is a lattice of specifications parameterized by a set of constraints, where the stronger the set of constraints, the more restrictive the specification. While a program is able to satisfy its strongest set of constraints, it satisfies its preferred specification, but if changes to the environment force it to satisfy a weaker set, then it will permit additional weakly consistent computations which are undesired but tolerated. The use of relaxation lattices is illustrated by specifications for programs that tolerate (1) faults, such as site crashes and network partitions, (2) timing anomalies, such as attempting to read a value too soon after it was written, (3) synchronization conflicts, such as choosing the oldest unlocked item from a queue, and (4) security breaches, such as acquiring unauthorized capabilities.>
Maurice Herlihy, Jeannette M. Wing
IEEE Trans. Parallel Distributed Syst.1
1990 Lower Bounds for Wait-Free Computation in Message-Passing Systems
abstract
We explore the time complexity of waitfree implementations of concurrent objects in synchronous, message-passing systems.Our technique is to reduce the (difficult) problem of analyzing all possible wait-free implementations for a particular object to the (more tractable) problem of analyzing a related decision problem.The decision problem we consider is strong renaming, in which an arbitrary subset of m out of n processors choose unique names in the range 1 . ..m,where m is not known in advance.We prove tight log m bounds on the number of rounds of communication needed to solve this renaming problem.As a result, we derive corresponding lower bounds for wait-free implementations of a variety of objects such as stacks, queues, priority queues, and fetch&add registers, as well as for decision problems such as &assignment and order-preserving renaming.Conversely, we show how a particular strong renaming algorithm can be transformed into an O(rn+fc) implementation of an object called an increment register, a substantial improvement over conventional O(n) techniques.Our results suggest the existence of a nontrivial complexity hierarchy for wait-free implementations of concurrent objects.
Maurice Herlihy, Mark R. Tuttle
PODC1
1990 A Methodology for Implementing Highly Concurrent Data Structures
abstract
A concurrent object is a data structure shared by concurrent processes. Conventional techniques for implementing concurrent objects typically rely on critical sections: ensuring that only one process at a time can operate on the object. Nevertheless, critical sections are poorly suited for asynchronous systems: if one process is halted or delayed in a critical section, other, non-faulty processes will be unable to progress. By contrast, a concurrent object implementation is non-blocking if it always guarantees that some process will complete an operation in a finite number of steps, and it is wait-free if it guarantees that each process will complete an operation in a finite number of steps. This paper proposes a new methodology for constructing non-blocking and wait-free implementations of concurrent objects. The object's representation and operations are written as stylized sequential programs, with no explicit synchronization. Each sequential operation is automatically transformed into a non-blocking or wait-free operation using novel synchronization and memory management algorithms. These algorithms are presented for a multiple instruction/multiple data (MIMD) architecture in which n processes communicate by applying read, write, and compare&swap operations to a shared memory.
Maurice Herlihy
PPoPP1
1990 Wait-Free Data Structures in the Asynchronous PRAM Model
abstract
A wad-free implementation of a data object in shared memory is one that guarantees that any process can complete any operation in a finite number of steps, re-gardless of the execution speeds of the other processes. Much of the literature on wait-free synchronization has focused on the construction of atomic registers, which are memory locations that can be read 01 written in-stantaneously by concurrent processes. This model, in which a set of asynchronous processes communicate through shared atomic registers, is sometimes known as asynchronous PRAM. It is known, however, that the asynchronous PRAM model is not sufficiently powerful to construct wait-free implementations of many simple data types such as lists, queues, stacks, test-and-set reg-isters, and others. In this paper, we give an algebraic characterization of a large class of objects that do have wait-free implementations in asynchronous PRAM, as well as a general algorithm for implementing them. 1
James Aspnes, Maurice Herlihy
SPAA2
1990 Concurrency and Availability as Dual Properties of Replicated Atomic Data
abstract
A replicated data object is a typed object that is stored redundantly at multiple locations in a distributed system. Each of the object's operations has a set of quorums, which are sets of sites whose cooperation is needed to execute that operation. A quorum assignment associates each operation with its set of quorums. An operation's quorums determine its availability, and the constraints governing an object's quorum assignments determine the range of availability properties realizable by replication. In this paper, the restrictions on quorum assignment imposed by three kinds of atomicity mechanisms found in the literature are analyzed: (1) serial schemes, in which replication and atomicity are implemented independently at different levels in the system, (2) static schemes, in which the transaction serialization order is predetermined, and (3) hybrid schemes in which the serialization order emerges dynamically. The following results are derived: (1) Although serial schemes place the strongest restrictions on concurrency, they place the weakest restrictions on availability. (2) Although hybrid and static mechanisms place incomparable restrictions on concurrency, hybrid mechanisms place weaker restrictions on availability. (3) Bounding the maximum depth of transaction nesting strengthens restrictions on concurrency for all classes, but weakens restrictions on availability for hybrid schemes only. Concurrency and availability are best considered as dual properties: A complete analysis of an atomicity mechanism should take both into account.
Maurice Herlihy
J. ACM1
1990 Apologizing Versus Asking Permission: Optimistic Concurrency Control for Abstract Data Types
abstract
An optimistic concurrency control technique is one that allows transactions to execute without synchronization, relying on commit-time validation to ensure serializability. Several new optimistic concurrency control techniques for objects in decentralized distributed systems are described here, their correctness and optimality properties are proved, and the circumstances under which each is likely to be useful are characterized. Unlike many methods that classify operations only as Reads or Writes, these techniques systematically exploit type-specific properties of objects to validate more interleavings. Necessary and sufficient validation conditions can be derived directly from an object's data type specification. These techniques are also modular: they can be applied selectively on a per-object (or even per-operation) basis in conjunction with standard pessimistic techniques such as two-phase locking, permitting optimistic methods to be introduced exactly where they will be most effective. These techniques can be used to reduce the algorithmic complexity of achieving high levels of concurrency, since certain scheduling decisions that are NP-complete for pessimistic schedulers can be validated after the fact in time, independent of the level of concurrency. These techniques can also enhance the availability of replicated data, circumventing certain tradeoffs between concurrency and availability imposed by comparable pessimistic techniques.
Maurice Herlihy
ACM Trans. Database Syst.1
1990 Linearizability: A Correctness Condition for Concurrent Objects
abstract
A concurrent object is a data object shared by concurrent processes. Linearizability is a correctness condition for concurrent objects that exploits the semantics of abstract data types. It permits a high degree of concurrency, yet it permits programmers to specify and reason about concurrent objects using known techniques from the sequential domain. Linearizability provides the illusion that each operation applied by concurrent processes takes effect instantaneously at some point between its invocation and its response, implying that the meaning of a concurrent object's operations can be given by pre- and post-conditions. This paper defines linearizability, compares it to other correctness conditions, presents and demonstrates a method for proving the correctness of implementations, and shows how to reason about concurrent objects, given they are linearizable.
Maurice Herlihy, Jeannette M. Wing
ACM Trans. Program. Lang. Syst.1
1989 Specifying Security Constraints with Relaxation Lattices
abstract
A description is given of the relaxation lattice approach to specifying graceful degradation for a large class of systems. The method is applied to the security domain by identifying degraded systems behaviors with those that can result from security violations such as a user of one security class obtaining access rights associated with those of a higher class. The method can be used in two ways: (1) as a descriptive technique for specifying the behavior of existing systems in which breaches of security may inadvertently or unavoidably occur; and (2) as a formal design technique for specifying a range of behaviors, from ideal to undesired, of systems to be implemented.>
Maurice Herlihy, Jeannette M. Wing
CSFW1
1989 Timestamp-Based Orphan Elimination
abstract
An orphan in a distributed transaction system is an activity executing on behalf of an aborted transaction. A method is proposed for managing orphans created by crashes and by aborts that ensures that orphans are detected and eliminated in a timely manner, and also prevents them from observing inconsistent states. The method uses timestamps generated at each site. Transactions are assigned timeouts at different sites. These timeouts are related by a global invariant, and they may be adjusted by simple two-phase protocols. The principal advantage of this method is simplicity: it is easy to understand, and to implement, and it can be proved correct. An 'eager' version of this method uses approximately synchronized real-time clocks to ensure that orphans are eliminated within a fixed duration, and a 'lazy' version uses logical clocks to ensure that orphans are eventually eliminated as information propagates through the system. The method is fail-safe: unsynchronized clocks and lost messages may affect performance, but they cannot produce inconsistencies or protect orphans from eventual elimination. Although the method is informally described in terms of two-phase locking, the formal argument shows it is applicable to any concurrency control method that preserved atomicity.>
Maurice Herlihy, Martin S. McKendry
IEEE Trans. Software Eng.1
1988 Impossibility and Universality Results for Wait-Free Synchronization
abstract
A Hjait-free implementation of a concurrent data object is one that guarantees that any process can complete any operation in a fmitt number of steps, regardless of the execution speeds of the other processes.'Rte problem of constructing a waitfree implementation of one data object from another lies at the heart of much recent work in atomic read/write registers, multiprocessor architectures, and concurrent data structures.In the first part of this paper, we introduce a simple and general technique, based on reduction to a consensus protocol, for proving statements of the form "there is no wait-free implementation of X by Y.'* We derive a hierarchy of objects such that no object at one level has a wait-free implementation in terms of objects at lower levels.In particular, we show that atomic read/write registers, which have been the focus of much recent attention, are at tbe bottom of the hierarchy: they cannot be used to construct wait-free implementations of many simple and familiar data types.Moreover, classical synchronization primitives such as test-and-set and fetch-and-add, while more powerful than read and write, are also computationally weak, as are the standard message-passing primitives.Nevertheless, in the second part of the paper, we show that there do exist simple universal objects from which one can construct a wait-free implementation of any sequential object.
Maurice Herlihy
PODC1
1988 Hybrid Concurrency Control for Abstract Data Types
abstract
We define a new locking protocol that permits more concurrency than existing commutativity-based protocols. The protocol uses timestamps generated when transactions commit to provide more information about the serialization order of transactions, and hence to weaken the constraints on conflicts. In addition, the protocol permits operations to be both partial and non-deterministic, and it permits results of operations to be used in choosing locks. The protocol exploits type-specific properties of objects, necessary and sufficient constraints on lock conflicts are defined directly from a data type specification. We give a complete formal description of the protocol, encompassing both concurrency control and recovery, and prove that the protocol satisfies hybrid atomicity, a local atomicity property that combines aspects of static and dynamic atomic protocols. We also show that the protocol is optimal in the sense that no hybrid atomic locking scheme can permit more concurrency.
Maurice Herlihy, William E. Weihl
PODS1
1987 How to Make Replicated Data Secure
Maurice Herlihy, J. D. Tygar
CRYPTO1
1987 Specifying Graceful Degradation in Distributed Systems
abstract
Distributed programs must often display graceful degradation, reacting adaptively to changes in the environment. Under ideal circumstances, the program’s behavior satisfies a set of application-dependent constraints. In the presence of failures, timing anomalies, or synchronization conflicts, however, certain constraints may become difficult or impossible to Satisfy, and the application designer may choose to relax them as long as the resulting behavior is sufficiently “close ” to the preferred behavior. This paper describes the relaxation lattice method, a new approach to specifying graceful degradation for a large class of highly-concurrent fault-tolerant distributed programs. A relaxation lattice is a lattice of specifications parameterized by a set of constraints, where the stronger the set of constraints, the more restrictive the specification. While a program is able to satisfy its strongest set of constraints, it satisfies its preferred specification, but if changes to the environment force it to satisfy a weaker set, then it will permit additional “weakly consistent ” computations which are undesired but tolerated. The use of relaxation lattices is illustrated by specifications for programs that tolerate (1) faults, such as site crashes and network partitions, (2) timing anomalies, such as attempting to read a value “too soon ” after it was written, and (3) synchronization conflicts, such as choosing the oldest “unlocked ” item from a queue. 1. Overview Distributed programs typically display more complex behavior than their single-site counterparts because they mUSt perform efficientfy and correctly in the presence of concurrency and failures. brten, such programs must display graceful degradation, reacting adaptively to changes in the environment. Under ideal circumstances, the program’s behavior satisfies a set of application-dependent preferred constraints. Each constraint typically preserves a certain level of consistency, and
Maurice Herlihy, Jeannette M. Wing
PODC1
1987 Axioms for Concurrent Objects
abstract
Specification and verification techniques for abstract data types that have been successful for sequential programs can be extended in a natural way to provide the same benefits for concurrent programs. We propose an approach to specifying and verifying concurrent objects based on a novel correctness condition, which we call “linearizability.” Linearizability provides the illusion that each operation takes effect instantaneously at some point between its invocation and its response, implying that the meaning of a concurrent object's operations can still be given by pre- and post-conditions. In this paper, we will define and discuss linearizability, and then give examples of how to reason about concurrent objects and verify their implementations based on their (sequential) axiomatic specifications.
Maurice Herlihy, Jeannette M. Wing
POPL1
1987 Extending Multiversion Time-Stamping Protocols to Exploit Type Information
abstract
Atomic transactions are a widely accepted approach to implementing and reasoning about fault-tolerant distributed programs. This paper shows how multiversion time-stamping protocols for atomicity can be extended to induce fewer delays and restarts by exploiting semantic information about objects such as queues, directories, or counters. This technique relies on static preanalysis of conflicts between operations, and incurs no additioiwal runtime overhead. This technique is deadlock-free, and it is applicable to objects of arbitrary type.
Maurice Herlihy
IEEE Trans. Computers1
1987 Concurrency versus Availability: Atomic Mechanisms for Replicated Data
abstract
A replicated object is a typed data object that is stored redundantly at multiple locations to enhance availability. Most techniques for managing replicated data have a two-level structure: At the higher level, a replica-control protocol reconstructs the object's state from its distributed components, and at the lower level, a standard concurrency-control protocol synchronizes accesses to the individual components. This paper explores an alternative approach to managing replicated data by presenting two replication methods in which concurrency control and replica management are handled by a single integrated protocol. These integrated protocols permit more concurrency than independent protocols, and they allow availability and concurrency to be traded off: Constraints on concurrency may be relaxed if constraints on availability are tightened, and vice versa. In general, constraints on concurrency and availability cannot be minimized simultaneously.
Maurice Herlihy
ACM Trans. Comput. Syst.1
1987 Dynamic Quorum Adjustment for Partitioned Data
abstract
A partition occurs when functioning sites in a distributed system are unable to communicate. This paper introduces a new method for managing replicated data objects in the presence of partitions. Each operation provided by a replicated object has a set. of quorums, which are sets of sites whose cooperation suffices to execute the operation. The method permits an object's quorums to be adjusted dynamically in response to failures and recoveries. A transaction that is unable to progress using one set of quorums may switch to another, more favorable set, and transactions in different. Partitions may progress using different sets. This method has three novel aspects: (1) it supports a wider range of quorums than earlier proposals, (2) it, scales up effectively to large systems because quorum adjustments do not require global reconfiguration, and (3) it, systematically exploits the semantics of typed objects to support more flexible quorum adjustment.
Maurice Herlihy
ACM Trans. Database Syst.1
1986 Optimistic Concurrency Control for Abstract Data Types
abstract
A concurrency control technique is optimistic if it allows transactions to execute without synchronization, relying on commit-time validation to ensure serializability.This paper describes several new optimistic concurrency control techniques for objects in distributed systems, proves their correctness and optimality properties, and characterizes the circumstances under which each is likely to be useful.These techniques have the following novel aspects.First, unlike many methods that classify operations only as reads or writes, these techniques systematically exploit type-specific properties of objects to validate more interleavings.Necessary and sufficient validation conditions are derived directly from an object's data type specification.Second, these techniques are modular: they can be applied selectively on a per-object (or even per-operation) basis in conjunction with standard pessimistic techniques such as two-phase locking, permitting optimistic methods to be introduced exactly where they will be most effective.Third, when integrated with quorum-consensus replication, these techniques circumvent certain tradeoffs between concurrency and availability imposed by comparable pessimistic techniques.Finally, the accuracy and efficiency of validation are further enhanced by some technical improvements: distributed validation is performed as a sideeffect of the commit protocol, and validation takes into account the results of operations, accepting certain interleavings that would have produced delays in comparable pessimistic schemes.
Maurice Herlihy
PODC1
1986 Limitations of Synchronous Communication with Static Process Structure in Languages for Distributed Computing
abstract
Modules in a distributed program are active, communicating entities. A language for distributed programs must choose a set of communication primitives and a structure for processes. This paper examines one possible choice: synchronous communication primitives (such as rendez-vous or remote procedure call) in combination with modules that encompass a fixed number of processes (such as Ada tasks or UNIX processes). An analysis of the concurrency requirements of distributed programs suggests that this combination imposes complex and indirect solutions to common problems and thus is poorly suited for applications such as distributed programs in which concurrency is important. To provide adequate expressive power, a language for distributed programs should abandon either synchronous communication primitives or the static process structure.
Barbara Liskov, Maurice Herlihy, Lucy Gilbert
POPL2
1986 A Quorum-Consensus Replication Method for Abstract Data Types
abstract
Replication can enhance the availability of data in distributed systems. This paper introduces a new method for managing replicated data. Unlike many methods that support replication only for uninterpreted files, this method systematically exploits type-specific properties of objects such as sets, queues, or directories to provide more effective replication. Each operation requires the cooperation of a certain number of sites for its successful completion. A quorum for an operation is any such set of sites. Necessary and sufficient constraints on quorum intersections are derived from an analysis of the data type's algebraic structure. A reconfiguration method is proposed that permits quorums to be changed dynamically. By taking advantage of type-specific properties in a general and systematic way, this method can realize a wider range of availability properties and more flexible reconfiguration than comparable replication methods.
Maurice Herlihy
ACM Trans. Comput. Syst.1
1985 Comparing How Atomicity Mechanisms Support Replication
abstract
Most pessimistic mechanisms for implementing atomicity in distributed systems fall into three broad categories: twophase locking schemes, timestamping schemes, and hybrid schemes employing both locking and timestamps.This paper proposes a new criterion for evaluating these mechanisms: the constraints they impose on the availability of replicated data.A replicated data item is a typed object that provides a set of operations to its clients.A quorum for an operation is any set of sites whose co.operation suffices to execute that operation, and a quorum assignment associates a set of quorums with each operation.Constraints on quorum assignment determine the range of availability properties realizc, ole by a replication method, This peper compares the constraints on quorum assignment necessary to maximize concurrency under generalized locking, timestamping, and hybrid concurrency control mechanisms.This comparison shows that hybrid schemes impose ~eaker constraints on availability than timestamping schemes, and locking schemes impose constraints incompar,able to those of the others.Because hybrid schemes permit more concurrency than locking schemes, these resets sugge.,~tthat hybrid schemes are preferable to the others for ensuring atomicity in highly available and highly conc~urrent distributed systems.
Maurice Herlihy
PODC1
1982 A Value Transmission Method for Abstract Data Types
abstract
data types have proved to be a useful technique for structuring systems.In large systems it is sometimes useful to have different regions of the system use different representations for the abstract data values.A technique is described for communicating abstract values between such regions.The method was developed for use in constructing distributed systems, where the regions exist at different computers and the values are communicated over a network.The method defines a call-by-value semantics; it is also useful in nondistributed systems wherever call by value is the desired semantics.An important example of such a use is a repository, such as a file system, for storing longlived data.
Maurice Herlihy, Barbara Liskov
ACM Trans. Program. Lang. Syst.1