Causal memory: definitions, implementation, and programming
Linearizability: a correctness condition for concurrent objects