高いデータ可用性を確保するには、分散システムでデータの複数のコピーを保存する必要があります。次の疑問は、異なるコピー間でデータをどのように同期するかということです。同期メカニズムが異なれば、効果とコストも異なります。この記事では、一般的な分散コンポーネントの同期メカニズムをまとめます。
一般的なメカニズム 一般的に使用される同期メカニズムがいくつかあり、それらを評価するためのさまざまな側面があります。まず、巨匠たちの古典的な要約を見てみましょう。 上の図は、一般的に使用されている同期方法を示しています (個人的な理解ですので、ご批判や訂正をお願いします)。
同期方法には 2 種類あります。非同期はパフォーマンスは良好ですが、データが失われる可能性があります。同期はデータが失われないことを保証できますが、パフォーマンスは低下します。同じタイプのアルゴリズムも改良できます (2PC 用の Paxos など) が、実装の難易度は非常に高くなります。実際には、これらの点についてはトレードオフすることしかできません。 同期アルゴリズムを検討する際には、ノードのダウンタイムやネットワークの閉塞などの障害シナリオを考慮する必要があります。次に、データの書き込み要求がどのように処理されるか(データの読み取り方法が含まれる場合もある)を中心に、いくつかの分散コンポーネントのデータ同期メカニズムを見てみましょう。 レディス Redis 3.0 では、クラスター モードをサポートするために Redis Cluster が導入され始めました。個人的にはそのデザインがとても美しいと思います。公式ドキュメントをご覧ください。
デザインの詳細:
カフカ Kafka のシャーディング粒度はパーティションであり、各パーティションには複数のコピーを含めることができます。レプリカ同期設計については、公式ドキュメントを参照してください。
デザインの詳細:
エラスティックサーチ ElasticSearch のデータ ストレージ要件は Kafka と非常に似ており、その設計も非常に似ています。詳細については、公式ドキュメントを参照してください。 ES にはマスターノードの概念があります。実際の機能はクラスターのステータスを管理することであり、データ要求とは関係ありません。コンテキストの一貫性を保つために、これを管理ノードと呼び、プライマリ シャードを「マスター ノード」、レプリカ シャードをスレーブ ノードと呼びます。 ESデザイン:
デザインの詳細:
ハドゥープ Hadoopは連鎖レプリケーションを使用します。レプリケーションパイプラインを参照してください。
実装の詳細:
ティクヴ TiKV は、データを書き込むときに一貫性を実現するために Raft プロトコルを使用します。 TiDBテクノロジーインサイダーについて学ぶには、3つの記事を参照してください - ストレージについて語る
動物園の飼育員 Zookeeper は Zookeeper 独自の Zab アルゴリズム (Paxos の変種?) を使用します。Zookeeper の内部を参照してください。
まとめ システムのパフォーマンス要件が高く、データ損失を許容できる場合 (Redis)、非同期同期は明らかに適切な選択です。 システムでデータが失われないようにする必要がある場合は、同期レプリケーション メカニズムのみを使用できます。 Kafka と Elasticsearch はどちらも PacificA アルゴリズム (個人的には 2PC のバリエーションとして見ることができると思います) を使用していることがわかりました。もちろん、この方法の応答は最も遅いコピーによって制限されるため、Kafka と Elasticsearch はどちらも遅いコピーを削除するための関連メカニズムを備えています。 もちろん、Paxos、Raft、Zab などの新しいアルゴリズムは 2PC よりも優れているようです。これらのアルゴリズムは一貫性の保証がより強力で、半数のノードが正常に書き込みを行う限り戻ることができます。 Paxos はマルチポイント書き込みもサポートしています。ただし、これらのアルゴリズムを正しく実装して最適化することも困難です。 |
<<: エンドツーエンドのマルチクラウド管理に SD-WAN を使用する方法
>>: Linux インフラストラクチャの学習 - KVM を使用した仮想化
目を道に向け、足を地につけ、心の中に壮大な計画を持ちなさい。みなさんこんにちは。Riven@Cros...
v.psは、XTOM Data Center(米国、ドイツ、オーストラリアなどで登録)傘下のクラウド...
数日前、私は皆さんと「ウェブマスターのソフト記事のアイデアの源泉についての簡単な議論(パート 1)」...
デジタル時代の到来は、業界のクラウド コンピューティング リソースの需要を刺激しただけでなく、クラウ...
[[255813]] © 立石幹人オープンソースの分散トランザクションミドルウェア Fescar の...
Racknerd は、ドラゴン年向けの特別オファー パッケージをリリースしました。年間 10.99 ...
[51CTO.comからのオリジナル記事] IT業界の編集者として、私は当然あらゆるスマート製品に興...
IoT アプリケーションでは、データの処理、分析、および保存は、ユーザーやデバイスが情報にアクセスす...
[51CTO.comからのオリジナル記事] 近年、ビッグデータ、クラウドコンピューティング、人工知能...
以前、他の人とリンクを交換するたびに、「あなたのウェブサイトの重みはどれくらいですか?」「あなたのウ...
hostkey、最近、この古い商人のロシアのデータセンターのネットワークが少し変わったようで、CN2...
Open Worldwide Application Security Project (OWASP...
Zorocloud は、子供の日を記念して、香港/米国 VPS および専用サーバーの特別プロモーショ...
すべてのウェブマスターは、ウェブサイトがサーバーハードウェアに接続されていることを知っています。ホス...
現在、市場には多種多様な金融商品が存在し、その種類も多岐にわたり、品質もさまざまです。大学生の私たち...