2026年7月9日(木)掲載 2,468本日 45
HN20442

Cloudflare Meerkat:世界規模の分散型コンセンサス基盤を解剖する

Cloudflare Meerkat - Globally distributed consensus

bobnamob約15時間前

議論

11
0bobnamobスレ主204約15時間前

Cloudflareが発表した「Meerkat」について。これは、地理的に分散した環境下で高い整合性を維持するためのグローバル分散コンセンサス・プロトコルです。エッジネットワークの特性を活かし、どのようにして低遅延かつ堅牢な合意形成を実現しているのか、その技術的アプローチが注目されています。

1ebeirne約13時間前

ネットワーク環境が悪い中でRaftクラスターと格闘した経験があれば、リーダーのフラッピング(不安定な切り替わり)、選挙の嵐、レイテンシの急増といった問題に悩まされたことがあるはず。それに比べれば、これは正直かなり良さそう。不安定なネットワークに悩まされている人たちにはかなり役立つと思う。

2m11a約13時間前

この記事、肝心なところが少し掴みにくい。Cloudflareの要件(強固なリーダーを置かないなど)を考えると、比較対象はすぐにPaxosクラスのアルゴリズムのような「リーダーレス」なプロトコルになるはず。Raftと比較して「Meerkatはリーダーレスだから優れている」と言うのは混乱を招く。RaftはPaxosを調整して、まさに「強固なリーダー」を持たせるためのものだからね。記事の3/4まで読んだけど、結局何がユニークなのかよくわからない。

おそらくここでのユニークなアイデアは、QuePaxaの「ライブネス(生存性)を確保するためにタイムアウトを避ける」という点なんだろうけど、QuePaxaに関する具体的な議論は最後の1段落、それも実際には数文に留まっている。

個人的な意見としては、この記事は「コンセンサスプロトコルと線形化可能性:短い解説」や「Paxos vs Raft」といったタイトルであるべきだった気がする。主張したいことが伝わってこないし、ターゲット層がどこなのか少しぼやけている感じ。

3pstoll約13時間前

正直なところ、自前で暗号ライブラリや分散コンセンサス実装を作っている人たちについては懐疑的だけど、Cloudflareならやり遂げられるかもね。分散コンセンサスの現状を前進させようとする取り組みはいいことだ。

ポイント:

  • まだ本番環境には投入されていない。
  • 多くのラウンドトリップが発生するため、典型的な再分散型デプロイメントではコストが高くつきそう。実戦でどうなるか興味深い。
  • データベースのような用途には適していない可能性があると言及されている。
  • 形式検証について触れているのは良い点だし、適切に感じる。

今後どうなるか楽しみにしている!

4_cairn約11時間前

Aphyr(分散システム専門のテスター)を呼び出すバットシグナルみたいなものが脳裏をよぎったよ。Jepsenによる分析記事が出るのが楽しみ。

5nunez約11時間前

これかなり面白いね。etcdもコンセンサスにRaftを使っているから恩恵があるかもしれない。etcdはセットアップ(通常はKubernetesのコントロールプレーン初期化時)によってはスプリットブレインの問題が起きることがあるから。

6snthpy約10時間前

「QuePaxaというコンセンサスアルゴリズムで動作するMeerkatという新しい分散コンセンサスサービス。2023年にEPFLの研究者が公開。QuePaxaはRaftと異なり、全てのレプリカが常に書き込み可能で、タイムアウトによる停止が発生しない」

興味深いね。

7nano_o約10時間前

ここで興味深いのは、これが非同期コンセンサスアルゴリズム(QuePaxa)の本番環境における初の実装になる点だろう。PaxosやRaftなどはすべて部分同期型で、タイムアウトに依存し、メッセージ遅延がタイムアウト期間に比べて十分に小さい場合にのみ進行する。QuePaxaはタイムアウトに依存せず、メッセージ遅延の激しい変動下でも動作する。問題は、メッセージ遅延が小さく変動も少ない通常時に、パフォーマンスが十分に競合できるかという点。歴史的にその答えは「No」であり、だからこそ非同期プロトコルはこれまで使われてこなかった。

8crank42069約9時間前

素人考えだけど。

  1. 彼らはすでにログルーティングによる設定を行っているか、もしくはシミュレーションテストで本番投入前にこのレースコンディションを見つけ出していると思う。
  2. 正確性のためにクロックが必要になるMeerkatの最初の部分は、コアのコンセンサスプロトコルではなく、おそらく古いローカル読み取り(stale local reads)に関わる部分だろう。
9sailfast約9時間前

Meerkatたちを束ねるためのZookeeperが必要になるんじゃないかとふと思った。

10advisedwang約8時間前

線形化可能性に対してかなりストレートなアプローチだね。すべてを線形順序に置くという。

でも、これにはREAD操作まで含まれているのか!読み取りごとにグローバルなコンセンサスをとる必要があるってことだよね。ほとんどの分散システムは、読み取りを完全にローカルで済ませるために書き込みパスで追加の複雑さとレイテンシを許容している。読み取り操作が遅くてもいいなら素晴らしいトレードオフだけど、ニッチな用途に限定されるんじゃないかな。