【パクソス】
Paxos とは?
💡 バラバラなサーバーたちを「多数決」でまとめる数学の処方箋
📌 このページのポイント
- 分散システムでノード間の合意形成を実現するアルゴリズム
- 一部のノードがクラッシュしても正しく動作し続ける耐障害性がある
- ProposerとAcceptorとLearnerの3種類の役割で構成される
- 理解の難しさからRaftが実装向けの代替として普及した
Paxosって変わった名前だね。何の略なの?
略語じゃないよ。ギリシャのパクソス島が由来なんだ。考案者のランポートさんが「パクソス島の議会がどうやって決議するか」という架空の話で説明したことからこの名前がついたんだよ。
分散システムの合意アルゴリズムって何なの?
サーバーが落ちてても決められるなんてすごいね!どうやってるの?
「多数決」の考え方がベースだよ。Paxosでは提案者(Proposer)が値を提案して、賛成者(Acceptor)の過半数から承認を得られたら合意成立という流れになっているんだ。過半数が揃えば残りが落ちていても大丈夫なんだよ。
じゃあ簡単そうに聞こえるけど、難しいって聞いたことあるよ?
Raftって聞いたことある!Paxosの代わりに使うの?
目的は同じだけど、RaftはPaxosの難しさを解消するために「理解しやすさ」を重視して設計されたんだ。etcdやConsulなどの分散ツールはRaftを採用していることが多いよ。でもPaxosはコンセンサスアルゴリズムの理論的な土台として今でも重要なんだよ。
GoogleのSpannerもPaxosを使ってるって聞いたよ!
まとめ:ざっくりこれだけ覚えればOK!
「Paxos」って出てきたら「分散システムで障害があっても合意を取れる難解なアルゴリズム」と思えればだいたいOK!
📖 おまけ:英語の意味
「Paxos」 = パクソス島
💬 考案者のレスリー・ランポートがギリシャのパクソス島の架空の議会になぞらえて説明したことから、このアルゴリズムはPaxosと呼ばれるようになったんだよ。