用來解決分佈式系統中,HASH節點發生變化對原有分配策略產生的影響,使對原有分配策略的影響是局部性的,達到實現動態擴充節點的目的。使用這種算法時,需要針對某一個節點的數據做局部的調整。
關鍵是環型的節點結構,及一致性的HASH算法策略,如下:
1. 首先檢查虛擬節點當中是否有與當前對象Hash值相等的,如有則直接將對象存入那個Hash值相等的節點,後面的步驟就不繼續了.
2. 如沒有,則找出第一個比當前對象Hash值要大的節點,(節點的Hash值按升序進行排序,圓環上對應按照順時針來排列),即離對象最近的節點,然後將對象存入該節點.
3. 如果沒有找到Hash值比對象要大的Server,證明對象的Hash值是介於最後一個節點和第一個節點之間的,也就是圓環上的E和A之間.這種情況就直接將對象存入第一個節點。