Jump to content

Version vector

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by WikiSabih (talk | contribs) at 14:59, 16 September 2009. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Version vector is a mechanism that generates a pre-order in a distributed system. It enables causality tracking among data replicas and is a basic mechanism for optimistic replication. The state in a version vector is identical to the state in a vector clock but with diferent update rules:

  • Initially all vector counters are zero.
  • Each time a replica experiences an update event, it increments its own counter in the vector by one.
  • Each time two replicas synchronize, both resulting vectors are identical and will depict the pairwise maximum between the two vectors across all counters.

Version vectors or variants are used in many distributed file systems to track updates, and are the main data structure behind optimistic replication [1]. For example Internet explorer stores version vectors in the Windows registry.

References

  1. ^ David Ratner, Peter Reiher, and Gerald Popek. Dynamic version vector maintenance. Technical Report CSD-970022, Department of Computer Science, University of California, Los Angeles, 1997