たとえば、ハッシュ キーがデバイス 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 つの「ホット」なハッシュ キーがすべてのワークロードを占有することは避けられます。
上記の例で彼らが何を言っているのか誰か説明してもらえますか?
前もって感謝します
アル・アミン