2015-02-06 137 views
1

我已經使用DynamoDB一段時間了。Amazon DynamoDB哈希算法

有人告訴我,我插入的hashkey不是那麼統一,有一個分區的熱點。

我可以用哈希算法來判斷我的哈希鍵嗎?

+0

通常,熱點是由單個熱鍵引起的,所以知道散列算法可能沒有多大幫助。你有可能在你的請求中記錄散列鍵並計算訪問次數嗎? – 2015-02-18 00:12:45

回答

0

DynamoDB不公開其內部散列算法,但不應該影響散列鍵分佈。一個好的散列算法會隨機散佈你的散列鍵值(即「key1」和「key2」將散列成兩個彼此不相關的字符串)。

如果您遇到DynamoDB表中的熱鍵問題,則可能意味着您比其他人更頻繁地訪問一個哈希鍵(或一小部分哈希鍵),或者您的哈希鍵值分佈不夠(即沒有足夠的唯一值)。

你從哪裏得到有關分區熱點的信息?回到這個源代碼並挖掘更多不均勻分佈的hashkey值的細節可能會有所幫助。

+0

我想知道發電機是如何散列密鑰的,不管他們只是選擇我的散列密鑰的第一個字符,還是喜歡使用md5(hashkey)進行分配。 – Zagfai 2015-02-10 03:23:56

+0

我想它是整個hashkey,因爲這是確保它是一個正確的哈希函數的唯一方法。 – 2015-02-10 19:12:53

+0

是的,我確實認爲,但沒有任何支持我們的想法。 – Zagfai 2015-02-12 12:41:10