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.
翻译:为高插入/更新/删除性(统称为“Ussert”)性能优化了逻辑结构合并(LSM)树等多镜搜索结构,以优化高插入/更新/更新/删除(统称为“Ussert”)功能。在这类数据结构中,在键基美元上加一个加(k,v)美元,以作为值或墓碑的美元,即使在其他节点中已经存在美元,也添加到根节中。因此,搜索结构中可能有多份美元。对美元进行搜索的目的是返回与最新更新有关的值。我们提出了一个总体框架,用以核查从记忆中数据结构基本表述中提取的并行多码搜索结构的线性,从而允许在各种执行中进行校验。基于我们的框架,我们为形成任意定向的自行车图和b)差异文件结构提出了模板算法,并在同时的分离逻辑Iris中正式核实这些模板。我们同时将LSM模板用于获取第一个同时校验的模拟的LSM树执行。