论文标题

使用嵌套来推动交易数据结构库的限制

Using Nesting to Push the Limits of Transactional Data Structure Libraries

论文作者

Assa, Gal, Meir, Hagar, Golan-Gueta, Guy, Keidar, Idit, Spiegelman, Alexander

论文摘要

交易数据结构库(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.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源