Relativistic programming


Relativistic programming is a style of concurrent programming where instead of trying to avoid conflicts between readers and writers the algorithm is designed to tolerate them and get a correct result regardless of the order of events. Also, relativistic programming algorithms are designed to work without the presences of a global order of events. That is, there may be some cases where one thread sees two events in a different order than another thread. This essentially implies working under causal consistency instead of a stronger model.
Relativistic programming provides advantages in performance compared to other concurrency paradigms because it does not require one thread to wait for another nearly as often. Because of this, forms of it are now used extensively in the Linux kernel.