一种基于误判率重建布隆过滤器的方法及系统技术方案

技术编号:39308756 阅读:13 留言:0更新日期:2023-11-12 15:55
本申请提供了一种基于误判率重建布隆过滤器的方法及系统,其特征在于,包括:S1、基于缓存系统的查询结果计算布隆过滤器的第一历史误判率;S2、判断所述第一历史误判率是否大于预设误判率,如果大于预设误判率,则响应于第一重置指令,对布隆过滤器进行重置,重置后获得第一布隆过滤器,将第一历史误判率重置为0;S3、基于第一布隆过滤器查询判断缓存系统存储的数据信息,如果能够查询到,则直接返回查询结果,之后返回执行S1;如果不能查询到则返回不存在。本申请基于统计数据,计算布隆过滤器的误判率,当误判率到达预设值的时候,对布隆过滤器进行重建,以维持布隆过滤器对缓存加速查询的有效性。速查询的有效性。速查询的有效性。

【技术实现步骤摘要】
一种基于误判率重建布隆过滤器的方法及系统


[0001]本专利技术涉及计算机相关的
,尤其涉及一种基于误判率重建布隆过滤器的方法及系统。

技术介绍

[0002]目前已有技术中由于布隆过滤器自身的优点,布隆过滤器应用于缓存系统的数据查询,但缓存中的key/value键值对的不断维护、更新和失效的情况下,因为布隆过滤器的数据结构无法进行逆向维护,导致判准率逐渐下降的情况下,那么随着时间的推移,布隆过滤器查询失误的概率将会上升,那么布隆过滤器的查询效果将大打折扣。
[0003]所以针对以上的技术缺点,本申请基于统计数据,计算布隆过滤器的误判率,当误判率到达预设值的时候,对布隆过滤器进行重建,以维持布隆过滤器对缓存加速查询的有效性。

技术实现思路

