Software Transaction Memory, For Reals
summary
Claim: software transactional memory runs in real production code. Used for three years inside dynamics data collection and analysis at Wyatt Technology, with a hand-rolled C++ STM proof-of-concept that proves fast enough because work is embarrassingly parallel and computations dwarf STM overhead. Practical fixes: validate to force conflict to avoid inconsistent reads, schedule side effects to run only after commit, handle starvation with a fallback lock, and use retry replaces condition variables. Overall it works, with caveats about weak atomicity and pathological deadlocks.
AI-written summary · about
chapters (16)
- 0:00Intro
- 1:02Software Transaction Memory
- 1:25Dynamics
- 1:39Questions
- 4:55Why use Transaction Memory
- 6:00Why did we use STM
- 8:33How did it go
- 8:44Parallel structure
- 9:22Calculations
- 10:19Learning Curve
- 10:29Code Review
- 10:39Livelock
- 11:30Side Effects
- 12:10Inconsistent reads
- 13:11Weakly atomic
- 14:15Retry
related talks
01h 04mConcurrency TS2: Improved C++ Concurrency and Lock-free Programming
01h 01mThe two memory models
55mThe Memory Model in C++
52mBest Practices for Concurrency
07mThe Tragedy of the value based architecture
06mUsing PMR in C++ Embedded Systems for Functional Safety
59mThreads and Locks must Go
37mA (Not So Gentle) Introduction To Systems Programming In ATS
