分散ストレージシステムにおける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

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

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

推薦する

Ramnode-VPS が LEB ランキング 1 位獲得を記念して 6.8% オフ (Win)

低価格VPSランキングでは、予想通りRamnodeが1位を獲得しました。当然の結果です!今回はオラン...

シェア: QQ2015 を使って友好的なリンクを交換する方法

3か月後、QQはTencentによって恥ずかしげもなくアップグレードを強制されました。バージョンはQ...

知っておくべき8つのSEOの基本

1) 検索エンジンが Web ページをクロールしてインデックスする方法を理解する。検索エンジンの基本...

IaaS 向け初のクエリ言語「ZStack クエリ言語 (ZQL)」を発表

UI 作業を簡素化し、運用および保守担当者により柔軟なリソース クエリ方法を提供するために、ZSta...

SEOはもはや単なる外部リンクではなく、専門的で包括的な戦略です

2013年に入ってから、Baiduのアルゴリズムが絶えずアップグレードされ、更新されたため、多くのS...

外部リンク判定についてですが、ウェブマスターは署名ファイルを作らないのでしょうか?

検索エンジンの変更はウェブマスターに直接影響します。結局のところ、ほとんどのウェブマスターは検索エン...

[更新] 2019 年の世界で最も安いクラウド サーバーは何ですか?格安クラウドサーバーのおすすめ

安価なクラウドサーバーにはどのようなものがありますか?世界で最も安いクラウドサーバーはどれですか?ど...

Baidu Wenkuは、精度、勤勉さ、安定性を頼りにウェブサイトのトラフィックを輸入しています。

百度百科、百度鉄馬、百度知はトラフィックを引き付けることができ、多くのウェブマスターがそうすることで...

ガートナー: 中国におけるハイブリッド クラウドのコストを最適化および管理する 3 つの方法

クラウドの導入はほとんどの中国組織にとって重要な取り組みであり、規制、データ主権、レイテンシーの要件...

1週間で重み付けリンクを作成し、ウェブサイトの重みを増やしてBaiduをクロールするように誘導します

重要なヒント: Baidu にサイトを更新させたい場合は、まず Baidu にサイトをクロールさせる...

モバイルソーシャルネットワーキングの進化:WeChatが王座に就き、Momoが誕生しました!

「ソーシャルネットワーキングと電子商取引のどちらかをマスターできれば、世界を支配できる。」インターネ...

前進して成功し、デジタル経済の新たな「基盤」を共に勝ち取ろう

新しいインフラは実体経済とデジタル経済に莫大な利益をもたらすでしょう。情報技術は社会の発展と産業文明...

ブランドマーケティングの5つの基本理解

ブランドに関しては、専門家が 1,000 人いれば 1,000 通りの定義があります。成熟した心は異...

imidc: 日本のマルチIP独立サーバー、月額$88、e3-1230/16Gメモリ/512gSSD/30M直接接続帯域幅/13 IPv4

imidc は日本の独立サーバー向けに特別プロモーションを実施しています。元々 159 ドルだったマ...

unixhost: 高品質のウクライナの仮想ホスティングとKVMシリーズVPSを提供

unixhost は 2009 年に設立され、主に仮想ホスティング、VPS、専用サーバーの事業を運営...