[0004]为解决现有状况的不足,本专利技术针对以上
技术介绍
的缺陷,本专利技术提出了一种基于误判率重建布隆过滤器的方法及系统。具体包括:
[0005]本申请第一方面提出了一种基于误判率重建布隆过滤器的方法,其特征在于,包括:
[0006]S1、基于缓存系统的查询结果计算布隆过滤器的第一历史误判率;
[0007]S2、判断所述第一历史误判率是否大于预设误判率,如果大于预设误判率,则响应于第一重置指令,对布隆过滤器进行重置,重置后获得第一布隆过滤器,将第一历史误判率重置为0;
[0008]S3、基于第一布隆过滤器查询判断缓存系统存储的数据信息,如果能够查询到,则直接返回查询结果,之后返回执行S1;如果不能查询到则返回不存在。<br/>[0009]进一步的,所述缓存系统中存储的数据信息以键值对的方式存储。
[0010]进一步的,所述S2中如果所述第一历史误判率不大于预设误判率,则不对现有的布隆过滤器进行重置。
[0011]进一步的,所述S2中对布隆过滤器进行重置包括:
[0012]S21、记录现有布隆过滤器的标记信息,将现有布隆过滤器的更新内容加入缓存区;
[0013]S22、新开辟一块内存初始化新的布隆过滤器,将现有缓存系统的key进行全量扫描,同时更新新的布隆过滤器;
[0014]S23、将所述更新内容加入到新的布隆过滤器,之后将新的布隆过滤器命名为第一布隆过滤器,所述第一布隆过滤器开始提供服务。
[0015]进一步的,所述S3包括:
[0016]S31、收到数据查询请求后,通过布隆过滤器计算数据库中数据信息的标识的若干
次hash结果,如果存在0,则返回不存在查询结果;
[0017]S32、如果所述若干次hash结果都为1,则返回查询结果。
[0018]进一步的,所述方法还包括维护位图bitmap的扩容和重建操作,所述扩容和重建操作为:定时检测位图bitmap的使用量是否超过预设阈值,超过则把位图bitmap进行翻倍扩容,并且根据当前数据库数据重建位图bitmap,在新位图bitmap重建的过程中,设置数据库为只读状态,不允许删除数据,新位图bitmap重建完成后替换旧位图bitmap,并且移除数据库的只读状态。
[0019]进一步的,所述方法进一步具体为:定时检测位图bitmap中值为1的个数是否超过bitmap总长度的预设阈值,如果超过则表示随着数据量的增长,bitmap的碰撞概率会增加,需要对bitmap进行扩容重建,新建一个位图bitmap,容量为原先长度翻倍,由于长度的变化导致hash结果会不同,所以需要对bitmap数据进行重建,即重新遍历数据库中所有数据,把每条数据的数据标识通过布隆过滤器bloomfilter算法进行3次不同的hash调用,得到3个数字下标,在位图bitmap对应的3个数字下标的存储bit位置都设为1。
[0020]本申请第二方面提出了一种基于误判率重建布隆过滤器的装置,其特征在于,包括:
[0021]计算模块,用于基于缓存系统的查询结果计算布隆过滤器的第一历史误判率;
[0022]判断重置模块,用于判断所述第一历史误判率是否大于预设误判率,如果大于预设误判率,则响应于第一重置指令,对布隆过滤器进行重置,重置后获得第一布隆过滤器,将第一历史误判率重置为0;
[0023]查询返回模块,用于基于第一布隆过滤器查询判断缓存系统存储的数据信息,如果能够查询到,则直接返回查询结果,之后返回执行S1;如果不能查询到则返回不存在。
[0024]本申请第三方面提出了一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
[0025]所述存储器存储计算机执行指令;
[0026]所述处理器执行所述存储器存储的计算机执行指令,以实现上述基于误判率重建布隆过滤器的方法。
[0027]本申请第四方面提出了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现基于误判率重建布隆过滤器的方法。
[0028]本专利技术的有益效果为:本申请提出了一种基于误判率触发布隆过滤器自动重建、以及重建流程的方法与系统,能够在布隆过滤器在误判率达到预设值的情况下,重建新的布隆过滤器,实现布隆过滤器对缓存加速查询的有效性。
附图说明
[0029]图1为本专利技术的基于误判率重建布隆过滤器的流程示意图。
[0030]图2为本专利技术的基于误判率重建布隆过滤器的装置结构框图。
[0031]图3为本专利技术的实施例提供的电子设备的结构示意图。
具体实施方式
[0032]为了更清楚的理解本专利技术的内容,将结合附图和实施例详细说明。
[0033]但是应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本专利技术。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
[0034]在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。本专利技术是已有专利技术的改进,所以对于本申请未描述的部分以现有技术来实现。
[0035]本申请涉及的有关技术术语:布隆过滤器:缓存系统为了应对范围查询,底层数据结构往往采用skiplist跳跃表,跳跃表的查询时间复杂度为O(logn)。布隆过滤器为一个bitmap的数据结构,用来快速判断在一个key是否在一个集合set中。通常的流程是往缓存系统新增一个key/value,算法会将key进行并行的3个hash算法,将对应的bitmap都从0设置为1,查询的时候如果3个bitmap都为1则判断该key在缓存系统本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于误判率重建布隆过滤器的方法,其特征在于,包括:S1、基于缓存系统的查询结果计算布隆过滤器的第一历史误判率;S2、判断所述第一历史误判率是否大于预设误判率,如果大于预设误判率,则响应于第一重置指令,对布隆过滤器进行重置,重置后获得第一布隆过滤器,将第一历史误判率重置为0;S3、基于第一布隆过滤器查询判断缓存系统存储的数据信息,如果能够查询到,则直接返回查询结果,之后返回执行S1;如果不能查询到则返回不存在。2.根据权利要求1所述的方法,其特征在于,所述缓存系统中存储的数据信息以键值对的方式存储。3.根据权利要求1所述的方法,所述S2中如果所述第一历史误判率不大于预设误判率,则不对现有的布隆过滤器进行重置。4.根据权利要求1所述的方法,所述S2中对布隆过滤器进行重置包括:S21、记录现有布隆过滤器的标记信息,将现有布隆过滤器的更新内容加入缓存区;S22、新开辟一块内存初始化新的布隆过滤器,将现有缓存系统的key进行全量扫描,同时更新新的布隆过滤器;S23、将所述更新内容加入到新的布隆过滤器,之后将新的布隆过滤器命名为第一布隆过滤器,所述第一布隆过滤器开始提供服务。5.根据权利要求1或2所述的方法,其特征在于,所述S3包括:S31、收到数据查询请求后,通过布隆过滤器计算数据库中数据信息的标识的若干次hash结果,如果存在0,则返回不存在查询结果;S32、如果所述若干次hash结果都为1,则返回查询结果。6.根据权利要求1所述的方法,所述方法还包括维护位图bitmap的扩容和重建操作,所述扩容和重建操作为:定时检测位图bitmap的使用量是否超过预设阈值,超过则把位图bitmap进行翻倍扩容,并且根据当前数据库数据重建位图bitmap,在新位图bitmap重建的过程中,设置数据库为只读状态,不允许删除...

【专利技术属性】
技术研发人员:陈鹏飞孙炎森徐晓剑
申请(专利权)人:中信银行股份有限公司
类型:发明
国别省市:

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

1