用嵌套技术突破transmitted数据结构库的极限
Using Nesting to Push the Limits of Transactional Data Structure Libraries
摘要:
事务数据结构库(TDSL)将事务的易于编程性与定制并发数据结构的高性能和可伸缩性相结合。由于它们能够利用数据结构语义,与通用软件事务存储器相比,它们可以非常高效地减少开销、中止和浪费的工作。然而,TDSL以前没有用于涉及长事务和各种数据结构的复杂用例。在本文中,我们提高了性能和可用性的TDSL,使其能够支持复杂的应用程序。一个关键的想法是嵌套。嵌套事务在较长的事务中创建检查点,以限制中止的范围,而不改变原始事务的语义。我们构建了一个Java 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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。