バージョンベクトル
並行更新を検出するために、クラスタノードごとに1つのカウンターのリストを保持する
問題
複数のサーバーが同じキーの更新を許可する場合、一連のレプリカ間で値が同時に更新されたときに検出することが重要です。
解決策
各キー値は、各クラスタノードの番号を保持するバージョンベクトルと関連付けられます。
基本的に、バージョンベクトルは一連のカウンターであり、各ノードごとに1つです。 3つのノード (青、緑、黒) のバージョンベクトルは [blue: 43, green: 54, black: 12]
のようになります。 各ノードに内部更新があるたびに自分のカウンターを更新するため、緑ノードの更新によってベクトルは [blue: 43, green: 55, black: 12]
に変化します。 2つのノードが通信するときはいつでも、ベクタースタンプを同期して、同時更新を検出できるようにします。
詳細については、oreilly.comでオンライン電子書籍の 第 18 章 に進みます
このパターンは 分散システムのパターン の一例です
2023年11月23日