アルゴリズムに関する漫画: コンシステント・ハッシュとは何ですか?

アルゴリズムに関する漫画: コンシステント・ハッシュとは何ですか?

1年前——

同システムでは、今後2年間で総注文数が約1億件に達すると予測している。

1 つの MySQL テーブルに 500 万件のレコードが格納されている場合、当面はデータベースをシャードする必要はありません。1 つのデータベースに 30 個のシャードがある方が、より適切な水平シャーディング ソリューションです。

そこで、Xiao Hui は次のテーブル パーティション分割ロジックを設計しました。

  1. 注文テーブルは、単一のデータベースに30個のサブテーブルを作成します。
  2. ユーザー ID と 30 の剰余によって、レコードが格納されるサブテーブルが決まります。
  3. クエリを実行する際は、ユーザー ID を条件として使用する必要があり、モジュロ結果に基づいてクエリ対象のサブテーブルが決定されます。

表の分割方法は以下の通りです(説明を簡単にするため、5つの表に簡略化しています)。

2ヵ月後—

それから半年以上が経ち——

小慧の記憶は終わりを迎える――

1. まず、キャッシュ空間全体をリングストレージ構造として扱います。環状空間は合計 2^32 個のキャッシュ領域に分割され、Redis ではキャッシュ キーが 16384 個のスロットに割り当てられます。

2. 各キャッシュ キーは、ハッシュ アルゴリズムを通じて 32 ビットの 2 進数に変換でき、リング空間内のキャッシュ領域に対応します。すべてのキャッシュ キーを環状空間内の異なる場所にマッピングします。

3. 各キャッシュ ノード (シャード) も、IP をハッシュとして使用し、それをリング スペースにマッピングするなど、同じハッシュ アルゴリズムに従います。

4. キーとノードをどのように一致させるか? 非常に簡単です。各キーの時計回り方向で最も近いノードが、キーが属するストレージ ノードです。したがって、図では、key1 は node1 に格納され、key2 と key3 は node2 に格納され、key4 は node3 に格納されます。

1. ノードを追加する

キャッシュ クラスター内のノード数が増加しても、環状空間全体のマッピングでは一貫したハッシュの時計回りのルールが維持されるため、少数のキーの所有権が影響を受けます。

どのキーが影響を受けるでしょうか? 図では、node1 と node2 の間に新しいノード node4 が追加されています。時計回りのルールに従うと、node1 から node4 までのキャッシュは node2 ではなく、新しいノード node4 に属します。したがって、影響を受けるキーは key2 のみです。

最後に、key2 のキャッシュ データが node2 から node4 に移行され、一貫性のあるハッシュ ルールに準拠した新しいキャッシュ構造が形成されます。

2. ノードを削除する

キャッシュ クラスター内のノードを削除する必要がある場合 (たとえば、ノードがクラッシュした場合)、環状空間全体のマッピングでも一貫性のあるハッシュの時計回りのルールが維持され、少数のキーの所有権も影響を受けます。

どのキーが影響を受けるでしょうか? 元のノード node3 はグラフから削除されます。時計回りのルールに従って、元々 node3 が所有していたキャッシュされたデータは、node3 の時計回りの後継ノード node1 に「委託」される必要があります。したがって、影響を受けるキーは key4 のみです。

最後に、key4 のキャッシュ データが node3 から node1 に移行され、一貫性のあるハッシュ ルールに準拠した新しいキャッシュ構造が形成されます。

上図に示すように、node1 の IP アドレスが 192.168.1.109 の場合、リング空間内の元の node1 の位置は hash("192.168.1.109") になります。

node1 に基づいて 2 つの仮想ノード (node1-1、node1-2) を構築します。リング空間内の仮想ノードの位置は、(IP+サフィックス) を使用して計算できます。例:

ハッシュ("192.168.1.109#1")、ハッシュ("192.168.1.109#2")

この時点で、環状空間には物理ノード node1 と node2 は存在せず、仮想ノード node1-1、node1-2、node2-1、および node2-2 のみが存在することになります。仮想ノードの数が多いため、キャッシュ キーと仮想ノード間のマッピング関係は比較的バランスが取れたものになります。

<<:  女神があなたを好きかどうか知りたいなら、AI マシンであなたの顔をスキャンするだけです。

>>:  ArmとHuaweiが参入し、自動運転チップの戦いでどちらが勝つかは分からない

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

phind: 開発者に特化したAI検索エンジンの誕生!

みなさんこんにちは、三元です。前回の記事では、AIを使いこなせない人は本当に将来淘汰されていくのか?...

企業は AI、IoT、AR、VR、ブロックチェーン、ビッグデータをどのように活用して顧客を維持できるでしょうか?

企業は、顧客維持率と顧客体験を向上させ、競合他社に負けないようにするために、人工知能 (AI)、モノ...

人工知能による空中戦闘の時代が到来し、エースパイロットは職を失うことになるのだろうか?

最近、J-10やJ-20など我が国の先進的な国産戦闘機の開発に成功した中国航空工業集団の成都航空機設...

ディープラーニングは限界に達したのか?

[[255738]]ビッグデータダイジェスト制作編集者: Xiao Jiang、lvy、Wang ...

中国の博士課程の学生が、2つのトランスフォーマーを使ってGANを構築しようとした。

[[382526]]最近、CV 研究者は変圧器に大きな関心を示し、多くのブレークスルーを達成しまし...

Googleの人工知能部門DeepMindが想像力を駆使した新システムを開発

北京時間8月19日のreadwriteによると、2014年にGoogleに買収された英国の人工知能企...

Googleは大規模モデルをより「インテリジェント」にし、GPT-4タスクの精度が大幅に向上しました。

Google といくつかの大学による最近の研究により、大規模なモデルが人間の「心」を持ち始めること...

ソフトウェアテストに AI を統合する 9 つのメリット

[[390945]] [51CTO.com 速訳]人工知能の普及は人々に大きな期待をもたらしました。...

人工知能が雪の結晶をリアルタイムで捉え、約700人の足跡を追跡可能に

2月4日の北京冬季オリンピックの開会式で、若い俳優たちが「平和の鳩」を手に持ち、彼らが動くと、足元に...

単一の GPU のみを使用して 7B モデルを微調整します。ユニバーサルマルチモーダルツール LLaMA-Adapter は閾値を取り除き、その効果は驚くべきものです

LLaMA アダプタが完全にロック解除されました。一般的なマルチモーダル ベース モデルとして、画像...

マイクロソフトはOpenAIの警告を無視し、未熟なBingチャットサービスを開始したと報じられている。

マイクロソフトのBing AIチャットボットは、最初にリリースされたときに論争と混乱を巻き起こしたが...

大きなモデルは本当にすべてを解決できるのでしょうか?知識駆動型自動運転に関する考察

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

ついにビッグデータ、機械学習、データサイエンスをわかりやすく説明する人が出てきた

データの爆発的な増加とその利用可能性は、人工知能 (AI) の発展を促進しました。人工ニューラル ネ...

フロントエンドの面接でよく聞かれるアルゴリズムに関する質問

ただし、フロントエンドでアルゴリズムに触れる機会はほとんどありません。ほとんどがインタラクティブな操...

Yandexとロシア郵便が配達ロボットサービスを開始

外国メディアの報道によると、ロシアの検索エンジン会社ヤンデックスとロシア郵便は最近、モスクワのいくつ...