Issues that RCU solves
- Concurrent reads even on updates
- Low overhead in both memory and execution time
- Deterministic completion time
- Important for real-time response and software engineering
Other synchronization primitives and their tradeoffs
- Spin lock
- Readers are blocked by other readers
- Read/Write locks
- not scalable due to overhead of maintaining locks
- But readers can skip locks
- implemented by
- reader count lock
- and writer lock
What is RCU?
Read-Copy-Update, a scalable high performance synchronization mechanism implemented in Linux kernel
Two primitives:
- Readers access data structures within RCU read-side critical sections
- Updaters use RCU synchronization to wait for all pre-existing RCU read-side critical sections to complete