2015年5月19日火曜日

Raft: もう一つの consensus algorithm

Paxos について調べていたら、Raft という別の Consensus Algorithm にたどり着いた。Raft は「理解しやすさ」を重視して設計したそうで、Paxos について
Paxos is exceptionally difficult to understand. The full explanation [15] is notoriously opaque; few people succeed in understanding it, and only with great effort.
Paxos を理解することは並外れて難しい。正確な説明は極めて不可解で、ほとんどの人は理解できない。できるとしてもものすごい努力を要する。
と批判している。「よく分からん」 と思ったのは私だけではないようだ。

また、Chubby の実装者のコメントを引用している。
There are significant gaps between the description of the Paxos algorithm and the needs of a real-world system. . . . the final system will be based on an unproven protocol [4].
Paxos アルゴリズムの記述と実世界のシステムとの間には 大きなギャップがあり、最終的に構築したシステムは、証明されていないプロトコルに基づくことになった。
たしかに、Paxos の論文は数学的なので、そのまま実装できるものではなかった。

で、Raft の論文を読むと、これがとてもわかりやすい。まずプロトコルを説明して、それから safety を証明する、という computer science の人に優しい構成になっている。一読して理解できたので、Paxos のように「解説の解説」を書く必要がない。

面白かったのは、「Raft は Paxos より理解しやすい」ことを実証するために、Stanford と UC Berkeley の学生に、解説ビデオを見せ、その後にテストを行い結果を比較したということ。当然 Raft のほうが成績がよかったそうだ。まあそうだろうな。

0 件のコメント:

コメントを投稿