Constant-time snapshots with applications to concurrent data structures
Yuanhao Wei, Naama Ben-David, Guy E. Blelloch, Panagiota Fatourou, Eric Ruppert, Yihan Sun
摘要
We present an approach for efficiently taking snapshots of the state of a collection of CAS objects. Taking a snapshot allows later operations to read the value that each CAS object had at the time the snapshot was taken. Taking a snapshot requires a constant number of steps and returns a handle to the snapshot. Reading a snapshotted value of an individual CAS object using this handle is wait-free, taking time proportional to the number of successful CASes on the object since the snapshot was taken. Our fast, flexible snapshots yield simple, efficient implementations of atomic multi-point queries on concurrent data structures built from CAS objects. For example, in a search tree where child pointers are updated using CAS, once a snapshot is taken, one can atomically search for ranges of keys, find the first key that matches some criteria, or check if a collection of keys are all present, simply by running a standard sequential algorithm on a snapshot of the tree.
To evaluate the performance of our approach, we apply it to two search trees, one balanced and one not. Experiments show that the overhead of supporting snapshots is low across a variety of workloads. Moreover, in almost all cases, range queries on the trees built from our snapshots perform as well as or better than state-of-the-art concurrent data structures that support atomic range queries.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper10
- PaC-trees: supporting parallel and compressed purely-functional collectionsLaxman Dhulipala, Guy E. Blelloch, Yan Gu, Yihan SunPLDI 2022 · 被引用 16 次
- Bundling linked data structures for linearizable range queriesJacob Nelson-Slivon, Ahmed Hassan, Roberto PalmieriPPoPP 2022 · 被引用 11 次
- TL4x: Buffered Durable Transactions on Disk as Fast as in MemoryGal Assa, Andreia Correia, Pedro Ramalhete, Valerio Schiavoni 等PPoPP 2023 · 被引用 8 次
- Concurrent sizeGal Sela, Erez PetrankOOPSLA 2022 · 被引用 3 次
- Aggregating Funnels for Faster Fetch&Add and QueuesYounghun Roh, Yuanhao Wei, Eric Ruppert, Panagiota Fatourou 等PPoPP 2025 · 被引用 2 次
它引用的顶会 Paper1
相关 Paper
- VERLIB: Concurrent Versioned PointersGuy E. Blelloch, Yuanhao WeiPPoPP 2024 · 被引用 6 次
- Efficient Concurrent Updates to Persistent Randomized Binary Search TreesGuanhao Hou, Jinchao Huang, Fangyuan Zhang, Sibo WangVLDB 2025 · 被引用 1 次
- PathCAS: an efficient middle ground for concurrent search data structuresTrevor Brown, William Sigouin, Dan AlistarhPPoPP 2022 · 被引用 4 次
- Jiffy: a lock-free skip list with batch updates and snapshotsTadeusz Kobus, Maciej Kokocinski, Pawel T. WojciechowskiPPoPP 2022 · 被引用 12 次
- Unblocking Dynamic Partial Order ReductionMichalis Kokologiannakis, Iason Marmanis, Viktor VafeiadisCAV 2023 · 被引用 7 次
