Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Atomic snapshots of shared memory
PODC '90 Proceedings of the ninth annual ACM symposium on Principles of distributed computing
PODC '90 Proceedings of the ninth annual ACM symposium on Principles of distributed computing
Wait-free data structures in the asynchronous PRAM model
SPAA '90 Proceedings of the second annual ACM symposium on Parallel algorithms and architectures
ISTCS'92 Symposium proceedings on Theory of computing and systems
Atomic snapshots of shared memory
Journal of the ACM (JACM)
Atomic snapshots in O(n log n) operations
PODC '93 Proceedings of the twelfth annual ACM symposium on Principles of distributed computing
Practical implementations of non-blocking synchronization primitives
PODC '97 Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing
f-arrays: implementation and applications
Proceedings of the twenty-first annual symposium on Principles of distributed computing
Efficient Atomic Snapshots Using Lattice Agreement (Extended Abstract)
WDAG '92 Proceedings of the 6th International Workshop on Distributed Algorithms
Reading Many Variables in One Atomic Operation: Solutions With Linear or Sublinear Complexity
WDAG '91 Proceedings of the 5th International Workshop on Distributed Algorithms
Efficient and practical constructions of LL/SC variables
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Distributed Computing
Efficient Wait-Free Implementation of Multiword LL/SC Variables
ICDCS '05 Proceedings of the 25th IEEE International Conference on Distributed Computing Systems
Multi-writer composite registers
Distributed Computing
Time-optimal, space-efficient single-scanner snapshots & multi-scanner snapshots using CAS
Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing
The complexity of updating multi-writer snapshot objects
Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing
Time lower bounds for implementations of multi-writer snapshots
Journal of the ACM (JACM)
Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
Improving software concurrency with hardware-assisted memory snapshot
Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
Fast memory snapshot for concurrent programmingwithout synchronization
Proceedings of the 23rd international conference on Supercomputing
Help when needed, but no more: efficient read/write partial snapshot
DISC'09 Proceedings of the 23rd international conference on Distributed computing
Help when needed, but no more: Efficient read/write partial snapshot
Journal of Parallel and Distributed Computing
The complexity of updating multi-writer snapshot objects
ICDCN'06 Proceedings of the 8th international conference on Distributed Computing and Networking
Efficiently implementing LL/SC objects shared by an unknown number of processes
IWDC'05 Proceedings of the 7th international conference on Distributed Computing
Efficiently implementing a large number of LL/SC objects
OPODIS'05 Proceedings of the 9th international conference on Principles of Distributed Systems
Faster than optimal snapshots (for a while): preliminary version
PODC '12 Proceedings of the 2012 ACM symposium on Principles of distributed computing
Hi-index | 0.00 |
An m-component, n-process snapshot object is an abstraction of shared memory that consists of m words and allows up to n processes to concurrently execute the following two types of operations: write(i,v), which writes v into the ith word, and scan(), which returns the current values of all m locations [1, 3]. The snapshot problem is to design algorithms for the write and scan operations that meet two challenging requirements: (1) operations appear to be atomic, and (2) operations are wait-freeFor any (m-component, n-process) snapshot algorithm, which runs on hardware that supports only word-sized objects, Ω(1) and Ω(m) are trivial lower bounds on the time complexity of write(i,v) and scan(), respectively. But, are these bounds tight?For a restricted version of the snapshot problem, known in the literature as the single-writer snapshot problem, Riany, Shavit and Touitou [18] showed that the answer is yes: they designed an algorithm with O(1) and O(m) running times for the write(i,v) and scan() operations, respectively. (The single-writer snapshot problem assumes that (i) the number m of words of the snapshot object is equal to the number n of processes, and (ii) only the ith process may write into the ith snapshot word.This paper shows that the same (optimal) running times of O(1) for write(i,v) and O(m) for scan() are achievable for the general problem, known in the literature as the multiwriter snapshot problem. Our algorithm requires hardware support for the CAS (compare&swap) operation (in comparison, Riany, Shavit and Touitou's algorithm requires hardware support for CAS, fetch&inc, and fetch&dec operations).