Summary: Faster than Optimal Snapshots (for a While)
February 16, 2012
This paper presents a breakthrough in shared memory computation by giving an implemen-
tation of a snapshot object for n processes that has O(log2
b log n) step complexity for update
operations and O(log b) step complexity for scan operations, where b is the number of updates.
The algorithm uses only reads and writes.
For polynomially many updates, this is an exponential improvement on the previous linear
snapshot algorithms, and it overcomes the existing (n) lower bound by having the step com-
plexity depend on the number of updates. The key to this implementation is the construction
of a new object consisting of a pair of max registers that supports a scan operation.
Applications of this construction include an implementation of a limited-use generalized
counter with polylogarithmic step complexity. This can be used, for example, to monitor the
number of active processes, which is crucial to adaptive algorithms.