Relativistic red-black trees

Philip W. Howard, Jonathan Walpole
2013 Concurrency and Computation  
We present a concurrent programming methodology called relativistic programming and illustrate its use in a concurrent red-black tree implementation. In relativistic programming each thread sees memory through its own temporal frame of reference. This approach to sharing memory allows reading to proceed independent of concurrent updates and avoids the need for expensive atomic instructions in reads. Our relativistic red-black tree has linear read scalability and uncontended read performance
more » ... is at least 25% faster than other known approaches. Performance under contention is many times faster than other approaches, both for reads in general and for updates in the presence of concurrent readers.
doi:10.1002/cpe.3157 fatcat:mi4fm7gcxvgidgx53oadptipcu