應用在 資料庫分庫 等領域:
如果我們採用取餘 或者 普通hash的話.
再一次增加一台機器的過程中, 會導致大面積資料遷移問題.要不然就會出現入庫不平均.
consistent hashing 就是為了解決這個問題的.
初始分配:
將所有機器通過hash演算法分布在乙個2^32次方的乙個圓環上.
當每一次入庫的時候.都會根據hash值分配到離自己最近的機器上.
新增機器後的分配策略:
新增機器只需要移動一台機器的資料就好,不需要影響全域性機器.
這樣就解決了所謂分庫的問題. 至於為什麼是2^32.. 其實這個可以是任何數.. 足夠大就好. 當然相應演算法要自己調整.
ps: 本鏈結自我的iteye blog. 原圖扒自一篇翻譯的consistent hashing的翻譯**. 原諒我當時沒有做記錄是哪一篇. 翻譯作者可以聯絡我.
一致性hash演算法 面試必備 一致性hash演算法
最近公司在招人,我們準備的問題中有一道是關於一致性hash演算法的問題,只有一些面試者能夠回答上來,而且答的也不是很全面,有的面試者只是聽說過,有的連聽都沒聽過,下面我把一致性hash演算法整理一下分享給大家 一致性雜湊演算法在1997年由麻省理工學院的karger等人在解決分布式cache中提出的...
一致性hash演算法虛擬節點 一致性hash演算法
hash 演算法也叫做雜湊演算法,他可以讓任意長度的資料m對映成為長度固定的值h。hash演算法的第乙個作用就是資料的快速儲存與查詢。寫過程式的人都知道,基本上主流的程式語言裡面都有個資料結構叫做map dictionary或者 hash table 它是根據key來直接訪問結果的資料結構。key的...
一致性hash演算法
july部落格16章開始 第一題 全排列,輸入乙個字串,列印出該字串中字元的所有排列 1.個人思路 回溯法建立的排序樹 2.july部落格 遞迴實現,依次固定第乙個字母,後面的交換,和上面描述的使用回溯法相似 c stl 演算法 next permutation的思想,關於next permutat...