中文

使用共识数为 2 的原语实现强线性化

分布式、并行与集群计算 2024-02-22 v1

摘要

设计复杂并发程序的一个强大工具是通过组合来自低级原语的对象实现。强线性化实现允许保持超属性,例如随机化算法的概率保证。然而,对于许多对象,唯一已知的无等待强线性化实现依赖于比较并交换(compare&swap),这是一种允许任意数量进程解决共识的通用原语。尽管这些对象具有基于不支持共识的读/写原语的无等待线性化实现。本文研究了一个中间地带,探讨是否存在基于现实原语(如测试并设置(test&set)或取并加(fetch&add),其共识数为 2)的无等待强线性化实现。我们表明,许多共识数为 1 的对象具有基于取并加(fetch&add)的无等待强线性化实现。我们还表明,几个共识数为 2 的对象具有基于其他共识数为 2 的对象的无等待或无锁实现。相反,我们证明,即使使用取并加(fetch&add)、交换(swap)和测试并设置(test&set)原语,一些共识数为 2 的对象也不存在无锁强线性化实现。这包括队列和栈,以及它们的松弛变体。

关键词

引用

@article{arxiv.2402.13618,
  title  = {Strong Linearizability using Primitives with Consensus Number 2},
  author = {Hagit Attiya and Armando Castañeda and Constantin Enea},
  journal= {arXiv preprint arXiv:2402.13618},
  year   = {2024}
}