简述bloom filter的作用及原理

来源:互联网 发布:js cookie 代码 编辑:程序博客网 时间:2024/09/21 09:28

处理大数据,比如hbase中常常会提到bloom filter 的概念。这个精简的数据结构是干嘛的呢?

 他的作用就是判断某个元素是否属于这个集合。

方法是:对于集合A ,设置一个m位的位数组b。并给定k个hash函数。

     for i in 0...k

       for elem in A(遍历整个集合)

            setbit(maparray,hash(k,elem)) (根据第k个hash函数计算出一个值,并将该位设置为1,如果已经设置为1,则不重复设置)。

  如果要判断一个元素是否是属于这个集合的话,依次调用k个hash函数,当然会映射到位数组b的k个位置,如果映射到的位置不为1,那么就说明他不是该集合当中的。


 但是bloom filter 的致命伤是他的计算并不是每次都是准确的,可能会有失误,将不属于这个集合的元素识别为这个集合的元素。比如y1 映射到的地方出现了0,说明y1不为这个集合的元素,y2就是这个集合的元素,因为y2映射的地方都是1.


  这是典型的以错误率换空间和时间的例子。

阅读(167) | 评论(0) | 转发(0) |
1

上一篇:mmap优缺点

下一篇:合并IO代码分析

相关热门文章
  • nginx + uwsgi支持django框架...
  • Windows的回调机制
  • Dynamo系统架构
  • 编程之路 写给打算进入IT行业...
  • ABAP:SAP报表的性能优化(1)...
  • 这样配置的服务器能够承受8k并...
  • vm里的系统能够ping到nfs,但...
  • bind是否随机从两台master中读...
  • 在win7下用cygwin搭建hadoop,...
  • Mysql的binglog日志能否分库备...
给主人留下些什么吧!~~
原创粉丝点击