中文

基于 Trust<T> 的委托:一种可扩展的、类型安全且内存安全的锁替代方案

性能 2024-08-22 v1 操作系统

摘要

我们提出 Trust<T>,一种用于并发程序的通用、类型安全且内存安全的锁替代方案。程序员无需使用锁来同步对类型为 T 的对象的多线程访问,而是可以将该对象置于 Trust<T> 中。该对象随后不再可直接访问。相反,一个指定的线程——该对象的受托人——负责通过 Trust<T> API 应用对该对象的任何请求操作。锁通常被认为提供有限的每锁吞吐量。Trust<T> 基于委托,一种消息传递技术,不受此每锁限制。相反,每对象吞吐量受限于该对象受托人的容量,而后者通常要高得多。我们的评估表明,在存在锁竞争的情况下,Trust<T> 持续且显著地优于锁,在微基准测试中吞吐量最高提升 22 倍,在自研键值存储以及 memcached 中高锁竞争场景下提升 5–9 倍。此外,在不存在锁竞争的情况下,Trust<T> 与锁相比也具有竞争力。

关键词

引用

@article{arxiv.2408.11173,
  title  = {Delegation with Trust<T>: A Scalable, Type- and Memory-Safe Alternative to Locks},
  author = {Noaman Ahmad and Ben Baenen and Chen Chen and Jakob Eriksson},
  journal= {arXiv preprint arXiv:2408.11173},
  year   = {2024}
}