Towards a practical snapshot algorithm

Published: 2001, Last Modified: 13 Nov 2024Theor. Comput. Sci. 2001EveryoneRevisionsBibTeXCC BY-SA 4.0
Abstract: An atomic snapshot memory is an implementation of a multiple-location shared memory that can be atomically read in its entirety without preventing concurrent writing. The design of wait-free implementations of atomic snapshot memories has been the subject of extensive theoretical research in recent years. This paper introduces the coordinated-collect algorithm, a novel wait-free atomic snapshot construction which we believe is a first step in taking snapshots from theory to practice. Unlike previous algorithms, it uses currently available multiprocessor synchronization operations to provide an algorithm that has only O(1)<math><mtext>O</mtext><mtext>(1)</mtext></math> update complexity and O(n)<math><mtext>O</mtext><mtext>(n)</mtext></math> scan complexity, with very small constants. We evaluated the performance of known snapshot algorithms for a collection of benchmarks on a simulated distributed shared-memory multiprocessor. Our empirical evidence suggests that coordinated-collect will outperform all known wait-free, lock-free, and locking snapshot algorithms in terms of overall throughput and latency.
Loading