[发明专利]一种基于主动哈希和布隆过滤器的高效缓存方法有效

专利信息
申请号: 201310237798.7 申请日: 2013-06-17
公开(公告)号: CN103294822A 公开(公告)日: 2013-09-11
发明(设计)人: 刘建伟;马妍 申请(专利权)人: 北京航空航天大学
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京慧泉知识产权代理有限公司 11232 代理人: 王顺荣;唐爱华
地址: 100191*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 主动 过滤器 高效 缓存 方法
【说明书】:

(一)技术领域:

发明基于主动哈希和布隆过滤器的高效缓存方法,可用于高速缓存中数据的高效查找,属于计算机技术应用领域。

(二)技术背景:

现如今的很多系统,如:电子病历(Electronic Healthcare Record,简称EHR)、域名系统(Domain Name System,简称DNS)等具有数据量大、具备高度隐私性、数据类型多样等特点,造成其安全存储、查找操作的复杂性和艰巨性。对这样数据的处理除了完成基本功能之外,还必须考虑CPU和内存等物理因素,同时要防范常见的网络攻击,如拒绝服务攻击(Deny of Service,简称DoS)。

高速缓存是为了提高数据查找效率而设置的,针对查询流量大等特点,存储时需要采用哈希链式存储,并且由于数据查找操作频繁,因此对查找算法的要求很高。采用哈希均匀的算法是查找效率提高的前提,所以,必须对哈希算法进行优化。对于查找命中的情况,如果能够尽量减少平均查找长度,对于大量查找操作,其好处是明显的。另外,由于实际中攻击者往往大量发送不存在的查询请求,以实施DoS攻击,因此针对查找失败的情况,也要进行算法的优化,避免CPU资源被大量耗尽。

哈希表是一个非常有用的、非常基础的数据结构,在数据的查找方面尤其重要,应用的非常广泛。然而,任何事物都有两面性,哈希也存在缺点,即数据的局部集中性会使散列的性能急剧下降,且越集中,性能越低。数据集中,即搜索键在通过哈希函数运算后,得到同一个结果,指向同一个桶,这时便产生了数据冲突。通常解决数据冲突的方法有:拉链法和开地址法。拉链法我们用的非常多,即存在冲突时,简单的将元素链在当前桶的最后元素的尾部。

分离链接法的做法是将哈希到同一个值的所有元素保留到一个表中,为方便起见,这些表都有表头,因此,表的实现与普通的链表相同。如果空间很紧,可以避免表头。

在传统的哈希表查找算法中,对于访问频繁的关键字,如果在生成哈希表的时候将该节点置于某一链表的后部,则每次都要进行相当多次的链表遍历才能查找到该项,势必会增加平均查找长度,降低效率。

事实上很多事物和现象都存在一个延续性原理,即在最近一段时间内不曾访问过的也在不久的将来访问的可能性也较小。该思想在操作系统的页面淘汰算法中大量使用。一种主动的哈希查找算法也是基于此思想得出的。对于电子病历库来说,如果一个病人的病历在一段时间内没有被访问到,则意味着该病历在不久的将来访问的可能性也比较小。为减少平均查找长度,可将该项向后移动。对不频繁访问节点的向后移动可以转化成对最近访问链表节点的向前移动。在主动的哈希查找算法中,当访问某个节点时,则将该节点前移至链表的表头。以此来减少整个访问过程中的平均查找长度。

对于传统的主动哈希查找算法,虽然已经减小了平均查找长度,但是也存在一定的弊端。可以考虑下面情况。

假设某关键词的访问频率很低,在某一时刻,有一个该词的访问,按照主动哈希查找算法,在访问完该词后,需将该词提至链表头部,之后,该词一直没有访问过,则在有限的一段时间里(该段时间指从该词被访问到该链表其余节点均被访问)有些节点被排在该词之后。这种情况下,必然会增加整个链表的平均查找长度。另外,这种方法对于链表的排序修改过于频繁,也增加了系统的负担。

基于以上原因,已有人提出一种改进的主动哈希查找算法。该算法并非对于每个访问到的节点都前移至表头,而是先作判断,如果该节点属于经常访问的则将其移至表头,如果是偶尔访问到的,则不做位置移动。

至此,问题转化成为如何判定哪些节点属于“经常访问”的。对这个性质的评判标准成为该算法的重点。可以称对节点访问的经常性为“访问度”。在这里,可以用对该节点访问的时间间隔作为判断依据。“时戳”记录了最近一次访问该项的时间,用1970年1月1号零点距该时间的秒数表示。

在这里,将某个节点的访问度描述成当前访问时间和上一次访问时间的时间差(用秒来计算)的倒数,时间间隔越长,则访问度越小。

在哈希表节点中还设置了一个“平均值”为对应链表各节点“访问度”的平均。当访问到一个节点时,如果新计算的“访问度”不小于“平均值”,则将该节点移动至表头;否则,节点位置不动。比较之后,要更新节点的“平均值”为新的平均值。

本发明就是针对EHR、DNS这类特殊数据库系统的高速缓存,提供一种基于主动哈希和布隆过滤器的高效缓存方法。

(三)发明内容:

1、目的:

本发明提供一种基于主动哈希和布隆过滤器的高效缓存方法,以实现查找效率的大幅提高。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310237798.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top