Episode 377: Heidi Howard on Distributed Consensus
Flexbile Paxosの考案者がゲスト。分散合意についてトーク。
- 分散システムとは?
- 合意とは?
- 分散システムで決定を行うこと。
- どの場面で必要になるか?
- 強い一貫性が必要となる場面
- 一貫性と合意の違い
- 合意は強い一貫性を達成する手段
- リーダー選出について
- 決定者を決めるプロセス。投票を行う。
- Paxosについて
- Lamportの発表した最初の分散合意
- 分散合意が実装されているプロダクトの例
- Chubby
- Cassandra
- etcd, Kubernetes (Raft)
- Zookeeper (ZAB)
- Paxos, Raft, ZABの関係について
- 分散合意を学ぶには
- Paxosのバリエーション
- Multi-Paxos
- Generalized (Egalitarian) Paxos
- Latencyが必要な場面で有効。データセンター間のLatencyなど。
- Flexible Paxos
- Quorumの数を調整できる。トレードオフを選択できる。
- Fast Paxos
- リーダーをなくし、もっと大きいQuorum(2/3)を使う。
- どのように分散合意アルゴリズムをテストするか
- TLA+というツールを使う
- FLP impossibility
- 決まった時間のうちに合意することは保証できない。
- なぜ合意アルゴリズムに興味を持ったのか
- 学部の頃にRaftの論文を読んで、実装して最適化をして議論した
- なぜFlexible Paxosを思い立ったのか
- ビザンチン合意とブロックチェーンについて
- 分散合意の将来
- 現在取り組んでいる仕事について