アマゾンダイナモデータベースについて

たとえば、ハッシュキーがデバイスIDを表し、デバイスID「D17」が特に重視される複合プライマリハッシュおよびレンジキーテーブルを考えます。この "ホット"ハッシュキーの読み取りと書き込みのスループットを向上させるには、固定セット(たとえば1〜200)から選択した乱数を選択し、デバイスIDと連結します(D17.1、D17.2 D17.200)。ランダム化により、デバイスID「D17」の書き込みは、複数のハッシュキー値に均等に分散され、並列性が向上し、全体的なスループットが向上します。

     

この方法では書き込みのスループットが大幅に向上しますが、アイテムが含まれている200個のキーがわからないため、特定のアイテムの読み取りが困難になります。この戦略を改善してより良い読み込み特性を得ることができます:完全に乱数を選択する代わりに、アイテムに固有の何かから計算できる数値を選択します。たとえば、アイテムがデバイスを持つ人物を表す場合、その名前またはユーザーIDからハッシュキー接尾辞を計算します。この計算では、名前(またはユーザーID)のセットがあれば、1から200までの数字を計算する必要があります。一般的に単純な計算で十分です(たとえば、人名の200の文字のASCII値+ 1)。これで、書き込みはハッシュキー(したがってパーティション)全体に均等に分散されます。また、特定の「デバイス所有者」値を取得するときに必要なハッシュ・キーを判別できるので、get操作を簡単に実行できます。問合せ操作は、すべてのD17.xキーに対して実行する必要があります。アプリケーションでは、各ハッシュ・キー(この場合は200)の問合せ結果をすべてマージするためにクライアント側でロジックが必要です。しかし、このスキーマでは、すべての作業負荷を「ホット」なハッシュ・キーにすることはできません。

誰でも上記の例で何を言っているのか説明できますか?

前もって感謝します

アルアミン

0
nl ru de

1 答え

これは、特定の高度に使用されているハッシュキーの読み取り/書き込みスループットを最適化しようとする単純な戦略です。基本的には、ある種のハッシュの計算に基づいて目的のキーを読み書きできるように、1つのハッシュキーを(この場合は)200種類の異なるハッシュキーに分割しています。実際には、読み込みにはハッシュが必要なので、どのキーを要求するかを決定することができます。

1
追加された
もしあなたがそれに満足しているなら、この答えのチックアウトラインをチェックしてください(感謝を言うために)
追加された 著者 Martin Lyne,
あなたの答えにたくさん感謝します。
追加された 著者 Al Amin,