この記事はWeChatの公開アカウント「Qiya Cloud Storage」から転載したもので、著者はQiyaです。この記事を転載する場合は、Qiya Cloud Storage 公式アカウントまでご連絡ください。 クォーラムの2つの側面前回の記事では、さまざまなフレームワークやデザインのアイデアについてお話ししました。今日はちょっとしたポイントを共有したいと思います。etcd のクォーラムはどのように実装されているのでしょうか? クォーラム メカニズムの本質は多数決にあり、これには 2 つの側面があります。
そこで、考えるべき 2 つの小さな質問があります。 選挙ですので、選挙結果はどのように発表されるのでしょうか? 実行中のプロセスなので、クラスター内のこれらのノードはクラスターのコミット位置をどのように確認するのでしょうか? 選挙があるところには投票がある投票を数えることは選挙プロセスにおけるステップです。クラスのリーダーを選ぶとき、黒板に「正」という言葉を書き、最も多くの票を獲得した人が選ばれることを今でも覚えています。 etcd にはリーダー選挙と呼ばれる選挙もあります。リーダーが勝利するための基準は、その投票が過半数を満たすこと、つまり定足数メカニズムを満たすことです。 今日は、etcd の投票カウントの仕組みを見てみましょう。 それは非常にシンプルなアイデアです。私たちは選挙に参加するすべての友人の投票を数えます。投票の半分以上を獲得した人が勝者となります。 たとえば、A、B、C、D、E の 5 人が選挙に立候補した場合、3 票を獲得した人が勝利します。 etcdの投票数を見てみましょう選挙はクォーラム メカニズムに属し、コードは etcd/raft/quorum/ にあります。クォーラムのコア実装は MajorityConfig 構造にあり、これは実際にはマップのカプセル化です。
このマップのキーは、クラスターのノードを含むノード ID です。マップの値は重要ではなく、struct{} 型が使用されます。 質問させてください。値は気にしないのであれば、なぜスライス構造を使用しないのですか? 実際のところ、それは単に検索の必要性のためです。マップの検索は一定レベルで行われ、値は struct{} を使用するため、スペースを占有せず、一石二鳥です。
投票集計の実装は非常に簡単で、次の手順に従ってください。
この実装は非常にシンプルです。投票結果を横断して「肯定的」という単語を書き込むだけです。 「ポジティブ」という単語が半分を超えたら勝ちです。 クラスター ノードはクラスターのコミット場所をどのように確認しますか?クラスター内の大多数のノードによってコミットされた場所が、クラスターのコミット ポイントです。つまり、これも定足数を満たす必要があります。これは面白いですね。 重要な手順: 並べ替えてから、中央の位置を取ります。 中央の位置は、クォーラムを満たすコミットです。
この実装は非常に興味深いです。各ノードの現在のコミット位置を取り出し、配列を形成し、配列をソートして中央の位置を取得します。この場所はクラスターのコミット場所であり、適用場所でもあります。 まず、次のようにして、クラスター内の各ノードのコミット位置を取得します。 その後、順序は次のようになり、ブラック ノードのコミット位置はクラスターのコミット位置になります。 要約するクォーラム メカニズムは、分散システムの非常に重要な理論的な部分です。それは多数派に関する仕組みです。 etcd には多数決に関して、リーダー選出とラフト ログ操作という 2 つの側面があります。 etcd の投票の実装は非常にシンプルです。それは単なるカウントの実装です。マップはクラスター内のノードを記録するために使用されます。過半数の票を獲得したノードが勝利します。 etcd は、まず各ノードのコミット位置を配列に入れて並べ替え、次に中央の位置、つまりクラスターのコミット位置を取得することで、クラスターのコミット位置を確認します。 ほとんどのノードによってコミットされたログはクラスターコミットの場所であり、クラスターによってコミットされたログのみを適用できます。これを覚えておいてください。 クラスターのコミット位置は、ハートビートまたはログレプリケーションメッセージを通じてリーダーから他のノードに通知されます。 |
<<: Kubernetes の 8 つの重要な機能の簡単な分析
>>: Kubernetes と OpenEBS における永続ボリュームと永続ボリュームクレームの理解
[[382060]]現在の企業 IT インフラストラクチャ技術の唯一の選択肢として、クラウド コンピ...
メキシコの通信業界の大物カルロス・スリム・ヘル新浪科技報、北京時間3月5日、米『フォーブス』誌は火曜...
組織がパブリック クラウド プロバイダーを選択するための最善のアプローチは、ケースごとにワークロード...
前回の2つの記事「Weiboマーケティング戦略の実践経験の共有(パート1)」と「Weiboマーケティ...
2010年、まだ学生だった頃、私は友人とインターネットでビジネスを始めました。当時、技術を学んでいた...
コアヒント: これは中国のウェブマスターのブログからの最適化記事です。多くの検索最適化の達人が語る最...
Lao Zhou 氏が SEO 業界に初めて参入した時から現在に至るまで、彼は SEO のあらゆる段...
データ センター オペレーターは、企業がワークロードをクラウドに戻す傾向に備えるために、次の手順を実...
まず、これが discuz フォーラムの forum.php テールを削除する最も完全な方法であるこ...
最近、ウェブマスターが中間にいるという声が絶えず聞こえてきており、Sanqin SEO も「SEO ...
Google Anlytics 分析コードは非同期で読み込まれるため、通常は Web ページのパフォ...
今日、クラウド コンピューティング プラットフォームとアプリケーションは、新しいデジタル ビジネスを...
今日午後5時頃、Baiduの検索結果が以前と違うことに気づきました。よく見ると、検索結果のURLが簡...
有能なSEO担当者として、外部リンクの投稿方法やコンテンツの更新方法を知っているだけでは不十分です。...
2009年に医療業界に参入してから3年が経ちました。この3年間で、医療ネットワーク推進の展開も大きく...