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 work, we boost the performance and usability of a TDSL, 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 nesting in 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 TL2 twofold without nesting, and by up to 16x when nesting is used. Finally, we discuss cross-library nesting, namely dynamic composition of transactions from multiple libraries.
[1]
Idit Keidar,et al.
Transactional data structure libraries
,
2016,
PLDI.
[2]
Bratin Saha,et al.
Open nesting in software transactional memory
,
2007,
PPOPP.
[3]
Pierre LaBorde,et al.
Lock-Free Transactional Transformation for Linked Data Structures
,
2018,
ACM Trans. Parallel Comput..
[4]
Binoy Ravindran,et al.
On Closed Nesting in Distributed Transactional Memory
,
2011
.
[5]
E. B. Moss,et al.
Nested Transactions: An Approach to Reliable Distributed Computing
,
1985
.
[6]
Kunle Olukotun,et al.
STAMP: Stanford Transactional Applications for Multi-Processing
,
2008,
2008 IEEE International Symposium on Workload Characterization.
[7]
Changwoo Min,et al.
MV-RLU: Scaling Read-Log-Update with Multi-Versioning
,
2019,
ASPLOS.
[8]
Idit Keidar,et al.
Using Nesting to Push the Limits of Transactional Data Structure Libraries
,
2020,
ArXiv.
[9]
Nir Shavit,et al.
Transactional Locking II
,
2006,
DISC.
[10]
Marnix Goossens,et al.
Improving the Performance of Signature-Based Network Intrusion Detection Sensors by Multi-threading
,
2004,
WISA.