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

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

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

推薦する

ウェブサイト分析:鉄道省システムの分析と参照

最近、鉄道省の「新世代乗車券システム」をめぐって多くのニュースやコメントが出ています。実は、私は長い...

Rushmail: 一括メールプラットフォームを使用してサービス品質を向上させる方法

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス今日のインターネット時代...

Xiaoyun: 優れた SEO プロジェクト マネージャーになるためのヒント

優秀な SEO プロジェクト マネージャーになるのは、依然として非常に困難です。これには、プロジェク...

H1 タグを非表示にすると SEO に影響がありますか?

HTML コードに詳しい人なら H1 タグはご存知だと思います。H1 タグを非表示にすることが Ba...

Google の急成長の暴露: Nokia を破った後、Microsoft が次のターゲットになるのか?

Googleは設立以来、魔法に満ちたハイテク企業であり続けています。Googleの発展の歴史を見ると...

Hostgator - 仮想ホスティングが 55% オフ/メキシコ「5 月 5 日」

シンコ・デ・マヨ(メキシコの死者の祭り、一般的には5月5日として知られています)を祝うために、Hos...

新浪の状況は変化している:曹国偉は依然として指揮を執り、アリババのリソースを導入

テンセントテクノロジー喬巴は12月19日に報じた。新浪の最近の人事異動については、新浪の営業部門を担...

2020年:世界のクラウドコンピューティングにおける11の主要年間トピックのレビュー

毎年、整理し、まとめ、努力し、そしてまた始める必要があります。 2020年、今年はさらに振り返る価値...

靴のB2Cの失敗:Letao.comが売却されたが、購入者が誰なのか誰も知らない?

Chaogeは昨日Fantong.comの閉鎖を最初に報じ、広範囲にわたる再投稿を引き起こした。今日...

UFIDAのチェン・カオホン氏:ソフトとハードの両方の手法を使ってプラットフォームを強化する方法

[51CTO.comより引用] 2018年5月18日〜19日、51CTO主催のグローバルソフトウェア...

Zhuohao ManageEngineは国際スマート教育博覧会への参加を招待されました

12月5日から7日まで、中国教育技術協会主催の「第6回国際スマート教育博覧会」が北京国家会議センター...

明けましておめでとうございます。お付き合いありがとうございました。これからも一緒に歩んでいきましょう

皆さん、明けましておめでとうございます。健康で、もっとお金を稼ぎ、女の子をナンパして、結婚してもいい...

新しいSEOアルゴリズム導入後のSEOの道

6月から数か月にわたる調整を経て、百度の新しいアルゴリズムは基本的に安定した状態になった。しばらく前...

Web およびクラウド開発、Rust は普及するでしょうか?

著者 |マクロ編纂者:ヤン・ジェン昨年、Web 開発会社 Mainmatter は Web 向け R...

Kubernetes での Java サーバーレス関数の最適化

Kubernetes 上でサーバーレス関数を実行する際に、起動が高速化され、メモリ フットプリントが...