Affiliation:
1. New York University, USA
2. Microsoft Research, UK
Abstract
Multicopy search structures such as log-structured merge (LSM) trees are optimized for high insert/update/delete (collectively known as upsert) performance. In such data structures, an upsert on key
k
, which adds (
k
,
v
) where
v
can be a value or a tombstone, is added to the root node even if
k
is already present in other nodes. Thus there may be multiple copies of
k
in the search structure. A search on
k
aims to return the value associated with the most recent upsert. We present a general framework for verifying linearizability of concurrent multicopy search structures that abstracts from the underlying representation of the data structure in memory, enabling proof-reuse across diverse implementations. Based on our framework, we propose template algorithms for (a) LSM structures forming arbitrary directed acyclic graphs and (b) differential file structures, and formally verify these templates in the concurrent separation logic Iris. We also instantiate the LSM template to obtain the first verified concurrent in-memory LSM tree implementation.
Funder
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Predictable Verification using Intrinsic Definitions;Proceedings of the ACM on Programming Languages;2024-06-20
2. Compositional Verification of Concurrent C Programs with Search Structure Templates;Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs;2024-01-09
3. Make Flows Small Again: Revisiting the Flow Framework;Tools and Algorithms for the Construction and Analysis of Systems;2023
4. nekton: A Linearizability Proof Checker;Computer Aided Verification;2023
5. A concurrent program logic with a future and history;Proceedings of the ACM on Programming Languages;2022-10-31