Single-scanner multi-writer snapshot implementations are fast!

  • Authors:
  • Panagiota Fatourou;Nikolaos D. Kallimanis

  • Affiliations:
  • University of Ioannina, Greece;University of Ioannina, Greece

  • Venue:
  • Proceedings of the twenty-fifth annual ACM symposium on Principles of distributed computing
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Snapshot objects allow processes to obtain consistent global views of shared memory. A snapshot object consists of m components each capable of storing a value. The processes execute UPDATE operations to write new values in any of the components and SCANS to obtain consistent views of the snapshot contents. A single-scanner snapshot object supports only one active SCAN at any point in time (although UPDATES can still be executed concurrently).This paper studies wait-free, linearizable, single-scanner, multi-writer snapshot implementations from registers in an asynchronous shared-memory system, and presents a collection of upper and lower bounds on their complexity. We provide the first such implementations with time complexities that are (linear or quadratic) functions only of the number of snapshot components and not of the number of processes. Moreover, we argue that single-scanner implementations require at least m registers and we prove that, for such implementations which are space-optimal, SCANS execute Ω(m2) steps.Our results reveal that a lower bound derived for the multi-scanner case can be beaten when we restrict the number of concurrently active SCANS. When m is constant, our algorithms exhibit constant time complexity (while one of them requires a constant number of registers as well). For the design of our algorithms we employ new ideas, while the proof of their correctness is a complicated task.