Version Vectors

Let's find the similarities and differences between version vectors and vector clocks. We will also look into the details of the version vectors and issues with the vector clocks.

Comparing version vectors with vector clocks

Version vectorsD. S. Parker et al., “Detection of mutual inconsistency in distributed systems,” IEEE Transactions on Software Engineering, Volume, 9 Issue 3, pages 240-247, 1983. are a mechanism that is very similar to vector clocks. The data structure used by version vectors and the associated update rules are very similar to those used by vector clocks. However, version vectors are used for slightly different purposes.

As explained previously, vector clocks are used to maintain a logical form of time, which can then be used to identify when events are happening, especially in comparison to other events.

On the other hand, version vectors are better suited for applications that store data, where every data item is tagged with a version vector. In this way, data can potentially be updated in multiple parts of the system concurrently (e.g., when there is a network partition). So, the version vectors from the resulting data items can help us identify those items that can be reconciled automatically and those that require conflict resolution.

Get hands-on with 1400+ tech skills courses.