[发明专利]一种高并发和高空间利用率的分布式缓存方法在审
申请号: | 201410811138.X | 申请日: | 2014-12-22 |
公开(公告)号: | CN104504076A | 公开(公告)日: | 2015-04-08 |
发明(设计)人: | 马建峰;沈伟;李金库;卢笛;沈玉龙 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F12/08;H04L29/08 |
代理公司: | 西安通大专利代理有限责任公司61200 | 代理人: | 徐文权 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并发 空间 利用率 分布式 缓存 方法 | ||
1.一种高并发和高空间利用率的分布式缓存方法,其特征在于,该方法包括下述步骤:
步骤1,哈希算法的优化,用Hopscotch hashing构建四张哈希表,并对Hopscotch hashing的哈希数据结构进行改进;
步骤2,页面置换算法的优化,对原有LRU置换机制进行改进优化,将近期最少使用LRU算法基于双向链表的实现替换为双向循环链表,并且添加hand指针指向需要置换的数据;
步骤3,判断Hopscotch哈希算法在并发改进后数据是否存在,若存在,则进入下一步,若不存在,则判断内存空间是否充足;
步骤4,判断内存空间是否充足,根据缓存系统的内存大小判断数据是否能够存储,如果内存空间不足,则进行下一步页面置换机制;如果空间足够,即可存储数据,自此,完成高并发和高空间利用率的分布式缓存。
2.根据权利要求1所述的分布式缓存方法,其特征在于,所述步骤1中,对Hopscotch hashing的哈希数据结构进行改进,包括下述步骤:
1a)Hopscotch哈希算法初始化构建四张哈希表,这些哈希表并行排列,通过二位数组来维护这一哈希表数据结构;
1b)添加记录时,从0行开始,该记录通过哈希函数得到其在0行的哈希表位置,如果该位置为空,则直接插入该位置;如果不为空,则继续探测下一行相同位置,以此类推;
1c)如果到达第3行,该位置不为空,故在此行再进行Hopscotch hashing移位过程;
1d)如果第3行的哈希表的位置已满,则移向上一行,在进行1c)的操作。
3.根据权利要求1所述的分布式缓存方法,其特征在于,所述步骤1中,仅允许一次只有一个写线程对一个哈希表进行操作;每次只对一个哈希表进行线性探测移位空间。
4.根据权利要求1所述的分布式缓存方法,其特征在于,所述步骤2中,对原有LRU置换机制进行改进优化,包括以下步骤:
2a)hand指针在循环链表中指向需要置换的元素;
2b)更新操作update,在缓存中查询一个关键字后,更新该关键字的状态;
2c)删除操作evict,当追加新纪录时缓存空间不足,需要选择移除的关键字。
5.根据权利要求1所述的分布式缓存方法,其特征在于,所述步骤3中,判断Hopscotch哈希算法在并发改进后数据,执行过程包括:
3a)从指针所指向的当前位置为起点,对循环队列进行搜索,搜索A=0且M=0的第一类页面,每次将指向的第一类页面作为所选中的淘汰页,不改变访问位A在第一次扫描链表时;
3b)如果步骤3a)失败,即搜索一圈后未遇到一类页面,则开始进行第二轮扫描,搜索A=0且M=1的二类页面,将每次所遇到的第一个这类页面作为淘汰页,将所有扫描过的页面的访问位都清零在第二轮扫描时;
3c)如果第步骤3b)失败,即没有找到二类页面,则将指针指向开始的位置,并将所有的访问位清零;然后重复步骤(3a)~(3b),直至找到被淘汰页。
6.根据权利要求1所述的分布式缓存方法,其特征在于,所述步骤4中,判断内存空间是否充足,进行数据存储,包括下述步骤:
4a)Update函数在每次关键字访问时简单地将其设置为1;
4b)Evict依据hand的指向来检查此比特位所处状态,如果为0,我们则选择相应的key/value对象进行替换;若为1,则将此位重置为0并且将hand在双向循环链表中向前移动直到出现比特位为0。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学;,未经西安电子科技大学;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410811138.X/1.html,转载请声明来源钻瓜专利网。