インターネットの一員として、私たちは「分散」の雰囲気に浸ることがよくあります。高可用性、高信頼性、高性能などの言葉がいたるところで見られ、CAP、BASE、2PC、Paxos、Raftなどの用語も自由に使用できます。しかし、私たちの「不正確な」コミュニケーションの中で、いくつかの言葉は徐々に誤用されたり、曖昧になったりしてきました。今日は、「一貫性」という言葉について簡単にお話ししましょう。
Paxos、Raft などは、しばしば誤って「一貫性アルゴリズム」と呼ばれます。しかし、「一貫性」と「コンセンサス」は同じ概念ではありません。 Paxos、Raft などは、実際にはコンセンサス アルゴリズムです。 1998年、レスリー・ランポートはACM Transactions on Computer Systems誌に「The Part-Time Parliament」[1]と題する論文を発表した。これはPaxosアルゴリズムの最初の公開出版物であった。しかし、論文が発表された後も、多くの人が元の論文は難しすぎると感じていました。その後、Lamportは「Paxos Made Simple」[2]という別の論文を書きました。Paxosについて学びたいときは、この論文を直接読むことができます。 話を元に戻して、「Paxos Made Simple」で「Consistency」という単語を検索します。下の図に示すように、一致する結果は実際には存在しません。 一方、「コンセンサス」という単語を検索すると、多くの一致が表示されました。 言い換えれば、一貫性という言葉は Paxos の論文全体では言及されていないので、「Paxos は一貫性アルゴリズムである」という記述はどこから来ているのでしょうか。 同様に、Raftの論文「理解可能なコンセンサスアルゴリズムの探求(拡張版)」[3]では、冒頭でRaftを明確に定義しています。Raftはコンセンサスアルゴリズムです。...ここで使用されている単語はコンセンサスであり、一貫性ではないことに注意してください。 この時点で、もう一度辞書を開いてみるのもよいでしょう。一見すると、辞書の Consistency と Consenus の翻訳は似ており、どちらも「一貫性」を意味しますが、よく見ると異なることがわかります。Consistency: 一貫性、Consensus: 合意、全会一致の意見。 専門的な観点から見ると、分散システムにおける一貫性と通常呼ばれるものは、強い一貫性、順次一貫性、最終的な一貫性など、同じデータの複数のコピーのデータ一貫性を指し、これらはすべてコピー問題における一貫性を説明するために使用されます。コンセンサスは異なります。簡単に言えば、コンセンサスの問題は、複数のノードが特定のアルゴリズムを通じて同じ状態に到達するプロセスです。一貫性は結果を重視しますが、コンセンサスはプロセスを重視します。 「分散システムの概念と設計」という本では、コンセンサスの問題を次のように定義しています。コンセンサスに達するために、各プロセス pi は最初は未決定の状態にあり、セット D から値 vi を提案します。プロセスは相互に通信し、値を交換します。次に、各プロセスは決定変数 di の値を設定します。この場合は決定状態になります。この状態では、彼はもう di を変更しません。 次の図は、コンセンサス アルゴリズムに関係する 3 つのプロセスを示しています。 2 つのプロセスは「続行」を提案し、3 番目のプロセスは「中止」を提案しましたが、その後クラッシュしました。正しいままのプロセスは両方とも「続行」することを決定します。 (ここで、i = 1, 2, …, N; j = 1, 2, …, N) コンセンサス アルゴリズムでは、実行ごとに次の条件が満たされる必要があります。
コンセンサス問題では、すべてのノードが最終的にコンセンサスに達する必要があります。最終的な目標はすべてのノードが合意に達することであるため、強い一貫性と弱い一貫性の区別はありません。したがって、今後、「Paxos は強力な一貫性アルゴリズムである」や「Raft は強力な一貫性プロトコルである」などの類似の記述を目にしたときは、以下の内容を「批判的な」目で見る必要があります。 私たちのほとんどにとって、私たちの仕事のほとんどにおいて、一貫性とコンセンサスの違いは実際には無関係です。しかし、次元を上げて分散場の内容を深く研究したい場合、これらの最も基本的な概念が明確に区別されていないと、その後の学習プロセスが大きく妨げられます。 単語が似ているほど、より明確に区別する必要があります。同じ単語でも意味が異なる場合があります。たとえば、CAP と ACID の C はどちらも Consistency (一貫性) を表しますが、それぞれのシナリオでの意味は異なります。
一般に、ACID の C は、単一のデータベース トランザクション操作中にデータの整合性と正確性を確保する必要性を強調しますが、CAP 理論の C は、データの複数のバックアップの読み取りと書き込みの一貫性を強調します。 今日の知識ポイントについて何か言いたいことはありますか?コメント欄にご意見をお寄せください。 参考資料 http://lamport.azurewebsites.net/pubs/lamport-paxos.pdf http://lamport.azurewebsites.net/pubs/paxos-simple.pdf ラフト CAPとPaxosコンセンサスアルゴリズムについての簡単な説明 「一貫性」という言葉の誤用 分散コンセンサス: Viewstamped レプリケーション、Raft、Paxos |
<<: 採血時に血管が見つからない?人工知能には解決策がある
>>: 2,000 ドル相当のコースノートをオープンソース化しました。講演者はKaggleの元チーフサイエンティストです!
3月7日水曜日、Metaの上級幹部は米国時間、同社がFacebookを含む傘下のさまざまなプラット...
グーグルは7月28日、ゴミ捨てなどのタスクを理解できるようロボットを訓練するのに役立つ新しい人工知能...
新たな医学研究から宇宙の新たな理解まで、新しいモデルは科学界に衝撃を与えました。世界中のほとんどの人...
大規模言語モデル (LLM) は過去 1 年間で急速に進化しており、この記事では (量子化) へのい...
以前から大きく騒がれ、メディアもその信憑性を証明する手がかりを繰り返し探していた「テスラの自社開発A...
[[316164]]天才イーロン・マスクについて語るとき、多くの人はまずテスラを思い浮かべるでしょう...
検出が難しい膠芽腫などの癌の生存率は1桁ですが、早期治療には検出、治療、監視のための高度な技術が必要...
[[286697]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
この記事では、さまざまな活性化関数を紹介し、活性化関数の長所と短所を比較します。この記事は、人工ニュ...
この記事は、Google Brain エンジニアの Zhou Yuefeng 氏が QCon Sha...
技術の発展に伴い、ドローンの応用シナリオは絶えず拡大しています。ドローンが様々な業界で活用されている...