コンセンサス・アルゴリズムのメモ

Elasticsearch

安全モジュールと呼ばれる独自のアルゴリズムを使うそう. Raftではない理由についても言及されている.

アルゴリズムの中核となる安全モジュールはシンプルかつ簡潔であり、Elasticsearchリポジトリの公式モデルとプロダクションコードの間は1対1で直接対応しています。 Paxos、Raft、Zab、Viewstamped Replication(VR)などの分散合意アルゴリズムのファミリーに精通していれば、中核となる安全モジュールについてもよく分かります。これは単一の書き換え可能なレジスタをモデル化し、Paxosの投票、Raftのターム、VRのビューに類似したマスター用語の概念を使用します。また、中核となる安全モジュールとその公式モデルは、クラスターブートストラップ、ノードの再起動における永続性、動的な再構成にも対応します。これらすべての機能は、システムがどのような状況でも適切に動作するために重要です。

新世代Elasticsearchクラスターコーディネーション | Elastic Blog

Hadoop

Zookeeperを使うらしい.

Hadoopにおいて用いられる分散ファイルシステムのHDFSにおいては,ファイルのメタデータを管理するNameNodeの可用性向上のために,NameNodeを複数台構成にし,それらへの更新をStrong ConsistentにするためにZookeeperを用います

第12回 複数のプロセスにおける協調動作のための仕組み─コーディネーション | gihyo.jp

Cassandra

Paxosを使うらしい.

Cassandra uses a Paxos consensus protocol implementation that creates strong consistency.

Apache Cassandra | Apache Cassandra Documentation

コンセンサス・アルゴリズムのリスト

  • Paxos
  • Raft
  • Zab
  • Viewstamped Replication
  • Two-Phase Commit
  • Three-Phase Commit
  • Chandra–Toueg consensus algorithm
  • Chubby

参考資料