# Reading many variables in one atomic operation solutions with linear or sublinear complexity

## Abstract

We address the problem of reading more than one variables (components) *X*_{1},..., *X*_{c}, all in one atomic operation, by a process called the reader, while each of these variables are being written by a set of writers. All operations (i.e. both reads and writes) are assumed to be totally asynchronous and wait-free. The previous algorithms for this problem require at best quadratic time and space complexity (the time complexity of a construction is the number of sub-operations of a high-level operation and its space complexity is the number of atomic shared variables it needs). We provide a (deterministic) solution which has linear (in the number of processes) space complexity, linear time complexity for a read operation and constant time complexity for a write. Our solution does not make use of time-stamps. Rather, it is the memory location where a write writes that differentiates it from the other writes. Now, introducing randomness in the location where a reader gets the value it returns, we get a conceptually very simple probabilistic algorithm. This is the first probabilistic algorithm for the problem. Its space complexity as well as the time complexity of a read operation are both sublinear. The time complexity of a write is still constant. On the other hand, under the Archimedean assumption, we get a protocol whose both time and space complexity do not depend on the number of writers but are linear in the number of components *only* (the time complexity of a write operation is still constant).

## 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 - J. Aspnes and M.P. Herlihy (1990): Wait-free data structures in the asynchronous PRAM model,
*Proceedings of the 7th ACM Symposium on Parallel Algorithms and ArchitectÚres*, Greece, 1990.Google Scholar - L.M. Kirousis, P. Spirakis, Ph. Tsigas (1991): Simple atomic snapshots: a linear complexity solution with unbounded time-stamps,
*Proceedings of the International Conference on Computing and Information*, Ottawa, Canada, 1991.Google Scholar - L. Lamport (1986): On interprocess communication, part i: basic formalism, part ii: basic algorithms,
*Distributed Computing***1**, 77–101.Google Scholar - J.H. Reif and P. Spirakis (1984): “Real-time synchronization of interprocess communication”,
*ACM Transactions on Programming Languages and Systems***6**, 215–238.Google Scholar - P. Vitányi (1984): Distributed elections in an Archimedean ring of processors,
*Proc. 16th Ann. ACM Symp. on Theory of Computing*, 542–547.Google Scholar