麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > 幫助中心 > 正文

基于一致性hash算法(consistent hashing)的使用詳解

2024-07-09 22:47:51
字體:
來源:轉載
供稿:網友

1 基本場景

比如你有 N 個 cache 服務器(后面簡稱 cache ),那么如何將一個對象 object 映射到 N 個 cache 上呢,你很可能會采用類似下面的通用方法計算 object 的 hash 值,然后均勻的映射到到 N 個 cache ;

hash(object)%N

一切都運行正常,再考慮如下的兩種情況;

1 一個 cache 服務器 m down 掉了(在實際應用中必須要考慮這種情況),這樣所有映射到 cache m 的對象都會失效,怎么辦,需要把 cache m 從 cache 中移除,這時候 cache 是 N-1 臺,映射公式變成了 hash(object)%(N-1) ;

2 由于訪問加重,需要添加 cache ,這時候 cache 是 N+1 臺,映射公式變成了 hash(object)%(N+1) ;

1 和 2 意味著什么?這意味著突然之間幾乎所有的 cache 都失效了。對于服務器而言,這是一場災難,洪水般的訪問都會直接沖向后臺服務器;

再來考慮第三個問題,由于硬件能力越來越強,你可能想讓后面添加的節點多做點活,顯然上面的 hash 算法也做不到。

有什么方法可以改變這個狀況呢,這就是 consistent hashing...

2 hash 算法和單調性

Hash 算法的一個衡量指標是單調性( Monotonicity ),定義如下:

單調性是指如果已經有一些內容通過哈希分派到了相應的緩沖中,又有新的緩沖加入到系統中。哈希的結果應能夠保證原有已分配的內容可以被映射到新的緩沖中去,而不會被映射到舊的緩沖集合中的其他緩沖區。

容易看到,上面的簡單 hash 算法 hash(object)%N 難以滿足單調性要求。

3 consistent hashing 算法的原理

consistent hashing 是一種 hash 算法,簡單的說,在移除 / 添加一個 cache 時,它能夠盡可能小的改變已存在 key 映射關系,盡可能的滿足單調性的要求。

下面就來按照 5 個步驟簡單講講 consistent hashing 算法的基本原理。

3.1 環形hash 空間

考慮通常的 hash 算法都是將 value 映射到一個 32 為的 key 值,也即是 0~2^32-1 次方的數值空間;我們可以將這個空間想象成一個首( 0 )尾( 2^32-1 )相接的圓環,如下面圖 1 所示的那樣。

clip_image001

圖 1 環形 hash 空間

3.2 把對象映射到hash 空間

接下來考慮 4 個對象 object1~object4 ,通過 hash 函數計算出的 hash 值 key 在環上的分布如圖 2 所示。

hash(object1) = key1;

… …

hash(object4) = key4;

clip_image002

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品久久久久久久久久10秀 | a网站在线 | 黄色大片在线免费看 | 羞羞羞网站 | 色网免费观看 | 色淫影院| 一级做人爱c黑人影片 | 中国老女人一级毛片视频 | 婷婷久久网 | 99国产精品自拍 | 国产成人强伦免费视频网站 | 国产精品成人久久久久a级 av电影在线免费 | 国产精品视频亚洲 | 91精品免费在线 | 国产成人精品无人区一区 | www.69色 | 99seav| 男男啪羞羞视频网站 | 精品国产91一区二区三区 | 91懂色| 嫩呦国产一区二区三区av | 美女黄网站免费观看 | 狠狠操人人干 | 婷婷久久青草热一区二区 | 九九热精| 伊人久久国产精品 | 天天夜干 | 91美女福利视频 | 精品国产一区二区三区四区在线 | 免费a视频 | 全黄性性激高免费视频 | 亚洲最大的成人网 | 日本欧美在线播放 | 国产无遮挡一级毛片 | 久久一本日日摸夜夜添 | 精品中文字幕久久久久四十五十骆 | 深夜视频福利 | 宅男噜噜噜66国产在线观看 | 久久久久久亚洲综合影院红桃 | 色婷婷久久久亚洲一区二区三区 | 多男操一女视频 |