[发明专利]一种基于分层分配的多层数据库的布隆过滤器构造方法有效
申请号: | 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次数与传统方法基本相等的情况下,减少布隆过滤器带来的内存开销。
技术领域
本发明属于计算机数据存储技术领域,具体涉及对采用日志合并树作为主体的多层键值数据库系统的布隆过滤器的比特位数进行分层分配的布隆过滤器构造方法。
背景技术
美国计算机协会出版的《1970年ACM CACM国际期刊》(Communications of theACM 1970年7月第13卷,问题7,第422-426页)所介绍的布隆过滤器(Space/time trade-offs in hash coding with allowable errors)是一个空间效率极其高效,用来检测一个元素是否存在与一个集合中的概率数据结构。由谷歌公司开源的部署在硬盘上的基于日志合并树的多层键值数据库系统(LevelDB)在实现和使用布隆过滤器技术时,为每一层存储键值对的文件(SSTable)中的每一个数据块都建立了一个布隆过滤器。自LevelDB 1.4版本发行以来,对每层存储键值对的文件的每个数据块的布隆过滤器构造方式都采用每个键分配相同比特位数的方式。这种方法没有考虑到LevelDB每层的键的区间大致相同,因此可能会造成高层的文件访问频率相对于低层较高,布隆过滤器的误报次数也随之增多,从而因为布隆过滤器的误报产生额外的硬盘I/O操作的问题,延长了查询操作的平均延迟,降低了系统的整体性能。
发明内容
本发明的目的是提出一种基于分层分配的多层数据库的布隆过滤器构造方法,以弥补现有每层中每个文件内的每个键分配固定比特位数的缺陷,在保证布隆过滤器存储空间开销与之前一致的前提下,减少LevelDB的查询操作因布隆过滤器的误报而带来的硬盘输入/输出(I/O)操作,提高LevelDB的查询操作速度,或者在保证LevelDB布隆过滤器整体的误报率与之前基本不变的情况下,减少存储空间即内存的开销。
本发明基于分层分配的多层数据库的布隆过滤器构造方法,其特征在于包括以下步骤:
第一步:设计建立存储结构,并进行相应的初始化
定义如下标识符表示相应的存储结构:
L--表示多层键值数据库(LevelDB)的层数,
B--分配给每个键的平均布隆过滤器比特位数,
Si—LevelDB第i(0<=i<L)层的存储空间大小,
SL---LevelDB的总大小,
R—LevelDB层间大小的增长倍数,
Bi—给处于第i层的键分配的布隆过滤器比特位数,
F(Bi)---在分配的比特位数是Bi的情况下,布隆过滤器的误报率,
P—LevelDB的查询操作找到对应的键的可能性,
SN—存储键值对的文件SSTable包含的键值对数目,
T—存储键值对的文件SSTable的所占的存储空间的大小;
根据硬盘上所部署的键值数据库系统对以上参数进行初始化;
第二步:计算组合概率和
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710078690.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种通过虚拟目录来提升元数据集群性能的方法
- 下一篇:流式数据存储方法及装置