目次
1. Raft の概要" >1. Raft の概要
: 一般人 " >フォロワー 一般人
データベース サーバー" >データベース サーバー
4. リーダー選出プロセス" >4. リーダー選出プロセス
4.1 初期状態" >4.1 初期状態
4.2 候補者になる" >4.2 候補者になる
4.3 投票" >4.3 投票
4.4 任期 " >4.4 任期
4.5 選挙ルール" >4.5 選挙ルール
4.6 最多" >4.6 最多
4.7 ハートビート タイムアウト" >4.7 ハートビート タイムアウト
5. リーダーの失敗" >5. リーダーの失敗
概要" >概要
ホームページ テクノロジー周辺機器 AI 分散システムが知っておくべきコンセンサスアルゴリズム: Raft

分散システムが知っておくべきコンセンサスアルゴリズム: Raft

Apr 07, 2023 pm 05:54 PM
アルゴリズム 配布された

1. Raft の概要

Raft アルゴリズム は分散システム開発の最初の選択肢ですコンセンサスアルゴリズム 。たとえば、Etcd や Consul が今人気です。

このアルゴリズムをマスターすれば、フォールト トレランスとほとんどのシナリオの を簡単に処理できます。# 一貫性 要件。たとえば、分散構成システム、分散 NoSQL ストレージなどは、システムの単一マシンの制限を簡単に突破できます。 Raft アルゴリズムは、リーダーに基づいたすべての方法を通じて、各ノードの一連の値とログの一貫性についての合意を達成します。

#2. Raft の役割

2.1 役割

フォロワー 一般人

は、リーダーからのメッセージを静かに受け取り、リーダーの鼓動メッセージがタイムアウトすると、自ら率先して立ち上がり、自らを候補者として推薦します。

Candidate (Candidate): Candidate

は、他のノードからの投票 RPC メッセージを要求し、過半数の投票を獲得した場合に他のノードに投票するよう通知します。リーダーに昇進。

リーダー: 横暴な社長

、すべては私の支配下にあります。書き込みリクエストを処理し、ログのレプリケーションを管理し、ハートビート情報を継続的に送信して、他のノードに「私がリーダーであり、私はまだ生きているので、あなたは望んでいない」ことを通知します。置き換える新しいリーダーを見つけることなく、新しい選挙を開始します。自分。

下の図に示すように、フォロワー、候補者、リーダーを表すために 3 種類の数字が使用されます。 役割

3. 単一ノード システム

3.1 データベース サーバー

次に想像してみましょう。単一ノード システムがあり、このノードはデータベース サーバーとして機能し、X の値を保存します。

データベース サーバー

3.2 クライアント

左側の緑の実線の円はクライアント、右側の青の実線の円はノード a です。 (ノード a )。 Term は後述する任期を表します。

クライアント

分散システムが知っておくべきコンセンサスアルゴリズム: Raft3.3 クライアントはサーバーにデータを送信します

クライアントはデータを単一のサーバーに送信します。ノード サーバー 更新操作により、データベースに格納されている値が 8 に設定されます。スタンドアロン環境 (単一サーバー ノード) では、クライアントがサーバーから取得する値も 8 です。一貫性を確保するのは非常に簡単です。

クライアントはサーバーにデータを送信します

分散システムが知っておくべきコンセンサスアルゴリズム: Raft3.4 複数のノードはどのように一貫性を確保しますか?

しかし、複数のサーバー ノードがある場合、整合性を確保するにはどうすればよいでしょうか?たとえば、a、b、c という 3 つのノードがあるとします。以下に示すように。これら 3 つのノードはデータベース クラスターを形成します。クライアントがこれら 3 つのノードで更新操作を実行する場合、3 つのノードに格納されている値が一貫していることを確認するにはどうすればよいでしょうか?これは分散一貫性の問題です。 Raft アルゴリズムは、この問題を解決するために登場しました。もちろん、これを保証できるプロトコルは他にもありますが、この記事では Raft アルゴリズムのみに焦点を当てます。

分散システムが知っておくべきコンセンサスアルゴリズム: Raft

マルチノード クラスターでは、ノード障害やパーティション エラーなどの異常な状況下で、Raft アルゴリズムはクラスター内に同時にリーダーが 1 つだけ存在することをどのように保証しますか? Raft アルゴリズムによるリーダー選出のプロセスを説明しましょう。

4. リーダー選出プロセス

4.1 初期状態

初期状態では、クラスター内のすべてのノードがフォロワーです。状態。

下図に示すように、3つのノード(Node) a、b、cがあり、項(Term)は0です。

分散システムが知っておくべきコンセンサスアルゴリズム: Raft

初期状態

4.2 候補者になる

