“The Landscape and Exciting New Future of Safe Reclamation for High Performance”
summary
Concurrency TS2 defines concrete APIs: rcu_obj_base with rcu_reader and rcu_synchronize / rcu_barrier for retire-or-wait semantics, and a hazard pointer API (obj_base, hazard_pointer, try_protect). Folly prototypes implement link counting that integrates with hazard pointers, enabling one atomic per segment and reclaiming many segments in a single hazard scan; iterators use three hazard pointers; papers P0566 and P1121 and GitHub repos contain the code and tests.
AI-written summary · about
chapters (12)
- 0:00Introduction and disclaimer
- 1:06Why safe reclamation matters
- 2:56Deferred reclamation approaches
- 5:19Physics limits and deferred reclamation
- 8:51C++ Concurrency TS2 overview
- 11:43RCU API and use cases
- 16:17RCU barriers and restrictions
- 21:15RCU learning opportunities
- 27:00Hazard pointers introduction
- 29:10Hazard pointers TS2 API
- 37:16Link counting with hazard pointers
- 57:14Future directions and Q&A
related talks
55m“A lock-free concurrency toolkit for deferred reclamation and optimistic speculation"
28mRevisit Multi-Reader Synchronizations for Scalable Applications
19mVerifying General-Purpose RCU for Reclamation in Relaxed Memory Separation Logic
19mConcurrent Mutation must go
01h 08mRead, Copy, Update, then what? RCU for non-kernel programmers
23mAn Operational Approach to Library Abstraction under Relaxed Memory Concurrency
17mExploring a real life RCU use case for Rust
51mA (Simple) Hazard Pointer Update
