Why can't we free the old data structure immediately after the pointer flip?
A reader may still hold a pointer to the old data and be mid-read. We cannot know instantly which readers are done. RCU waits for a grace period—a CPU has passed through a quiescent state (context switch or RCU unlock)—proving the reader is no longer holding the old pointer.
Answered in
How Linux RCU Unlocks Read-Side ScalingRCU lets millions of readers run lock-free while a single writer updates state by copying, mutating off-to-the-side, and atomically flipping a pointer.
Read the full analysisOther questions this article answers
More system design & architecture questions
- What does CodeDeploy RESTART actually deploy?
- Does CodeDeploy RESTART work with ECS or Lambda?
- Does RESTART remove an application from load-balancer traffic while it restarts?
- Does Elastic Beanstalk's Active Directory join require a domain password?
- Can an Elastic Beanstalk environment be healthy if the domain join fails?
- Will enabling Active Directory replace running instances?
- What is different about AWS Lambda Web Functions?
- Does Lambda Web Functions automatically cost less than ordinary Lambda?
Every answer on Crashtech is written by the editor of the article it comes from — never auto-summarised. Browse all answers or the System Design & Architecture beat.