支持动态加入的可写 LL/SC 与 CAS 的持久化算法
分布式、并行与集群计算
2023-02-02 v1 数据结构与算法
摘要
我们给出两个著名通用原语——CAS(比较并交换)及其无 ABA 对应原语 LLSC(链接加载、条件存储)——的持久化实现。我们所有实现均为:可写,即支持 Write() 操作;每次操作具有常数时间复杂度;允许动态加入,即新创建的任意名称的进程(亦称线程)可加入协议并访问我们的实现;并具有自适应空间复杂度,即空间使用随实际使用该对象的进程数 缩放,而非先前为最大进程数 设计的协议。我们的持久化可写 CAS 实现 DuraCAS 需要 空间来支持被 个进程访问的 个对象,改进了最优现有 。按定义,LLSC 对象除对象值外还必须存储“上下文”。我们的可写 LLSC 实现 DuraLL 需要 空间,其中 为所有对象存储的“上下文”数。尽管 LLSC 因无 ABA 而优于 CAS,但对象定义似乎需要额外的空间开销。为应对此权衡,我们定义了 LLSC 的外部上下文(EC)变体。我们的 EC 可写 LLSC 实现无 ABA 且空间复杂度仅为 。据我们所知,我们首个给出允许动态加入的持久化 CAS 算法,且我们的算法首个展现自适应空间复杂度。据我们所知,我们首个实现任何类型的持久化 LLSC 对象。
引用
@article{arxiv.2302.00135,
title = {Durable Algorithms for Writable LL/SC and CAS with Dynamic Joining},
author = {Prasad Jayanti and Siddhartha Jayanti and Sucharita Jayanti},
journal= {arXiv preprint arXiv:2302.00135},
year = {2023}
}
备注
36 pages: 15 page main body + References + Appendix