# Simple atomic snapshots a linear complexity solution with unbounded time-stamps

## Abstract

Let *X*_{1}, ..., *X*_{ c } be variables shared by a number of processes which operate in a totally asynchronous and wait-free manner. An operation by a process is either a write on one of the variables or a read of the values of *all* variables. All operations are assumed to be atomic, i.e. an execution of any number of them (including reads) must be serializable in a way compatible with the values returned by the reads. We give a new protocol implementing such operations for the case of a single-reader and one writer per variable. Our construction uses time-stamps that may take values as large as the number of operations performed. The advantagesof our construction over previous (bounded time-stamps) solutions are: (i) It has very simple semantics. (ii) The time complexity of an operation (i.e. the number of its sub-operations) and the space complexity of the construction (i.e. the number of subregisters used) are equal to the number of processes involved.

## Preview

Unable to display preview. Download preview PDF.

## References

- Y. Afek, H. Attiya, D. Dolev, E. Gafni, M. Merritt and N. Shavit (1990): Atomic snapshots of shared memory,
*Proceedings of the 9th ACM Symposium on Principles of Distributed Computing, Quebec City, Quebec, Canada*.Google Scholar - J.H. Anderson (1990): Composite registers,
*Proceedings of the 9th ACM Symposium on Principles of Distributed Computing, Quebec City, Quebec, Canada*.Google Scholar - L.M. Kirousis, P. Spirakis and Ph. Tsigas (1990): Reading Many Variables in One Atomic Operation: Solutions With Linear Complexity
*Technical Report, November 1990, Computer Technology Institute, Patras*Google Scholar - L. Lamport (1986): On interprocess communication, part i: basic formalism, part ii: basic algorithms,
*Distributed Computing***1**, 77–101.CrossRefGoogle Scholar