一种基于分层分配的多层数据库的布隆过滤器构造方法技术

技术编号:15691051 阅读:140 留言:0更新日期:2017-06-24 03:56
本发明专利技术公开了一种基于分层分配的多层数据库的布隆过滤器构造方法,特征是包括设计建立存储结构、计算组合概率和、求解得分配给每层布隆过滤器的位数、维护存储结构;在进行合并操作时,使处于多层键值数据库(LevelDB)的高层的每个键分配到更多的布隆过滤器比特位数,低层的键分配到较少的布隆过滤器比特位数,其中布隆过滤器的误报率随着比特位数的增多而降低。与LevelDB传统的布隆过滤器构造方法相比,在保证内存开销与之前一致的情况下,本方法可以减少因布隆过滤器的误报带来的硬盘输入输出(I/O)操作,降低硬盘的I/O次数,减少LevelDB查询操作的平均延迟;也可以在保证查询时的期望硬盘I/O次数与传统方法基本相等的情况下,减少布隆过滤器带来的内存开销。

A method of constructing multi-layer bloom filter based on hierarchical distribution database

The invention discloses a method for constructing multi-layer bloom filter based on hierarchical distribution database, includes the establishment of storage structure, design calculation, and combined probability is assigned to each number, maintenance of storage structure layer bloom filter; in the merge operation, so that in the multi key database (LevelDB) of each key distribution the top to bloom filter more bits, bloom filter bits in the lower keys assigned to less, the bloom filter to reduce the false alarm rate with the increase in the number of bits. Compared with the traditional LevelDB bloom filter construction method, to ensure the memory overhead and before the same situation, this method can reduce the disk input and output caused by Bloom filter false positives (I/O) operation, reducing the disk number of I/O, reduce the average delay of LevelDB query operation; also can guarantee equal query expectations the number of disk I/O and traditional method under the condition of reducing the memory overhead brought by bloom filter.

【技术实现步骤摘要】
一种基于分层分配的多层数据库的布隆过滤器构造方法
本专利技术属于计算机数据存储
,具体涉及对采用日志合并树作为主体的多层键值数据库系统的布隆过滤器的比特位数进行分层分配的布隆过滤器构造方法。
技术介绍
美国计算机协会出版的《1970年ACMCACM国际期刊》(CommunicationsoftheACM1970年7月第13卷,问题7,第422-426页)所介绍的布隆过滤器(Space/timetrade-offsinhashcodingwithallowableerrors)是一个空间效率极其高效,用来检测一个元素是否存在与一个集合中的概率数据结构。由谷歌公司开源的部署在硬盘上的基于日志合并树的多层键值数据库系统(LevelDB)在实现和使用布隆过滤器技术时,为每一层存储键值对的文件(SSTable)中的每一个数据块都建立了一个布隆过滤器。自LevelDB1.4版本发行以来,对每层存储键值对的文件的每个数据块的布隆过滤器构造方式都采用每个键分配相同比特位数的方式。这种方法没有考虑到LevelDB每层的键的区间大致相同,因此可能会造成高层的文件访问频率相对于低层较高,布隆过滤器的本文档来自技高网...
一种基于分层分配的多层数据库的布隆过滤器构造方法

【技术保护点】
一种基于分层分配的多层数据库的布隆过滤器构造方法,其特征在于包括以下步骤:第一步:设计建立存储结构,并进行相应的初始化定义如下标识符表示相应的存储结构:L‑‑表示多层键值数据库LevelDB的层数,B‑‑分配给每个键的平均布隆过滤器比特位数,Si—LevelDB第i,0<=i<L,层的存储空间大小,SL‑‑‑LevelDB的总大小,R—LevelDB层间大小的增长倍数,Bi—给处于第i层的键分配的布隆过滤器比特位数,F(Bi)‑‑‑在分配的比特位数是Bi的情况下,布隆过滤器的误报率,P—LevelDB的查询操作找到对应的键的可能性,SN—存储键值对的文件SSTable包含的键值对数...

【技术特征摘要】
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是为了访问所需要查询的键值对,当布隆过滤器发生误报时,可能产生额...

【专利技术属性】
技术研发人员:李永坤张月明张伟韬吕敏许胤龙
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1