分散ストレージシステムにおけるDHTアルゴリズムの改善

分散ストレージシステムにおけるDHTアルゴリズムの改善

1. 概要

通常、分散ストレージ システムと分散キャッシュ システムでは、データの分割 (ルーティング) と負荷分散を実現するために、分散ハッシュ (DHT) アルゴリズムが使用されます。通常の分散ハッシュ アルゴリズムは、仮想ノードを追加することで物理的なホットスポットを分割し、負荷を他のノードに分散することで負荷分散を実現します。ただし、これによってクラスターの負荷が完全に分散されることが保証されるわけではありません。

改良されたコンシステントハッシュアルゴリズム、すなわち境界係数を備えたコンシステントハッシュアルゴリズムは、各ノードの負荷を厳密に制御し、より優れた負荷分散効果を実現できます[1][2]。

[[222256]]

2. 通常のDHTアルゴリズム

以下に示す DHT アルゴリズムを使用して、オブジェクトが 8 個あると仮定します。

オブジェクト 0,1,2 は仮想ノード vNode0 にマップされます: オブジェクト 0,1,2 --> vNode0

オブジェクト 3,4,5 は vNode1 にマップされます: オブジェクト 3,4,5 --> vNode1

オブジェクト 6 は vNode2 にマップされます: オブジェクト 6 --> vNode2

オブジェクト 7 は vNodeN にマップされます: オブジェクト 7 --> vNodeN

明らかに、Vnode0 と vNode1 には 3 つのオブジェクトがありますが、vNode2 と vNodeN には 1 つのオブジェクトしかありません。 DHT アルゴリズムの負債バランス係数はあまり良くありません。

3. 負荷境界係数を用いたDHTアルゴリズム

以下に示すように、制限付き負荷アルゴリズムを使用した DHT を使用し、オブジェクトが 8 個あると仮定します。

マッピングの第 1 ラウンド:

オブジェクト 0、1、2 は仮想ノード vNode0 にマップする必要がありますが、vNode0 の重み係数は 2 であるため、オブジェクト 0、1 --> vNode0 のみが完了し、オブジェクト 2 はノード vNode0 にマップできません。

オブジェクト 3、4、5 は仮想ノード vNode1 にマップする必要があります。ただし、vNode1 の重み係数は 2 なので、オブジェクト 3、4 --> vNode1 のみが完了し、オブジェクト 5 はノード vNode1 にマップできません。

オブジェクト 6 は vNode2 にマップされます: オブジェクト 6 --> vNode2

オブジェクト 7 は vNodeN にマップされます: オブジェクト 7 --> vNodeN

マッピングの2回目のラウンド:

オブジェクト 2 は vNode1 にマップされていますが、vNode1 の重み係数は 0 であるため、受信できません。次のノードに移動すると、vNode2 の重み係数は 2 であり、残りの重み係数は 1 であるため、マッピングできることがわかります。したがって、オブジェクト2-->vNode2

オブジェクト 5 は vNode2 にマップされていますが、vNode2 の重み係数は 0 であるため、受信できません。次のノードに進むと、vNodeN の重み係数が 2 であることがわかります。残りの重み係数は 1 なので、マッピングできます。したがって、オブジェクト5-->vNodeN

最終的なマッピング結果は

オブジェクト 0,1 は仮想ノード vNode0 にマップされます: オブジェクト 0,1 --> vNode0

オブジェクト 3,4 は vNode1 にマップされます: オブジェクト 3,4 --> vNode1

オブジェクト 2,6 は vNode2 にマップされます: オブジェクト 2,6 --> vNode2

オブジェクト 5,7 は vNodeN にマップされます: オブジェクト 5,7 --> vNodeN

明らかに、Vnode0、vNode1、vNode2、vNodeN の各ノードは 2 つのオブジェクトに分割されます。

明らかに、負荷境界係数を使用した DHT アルゴリズムの負債バランスは、通常の DHT アルゴリズムよりも優れています。

これらのノードの負荷係数は、IO、CPU、MEM、ディスク、ネットワークなどの入力係数から計算できます。

参考文献

[1] https://research.googleblog.com/2017/04/consistent-hashing-with-bounded-loads.html

[2] https://medium.com/vimeo-engineering-blog/improving-load-balancing-with-a-new-consistent-hashing-algorithm-9f1bd75709ed

<<:  一貫性ハッシュアルゴリズムと分散ストレージへの応用

>>:  ハイブリッド クラウド コンピューティングは企業にとって次のステップとなるのでしょうか?

推薦する

Baiduに掲載される記事の基本条件を調べる

ウェブサイトのランキングが上がるには、記事の内容が重要です。フォーラムでは、SEO 初心者が、自分の...

アンカーテキストを使用してフレンドリーリンクを配置し、SEOランキングを大幅に向上させる方法

SEOランキングに関しては、ウェブマスターは興奮しないかもしれません。ランキングが変動したり、まった...

エンタープライズクラウドの導入: クラウドストレージを導入するための 3 つのステップ

近年、クラウド ストレージは従来のエンタープライズ ストレージの状況を一変させました。パブリック ク...

非常に詳細なウェブサイト記事ページ最適化の知識

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますウェブサイ...

第8回SEOランキングカンファレンス2018が成功裏に終了し、業界リーダーがコンテンツマーケティングの今後の発展について議論しました。

月収10万元の起業の夢を実現するミニプログラム起業支援プラン9月20日、2018年コンテンツマーケテ...

ウェブサイトを運営するための穏やかで平和な心構えを身につける方法

今日は、Web サイトを注意深く構築する方法についてお話ししたいと思います。まず、私自身の個人的な経...

3月にGoogleが行った検索アルゴリズムの改善をいくつか挙げる

Baidu が盲目的に Google を模倣しているとき、Google 検索が常に改善されていること...

Baidu はフォーラムへの参加を高速化する Discuz プラグインをリリースします

Baidu の関係者によると、Baidu は近い将来 discuz プラグインをリリースする予定との...

ウェブサイト分析: レスポンシブナビゲーションメニューを設計するための 5 つのルール

概要: この記事では、より難しいレスポンシブ Web デザイン、つまりレスポンシブ ナビゲーション ...

APPユーザー増加のためのチャンネルプロモーション!

アプリの成功は、常にユーザー数の増加にかかっています。ユーザー数を増やす効率的な手段がなければ、ただ...

JVMの原理と徹底的なチューニング

[[436050]] JVMとはJVM は、ユーザー モードで実行され、アプリケーションを通じてクロ...

ランキング最適化における外部リンクの長所と短所の解釈

ランキングの最適化において、外部キーワード リンクはランキングの向上に計り知れない役割を果たします。...

高性能で軽量な分散メモリキューシステム - beanstalk

Beanstalk は、高性能、軽量、分散型のインメモリ メッセージ キュー システムです。当初の設...