论文标题
使用嵌套来推动交易数据结构库的限制
Using Nesting to Push the Limits of Transactional Data Structure Libraries
论文作者
论文摘要
交易数据结构库(TDSL)结合了交易的易于访问性与定制并发数据结构的高性能和可扩展性。与通用软件交易记忆相比,由于其利用数据结构语义的能力以减少开销,流产和浪费的工作,它们的效率非常有效。但是,以前不用于涉及长交易和各种数据结构的复杂用例。 在本文中,我们提高了TDSL的性能和可用性,以允许其支持复杂的应用程序。一个关键的想法是嵌套。嵌套交易在更长的交易中创建检查点,以限制流产的范围,而无需更改原始交易的语义。我们在许多数据结构上构建了对嵌套交易的内置支持。我们对复杂的网络入侵检测系统进行了案例研究,该系统投入大量工作来处理每个数据包。我们的研究表明,我们的图书馆在不筑巢的情况下优于公开可用的STM,并且在使用嵌套时最多可达16倍。
Transactional data structure libraries (TDSL) combine the ease-of-programming of transactions with the high performance and scalability of custom-tailored concurrent data structures. They can be very efficient thanks to their ability to exploit data structure semantics in order to reduce overhead, aborts, and wasted work compared to general-purpose software transactional memory. However, TDSLs were not previously used for complex use-cases involving long transactions and a variety of data structures. In this paper, we boost the performance and usability of a TDSL, towards allowing it to support complex applications. A key idea is nesting. Nested transactions create checkpoints within a longer transaction, so as to limit the scope of abort, without changing the semantics of the original transaction. We build a Java TDSL with built-in support for nested transactions over a number of data structures. We conduct a case study of a complex network intrusion detection system that invests a significant amount of work to process each packet. Our study shows that our library outperforms publicly available STMs twofold without nesting, and by up to 16x when nesting is used.