VLDB 2026 Research / reviewers in the wild / expert
Maurice Herlihy
dblp:h/MauriceHerlihy
· DBLP profile ↗
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
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Byzantine Approximate Agreement Cross-chain Task
Maurice Herlihy, Maria Potop-Butucaru, Liuba Shrira |
SIROCCO | 1 |
| 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 |
SIROCCO | 2 |
| 2025 | Brief Announcement: Cross-Chain Consensus
Sucharita Jayanti, Maurice Herlihy |
SSS | 2 |
| 2024 | Byzantine Reliable Broadcast with One Trusted Monotonic Counter
Yackolley Amoussou-Guenou, Lionel Beltrando, Maurice Herlihy, Maria Potop-Butucaru |
SSS | 3 |
| 2024 | Invited Paper: The Smart Contract Model
Yackolley Amoussou-Guenou, Maurice Herlihy, Maria Potop-Butucaru, Sergio Rajsbaum |
SSS | 2 |
| 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 ProtocolsabstractTransactions 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 |
ICDCS | 7 |
| 2022 | HybriDS: Cache-Conscious Concurrent Data Structures for Near-Memory Processing ArchitecturesabstractIn 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 |
SPAA | 4 |
| 2022 | Flexible Scheduling of Transactional Memory on Trees
Costas Busch, Bogdan S. Chlebus, Maurice Herlihy, Miroslav Popovic, Pavan Poudel, Gokarna Sharma |
SSS | 3 |
| 2022 | Invited Paper: Cross-Chain State Machine Replication
Yingjie Xue, Maurice Herlihy |
SSS | 2 |
| 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 commerceabstractAbstract 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 makersabstractAutomated 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 |
AFT | 2 |
| 2021 | Brief Announcement: Linearizability: A TypoabstractLinearizability 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 |
PODC | 2 |
| 2021 | Hedging Against Sore Loser Attacks in Cross-Chain TransactionsabstractA 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 |
PODC | 2 |
| 2021 | VBR: Version Based ReclamationabstractSafe 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 |
SPAA | 2 |
| 2021 | Failure is (literally) an Option: Atomic Commitment vs Optionality in Decentralized Finance
Daniel Engel, Maurice Herlihy, Yingjie Xue |
SSS | 2 |
| 2021 | VBR: Version Based ReclamationabstractSafe 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 |
DISC | 2 |
| 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 NetworksabstractThe 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 |
HPDC | 6 |
| 2020 | Dynamic Scheduling in Distributed Transactional MemoryabstractWe 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 |
IPDPS | 2 |
| 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 |
APLAS | 4 |
| 2019 | Concurrent Data Structures with Near-Data-Processing: an Architecture-Aware ImplementationabstractRecent 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 |
SPAA | 4 |
| 2019 | Encrypted Databases for Differential PrivacyabstractAbstract 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 CommerceabstractModern 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 RenamingabstractThe $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 |
PODC | 1 |
| 2018 | A persistent lock-free queue for non-volatile memoryabstractNon-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 |
PPoPP | 2 |
| 2018 | Clairvoyant State Machine Replications
Rida A. Bazzi, Maurice Herlihy |
SSS | 2 |
| 2018 | Load Balanced Distributed Directories
Shishir Rai, Gokarna Sharma, Costas Busch, Maurice Herlihy |
SSS | 4 |
| 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 MemoryabstractToday’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 MemoryabstractWe 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 |
OPODIS | 2 |
| 2017 | Brief Announcement: Proust: A Design Space for Highly-Concurrent Transactional Data StructuresabstractMost 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 |
PODC | 3 |
| 2017 | Adding Concurrency to Smart ContractsabstractModern 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 |
PODC | 3 |
| 2017 | Blockchains and the Future of Distributed ComputingabstractThere 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 |
PODC | 1 |
| 2017 | POSTER: State Teleportation via Hardware Transactional MemoryabstractState 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 |
PPoPP | 2 |
| 2017 | Fast Scheduling in Distributed Transactional MemoryabstractWe 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 |
SPAA | 2 |
| 2017 | Concurrent Data Structures for Near-Memory ComputingabstractThe 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 |
SPAA | 3 |
| 2017 | Brief Announcement: A Persistent Lock-Free Queue for Non-Volatile MemoryabstractNon-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 |
DISC | 2 |
| 2017 | Tight Bounds for Connectivity and Set Agreement in Byzantine Synchronous SystemsabstractIn 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 |
DISC | 2 |
| 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 EfficiencyabstractScaling 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 systemsabstractWe 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 |
CASES | 5 |
| 2016 | Fast non-intrusive memory reclamation for highly-concurrent data structuresabstractCurrent 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 |
ISMM | 2 |
| 2016 | Blockchains and the Logic of Accountability: Keynote Addressabstractresearch-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 |
LICS | 1 |
| 2016 | Fast and Robust Memory Reclamation for Concurrent Data StructuresabstractIn 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 |
SPAA | 3 |
| 2016 | Asynchronous Computability Theorems for t-Resilient Systems
Vikram Saraph, Maurice Herlihy, Eli Gafni |
DISC | 2 |
| 2015 | A Practical Transactional Memory Interface
Shahar Timnat, Maurice Herlihy, Erez Petrank |
Euro-Par | 2 |
| 2015 | Playing with Fire: Transactional Memory Revisited for Error-Resilient and Energy-Efficient MPSoC ExecutionabstractAs 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 VLSI | 5 |
| 2015 | The Relative Power of Composite Loop Agreement TasksabstractLoop 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 |
OPODIS | 2 |
| 2015 | Impossibility Results for Distributed Transactional MemoryabstractWe 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 |
PODC | 2 |
| 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 SystemsabstractEmbedded 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 memoryabstractThe 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 |
PACT | 5 |
| 2014 | Warp-aware trace scheduling for GPUsabstractGPU 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 |
PACT | 4 |
| 2014 | Composable Transactional Objects: A Position Paper
Maurice Herlihy, Eric Koskinen |
ESOP | 1 |
| 2014 | StackTrack: an automated transactional approach to concurrent memory reclamationabstractDynamic 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 |
EuroSys | 3 |
| 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 |
LATIN | 1 |
| 2014 | The future(s) of shared data structuresabstractThis 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 |
PODC | 2 |
| 2014 | Well-structured futures and cache localityabstractIn 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 |
PPoPP | 1 |
| 2014 | Fun with hardware transactional memoryabstractLeading 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 Conference | 1 |
| 2014 | Distributed computability in Byzantine asynchronous systemsabstractIn 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 |
STOC | 3 |
| 2014 | Scheduling Multiple Objects in Distributed Transactional Memory
Costas Busch, Maurice Herlihy, Miroslav Popovic, Gokarna Sharma |
DISC | 2 |
| 2014 | The Adaptive Priority Queue with Elimination and Combining
Irina Calciu, Hammurabi Mendes, Maurice Herlihy |
DISC | 3 |
| 2014 | Approximate Local Sums and Their Applications in Radio Networks
Maurice Herlihy |
DISC | 2 |
| 2014 | A Practical Transactional Memory Interface
Shahar Timnat, Maurice Herlihy, Erez Petrank |
DISC | 2 |
| 2014 | An Equivariance Theorem with Applications to Renaming
Armando Castañeda, Maurice Herlihy, Sergio Rajsbaum |
Algorithmica | 2 |
| 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 |
OPODIS | 4 |
| 2013 | Upper bound on the complexity of solving hard renamingabstractThe 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 |
PODC | 3 |
| 2013 | Multidimensional approximate agreement in Byzantine asynchronous systemsabstractThe 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 |
STOC | 2 |
| 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 memoryabstractThis 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 |
PACT | 2 |
| 2012 | An Equivariance Theorem with Applications to Renaming
Armando Castañeda, Maurice Herlihy, Sergio Rajsbaum |
LATIN | 2 |
| 2012 | Simulations and reductions for colorless tasksabstractIf 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 |
PODC | 1 |
| 2011 | On the Nature of Progress
Maurice Herlihy, Nir Shavit |
OPODIS | 1 |
| 2011 | On the power of hardware transactional memory to simplify memory managementabstractDynamic 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 |
PODC | 2 |
| 2011 | Transforming worst-case optimal solutions for simultaneous tasks into all-case optimal solutionsabstractDecision 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 |
PODC | 1 |
| 2010 | Applications of Shellable Complexes to Distributed Computing - (Invited Talk)
Maurice Herlihy |
CONCUR | 1 |
| 2010 | Energy and Throughput Efficient Transactional Memory for Embedded Multicore Systems
Cesare Ferri, Samantha Wood 0001, Tali Moreshet, R. Iris Bahar, Maurice Herlihy |
HiPEAC | 5 |
| 2010 | The topology of shared-memory adversariesabstractFailure 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 |
PODC | 1 |
| 2010 | Coarse-grained transactionsabstractTraditional 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 |
POPL | 3 |
| 2010 | Concurrent Computing and Shellable Complexes
Maurice Herlihy, Sergio Rajsbaum |
DISC | 1 |
| 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 ProgramsabstractTransactional 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 |
PACT | 1 |
| 2009 | Enhanced Fault-Tolerance through Byzantine Failure Detection
Rida A. Bazzi, Maurice Herlihy |
OPODIS | 2 |
| 2009 | Transactional Memory Today: A Status Report
Maurice Herlihy |
OPODIS | 1 |
| 2009 | Brief announcement: concurrent non-commutative boosted transactionsabstractTransactional boosting is a methodology which improves transaction performance by using data-structure commutativity and abstract locks for synchronization. Eric Koskinen, Maurice Herlihy |
PODC | 2 |
| 2009 | Committing conflicting transactions in an STMabstractDependence-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 |
PPoPP | 3 |
| 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 architecturesabstractWe 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 VLSI | 5 |
| 2008 | The future of distributed computing: renaissance or reformation?abstractIn 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 |
PODC | 1 |
| 2008 | Transactional boosting: a methodology for highly-concurrent transactional objectsabstractWe 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 |
PPoPP | 1 |
| 2008 | Checkpoints and continuations instead of nested transactionsabstractWe 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 |
SPAA | 2 |
| 2008 | Dreadlocks: efficient deadlock detectionabstractWe 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 |
SPAA | 2 |
| 2008 | Optimizing Threshold Protocols in Adversarial Structures
Maurice Herlihy, Flavio Paiva Junqueira, Keith Marzullo, Lucia Draque Penso |
DISC | 1 |
| 2008 | Hopscotch Hashing
Maurice Herlihy, Nir Shavit, Moran Tzafrir |
DISC | 1 |
| 2007 | The Multicore Revolution
Maurice Herlihy |
FSTTCS | 1 |
| 2007 | On the weakest failure detector everabstractMany 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 |
PODC | 2 |
| 2007 | Potential show-stoppers for transactional synchronizationabstractNo abstract available. Ali-Reza Adl-Tabatabai, David Dice, Maurice Herlihy, Nir Shavit, Christoforos E. Kozyrakis, Christoph von Praun, Michael L. Scott |
PPoPP | 3 |
| 2007 | A Simple Optimistic Skiplist Algorithm
Maurice Herlihy, Yossi Lev, Victor Luchangco, Nir Shavit |
SIROCCO | 1 |
| 2007 | Distributed transactional memory for metric-space networks
Maurice Herlihy |
Distributed Comput. | 1 |
| 2006 | A flexible framework for implementing software transactional memoryabstractWe 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 |
OOPSLA | 1 |
| 2006 | A Topological Treatment of Early-Deciding Set-Agreement
Rachid Guerraoui, Maurice Herlihy, Bastian Pochon |
OPODIS | 2 |
| 2006 | Towards a theory of transactional contention managersabstractNo abstract available. Rachid Guerraoui, Maurice Herlihy, Bastian Pochon |
PODC | 2 |
| 2006 | The art of multiprocessor programmingabstractComputer 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 |
PODC | 1 |
| 2006 | Proving correctness of highly-concurrent linearisable objectsabstractWe 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 |
PPoPP | 2 |
| 2006 | Energy implications of multiprocessor synchronizationabstractNo abstract available. Tali Moreshet, R. Iris Bahar, Maurice Herlihy |
SPAA | 3 |
| 2006 | Subconsensus Tasks: Renaming Is Weaker Than Set Agreement
Eli Gafni, Sergio Rajsbaum, Maurice Herlihy |
DISC | 3 |
| 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 QueuingabstractDistributed 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 ProtectionabstractSoftware-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 |
ICDCS | 2 |
| 2005 | Virtualizing Transactional MemoryabstractWriting 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 |
ISCA | 2 |
| 2005 | Energy reduction in multiprocessor systems using transactional memoryabstractThe 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 |
ISLPED | 3 |
| 2005 | Optimal Randomized Fair Exchange with Secret Shared Coins
Felix C. Freiling, Maurice Herlihy, Lucia Draque Penso |
OPODIS | 2 |
| 2005 | A Lazy Concurrent List-Based Set Algorithm
Steve Heller, Maurice Herlihy, Victor Luchangco, Mark Moir, William N. Scherer III, Nir Shavit |
OPODIS | 2 |
| 2005 | The transactional manifesto: software engineering and non-blocking synchronizationabstractComputer 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 |
PLDI | 1 |
| 2005 | Toward a theory of transactional contention managersabstractIn 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 |
PODC | 2 |
| 2005 | Composable memory transactionsabstractWriting 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 |
PPoPP | 4 |
| 2005 | Polymorphic Contention Management
Rachid Guerraoui, Maurice Herlihy, Bastian Pochon |
DISC | 2 |
| 2005 | Distributed Transactional Memory for Metric-Space Networks
Maurice Herlihy |
DISC | 1 |
| 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 structuresabstractConventional 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 NetworksabstractSummary 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 |
IPDPS | 1 |
| 2004 | Bringing practical lock-free synchronization to 64-bit applicationsabstractMany 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 |
PODC | 2 |
| 2004 | Read-modify-write networks
Panagiota Fatourou, Maurice Herlihy |
Distributed Comput. | 2 |
| 2003 | Obstruction-Free Synchronization: Double-Ended Queues as an ExampleabstractWe 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 |
ICDCS | 1 |
| 2003 | Self-Stabilizing Smoothing and Counting Maurice Herlihy, Srikanta TirthapuraabstractA 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 |
ICDCS | 1 |
| 2003 | Software transactional memory for dynamic-sized data structuresabstractWe 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 |
PODC | 1 |
| 2003 | tight bounds for k-set agreement with limited-scope failure detectorsabstractNo abstract available. Maurice Herlihy, Lucia Draque Penso |
PODC | 1 |
| 2003 | Tight Bounds for k-Set Agreement with Limited-Scope Failure Detectors
Maurice Herlihy, Lucia Draque Penso |
DISC | 1 |
| 2003 | A classification of wait-free loop agreement tasks
Maurice Herlihy, Sergio Rajsbaum |
Theor. Comput. Sci. | 1 |
| 2002 | Dynamic-sized lock-free data structuresabstractWe 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 |
PODC | 1 |
| 2002 | The Repeat Offender Problem: A Mechanism for Supporting Dynamic-Sized, Lock-Free Data Structures
Maurice Herlihy, Victor Luchangco, Mark Moir |
DISC | 1 |
| 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 networksabstractAn 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 |
PODC | 2 |
| 2001 | On beyond registers: wait-free readable objectsabstractLeslie 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 |
PODC | 1 |
| 2001 | Competitive concurrent distributed queuingabstractDistributed 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 |
PODC | 1 |
| 2001 | Routing without flow controlabstractWe 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 |
SPAA | 2 |
| 2001 | Adding Networks
Panagiota Fatourou, Maurice Herlihy |
DISC | 2 |
| 2001 | A New Synchronous Lower Bound for Set Agreement
Maurice Herlihy, Sergio Rajsbaum, Mark R. Tuttle |
DISC | 1 |
| 2001 | Self Stabilizing Distributed Queuing
Maurice Herlihy, Srikanta Tirthapura |
DISC | 1 |
| 2000 | A Combinatorial Characterization of Properties Preserved by Antitokens
Costas Busch, Neophytos Demetriou, Maurice Herlihy, Marios Mavronicolas |
Euro-Par | 3 |
| 2000 | On the Existence of Booster TypesabstractA 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 |
FOCS | 1 |
| 2000 | Randomized greedy hot-potato routing
Costas Busch, Maurice Herlihy, Roger Wattenhofer |
SODA | 2 |
| 2000 | Hard-Potato routingabstractWe 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 |
STOC | 2 |
| 2000 | A tale of two directories: implementing distributed shared objects in JavaabstractA 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 agreementabstractWe 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. ACM | 2 |
| 2000 | Algebraic spans
Maurice Herlihy, Sergio Rajsbaum |
Math. Struct. Comput. Sci. | 1 |
| 1999 | New Perspectives in Distributed Computing
Maurice Herlihy, Sergio Rajsbaum |
MFCS | 1 |
| 1999 | Threshold Counters with Increments and Decrements
Costas Busch, Neophytos Demetriou, Maurice Herlihy, Marios Mavronicolas |
SIROCCO | 3 |
| 1999 | Sorting and Counting Networks of Small Depth and Arbitrary WidthabstractWe 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 |
SPAA | 2 |
| 1999 | Supporting Increment and Decrement Operations in Balancing Networks
William Aiello, Costas Busch, Maurice Herlihy, Marios Mavronicolas, Nir Shavit, Dan Touitou |
STACS | 3 |
| 1999 | The topological structure of asynchronous computabilityabstractWe 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. ACM | 1 |
| 1999 | Time-Lapse SnapshotsabstractA 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 ModelsabstractWe 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 |
PODC | 1 |
| 1998 | The Arrow Distributed Directory Protocol
Michael J. Demmer, Maurice Herlihy |
DISC | 2 |
| 1998 | A Wait-Free Classification of Loop Agreement Tasks
Maurice Herlihy, Sergio Rajsbaum |
DISC | 1 |
| 1998 | On the Space Complexity of Randomized SynchronizationabstractThe “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. ACM | 2 |
| 1997 | The Decidability of Distributed Decision Tasks (Extended Abstract)abstractA 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 |
STOC | 1 |
| 1997 | Contention in shared memory algorithmsabstractMost 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. ACM | 2 |
| 1996 | On the Decidability of Distributed Decision Tasks (Brief Announcement)abstractNo abstract available. Maurice Herlihy, Sergio Rajsbaum |
PODC | 1 |
| 1996 | Linearizable Counting Networks
Maurice Herlihy, Nir Shavit, Orli Waarts |
Distributed Comput. | 1 |
| 1995 | Algebraic Spans (Preliminary Version)abstractTopological 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 |
PODC | 1 |
| 1995 | Atomic Snapshots Using Lattice Agreement
Hagit Attiya, Maurice Herlihy, Ophir Rachman |
Distributed Comput. | 2 |
| 1995 | Scalable Concurrent CountingabstractThe 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)abstractArticle 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 |
PODC | 1 |
| 1994 | A simple constructive computability theorem for wait-free computationabstractmemory multiprocessors, processes Maurice Herlihy, Nir Shavit |
STOC | 1 |
| 1994 | Counting NetworksabstractMany 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. ACM | 2 |
| 1993 | A Tight Lower Bound for k-Set AgreementabstractWe 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 |
FOCS | 2 |
| 1993 | Transactional Memory: Architectural Support for Lock-Free Data StructuresabstractA 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 |
ISCA | 1 |
| 1993 | Bounded Round NumbersabstractThis 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 |
PODC | 2 |
| 1993 | On the Space Complexity of Randomized SynchronizationabstractThe "wait-free hierarchy" defines a deterministic computability separation among multiprocessor syn- Faith Ellen, Maurice Herlihy, Nir Shavit |
PODC | 2 |
| 1993 | Contention in shared memory algorithmsabstractAbstract. 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 |
STOC | 2 |
| 1993 | The asynchronous computability theorem for t-resilient tasksabstractWe 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 |
STOC | 1 |
| 1993 | A Methodology for Implementing Highly Concurrent ObjectsabstractA 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 MultiprocessorsabstractArticle 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 |
SPAA | 1 |
| 1992 | On the Correctness of Orphan Management AlgorithmsabstractIn 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. ACM | 1 |
| 1992 | Lock-Free Garbage Collection for MultiprocessorsabstractGarbage 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 CountingabstractThe 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 |
FOCS | 1 |
| 1991 | Randomized Wait-Free Concurrent Objects (Extended Abstract)abstractA 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 |
PODC | 1 |
| 1991 | Impossibility Results for Asynchronous PRAM (Extended Abstract)abstractIn 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 |
SPAA | 1 |
| 1991 | Lock-Free garbage Collection for MultiprocessorsabstractGarbage 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 |
SPAA | 1 |
| 1991 | Counting Networks and Multi-Processor CoordinationabstractMany 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 |
STOC | 2 |
| 1991 | Hybrid Concurrency Control for Abstract Data Types
Maurice Herlihy, William E. Weihl |
J. Comput. Syst. Sci. | 1 |
| 1991 | Wait-Free SynchronizationabstractA 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 DegradationabstractA 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 SystemsabstractWe 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 |
PODC | 1 |
| 1990 | A Methodology for Implementing Highly Concurrent Data StructuresabstractA 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 |
PPoPP | 1 |
| 1990 | Wait-Free Data Structures in the Asynchronous PRAM ModelabstractA 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 |
SPAA | 2 |
| 1990 | Concurrency and Availability as Dual Properties of Replicated Atomic DataabstractA 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. ACM | 1 |
| 1990 | Apologizing Versus Asking Permission: Optimistic Concurrency Control for Abstract Data TypesabstractAn 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 ObjectsabstractA 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 LatticesabstractA 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 |
CSFW | 1 |
| 1989 | Timestamp-Based Orphan EliminationabstractAn 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 SynchronizationabstractA 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 |
PODC | 1 |
| 1988 | Hybrid Concurrency Control for Abstract Data TypesabstractWe 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 |
PODS | 1 |
| 1987 | How to Make Replicated Data Secure
Maurice Herlihy, J. D. Tygar |
CRYPTO | 1 |
| 1987 | Specifying Graceful Degradation in Distributed SystemsabstractDistributed 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 |
PODC | 1 |
| 1987 | Axioms for Concurrent ObjectsabstractSpecification 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 |
POPL | 1 |
| 1987 | Extending Multiversion Time-Stamping Protocols to Exploit Type InformationabstractAtomic 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. Computers | 1 |
| 1987 | Concurrency versus Availability: Atomic Mechanisms for Replicated DataabstractA 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 DataabstractA 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 TypesabstractA 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 |
PODC | 1 |
| 1986 | Limitations of Synchronous Communication with Static Process Structure in Languages for Distributed ComputingabstractModules 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 |
POPL | 2 |
| 1986 | A Quorum-Consensus Replication Method for Abstract Data TypesabstractReplication 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 ReplicationabstractMost 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 |
PODC | 1 |
| 1982 | A Value Transmission Method for Abstract Data Typesabstractdata 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 |