Grace Period
A grace period in Read-Copy-Update (RCU) is the interval during which the system waits for all pre-existing readers to finish their operations before reclaiming memory. Because RCU readers access data without locks or atomic operations, the writer cannot safely free the old version of a data structure immediately after replacing it. Instead, the writer defers reclamation until a grace period has elapsed, ensuring that no reader still holds a reference to the stale data. The length of a grace period depends on the system's scheduling and context switch behavior, and its management is one of the principal challenges in RCU implementation. The concept of a quiescent state — a moment when a CPU is not within an RCU read-side critical section — is central to determining when a grace period has ended.
The grace period is the hidden tax of read-free concurrency. It buys speed on the read path by selling memory and latency on the write path. Whether this trade is worth it depends entirely on your workload — and on whether you can tolerate the existential uncertainty of not knowing exactly when your old data will finally die.