Raft アルゴリズムは、毎回ランダムなタイムアウトの特性を実装しています。各ノードがリーダー ノードからのハートビート情報を待つタイムアウト間隔はランダムです。たとえば、ノード A の待機タイムアウト間隔は 150 ミリ秒、ノード B の待機タイムアウト間隔は 200 ミリ秒、ノード C の待機タイムアウト間隔は 300 ミリ秒です。すると、aが先にタイムアウトになりますが、まずリーダーの心拍情報を待たずにタイムアウトしてしまいます。次の図に示すように、3 つのノードのタイムアウト タイマーが実行を開始します。

タイムアウト時間

ノード A のタイムアウト時間が経過すると、ノード A は 候補 となり、期間番号が増加し、期間値は 0 から 1 に更新されます。そして私自身に一票を投じました。

  • ノード A: 期間 = 1、投票数 = 1。
  • ノード B: 期間 = 0。
  • ノード C: 期間 = 0。

分散システムが知っておくべきコンセンサスアルゴリズム: Raft

候補者になる

4.3 投票

候補者がリーダーになれる方法を見てみましょうの。

分散システムが知っておくべきコンセンサスアルゴリズム: Raft

リーダー選挙

  • ステップ 1: ノード A が候補になったら、RPC 投票リクエストを他のノードに送信します。ノードはメッセージを送り、自分たちをリーダーに選出するよう依頼します。
  • ステップ 2: ノード B とノード C は、ノード A から送信された投票要求情報を受信した後、番号 1 の期間中は投票せずに投票します。投票はノード A に投じられ、その項数が増加します。
  • 第 3 ステップ : ノード A は 3 票を獲得し、過半数のノードの票を獲得し、候補者 から今期中の 新しいリーダーになりました。
  • ステップ 4: ノード A はリーダーとして、ハートビート情報をノード B とノード C に一定の間隔で送信し、自分がリーダーであり、他のメンバーが従うように組織していることをノード B とノード C に伝えます。 . 新しい選挙を開始する。
  • ステップ 5: ノード B とノード C は応答情報をノード A に送信し、ノード A に私が正常であることを伝えます。

4.4 任期

英語ではタームと呼ばれ、リーダーには任期があります。

  • 自動増加: フォロワーは、リーダーのハートビート情報を待ってタイムアウトになった後、自分自身を候補として推薦し、ターム番号を増やします。 A は 0 です。自分を候補者として推薦すると、任期番号は 1 に増加します。
  • より大きな値に更新: ノードは、その項番号が他のノードの項番号よりも小さいことを検出すると、より大きな値に更新します。たとえば、ノード A の期間は 1 で投票を要求します。投票メッセージにはノード A の期間番号が含まれており、その番号は 1 です。ノード B はメッセージを受信すると、その期間番号を 1 に更新します。
  • フォロワーに戻る: 候補者またはリーダーが自分の任期番号が他のノードよりも小さいことに気付いた場合、すぐにフォロワーのステータスに戻ります。このシナリオは、パーティション エラーの回復後に発生します。期間 3 のリーダーが期間 4 のハートビート メッセージを受信すると、リーダーはすぐにフォロワー状態に戻ります。
  • 拒否メッセージ: ノードがより小さい用語番号値のリクエストを受信した場合、そのリクエストは直接拒否されます。たとえば、用語番号 6 のノード A は用語番号を受け取ります。ノード B が 5 つの RPC メッセージに投票するよう要求すると、ノード A はメッセージを拒否します。

4.5 選挙ルール

  • 任期中、問題 (ダウンタイムなど) が発生するか、問題が発生するまで、リーダーは常にリーダーであり続けます。ネットワークの問題 (遅延) がある場合、他のノードが新しいラウンドの選挙を開始します。
  • 選挙では、各サーバー ノードは任期番号に対して最大 1 票を投じ、投票が完了すると投票はなくなります。

4.6 最多

クラスターが N 個のノードで構成されていると仮定すると、過半数は少なくとも N/2 1 です。たとえば、3 ノードのクラスターの場合、ほとんどは 2 ノードです。

4.7 ハートビート タイムアウト

複数のノードが同時に投票を開始するのを防ぐために、各ノードにはランダムな選出タイムアウトが割り当てられます。この間、ノードは候補になることができず、タイムアウトになるまで待つことしかできません。たとえば、上記の例では、ノード A が最初にタイムアウトし、最初に候補になります。この賢い設計により、ほとんどの場合、同時に選挙を開始するのではなく、1 つのサーバー ノードだけが最初に選挙を開始するため、投票分割による選挙失敗の数が減少します。

分散システムが知っておくべきコンセンサスアルゴリズム: Raft

候補者になる

5. リーダーの失敗

