Read, Copy, Update (RCU)

lock-free programming technique.

Threads can read data without overhead.

Readers do not need to increment counters.

Writers can modify data at the same time as other threads.

How it works

Readers deref to pointer to point directly at data structure.

Writers clone data structure if they want to update it.

Wait until all Readers are done reading old version, update all pointers to point to new data structure.