Optimistic recovery in distributed systems
ACM Transactions on Computer Systems (TOCS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Optimistic parallelization of communicating sequential processes
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Hermes: a language for distributed computing
Hermes: a language for distributed computing
Optimistic algorithms for distributed transparent process replication
Optimistic algorithms for distributed transparent process replication
Employing replication to achieve high availability and efficiency in distributed systems
Employing replication to achieve high availability and efficiency in distributed systems
On optimistic methods for concurrency control
ACM Transactions on Database Systems (TODS)
Efficiently Maintaining Availability in the Presence of Partitionings in Distributed Systems
Proceedings of the Seventh International Conference on Data Engineering
Weighted voting for replicated data
SOSP '79 Proceedings of the seventh ACM symposium on Operating systems principles
The failure and recovery problem for replicated databases
PODC '83 Proceedings of the second annual ACM symposium on Principles of distributed computing
Formal semantics for expressing optimism: the meaning of HOPE
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2
Hi-index | 0.00 |
The growing imbalance between network latency and throughput is causing nodes in distributed systems to appear to be moving farther apart. Many distributed systems are turning to replication as a mechanism to make resources appear closer. However, maintaining one-copy consistency in a system containing replicated elements has proven difficult. In particular, the checks required to make consistent updates can take as long or longer than the time that would be taken to update a single remote copy.Various optimistic concurrency control algorithms have been created to hide this latency. These systems hide latency by optimistically assuming that no conflict exists and performing the conflict check in parallel with the update. If the assumption proves correct, time has been saved. If the assumption proves incorrect, the update must be rolled back, along with any other computations that have become dependent on the results of this speculative update.Concurrency control algorithms are complex, and optimistic concurrency control is even more so. Optimistic algorithms in general tend to be complicated due to the need to perform dependency tracking and preserve sufficient state to be able to un-do speculative computations performed under an optimistic assumption. This paper describes a set of programming language constructs for the expression of optimistic algorithms known as HOPE. We present a description of the HOPE constructs, along with the programming language properties necessary to embed HOPE in a language. We then express several replication schemes from the literature in HOPE. The relative conceptual simplicity of the HOPE versions argues for the utility of HOPE in the construction of optimistic algorithms, particularly optimistic replication.