下面是.net版本下的測試結(jié)果
分布平均性測試:測試隨機(jī)生成的眾多key是否會平均分布到各個結(jié)點(diǎn)上測試結(jié)果如下:

最上面一行是參數(shù)說明,節(jié)點(diǎn)數(shù)目,總共有多少key,每個節(jié)點(diǎn)應(yīng)該分配key的比例是多少。下面是每個結(jié)點(diǎn)分配到key的數(shù)目和比例。 多次測試后發(fā)現(xiàn),這個Hash算法的節(jié)點(diǎn)分布都在標(biāo)準(zhǔn)比例左右徘徊。
節(jié)點(diǎn)增刪測試:在環(huán)上插入N個結(jié)點(diǎn),每個節(jié)點(diǎn)nCopies個虛擬結(jié)點(diǎn)。隨機(jī)生成眾多key,在增刪節(jié)點(diǎn)時,測試同一個key選擇相同節(jié)點(diǎn)的概率,測試如果如下:
上面三行分別是正常情況,節(jié)點(diǎn)增加,節(jié)點(diǎn)刪除情況下的節(jié)點(diǎn)數(shù)目。下面兩行表示在節(jié)點(diǎn)增加和刪除情況下,同一個key分配在相同節(jié)點(diǎn)上的比例(命中率)。
后來我修改了幾次增刪結(jié)點(diǎn)的數(shù)量,基本驗(yàn)證了JAVA那位仁兄所說的那樣:
多次測試后發(fā)現(xiàn),命中率與結(jié)點(diǎn)數(shù)目和增減的節(jié)點(diǎn)數(shù)量有關(guān)。同樣增刪結(jié)點(diǎn)數(shù)目情況下,結(jié)點(diǎn)多時命中率高。同樣節(jié)點(diǎn)數(shù)目,增刪結(jié)點(diǎn)越少,命中率越高。這些都與實(shí)際情況相符。
這里還有一些鏈接,都是介紹和討論Consistent Hashing的,有興趣的朋友可以看一下,呵呵:)
本文導(dǎo)航
- 第1頁: 首頁
- 第2頁: 相應(yīng)的.NET實(shí)現(xiàn)
- 第3頁: .net版本下的測試結(jié)果