Vector Clock
ベクトルクロックは、N次元のベクトルを使って因果関係を追跡し、イベントが並行なのか因果順序にあるのかを判定する。分散バージョン管理に使われる。
目的
中央時計なしに分散システム内のイベントの因果関係を判定し、因果一貫性を実現する。
メカニズム
各ノードはベクトルVC[i]を維持する。ローカルイベントでVC[self]をインクリメントする。メッセージには送信者のVCを載せ、受信者は次元ごとに最大値を取る。VC[a] < VC[b]ならaはbに因果的に先行し、比較不可能なら並行である。
ユースケース
- 因果一貫性(コーザルコンシステンシー)
- バージョン競合の検出
- 分散イベントの順序付け