最近在看關於一致性hash,其原理就是不僅對資料的key進行hash,同時對節點也進行hash,比如使用節點的ip值來進行hash,然後看key的hash值落在節點的hash值的區間來確定這個key在哪個節點上(我們的應該是資料會發到哪個節點)。這樣在增加新的節點後,關於key的命中的影響僅僅是新增加節點和他臨近的順時鐘位的節點之間的老資料。
後來又接觸到虛擬節點的概念,即每個物理節點劃分成若干個虛擬節點,這樣做的好處是使資料較為均勻的落在不同的節點上,同時也在新增加節點後,key命中的影響降的更低。
這樣我就有了問題,關於增加新的節點,而其他節點的位置不變的情況下,新的節點位於兩個虛假節點之間,那麼確實會使key的命中影響減到最小,但是這樣一來,新的節點所包含的範圍也就非常小了,那麼又和平均負載衝突了,如果要做到平均負載,則是不是要把所有節點的位置都調整一番,那麼key的命中又有影響了,不知道我這樣理解是否正確?如何在不影響負載又使key命中影響最小的情況下增加節點呢?
一致性hash演算法虛擬節點 一致性hash演算法
hash 演算法也叫做雜湊演算法,他可以讓任意長度的資料m對映成為長度固定的值h。hash演算法的第乙個作用就是資料的快速儲存與查詢。寫過程式的人都知道,基本上主流的程式語言裡面都有個資料結構叫做map dictionary或者 hash table 它是根據key來直接訪問結果的資料結構。key的...
一致性hash演算法 面試必備 一致性hash演算法
最近公司在招人,我們準備的問題中有一道是關於一致性hash演算法的問題,只有一些面試者能夠回答上來,而且答的也不是很全面,有的面試者只是聽說過,有的連聽都沒聽過,下面我把一致性hash演算法整理一下分享給大家 一致性雜湊演算法在1997年由麻省理工學院的karger等人在解決分布式cache中提出的...
一致性hash演算法
july部落格16章開始 第一題 全排列,輸入乙個字串,列印出該字串中字元的所有排列 1.個人思路 回溯法建立的排序樹 2.july部落格 遞迴實現,依次固定第乙個字母,後面的交換,和上面描述的使用回溯法相似 c stl 演算法 next permutation的思想,關於next permutat...