Using Nesting to Push the Limits of Transactional Data Structure Libraries

01/02/2020
by   Gal Assa, et al.
0

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, 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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/20/2018

Every Data Structure Deserves Lock-Free Memory Reclamation

Memory-management support for lock-free data structures is well known to...
research
01/03/2023

Transactional Composition of Nonblocking Data Structures

This paper introduces nonblocking transaction composition (NBTC), a new ...
research
12/05/2022

Collabs: Composable Collaborative Data Structures

Replicated data types (RDTs), such as Conflict-free Replicated Data Type...
research
08/19/2023

Graph4J – A computationally efficient Java library for graph algorithms

Graph algorithms play an important role in many computer science areas. ...
research
04/17/2019

JGraphT -- A Java library for graph data structures and algorithms

Mathematical software and graph-theoretical algorithmic packages to effi...
research
06/29/2020

Transactions on Red-black and AVL trees in NVRAM

Byte-addressable non-volatile memory (NVRAM) supports persistent storage...
research
05/17/2018

Generic Deriving of Generic Traversals

Functional programmers have an established tradition of using traversals...

Please sign up or login with your details

Forgot password? Click here to reset