Proving highly-concurrent traversals correct
Yotam M. Y. Feldman, Artem Khyzha, Constantin Enea, Adam Morrison, Aleksandar Nanevski, Noam Rinetzky, Sharon Shoham
摘要
Modern highly-concurrent search data structures, such as search trees, obtain multi-core scalability and performance by having operations traverse the data structure without any synchronization. As a result, however, these algorithms are notoriously difficult to prove linearizable, which requires identifying a point in time in which the traversal's result is correct. The problem is that traversing the data structure as it undergoes modifications leads to complex behaviors, necessitating intricate reasoning about all interleavings of reads by traversals and writes mutating the data structure.
In this paper, we present a general proof technique for proving unsynchronized traversals correct in a significantly simpler manner, compared to typical concurrent reasoning and prior proof techniques. Our framework relies only on sequential properties of traversals and on a conceptually simple and widely-applicable condition about the ways an algorithm's writes mutate the data structure. Establishing that a target data structure satisfies our condition requires only simple concurrent reasoning, without considering interactions of writes and reads. This reasoning can be further simplified by using our framework.
To demonstrate our technique, we apply it to prove several interesting and challenging concurrent binary search trees: the logical-ordering AVL tree, the Citrus tree, and the full contention-friendly tree. Both the logical-ordering tree and the full contention-friendly tree are beyond the reach of previous approaches targeted at simplifying linearizability proofs.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper11
- Bundling linked data structures for linearizable range queriesJacob Nelson-Slivon, Ahmed Hassan, Roberto PalmieriPPoPP 2022 · 被引用 11 次
- Occualizer: Optimistic Concurrent Search Trees From Sequential CodeTomer Shanny, Adam MorrisonOSDI 2022 · 被引用 9 次
- A concurrent program logic with a future and historyRoland Meyer, Thomas Wies, Sebastian WolffOOPSLA 2022 · 被引用 9 次
- Verifying concurrent multicopy search structuresNisarg Patel, Siddharth Krishna, Dennis E. Shasha, Thomas WiesOOPSLA 2021 · 被引用 8 次
- Embedding Hindsight Reasoning in Separation LogicRoland Meyer, Thomas Wies, Sebastian WolffPLDI 2023 · 被引用 6 次
它引用的顶会 Paper3
- The future is ours: prophecy variables in separation logicRalf Jung, Rodolphe Lepigre, Gaurav Parthasarathy, Marianna Rapoport 等POPL 2020 · 被引用 62 次
- Verifying concurrent search structure templatesSiddharth Krishna, Nisarg Patel, Dennis E. Shasha, Thomas WiesPLDI 2020 · 被引用 19 次
- Embedding Hindsight Reasoning in Separation LogicRoland Meyer, Thomas Wies, Sebastian WolffPLDI 2023 · 被引用 6 次
相关 Paper
- The Path to Durable LinearizabilityEmanuele D'Osualdo, Azalea Raad, Viktor VafeiadisPOPL 2023 · 被引用 6 次
- NVTraverse: in NVRAM data structures, the destination is more important than the journeyMichal Friedman, Naama Ben-David, Yuanhao Wei, Guy E. Blelloch 等PLDI 2020 · 被引用 52 次
- PathCAS: an efficient middle ground for concurrent search data structuresTrevor Brown, William Sigouin, Dan AlistarhPPoPP 2022 · 被引用 4 次
- Scenario-Based Proofs for Concurrent ObjectsConstantin Enea, Eric KoskinenOOPSLA 2024 · 被引用 2 次
- Reasoning about recursive tree traversalsYanjun Wang, Jinwei Liu, Dalin Zhang, Xiaokang QiuPPoPP 2021 · 被引用 4 次
