X(Twitter) Zenn GitHub RSS 共有

N相コミットと合意アルゴリズム

作成日時:2024-08-27
更新日時:2024-08-27

N相コミットの流れ

  1. コホートに更新を指示する
  2. コホートから更新完了通知が来る

各相はどういうフェーズかと言うと、下記のようになる。

コーディネーターの動きとしてはこんな感じ。

3PCの特徴的な点は以下。

合意アルゴリズム

これらとは別に、Paxos、Raftという合意アルゴリズムがある。
NewSQLにおける、分散しているデータの同期に使われているらしい。
TiDBやCockroachDBなど。

故障モデルには下記の段階がある。
対応する複製アルゴリズムも併記する。
https://www.slideshare.net/slideshow/ss-78765920/78765920#2

故障モデルは下に行くほど面倒くさい。
Redis SentinelはJepsen Testしたら50%近くデータが消えたとか。