0

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

この戦略により、書き込みスループットが大幅に向上しますが、200 個のキーのどれにそのアイテムが含まれているかわからないため、特定のアイテムの読み取りが難しくなります。この戦略を改善して、より良い読み取り特性を得ることができます。完全に乱数を選択する代わりに、アイテムに固有のものから計算できる数値を選択してください。たとえば、アイテムがデバイスを持っている人を表している場合は、名前またはユーザー ID からハッシュ キー サフィックスを計算します。この計算では、任意の名前 (またはユーザー ID) のセットが与えられた場合に、かなり均等に分散される 1 から 200 の間の数値を計算する必要があります。通常は、単純な計算で十分です (たとえば、人の名前の文字の ASCII 値を 200 で割った積など)。 + 1)。これで、書き込みはハッシュ キー (およびパーティション) に均等に分散されます。また、特定の「デバイス所有者」値を取得するときに必要なハッシュ キーを特定できるため、取得操作を簡単に実行できます。クエリ操作は引き続きすべての D17.x キーに対して実行する必要があり、アプリケーションには、各ハッシュ キー (この場合は 200) のすべてのクエリ結果をマージするためのクライアント側のロジックが必要です。ただし、このスキーマでは、1 つの「ホット」なハッシュ キーがすべてのワークロードを占有することは避けられます。

上記の例で彼らが何を言っているのか誰か説明してもらえますか?

前もって感謝します

アル・アミン

4

1 に答える 1

1

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

于 2012-12-28T17:00:41.550 に答える