Version Vectors in Coda
How to characterize the “up-to-dateness” of a file version?
Solution: Coda Version Vectors.
- Coda nodes maintain a version vector CVV for each file F.
CVV has one element for each server in the file’s VSG.
CVV[i] is the # of writes received on this version of F at server i.
- On an open, client sets CVV to the server’s CVV.
- On a close, client updates CVV and propagates it to the AVSG.
Increment CVV[i] for each server i that acknowledges the write.
- We can compare the CVVs to tell if one version of F has updates not reflected in the other.
Two versions conflict if neither CVV dominates the other.