Pessimistic Software Lock-Elision

Pessimistic Software Lock-Elision
复制标题

悲观软件锁省略

DOI:
--
复制
发表时间:
2012
期刊:
International Symposium on Distributed Computing
影响因子:
--
通讯作者:
N. Shavit
N. Shavit
中科院分区:
--
文献类型:
--
作者:
Y. Afek;A. Matveev;N. Shavit

文献摘要

被引文献

相似文献

读写锁是并发应用程序中最流行的锁形式之一,因为它们允许对锁定代码的读访问并行进行。但是,它们不提供读和写之间的任何并行性。 本文介绍了悲观锁省略(PLE),一种新的方法,非推测性地取代读写锁悲观(即非中止)的软件事务代码,允许读写并发,即使竞争的代码,即使代码包括系统调用。在具有硬件事务支持的系统上,PLE将允许失败的事务或包含系统调用的事务保留读写并发性。 我们的PLE算法是基于一个新的顺序设计的一个完全悲观的STM系统,在各种基准跨越计数器到树,即使高达40%的调用是突变的锁定结构,提供高达5倍的性能的最先进的读写锁。
Read-write locks are one of the most prevalent lock forms in concurrent applications because they allow read accesses to locked code to proceed in parallel. However, they do not offer any parallelism between reads and writes. This paper introduces pessimistic lock-elision (PLE), a new approach for non-speculatively replacing read-write locks with pessimistic (i.e. non-aborting) software transactional code that allows read-write concurrency even for contended code and even if the code includes system calls. On systems with hardware transactional support, PLE will allow failed transactions, or ones that contain system calls, to preserve read-write concurrency. Our PLE algorithm is based on a novel encounter-order design of a fully pessimistic STM system that in a variety of benchmarks spanning from counters to trees, even when up to 40% of calls are mutating the locked structure, provides up to 5 times the performance of a state-of-the-art read-write lock.