Brief announcement: efficient causality tracking in distributed storage systems with dotted version vectors

Version vectors (VV) are used pervasively to track dependencies between replica versions in multi-version distributed storage systems. In these systems, VV tend to have a dual functionality: identify a version and encode causal dependencies. In this paper, we show that by maintaining the identifier of the version separate from the causal past, it is possible to verify causality in constant time (instead of O(n) for VV) and to precisely track causality with information with size bounded by the degree of replication, and not by the number of concurrent writers.

[1]  Cristiana Amza,et al.  On Optimal Concurrency Control for Optimistic Replication , 2009, 2009 29th IEEE International Conference on Distributed Computing Systems.

[2]  Friedemann Mattern,et al.  Detecting causal relationships in distributed computations: In search of the holy grail , 1994, Distributed Computing.

[3]  Alley Stoughton,et al.  Detection of Mutual Inconsistency in Distributed Systems , 1983, IEEE Transactions on Software Engineering.

[4]  Paulo Sérgio Almeida,et al.  Dotted Version Vectors: Logical Clocks for Optimistic Replication , 2010, ArXiv.

[5]  Richard A. Golding,et al.  Weak-consistency group communication and membership , 1992 .

[6]  Dahlia Malkhi,et al.  Concise version vectors in WinFS , 2005, Distributed Computing.