Relativistic red-black trees
read more
Citations
Scalable address spaces using RCU balanced trees
RadixVM: scalable address spaces for multithreaded applications
Resizable, scalable, concurrent hash tables via relativistic programming
Concurrent updates with RCU: search tree as an example
ffwd: delegation is (much) faster than you think
References
Linearizability: a correctness condition for concurrent objects
Skip lists: a probabilistic alternative to balanced trees
The multikernel: a new OS architecture for scalable multicore systems
Skip Lists: A Probabilistic Alternative to Balanced Trees
A dichromatic framework for balanced trees
Related Papers (5)
Frequently Asked Questions (9)
Q2. what is the way to synchronize accesses?
Since accesses can be easily divided into reads (lookups) and writes (inserts, deletes), a reader-writer lock can be used which allows read parallelism.
Q3. Why is it possible that the tree will change during a read?
Because reads have a duration, and because updates can proceed concurrent with reads, it’s possible that the tree will change during a read.
Q4. What is the approach to acquiring a write lock?
Since updates may affect all the nodes from where the update occurred back to the root, the simplest approach of acquiring a write lock on all nodes that might change degrades to coarse grain locking—all updaters must acquire a write lock on the root.
Q5. How do the authors solve the multi-update problem?
The authors are also working to solve the multi-update problem so that relativistic implementation can have concurrent updaters as well as concurrent readers with a single updater.
Q6. What is the meaning of the term relativistic?
The authors refer to these algorithms as “relativistic” because they weaken the ordering requirements on concurrent reads and updates such that each reader observes the data structure in its own temporal frame of reference.
Q7. Why is the traversal dominated by the time?
This is because all the synchronization mechanisms except lock allow read concurrency and because the time is dominated by the traversal, not by the synchronization.
Q8. What are the consequences of a traversal?
The consequences are that a traversal will take O(N log(N)) time, and the tree that is traversed may not represent any state present in a globally ordered time.
Q9. What is the mutex used for the write lock?
To allow this type of traversal using the relativistic read and update algorithms described earlier, the mutex used for the write lock is replaced with a reader-writer lock.