Optimistic replication in HOPE

  • Authors:
  • Crispin Cowan

  • Affiliations:
  • University of Western Ontario

  • Venue:
  • CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2
  • Year:
  • 1992

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.