d-left和cuckoo hash

来源:互联网 发布:双十一淘宝退货率 编辑:程序博客网 时间:2024/05/18 19:19

Andrew Zhang
Nov 16, 2017

一、d-left hashing
以2-left hashing为例,两个相同长度的hash表,T1和T2,分配对应两个hash函数,h1和h2。存储一个key时,分别用两个hash函数h1和h2计算两个位置h1[key]和h2[key],然后看看两个hash table对应位置有没有空,只要任意一个有空就可以将此key放在对应位置。
当采用d对hash表和hash函数时就是d-left hashing。

二、d-left counting bloom filter
counting bloom filter可以解决bloom filter无法删除元素的问题。但是会因为负载不均衡,会浪费很多空间。d-left counting bloom filter结合d-left的思路可以使得存储的信息更均衡,很好的解决了这个问题。

三、cuckoo hash
采用d-left hash的时候会存在插入一个key的时候,d个hash函数得到的位置都满了,cuckoo hash的思路时在这d个位置随便找一个元素,踢走,进行重hash,然后把key插入到这个位置,如果被踢走的元素hash的d位置也是全部满了,那就继续踢。。。

原创粉丝点击