中文

常数时间快照及其在并发数据结构中的应用

分布式、并行与集群计算 2021-01-01 v3

摘要

我们提出一种高效获取一组 CAS 对象状态快照的方法。获取快照允许后续操作读取每个 CAS 对象在快照拍摄时刻所具有的值。获取快照只需常数步数并返回该快照的句柄。使用该句柄读取单个 CAS 对象的快照值是无等待的,所需时间正比于自快照拍摄以来该对象上成功 CAS 的次数。我们这种快速、灵活的快照为基于 CAS 对象构建的并发数据结构上的原子多点查询提供了简单高效的实现。例如,在子指针使用 CAS 更新的搜索树中,一旦获取快照,就可以通过在树的快照上运行标准顺序算法,原子地搜索键的范围、查找匹配某些条件的第一个键,或检查一组键是否全部存在。为评估我们方法的性能,我们将其应用于两棵搜索树,一棵平衡,一棵不平衡。实验表明,在多种工作负载下,支持快照的开销很低。此外,在几乎所有情况下,基于我们快照构建的树上的范围查询性能与最先进的支持原子范围查询的并发数据结构相当或更好。

关键词

引用

@article{arxiv.2007.02372,
  title  = {Constant-Time Snapshots with Applications to Concurrent Data Structures},
  author = {Yuanhao Wei and Naama Ben-David and Guy E. Blelloch and Panagiota Fatourou and Eric Ruppert and Yihan Sun},
  journal= {arXiv preprint arXiv:2007.02372},
  year   = {2021}
}

备注

To appear in PPoPP'21