Spectral Bloom Filter (3)
来源:互联网 发布:淘学家淘宝网店培训班 编辑:程序博客网 时间:2024/05/21 15:03
上一节中,我们介绍到SBF将所有counter排成一个位串,counter之间完全不留空隙,然后通过建立索引结构来访问counter。现在我们来扩展这个结构,使之能支持增加和删除操作。
删除操作相对来说比较好处理,因为它不会导致存储空间的增加。但是也不能坐视不管,因为大量的删除操作会导致本该释放的空间仍然被占用。SBF采取的策略是,单个删除操作只影响相关的counter,整个存储结构并不更新,但经过一系列连续的删除操作后,整个存储结构会被重建。
增加操作稍微麻烦点,因为它意味着原来分配的存储空间不再够用。SBF采取的应对策略有点像我们平时排工作计划时留buffer的做法。我们在安排工作时,如果一件事估计需要10天才能做完,我们写计划时不会写成刚好10天,因为事态的发展有太多动态变化的因素。我们会在计划里给自己留一点buffer,将10天的工作写成12天。
SBF处理增加操作时也采取相似的策略,它给原本只需要N位的基本位串增加єm(є > 0,m为counter个数)位的buffer,以应对将来可能出现的增加操作。SBF将这єm位buffer插入到m个counter之间,每1/є个counter增加1位buffer。当某个counter需要更多位数时,它就找离自己最近的buffer位。如果找到的buffer位就在自己的尾部,就直接用掉它;如果隔了一个或几个counter,它就将隔的这几个counter往后“推”,然后使用腾出来的buffer位。最后,counter移动之后,别忘了索引结构也需要更新。
到此为止,SBF的基本结构就介绍完毕。回顾一下,SBF是一种扩展版的counting bloom filter(CBF),它不仅支持membership query,还支持元素在multi-set中的出现频率查询。实际上,前者只是后者的一种特例,membership query无非是元素出现频率为1的查询。元素出现频率用k(哈希函数个数)个counter中的最小值来近似表示。这种近似使得一个元素对应的k个counter中,最小的那个比其它的更有价值。基于这个考虑,论文作者又对SBF的构建过程进行了优化,并给出了两种优化算法。下一次我们就来讨论SBF的优化。
- Spectral Bloom Filter (3)
- Spectral Bloom Filter (1)
- Spectral Bloom Filter (2)
- Spectral Bloom Filter (4)
- Spectral Bloom Filter算法
- Bloom Filter
- Bloom Filter
- Bloom Filter
- Bloom Filter
- Bloom Filter
- Bloom Filter
- Bloom Filter
- Bloom Filter
- bloom filter
- bloom filter
- Bloom Filter
- Bloom Filter
- bloom filter
- Ajax核心:XMLHTTP组件相关技术资料
- 重新装2003的net
- 浅谈数据字典的设计(SQL Server 2005)
- tomcat+MySQL 配置JNDI 访问 Dataresource
- 用日志打动老板
- Spectral Bloom Filter (3)
- Sharepoint Service 3.0 命令行错误记录
- 尘埃落定
- asp.net 检测到有潜在危险的 Request.Form 值
- 基于Prototype的圆角工具类
- [翻译]Scott Mitchell 的ASP.NET 2.0数据教程之二十三:基于用户对修改数据进行限制
- 从需求理论看Blog
- HashTable的应用
- 民企老板放弃数亿元资产悄然隐退