[发明专利]一种基于分层分配的多层数据库的布隆过滤器构造方法有效
申请号: | 201710078690.6 | 申请日: | 2017-02-14 |
公开(公告)号: | CN106874458B | 公开(公告)日: | 2019-10-22 |
发明(设计)人: | 李永坤;张月明;张伟韬;吕敏;许胤龙 | 申请(专利权)人: | 中国科学技术大学 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453 |
代理公司: | 安徽省合肥新安专利代理有限责任公司 34101 | 代理人: | 汪祥虬 |
地址: | 230026 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于分层分配的多层数据库的布隆过滤器构造方法,特征是包括设计建立存储结构、计算组合概率和、求解得分配给每层布隆过滤器的位数、维护存储结构;在进行合并操作时,使处于多层键值数据库(LevelDB)的高层的每个键分配到更多的布隆过滤器比特位数,低层的键分配到较少的布隆过滤器比特位数,其中布隆过滤器的误报率随着比特位数的增多而降低。与LevelDB传统的布隆过滤器构造方法相比,在保证内存开销与之前一致的情况下,本方法可以减少因布隆过滤器的误报带来的硬盘输入输出(I/O)操作,降低硬盘的I/O次数,减少LevelDB查询操作的平均延迟;也可以在保证查询时的期望硬盘I/O次数与传统方法基本相等的情况下,减少布隆过滤器带来的内存开销。 | ||
搜索关键词: | 一种 基于 分层 分配 多层 数据库 过滤器 构造 方法 | ||
【主权项】:
1.一种基于分层分配的多层数据库的布隆过滤器构造方法,其特征在于包括以下步骤:第一步:设计建立存储结构,并进行相应的初始化定义如下标识符表示相应的存储结构:L‑‑表示多层键值数据库LevelDB的层数,B‑‑分配给每个键的平均布隆过滤器比特位数,Si—LevelDB第i,0<=i<L,层的存储空间大小,SL‑‑‑LevelDB的总大小,R—LevelDB层间大小的增长倍数,Bi—给处于第i层的键分配的布隆过滤器比特位数,F(Bi)‑‑‑在分配的比特位数是Bi的情况下,布隆过滤器的误报率,P—LevelDB的查询操作找到对应的键的可能性,SN—存储键值对的文件SSTable包含的键值对数目,T—存储键值对的文件SSTable的所占的存储空间的大小;根据硬盘上所部署的多层键值数据库系统对以上参数进行初始化;第二步:计算组合概率和对LevelDB的层数L进行L=L+4操作,即把第0层的4个文件作为前四层;设Pa<i,j>表示查询操作访问至第i层包括第i层,LevelDB的布隆过滤器发生j次误报的组合概率和,其中在第k层,0<=k<L,发生误报的概率为第一步定义的F(Bk),即为0.618Bk;计算出Pa<i,j>满足0<=i<L,1<=j<=(i+1)的所有情况;第三步:求解得分配给每层布隆过滤器的位数当对LevelDB进行查询操作时,所查询的键值对存在于数据库中的可能性为P,不存在于数据库的可能性为1‑P;当键值对存在于数据库中时,至少有一次I/O是为了访问所需要查询的键值对,当布隆过滤器发生误报时,可能产生额外的I/O;而所查询的键值对位于第i层的可能性为
若键值对不存在于数据库中时,则只可能因为布隆过滤器的误报产生额外的I/O次数;由此得出当LevelDB进行查询操作时硬盘I/O次数的期望值EX为:
计算使用LevelDB原本的布隆过滤器构造方法时与基于分层分配的布隆过滤器构造方法的内存开销,其中,使用LevelDB原本的布隆过滤器构造方法的内存开销为分配给LevelDB每个键的布隆过滤器比特位数乘以键值对的数目的总和,即为
使用基于分层分配的布隆过滤器构造方法的内存开销为分配给LevelDB每层的文件内的键的布隆过滤器比特位数乘以该层所包含的键值对的数目的总和,即为
通过枚举分配给LevelDB每层的文件内的键的布隆过滤器比特位数Bi的值‑‑‑‑文件内分给每个键的布隆过滤器比特位数相同都为Bi,其中i的区间为[0,L‑1],Bi的区间为[1,32],都为整数,在保证LevelDB原本的布隆过滤器构造方法与基于分层分配的布隆过滤器构造方法的内存开销差值小于一个指定值的情况下,使得上述期望值EX最小;第四步:维护存储结构把LevelDB部署到主机硬盘上,当LevelDB进行合并操作时,若新生成的SSTable文件将被压往第i层,则给新生成的文件分配比特位数为SN*Bi的布隆过滤器‑‑‑‑即根据本次合并操作新生成的存储键值对的文件被压往的层,用第三步求得的Bi来构造相应的布隆过滤器。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710078690.6/,转载请声明来源钻瓜专利网。
- 上一篇:一种通过虚拟目录来提升元数据集群性能的方法
- 下一篇:流式数据存储方法及装置