Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Wait-free data structures in the asynchronous PRAM model
SPAA '90 Proceedings of the second annual ACM symposium on Parallel algorithms and architectures
Concurrent timestamping made simple
ISTCS'92 Symposium proceedings on Theory of computing and systems
Atomic snapshots of shared memory
Journal of the ACM (JACM)
Time- and space-efficient randomized consensus
Journal of Algorithms
Are wait-free algorithms fast?
Journal of the ACM (JACM)
Atomic Snapshots in O (n log n) Operations
SIAM Journal on Computing
Simple and efficient bounded concurrent timestamping and the traceable use abstraction
Journal of the ACM (JACM)
Concurrent Reading While Writing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Space-optimal multi-writer snapshot objects are slow
Proceedings of the twenty-first annual symposium on Principles of distributed computing
f-arrays: implementation and applications
Proceedings of the twenty-first annual symposium on Principles of distributed computing
Adaptive and Efficient Algorithms for Lattice Agreement and Renaming
SIAM Journal on Computing
Time and Space Lower Bounds for Nonblocking Implementations
SIAM Journal on Computing
Reading Many Variables in One Atomic Operation: Solutions with Linear or Sublinear Complexity
IEEE Transactions on Parallel and Distributed Systems
Linear-Time Snapshot Using Multi-writer Multi-reader Registers
WDAG '94 Proceedings of the 8th International Workshop on Distributed Algorithms
A tight time lower bound for space-optimal implementations of multi-writer snapshots
Proceedings of the thirty-fifth annual ACM symposium on Theory of computing
An optimal multi-writer snapshot algorithm
Proceedings of the thirty-seventh annual ACM symposium on Theory of computing
Atomic snapshots using lattice agreement
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-space tradeoffs for implementations of snapshots
Proceedings of the thirty-eighth annual ACM symposium on Theory of computing
Single-scanner multi-writer snapshot implementations are fast!
Proceedings of the twenty-fifth annual ACM symposium on Principles of distributed computing
The complexity of updating multi-writer snapshot objects
ICDCN'06 Proceedings of the 8th international conference on Distributed Computing and Networking
Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
Iterative computations with ordered read-write locks
Journal of Parallel and Distributed Computing
Hi-index | 0.00 |
Snapshots are fundamental shared objects which provide consistent views of blocks of shared memory. A snapshot object consists of an array of m memory cells and allows processes to execute UPDATES to write new values in any of the snapshot cells, and SCANS to return consistent views of all m cells. An interesting (weaker) form of snapshot with several applications is a single-scanner snapshot which allows to only one process, called scanner, to execute SCANS (UPDATES can still be executed concurrently). We present the first time-optimal, single-scanner snapshot implementations from read-write registers for an asynchronous system of n processes. Our first algorithmis very simple and has time complexity O(1) for UPDATE and O(m) for SCAN, which is optimal. However, in systems with no garbage collector, the number of registers it uses is proportional to the number of executed SCANS. Our second implementation employs an interesting recycling technique to reduce the space complexity to O(mn) bounded-size registers still achieving optimal time complexities for both operations. These algorithms are simple and practical, and improve upon all previous algorithms in terms of time and space complexity. For systems that provide stronger primitives, like Compare-And-Swap (CAS), we provide a multi-scanner snapshot implementation that uses m+1 CAS registers and m read-write registers, and has time complexity O(1)for UPDATE and O(m) for SCAN.