[发明专利]一种缓存管理中同步版本方法和装置及其缓存管理系统有效
申请号: | 201110041920.4 | 申请日: | 2011-02-21 |
公开(公告)号: | CN102098344A | 公开(公告)日: | 2011-06-15 |
发明(设计)人: | 司成祥;许鲁;孟晓烜;刘振军;韩晓明 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 缓存 管理 同步 版本 方法 装置 及其 系统 | ||
技术领域
本发明属于信息技术领域,尤其涉及共享缓存管理系统的可靠性。
背景技术
数据缓存技术作为一种重要的I/O性能优化手段被广泛应用于各级存储系统中,它将未来可能被访问的数据保存在主存中,利用应用I/O负载中普遍存在的数据访问局部性原理来加速存储系统的I/O性能,屏蔽慢速磁盘设备对应用性能的影响。网络存储应用模式下,位于IO路径上的后端处理节点上的数据缓存资源,对上层应用的性能有重要的影响。
然而,主存的不可靠性造成了存储性能和可靠性之间的冲突。采用回写(write-back)方式在接收到应用的写请求后将数据写到主存中即返回应答,在后台最大程度的延迟写磁盘,这种方式虽然最大化性能,但其可靠性也最差。由于主存的易失性的特点,在这种情况下如果出现软硬件错误或者断电等异常而导致系统崩溃,会导致数据丢失和数据不可访问性。为了保证缓存的可靠性,传统采用通写(write-through)方式同步的把数据写到磁盘,虽然能够保证数据可靠性,但由于磁盘的机械特性,写性能比异步写性能相差大约一个数量级。
在网络存储应用模式中同样存在存储性能和可靠性之间的冲突。在网络存储应用中,通常采用专有硬件,如NVRAM、缓存磁盘等来解决此冲突,但是需要特殊硬件支持,且价格昂贵,性价比较低,通用性较差;不符合现在基于通用软硬件存储系统发展的技术趋势。随着网络延迟的降低和网络带宽的提高,通过网络传输把写数据备份到空闲节点上的内存,作为写数据缓存的备份。由于数据在另外的节点上保持了备份,而且两个或多个节点同时出现故障的几率很小,因此可以容忍节点的软硬件失效。当一个节点失效重启后,可以从备份节点读入数据,保证了数据的可靠性。另一方面,采用网络内存来存储数据,数据写到网络内存之后即返回写应答,也可以保证较高的数据读写性能。虽然使用网络内存是一种较好的解决缓存可靠性的方法,但仍存在如下的性能问题:(1)资源回收机制效率低:由于可靠性需求,只有主节点把数据真正回写到后端存储上之后,备份节点上的数据才可以进行释放;若备份节点出现资源紧张,则必须等待主节点的回写完成;(2)数据一致性(同步机制)开销很大:在现有技术中基本采用“索引号+版本号”的版本机制来解决一致性问题,为每个数据页维持一个版本,管理开销较大,而且对性能影响较大。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,为网络存储应用模式中的缓存管理提供了同步版本机制及利用版本信息的资源回收机制,在保证数据可靠性的同时,提供高效的数据读写性能,从而打破可靠性和性能的折衷(tradeoff)。
根据本发明的一个方面,本发明提供了一种缓存管理中同步版本方法,其中所述缓存管理将本地节点写向缓存的写请求数据备份到备份节点,所述同步版本方法包括以下步骤:
步骤1,判断全局同步时钟是否到时,如果到时,则在节点之间同步系统版本,使本地节点和备份节点的系统版本保持一致,所述系统版本包括全局版本号,本地版本号和请求序号,其中所述全局同步时钟是一个固定时间;
步骤2,判断本地同步时钟是否到时,如果到时,则在节点内调整系统版本,将所述系统版本的本地版本号增加1,请求序号初始化为0,而全局版本号保持不变,其中所述本地同步时钟是一个固定的短时间;
步骤3,在收到写请求时,将所述系统版本的请求序号增加1,并将写请求的开始版本赋值为当前的系统版本;其中,所述写请求的开始版本包括全局版本号,本地版本号和请求序号。
根据本发明实施例的同步版本方法,在步骤1中的在节点之间同步系统版本包括以下步骤:
将系统版本的全局版本号增加1,本地版本号和请求序号初始化为0;
由本地节点向备份节点发送全局同步请求,备份节点收到全局同步请求,相应地将其当前系统版本的全局版本号增加1,本地版本号和请求序号初始化为0。
根据本发明实施例的同步版本方法,其中,本地同步时钟可根据网络延迟及节点间的时钟误差来动态调整,一般应大于2毫秒;所述全局同步时钟是所述本地同步时钟的n倍,n>0。在本发明的一些实施例中,全局同步时钟设置为30秒;本地同步时钟设置为10毫秒。
根据本发明实施例的同步版本方法,还包括下面的步骤:
步骤4,在写请求的数据被保存到后端存储后将写请求的结束版本赋值为当前的系统版本,并被保存在完成列表中;所述写请求的结束版本包括全局版本号,本地版本号和请求序号,其初始值为0;所述完成列表包含一定数量的被后端存储保存的写请求的开始版本和结束版本信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110041920.4/2.html,转载请声明来源钻瓜专利网。