Constant-time snapshots with applications to concurrent data structures
Yuanhao Wei, Naama Ben-David, Guy E. Blelloch, Panagiota Fatourou, Eric Ruppert, Yihan Sun
Abstract
Given a concurrent data structure, we present an approach for efficiently taking snapshots of its constituent CAS objects. More specifically, we support a constant-time operation that returns a snapshot handle. This snapshot handle can later be used to read the value of any base object at the time the snapshot was taken. Reading an earlier version of a base object is wait-free and takes time proportional to the number of successful writes to the object since the snapshot was taken. Importantly, our approach preserves all the time bounds and parallelism of the original data structure.
Topics & Concepts
Snapshot (computer storage)Computer scienceData structureParallel computingConcurrencyTheoretical computer scienceDistributed computingProgramming languageOperating systemDistributed systems and fault toleranceAdvanced Data Storage TechnologiesParallel Computing and Optimization Techniques