Friday, September 2, 2016

RCU Theory and Practice

Here is another presentation about RCU

This one is in french but the slides are in english,. If you don't understand french it's fine, just fast fwd the video and read the slides instead.
He makes a really good distinction about the RCU API and what you can do with the RCU API, which itself is usually called Read-Copy-Update:

If you do understand french, then Marwan Burelle talks in detail about one of the simplest Userspace RCU implementations so you might find that interesting if you're into algorithms.
He also mentions Hazard Pointers, although he says they're wait-free which is a shady area because the original paper says they are lock-free. Hazard Pointers are wait-free (bounded by the number of threads) for the reclaimers, i.e. calls to retire() an object, but they are typically lock-free for the readers, i.e. the threads publishing the hazard pointer. The readers can be made wait-free but it is not possible for all algorithms/data structures because it typically requires the wait-free data structures to be modified to accommodate for that... anyways, this is a subtle detail.
If you want to understand more on RCU, then this presentation is recommended!

No comments:

Post a Comment