リーダー ノードが失敗すると、新しい選挙ラウンド。次の図に示すように、リーダー ノード A に障害が発生した場合、ノード B とノード C がリーダーを再選出します。

分散システムが知っておくべきコンセンサスアルゴリズム: Raft

リーダーの障害

  • ステップ 1 : ノード A 障害 、ノード B およびノー​​ド CリーダーノードAからハートビート情報を受信できず、待ち時間がタイムアウトしてしまいます。
  • 2 番目のステップ : ノード C が最初にタイムアウトし、ノード C が 候補 になります。
  • ステップ 3: ノード C は、ノード A とノード B への投票情報の要求を開始します。
  • ステップ 4: ノード C は投票に応答し、C に投票しましたが、ノード A は障害のため C の投票リクエストに応答できませんでした。
  • ステップ 5: ノード C が 2 票 (過半数の票) を獲得し、リーダーになります。
  • ステップ 6: ノード C はノード A とノード B にハートビート情報を送信します。ノード B はハートビート情報に応答します。ノード A は障害があるため、ハートビート情報に応答しません。

概要

Raft アルゴリズムは次の方法を使用してリーダー選挙を実施し、1 期にリーダーが 1 人だけになるようにし、リーダーが選出される可能性を大幅に減らします。選挙失敗。状態。

  • 用語
  • リーダーのハートビート情報
  • ランダム選挙タイムアウト
  • 先着順の投票原則
  • 大多数投票原則

この記事では、アニメーション グラフィックを使用して、Raft アルゴリズムがリーダーを選出する方法を説明し、理解しやすくしています。

以上が分散システムが知っておくべきコンセンサスアルゴリズム: Raftの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CLIP-BEVFormer: BEVFormer 構造を明示的に監視して、ロングテール検出パフォーマンスを向上させます。 CLIP-BEVFormer: BEVFormer 構造を明示的に監視して、ロングテール検出パフォーマンスを向上させます。 Mar 26, 2024 pm 12:41 PM

上記および筆者の個人的な理解: 現在、自動運転システム全体において、認識モジュールが重要な役割を果たしている。道路を走行する自動運転車は、認識モジュールを通じてのみ正確な認識結果を得ることができる。下流の規制および制御モジュール自動運転システムでは、タイムリーかつ正確な判断と行動決定が行われます。現在、自動運転機能を備えた自動車には通常、サラウンドビューカメラセンサー、ライダーセンサー、ミリ波レーダーセンサーなどのさまざまなデータ情報センサーが搭載されており、さまざまなモダリティで情報を収集して正確な認識タスクを実現しています。純粋な視覚に基づく BEV 認識アルゴリズムは、ハードウェア コストが低く導入が容易であるため、業界で好まれており、その出力結果はさまざまな下流タスクに簡単に適用できます。

C++ での機械学習アルゴリズムの実装: 一般的な課題と解決策 C++ での機械学習アルゴリズムの実装: 一般的な課題と解決策 Jun 03, 2024 pm 01:25 PM

C++ の機械学習アルゴリズムが直面する一般的な課題には、メモリ管理、マルチスレッド、パフォーマンスの最適化、保守性などがあります。解決策には、スマート ポインター、最新のスレッド ライブラリ、SIMD 命令、サードパーティ ライブラリの使用、コーディング スタイル ガイドラインの遵守、自動化ツールの使用が含まれます。実践的な事例では、Eigen ライブラリを使用して線形回帰アルゴリズムを実装し、メモリを効果的に管理し、高性能の行列演算を使用する方法を示します。

C++sort 関数の基礎となる原則とアルゴリズムの選択を調べる C++sort 関数の基礎となる原則とアルゴリズムの選択を調べる Apr 02, 2024 pm 05:36 PM

C++sort 関数の最下層はマージ ソートを使用し、その複雑さは O(nlogn) で、クイック ソート、ヒープ ソート、安定したソートなど、さまざまなソート アルゴリズムの選択肢を提供します。

人工知能は犯罪を予測できるのか? CrimeGPT の機能を調べる 人工知能は犯罪を予測できるのか? CrimeGPT の機能を調べる Mar 22, 2024 pm 10:10 PM

人工知能 (AI) と法執行機関の融合により、犯罪の予防と検出の新たな可能性が開かれます。人工知能の予測機能は、犯罪行為を予測するためにCrimeGPT (犯罪予測技術) などのシステムで広く使用されています。この記事では、犯罪予測における人工知能の可能性、その現在の応用、人工知能が直面する課題、およびこの技術の倫理的影響について考察します。人工知能と犯罪予測: 基本 CrimeGPT は、機械学習アルゴリズムを使用して大規模なデータセットを分析し、犯罪がいつどこで発生する可能性があるかを予測できるパターンを特定します。これらのデータセットには、過去の犯罪統計、人口統計情報、経済指標、気象パターンなどが含まれます。人間のアナリストが見逃す可能性のある傾向を特定することで、人工知能は法執行機関に力を与えることができます

