通用无等待内存回收
分布式、并行与集群计算
2020-01-14 v2
摘要
在本文中,我们提出了一种用于无等待并发数据结构中已删除内存块的通用内存回收方案——无等待纪元(WFE)。WFE 的关键创新在于其完全无等待。尽管一些先前技术为某些数据结构提供了类似保证,但它们缺乏对任意无等待数据结构的支持。因此,开发者通常被迫将其无等待数据结构与无锁 Hazard Pointers 或(可能阻塞的)基于纪元的回收方案结合使用。由于这两种方案提供更弱的进展保证,它们实质上放弃了无等待数据结构的强进展保证。尽管使原始的 Hazard Pointers 方案或基于纪元的回收完全无等待似乎不可行,我们通过一个更近期的(无锁)Hazard Eras 方案实现了这一目标,并将其扩展以保证无等待性。由于该扩展并非平凡,我们讨论了构建通用无等待内存回收所涉及的所有挑战。WFE 可在普遍的 x86_64 和 AArch64 (ARM) 架构上实现。其 API 与 Hazard Pointers 大多兼容,便于现有数据结构向 WFE 迁移。我们的实验评估表明,WFE 的性能接近基于纪元的回收,且几乎匹配原始的 Hazard Eras 方案,同时提供了更强的无等待进展保证。
引用
@article{arxiv.2001.01999,
title = {Universal Wait-Free Memory Reclamation},
author = {Ruslan Nikolaev and Binoy Ravindran},
journal= {arXiv preprint arXiv:2001.01999},
year = {2020}
}