[发明专利]一种高并发和高空间利用率的分布式缓存方法在审
申请号: | 201410811138.X | 申请日: | 2014-12-22 |
公开(公告)号: | CN104504076A | 公开(公告)日: | 2015-04-08 |
发明(设计)人: | 马建峰;沈伟;李金库;卢笛;沈玉龙 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F12/08;H04L29/08 |
代理公司: | 西安通大专利代理有限责任公司61200 | 代理人: | 徐文权 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并发 空间 利用率 分布式 缓存 方法 | ||
技术领域
本发明属于计算机科学与技术领域,涉及到一种高并发和高空间利用率的分布式缓存系统,是一种基于Memcached系统而提出的提高并发执行效率和空间利用率的方法。
背景技术
Memcached作为一个高性能分布式缓存系统在云计算中得到了广泛的应用,它通过在内存中建立缓存来减少数据访问次数,提高读写速度。然而,随着大规模云计算技术和Web应用的快速发展,数据存储数量和速度成指数倍增长,Memcached在空间利用率和并发执行效率上已无法满足日益增长的快速数据读写需求。因此,对Memcached的性能优化成为目前亟待解决的问题。
Memcached是偏重读操作的工作负载情况,如果读操作没有被优化,锁被广泛引用在查询路径中,就需要寻求移除查询路径中的所有障碍来提高Memcached并发访问,故提出一种哈希算法替换Memcached原有链地址哈希算法提高并发访问效率。
Hopscotch哈希表是一组桶。Hopscotch方法关键特征就是在任何给予items桶相邻桶的概念。这相邻的特性就是在任一个相邻的桶中查找所想要的item的开销与在本身桶中查找item的开销相同或者相近。Hopscotch哈希算法将试图将一个item放入近邻点,可能是以置换其他items为代价。Hopscotch哈希算法使用一个简单的哈希函数h。item散列到一个条目总是会在该条目中或者在其相邻的H-1个条目中发现,且H(例如,H可以是标准机器字节,为32)是一个常数。换句话说,近邻点是一个“虚拟”的桶,是一个固定大小和相邻的H-1个桶覆盖的。每个条目包含一个跳跃信息字,一个H比特的位图。
下面是Hopscotch哈希算法如何添加x记录使用:从位置i开始,使用线性探测找在索引j处找到空的条目;如果索引j处的条目为空并且j是在i的的范围内,则将x放在j处并且返回;否则,j与i相距很远,即超过了H的范围。为了创建一个接近i的空条目,找到一个item y其散列值位于i与j之间,但要在j的范围内,而且该散列值条目位于j的下面。置换y到索引j得到一个新的空槽与i接近。重复上述操作,如果没有这样的item存在,或者表已经满了,则扩容和重新散列哈希表。
Memcached在数据删除方面有效利用资源。数据不会真正从Memcached缓存中删除,即不会释放已经分配的内存,在记录过期时,该记录对外是不可见的,而该记录的位置可以重新插入数据。Memcached的废除机制是采用惰性废除方法,CPU不会监视记录的时间戳,只是在查询记录时检查时间戳,获取记录的废除时间,从而判断是否过期,故Memcached不会在过期监视上浪费CPU时间。同时追加新纪录空间不足时,采用近期最少使用算法对新纪录进行空间分配。严格的LRU算法对内存的管理,能够确保关键字被安全废除,同时也造成了同步的瓶颈,因为所有缓存更新必须序列化;同时也会让一些短期使用的关键字长期在内存中存在,直到关键字到达LRU链表的末端,从而浪费内存。LRU算法在Memcached系统中是基于双向链表实现的,但是其插入和读取记录时都需要调整记录在LRU表中的位置,而且这两个操作在Memcached中却是上锁的,这很不利于并发访问,在Memcached偏重读操作为主的工作负载情况下,对于读取记录操作过程中添加锁机制是不合理的,所以这也是不利于并发控制机制和空间利用率的瓶颈之一。
发明内容
本发明的目的在于针对上述已有技术的不足,提出了一种高并发和高空间利用率的分布式缓存方法。本发明通过替换和改进缓存管理算法,优化锁机制,以及改进哈希算法,不仅在空间利用率上有所提高,而且提高了并发访问控制能力,有效地解决因内存碎片而造成无法高效地利用空间的问题。
为了实现上述目的,提出一种改进的哈希算法提高哈希表的读写并发访问效率,以及提高空间效率的方法,根据LRU页面置换算法在Memcached缓存系统的实现方式,使得缓存管理的空间效率和并发更新缓存,本发明在LRU缓存置换的基础上实现了一种可以提高空间效率和改进一种哈希算法来提高并发控制效率的方法。
本发明的技术方案是这样实现的:
一种高并发和高空间利用率的分布式缓存方法,该方法包括下述步骤:
步骤1,哈希算法的优化,用Hopscotch hashing构建四张哈希表,并对Hopscotch hashing的哈希数据结构进行改进;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学;,未经西安电子科技大学;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410811138.X/2.html,转载请声明来源钻瓜专利网。