改良された検出アルゴリズム: 高解像度の光学式リモートセンシング画像でのターゲット検出用 改良された検出アルゴリズム: 高解像度の光学式リモートセンシング画像でのターゲット検出用 Jun 06, 2024 pm 12:33 PM

01 今後の概要 現時点では、検出効率と検出結果の適切なバランスを実現することが困難です。我々は、光学リモートセンシング画像におけるターゲット検出ネットワークの効果を向上させるために、多層特徴ピラミッド、マルチ検出ヘッド戦略、およびハイブリッドアテンションモジュールを使用して、高解像度光学リモートセンシング画像におけるターゲット検出のための強化されたYOLOv5アルゴリズムを開発しました。 SIMD データセットによると、新しいアルゴリズムの mAP は YOLOv5 より 2.2%、YOLOX より 8.48% 優れており、検出結果と速度のバランスがより優れています。 02 背景と動機 リモート センシング技術の急速な発展に伴い、航空機、自動車、建物など、地表上の多くの物体を記述するために高解像度の光学式リモート センシング画像が使用されています。リモートセンシング画像の判読における物体検出

58 ポートレート プラットフォームの構築におけるアルゴリズムの適用 58 ポートレート プラットフォームの構築におけるアルゴリズムの適用 May 09, 2024 am 09:01 AM

1. 58 Portraits プラットフォーム構築の背景 まず、58 Portraits プラットフォーム構築の背景についてお話ししたいと思います。 1. 従来のプロファイリング プラットフォームの従来の考え方ではもはや十分ではありません。ユーザー プロファイリング プラットフォームを構築するには、複数のビジネス分野からのデータを統合して、ユーザーの行動や関心を理解するためのデータ マイニングも必要です。最後に、ユーザー プロファイル データを効率的に保存、クエリ、共有し、プロファイル サービスを提供するためのデータ プラットフォーム機能も必要です。自社構築のビジネス プロファイリング プラットフォームとミドルオフィス プロファイリング プラットフォームの主な違いは、自社構築のプロファイリング プラットフォームは単一のビジネス ラインにサービスを提供し、オンデマンドでカスタマイズできることです。ミッドオフィス プラットフォームは複数のビジネス ラインにサービスを提供し、複雑な機能を備えていることです。モデリングを提供し、より一般的な機能を提供します。 2.58 中間プラットフォームのポートレート構築の背景のユーザーのポートレート 58

SOTA をリアルタイムで追加すると、大幅に増加します。 FastOcc: より高速な推論と展開に適した Occ アルゴリズムが登場しました。 SOTA をリアルタイムで追加すると、大幅に増加します。 FastOcc: より高速な推論と展開に適した Occ アルゴリズムが登場しました。 Mar 14, 2024 pm 11:50 PM

上記と著者の個人的な理解は、自動運転システムにおいて、認識タスクは自動運転システム全体の重要な要素であるということです。認識タスクの主な目的は、自動運転車が道路を走行する車両、路側の歩行者、運転中に遭遇する障害物、道路上の交通標識などの周囲の環境要素を理解して認識できるようにすることで、それによって下流のシステムを支援できるようにすることです。モジュール 正しく合理的な決定と行動を行います。自動運転機能を備えた車両には、通常、サラウンドビューカメラセンサー、ライダーセンサー、ミリ波レーダーセンサーなど、さまざまな種類の情報収集センサーが装備されており、自動運転車が正確に認識し、認識できるようにします。周囲の環境要素を理解することで、自動運転車が自動運転中に正しい判断を下せるようになります。頭

グローバルグラフ強化に基づくニュース推奨アルゴリズム グローバルグラフ強化に基づくニュース推奨アルゴリズム Apr 08, 2024 pm 09:16 PM

著者 | Wang Hao によるレビュー | Chonglou ニュース アプリは、人々が日常生活で情報ソースを入手する重要な方法です。 2010年頃、海外ニュースアプリの人気はZiteやFlipboardなどがあり、国内ニュースアプリの人気は主に4大ポータルでした。 Toutiaoに代表される新時代のニュースレコメンド商品の人気により、ニュースアプリは新時代を迎えました。テクノロジー企業に関しては、どの企業であっても、高度なニュース推奨アルゴリズム技術を習得していれば、基本的に技術レベルでの主導権と発言権を握ることになる。今日は、RecSys2023 Best Long Paper Nomination Award の論文、GoingBeyondLocal:GlobalGraph-EnhancedP を見てみましょう。

See all articles