中文

持久集的栅栏复杂度

分布式、并行与集群计算 2023-09-12 v1

摘要

我们研究非易失共享内存模型中并发集的 psync 复杂度。非易失内存中使用 flush 指令将共享状态强制写回非易失内存,且通常须配合昂贵的 fence 指令以强制这些 flush 之间的顺序。我们将一次 flush 与一次 fence 统称为一个 psync。严格线性izability 的安全性质强制崩溃操作在崩溃前生效或完全不生效;较弱的持久线性izability 性质仅对崩溃事件前已完成的操作强制此要求。我们考虑基于链表的无锁实现并证明两个下界。我们证明,对任意持久线性izable 无锁集,必存在某执行,其中某进程必须作为更新操作的一部分执行至少一次冗余 psync。我们引入一种针对持久集对严格线性izability 的扩展,称为严格有限效应(SLE)线性izability。SLE 线性izability 明确确保操作在崩溃后不生效,更好地反映了严格线性izability 的原意。我们证明,不可能实现只读(或搜索)操作不 flush 或不 fence 的 SLE 线性izable 无锁集。我们开展了关于持久集的实证研究,考察各种算法设计技术以及 flush 指令在实践中的影响。我们给出提供匹配上界的并发集算法,并与现有持久集严格评估,以揭示算法设计和安全性质对实践中 psync 复杂度的影响,以及系统崩溃后恢复数据结构的代价。

关键词

引用

@article{arxiv.2309.05230,
  title  = {The Fence Complexity of Persistent Sets},
  author = {Gaetano Coccimiglio and Trevor Brown and Srivatsan Ravi},
  journal= {arXiv preprint arXiv:2309.05230},
  year   = {2023}
}