“High Performance C++ Concurrent Transactional Data Structures"
summary
Detailed implementations and measured claims: a lock manager MRLock uses a lock-free FIFO queue of bitset requests as a drop-in replacement for std::lock/boost::lock and shows up to 3×–5× speedup over hierarchy locks under high contention; a lock-free transactional transform LFTT embeds a transaction descriptor in nodes so helpers complete pending work, avoids rollbacks and reports ~60% throughput over boosting and ~3× over STM; a multi-dimensional list keeps updates to at most two nodes, yields up to 100% faster maps on write-heavy workloads, and reduces spurious aborts.
AI-written summary · about
chapters (38)
- 0:00Intro
- 1:34Non-blocking Data Structures
- 3:25The Catch: Composite Operations
- 5:45Transactional Data Structures
- 6:27Software Transactional Memory (STM)
- 8:11Transactional Boosting Herlihy and Koskinen, 2008
- 10:04Methodology Overview
- 11:14Implementation Techniques
- 12:27Transaction Synchronization as Resource Allocation
- 13:11Acquiring Multiple Locks
- 14:13Extended TATAS
- 15:15Queue-based Multi-resource Lock
- 17:10Lock Acquire
- 17:57Lock Release
- 18:37Sequence Number
- 20:41Challenges for Lock-free Transactions
- 21:46LFTT Overview
- 22:46Node-based Conflict Detection
- 23:45Transformed INSERT Workflow
- 25:17Interpretation-based Logical Rollback
- 26:28Cooperative Transaction Execution
- 32:45Concurrent Map
- 36:27Coordinate Mapping
- 38:10Find Operation
- 39:08Insert - 2 Steps
- 40:44Normal Delete Does Not Work
- 41:31Asymmetrical Delete-Decoupled Physical Removal
- 42:15Abstract State
- 42:50Environment
- 43:4916 Threads
- 45:18Thread Scale
- 46:13Alternatives
- 46:40Throughput - Skiplist Mixed Workload
- 48:23Throughput - Linked List Mixed Workload
- 50:52Dimension Sweep
- 51:35Scalability Summary
- 52:01Libtxd Architecture
- 52:55Future Development
related talks
01h 03mA Multi-threaded, Transaction-Based Locking Strategy for Containers
26mConcurrency: Unlocking a Solution
01h 30mLive Lock-Free or Deadlock (Practical Lock-free Programming)
01h 03mIntro to Concurrent Programming 3/3: Relaxed Data Structures for Parallel Algorithms
01h 11mLock-Free Programming (or, Juggling Razor Blades), Part II
01h 08mThinking Outside the Synchronisation Quadrant
21mEvery Data Structure Deserves Lock-Free Memory Reclamation
01h 08mBetter Code: Concurrency
