Skip to main content
Log in

A theorem on atomicity in distributed algorithms

  • Published:
Distributed Computing Aims and scope Submit manuscript

Abstract

Reasoning about a distributed algorithm is simplified if we can ignore the time needed to send and deliver messages and can instead pretend that a process sends a collection of messages as a single atomic action, with the messages delivered instantaneously as part of the action. A theorem is derived that proves the validity of such reasoning for a large class of algorithms. It generalizes and corrects a well-known folk theorem about when an operation in a multiprocess program can be considered atomic.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

Abbreviations

A :

The set of program actions

A :

The algorithm under consideration

A :

The reduced version of algorithmA

A〉:

The action obtained by executing the operationA as an atomic action

C :

The set of state components

d[i]:

A variable of the Distance-Finding Algorithm

L :

An operation ofA, as in C2

Ľ :

The operation obtained by adding toL the actions that deliver messages sent byL

N p(S):

The set of possible next actions of processp from states

P :

The correctness property

R :

An operation ofA, as in C2

S :

The set of states

S 0 :

The set of initial states

S c :

The range of values of state componentc

X〉:

An action ofA, as in C2

Φ:

Usually denotes an execution ofA

∑:

The execution ofA that corresponds to an execution Φ ofA

References

  1. Alpern B, Schneider FB: Defining liveness. Inf Process Lett 21 (4):181–185 (1985)

    Google Scholar 

  2. Dijkstra EW: When messages may crawl. EWD708 (1979)

  3. Dijkstra EW: When messages may crawl, ii. EWD710 (1979)

  4. Doeppner TW: Parallel program correctness through refinement. In: Fourth Annual ACM Symposium on Principles of Programming Languages, pp 155–169, ACM, January 1977

  5. Gallager RG, Humblet PA, Spira PM: A distributed algorithm for minimum-weight spanning trees. ACM Trans Program Lang Syst 5 (1):66–77 (1983)

    Google Scholar 

  6. Jonsson B: Compositional verification of distributed systems. PhD thesis, Uppsala University (1987)

  7. Lamport L, Schneider FB: Pretending atomicity. Res Rep 44. Digital Equipment Corporation, Systems Research Center (1989)

  8. Lipton RJ: Reduction: a method of proving properties of parallel programs. Commun ACM 18 (12): 717–721 (1975)

    Google Scholar 

  9. Owicki S, Gries D: An axiomatic proof technique for parallel programs. Acta Inf 6(4):319–340 (1976)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

When snow conditions are poor,Dr. L. Lamport works at Digital Equipment Corporation's Systems Research Center. As an undergraduate, he took a course in atomic physics.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Lamport, L. A theorem on atomicity in distributed algorithms. Distrib Comput 4, 59–68 (1990). https://doi.org/10.1007/BF01786631

Download citation

  • Received:

  • Accepted:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01786631

Key words

Navigation