中文

用于无锁数据结构的实用原语

分布式、并行与集群计算 2017-12-20 v1

摘要

我们定义了一组新原语操作,极大简化了异步共享内存系统中无锁数据结构的实现。新操作作用于一组 Data-record,每个含多个字段。这些操作是著名 load-link(LL)与 store-conditional(SC)操作(称为 LLX 与 SCX)的推广。LLX 操作对一个 Data-record 拍快照。进程 pp 的 SCX 操作仅当指定集合中自 pp 上次对其执行 LLX 以来无 Data-record 被更改时才成功。若成功,SCX 原子地更新集合中某 Data-record 的一个特定字段,并阻止对这些 Data-record 的某指定子集的任何未来更改。我们提供了由单字比较并交换(compare-and-swap)对这些新原语的可证明正确实现。作为一个简单示例,我们展示了如何直接使用 LLX 与 SCX 以直接方式实现无锁多集数据结构。

关键词

引用

@article{arxiv.1712.06688,
  title  = {Pragmatic Primitives for Non-blocking Data Structures},
  author = {Trevor Brown and Faith Ellen and Eric Ruppert},
  journal= {arXiv preprint arXiv:1712.06688},
  year   = {2017}
}