# 分散合意プロトコル ## 定義 分散合意プロトコル(Consensus Protocol)とは、複数サーバから成るグループが同一の命令列(合意ログ)に合意し、それを状態機械へ同じ順序で適用することでフォールトトレランスを実現する仕組みの総称である。代表例は [[Paxos]] と [[Raft]] であり、いずれもリーダー選出とログ複製という 2 つの主要操作を持つリーダーベースのプロトコルである。近年は RDMA の低レイテンシ・one-sided primitive を活かしてこれらの操作を高速化する RDMA ベース合意プロトコル(Dare・Sift・Protected Memory Paxos・Mu・R2aft)が研究されている。(Source: [[@2026__TPDS__R2aft - A Speedy and Highly Available RDMA-Based Consensus Protocol]]) ## 横断的知見 - **合意プロトコルの障害モデルは「粗粒度」と「細粒度」の 2 系統に分かれ、RDMA の特性がこの粒度の選択を左右する**: 伝統的な合意プロトコル(Paxos・Raft を含むほとんどの非ビザンチン合意プロトコル)は、プロセッサ・メモリ・NIC のいずれかが故障すればサーバ全体の故障とみなす粗粒度障害モデルを前提にしており、2F + 1 サーバで F 台のサーバ故障しか許容できない。一方、RDMA のプロセッサバイパス特性(RNIC がネットワークスタックをオフロードし、CPU を介さずリモートメモリにアクセスできる)を利用すると、プロセッサ故障とサーバ全体の故障を切り離す細粒度障害モデルが成立し、2F + 1 サーバで F 台の RDMA コンポーネント故障と 2F 台のプロセッサ故障を許容できる。[[@2026__TPDS__R2aft - A Speedy and Highly Available RDMA-Based Consensus Protocol]] は Poke ら(Dare 論文)の大規模システム故障データを引用し、細粒度障害モデルは粗粒度障害モデルに比べてサーバの年間故障率を 65.2% から 40.1% へ、25.1 ポイント低減できると試算している。(Source: [[@2026__TPDS__R2aft - A Speedy and Highly Available RDMA-Based Consensus Protocol]]) - **既存の RDMA ベース合意プロトコルは、ログ複製では細粒度障害モデルを利用できるが、リーダー選出では利用できないという非対称性を抱えていた**: Dare・Sift・Protected Memory Paxos・Mu はいずれもログ複製をリモートプロセッサなしの one-sided primitive で行うが、stale リーダーのアクセス権限を剥奪するためにリモートプロセッサによる RDMA コネクションのクローズやパーミッション変更を必要とし、リーダー選出では細粒度障害モデルを適用できない。R2aft は Single Writer Multiple Reader Region という構造的制約(サーバごとに書き込み可能な領域を固定し、誰も他人の領域を書けなくする)によって、この非対称性を解消し、リーダー選出でも完全にリモートプロセッサをバイパスする初のプロトコルとなった。(Source: [[@2026__TPDS__R2aft - A Speedy and Highly Available RDMA-Based Consensus Protocol]]) - **合意ログはコンセンサス動作の必要条件であり、性能加速の対象であると同時に、システム異常を検知するための「無償の」観測データにもなりうる**: [[Raftログ診断]] は Raft ログを収集して分散ストレージシステムの異常種別を診断する手法であり、追加の収集オーバーヘッドをほぼゼロにできることを実証している。これは合意プロトコルのログという同一の構造物が、性能最適化研究(R2aft・Dare・Mu)では「複製すべきデータ」として、AIOps 研究(RBAD)では「システム状態を映す観測窓」として、異なる目的から着目される二面性を持つことを示す。(Source: [[@2026__TPDS__R2aft - A Speedy and Highly Available RDMA-Based Consensus Protocol]], [[Raftログ診断]]) ## 未解決の問い - 細粒度障害モデルを前提とする合意プロトコル(R2aft)は、リクレーム困難な O(N) のメモリ消費という新たなコストを抱える。この O(N) コストは、サーバ数が数百〜数千規模になるクラウドスケールの合意グループでどこまで許容されるか。 - Reconfiguration(サーバの追加・削除)は依然としてリモートプロセッサに依存する制約が残る(RDMA のアクセス許可管理の現行仕様上の制約)。プログラマブル NIC がこの制約を解消した場合、合意プロトコルの設計はどう変わるか。 - RDMA ベース合意プロトコル(Dare・Mu・R2aft)の性能比較は InfiniBand 100 Gbps 環境が主流だが、RoCEv2 の輻輳制御・PFC の影響下([[RDMA]] の横断的知見)で同様の性能特性(1 ラウンドトリップでの複製など)が成立するかは未検証。 - Raft ログ診断([[Raftログ診断]])のような観測用途と、R2aft のような性能・可用性最適化用途は、同じ合意ログ構造に対して異なる要求(診断側は保持期間・粒度、性能側は複製レイテンシ)を持つ。両者を同時に満たすログ設計は可能か。 ## 関連 - 概念: [[RDMA]] / [[Raftログ診断]] - ソース: [[@2026__TPDS__R2aft - A Speedy and Highly Available RDMA-Based Consensus Protocol]] - エンティティ: [[Zhiyuan Dong]] / [[Zhaoguo Wang]] / [[Haitao Song]] / [[Shanghai Jiao Tong University]] ## 出典 - [[@2026__TPDS__R2aft - A Speedy and Highly Available RDMA-Based Consensus Protocol]]