TLDS provides a framework for developing transactional containers from lock-free ones. It includes five examples of transactional data structures, lock-free and obstruction-free versions of a linked list, and a skip list, and a lock-free hash map. We are currently working on supporting transactional data structures for non-linked containers and also transactions that are executed on multiple containers.
Lock-free algorithms guarantee that the system makes progress in a finite number of steps, regardless of the system scheduler or actions of other threads. This property is critical for real-time systems.
As a framework, TLDS provides a way to transform hand-crafted lock-free data structures into transactional ones. This transformation degrades neither the progress nor correctness guarantees.
TLDS provides five transactional data structures as examples of its transformation approach.