中文

Crystalline:快速且内存高效的无等待回收

分布式、并行与集群计算 2021-08-06 v1

摘要

历史上,基于无锁引用计数的内存管理效率很低,尤其对于读主导的工作负载。因此,基于纪元回收(EBR)、危险指针(HP)或二者结合的方法受到了广泛关注。EBR 表现出优异的性能,但由于潜在的无界内存使用而是阻塞的。相比之下,HP 是非阻塞的并实现了良好的内存效率,但速度慢得多。此外,HP 在一般情况下仅是免锁的。近来,提出了若干新的内存回收方法,如 WFE 和 Hyaline。WFE 实现了无等待性,但内存效率较低,且在过度订阅场景下性能欠佳;Hyaline 实现了更高的性能和内存效率,但缺乏无等待性。我们提出了一种新的无等待内存回收方案 Crystalline,同时应对高性能、高内存效率与无等待性这三重挑战。Crystalline 保证完全的无等待性,即使在线程动态回收时也是如此,并以任何线程均可回收其他线程退役内存的异步方式回收内存,且确保(近乎)均衡的跨所有线程回收工作负载。后两个特性带来了 Crystalline 的高性能与高内存效率。同时保证这三种特性需要克服独特的挑战,我们在文中进行了讨论。Crystalline 的实现依赖于在 x86-64 或 ARM64 等商用硬件上广泛可用的专用指令。我们的实验评估表明,Crystalline 展现出卓越的可扩展性与内存效率,并随着线程数增长实现优于 EBR 等典型回收方案的吞吐量。

关键词

引用

@article{arxiv.2108.02763,
  title  = {Crystalline: Fast and Memory Efficient Wait-Free Reclamation},
  author = {Ruslan Nikolaev and Binoy Ravindran},
  journal= {arXiv preprint arXiv:2108.02763},
  year   = {2021}
}