一种长短周期访问频度的全局共享缓存替换方法

文档序号:6403158阅读:158来源:国知局
专利名称:一种长短周期访问频度的全局共享缓存替换方法
技术领域
本发明涉及计算机应用领域,具体地说是一种长短周期访问频度的全局共享缓存替换方法。
背景技术
网络上的数字化信息呈爆炸性增长,到2020年,全球数据量将扩大50倍,同时数据呈现了高速,多样性的特点,数据多样性主要是由于新型多结构数据,以及包括网络日志、社交媒体、互联网搜索、手机通话记录及传感器网络等数据类型造成。同时主机端的数量也呈现级数级增长,不同的主机端对I/O处理需求在响应时间、传输带宽、传输粒度等方面迥然不同,伴随着这些需求的产生,多控磁盘阵列应运而生,多控磁盘阵列采用以全局缓存为核心,控制器、缓存单元间通过交叉矩阵开关互连的体系结构。缓存单元为单独的物理部件,通过冗余的Crossbar交换链路实现与各控制器的无阻塞、高带宽数据传输。所有缓存单元组成全局共享缓存,并对所有控制器可见,且各控制器对其具有平等的控制权。全局共享缓存做为多控磁盘阵列的核心组成部分,如何对其进行管理优化以满足不同的业务需求将成为系统性能关键瓶颈之一。

发明内容
本发明的目的是提供一 种长短周期访问频度的全局共享缓存替换方法。本发明的目的是按以下方式实现的,基于块的访问频度值来对页进行替换,同时兼顾了长周期和短周期的数据访问类型,有效地提高了缓存命中率,系统包括映射管理器模块,缓存替换处理模块,缓存分配处理模块,镜像处理模块和cache —致性处理模块五个模块,其中:
映射管理器模块,用于本地内存和共享虚拟内存地址空间的映射,它的功能是将本地内存映射到全局共享内存地址空间中并维持数据的一致性;
缓存替换处理模块,用于全局共享缓存的替换处理,在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断,当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间;
缓存分配处理模块,使用两级内存管理策略,使用多级页表的方式来进行地址转换,为使共享空间的分配尽量均匀,系统共享内存的分配是采用循环分配的方式来进行;
镜像处理模块,用于为了防止单节点失效,在数据读写时,将数据同时写入到两个独立的内存区域中,有效地防止了任一节点由于意外故障而导致缓存里的数据丢失;
cache 一致性处理模块,基于目录的实现方式来保证统多个节点中同一数据的多个副本的一致,它为内存中的每一页维持一目录项,该目录项记录所有当前持有此行副本的节点以及数据块的状态信息,包括是否被写过,是否被某个节点独占还是被多个节点共享,当一个节点欲往某一块写数且可能引起数据不一致时,它就根据目录的内容只向持有此行的备份的那些节点发出使无效或更新信号来维持数据的一致性,具体步骤如下:1)所有缓存单元被组织成为一个全局缓存池,缓存单元因为故障或升级的原因离开或加入缓存池,系统采用缓存资源发现机制,实现无缝增加或减少全局缓存容量,保证存储服务不会受到资源变动的影响,缓存单元通过定期广播资源声明消息主动申明自己部分或者全部的缓存的可用性,新的缓存单元加入时向所有控制器、缓存单元广播资源声明消息,控制器收到之后即把此单元加入可用缓存资源索引中;
2)全局共享缓存有三种运行模式,分别是正常模式、降级模式和直写模式,缓存单元冗余机制采用多控制器冗余机制中的软硬件结合的状态检测机制实现,为了提高可靠性,某缓存单元失效后将只由环形高可用中的前向节点接管其缓存服务,同时缓存池进入降级模式,在正常模式和降级模式中,全局缓存池采用写回模式把缓存数据写入后端物理磁盘,并且在同一时刻容忍任一缓存单元出现故障;极端情况下,系统剩余一个缓存单元运行时,全局共享缓存将采取数据直写模式,直写模式下,缓存单元故障不会对数据完整性和一致性有任何影响;
3)缓存单元同样包含逻辑地址映射机制和远程内存访问协议,实现与缓存客户端模块的逻辑地址映射和数据通信,缓存单元划分为索引区、数据区和镜像区三个部分,索引区用来进行数据的映像与变换,保存本缓存单元所有的数据区页面、镜像区页面的索引,数据区存放存储服务的读写缓存数据,镜像区存放其他控制器发送过来的镜像数据,以及其他缓存单元的索引数据,实现读写·数据、索引数据的全镜像;
4)主机端对数据有两种访问方式:长期周期访问和短期频繁访问,长期周期访问是指数据块在间隔较长的时间内被周期性的重复访问,应用包括日志、定时备份,短期频繁访问是指数据块在较短的时间内频繁的被访问,为最大化缓存命中率,全局缓存中应尽量保存短期被频繁访问的数据,但若短期频繁访问的数据一直未得到访问,那么它们也应先于长期周期访问的数据而被替换出全局缓存,这就需要兼顾长期与短期的访问情况,研究基于长短期访问频度的全局缓存替换处理,为全局缓存的数据块增加4个字节的数据访问频度值,数据块访问频度值由高到低的每个字节,代表了间隔由短到长的周期内,数据块被访问情况,用Bn[i]表示由高到低第η个字节第i位的取值,若在单位时间T内,数据块被访问,则置BO [O]为I,否则置BO [O]为O,每隔8a*T时间,采用如下规则更新数据块访问频度值:
Ba[i+l]=Ba[i] (i=0, I,......, 6)
Ba+l[i+l]=Ba+l[i] (i=0, I,......,6)
Ba+l
=Ba
|| Ba[l] ||......|| Ba[6] || Ba[7]
上面的规则保证,若访问模式为长期周期访问,那么低位字节中将有多位连续为1,若访问模式为短期频繁访问,那么高位字节中将有多位连续为1,而低位字节很少会出现多位连续为I的情况;
5)替换全局缓存中的数据时,每次都选择数据块访问频度值最小的进行替换,这是因为短期频繁访问的数据具有较大的访问频度值,但若在较长一段时期内未被访问,短期频繁访问的数据访问频度值将逐渐小于长期周期访问的数据,这样能保证全局缓存中会尽量保存短期频繁访问的数据,但若在较长一段时期未被访问,它们将先于长期周期访问数据而被替换。本发明的有益效果是:主机端对数据主要有两种访问方式:长期周期访问和短期频繁访问,长期周期访问是指数据块在间隔较长的时间内被周期性的重复访问,而传统的基于老化处理替换策略不能识别这一类型的数据访问,导致缓存在应对此类访问时缓存完全失效,为了解决上述技术问题,本发明提供了一种实现长短周期访问频度的全局共享缓存替换方法。


图1是数据访问频度值示意 图2是全局共享缓存池拓扑图。
具体实施例方式以下结合附图和实例对本发明的技术方案进行详细地阐述。主机端对数据主要有两种访问方式:长期周期访问和短期频繁访问,长期周期访问是指数据块在间隔较长的时间内被周期性的重复访问,而传统的基于老化处理替换策略不能识别这一类型的数据访问,导致缓存在应对此类访问时缓存完全失效。为了解决上述技术问题,本发明提供了一种实现长短周期访问频度的全局共享缓存替换方法,包括映射管理器,缓存替换处理,缓存分配处理,镜像处理和cache —致性处理五个模块,其中:
映射管理器模块,内存映射管理器实现了本地内存和共享虚拟内存地址空间的映射,它的功能是将本地内存映射到全局共享内存地址空间中并维持数据的一致性。缓存替换处理模块,用于全局共享缓存的替换处理,在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间,本替换处理基于数据访问类型,识别长周期数据和短周期频繁访问的数据,依此策略来进行缓存替换。
`
缓存分配处理,使用两级内存管理策略,使用多级页表的方式来进行地址转换。为使共享空间的分配尽量均匀,系统共享内存的分配是采用循环分配的方式来进行。镜像处理模块,用于为了防止单节点失效,在数据读写时,将数据同时写入到两个独立的内存区域中,有效地防止了任一节点由于意外故障而导致缓存里的数据丢失。cache—致性处理模块,基于目录的实现方式来保证统多个节点中同一数据的多个副本的一致,它为内存中的每一页维持一目录项,该目录项记录所有当前持有此行副本的节点以及数据块的状态信息(如是否被写过,是被某个节点独占还是被多个节点共享等)。当一个节点欲往某一块写数且可能引起数据不一致时,它就可以根据目录的内容只向持有此行的备份的那些节点发出使无效或更新信号来维持数据的一致性。所有缓存单元被组织成为一个全局缓存池。缓存单元因为故障或升级等原因离开或加入缓存池,系统采用缓存资源发现机制,实现无缝增加或减少全局缓存容量,保证存储服务不会受到资源变动的影响。缓存单元通过定期广播资源声明消息主动申明自己部分或者全部的缓存的可用性。新的缓存单元加入时向所有控制器、缓存单元广播资源声明消息,控制器收到之后即把此单元加入可用缓存资源索引中。全局共享缓存有三种运行模式,分别是正常模式、降级模式和直写模式。缓存单元冗余机制采用多控制器冗余机制中的软硬件结合的状态检测机制实现。为了提高可靠性,某缓存单元失效后将只由环形高可用中的前向节点接管其缓存服务,同时缓存池进入降级模式。在正常模式和降级模式中,全局缓存池采用写回模式把缓存数据写入后端物理磁盘,并且在同一时刻可以容忍任一缓存单元出现故障;极端情况下,系统剩余一个缓存单元运行时,全局共享缓存将采取数据直写模式。直写模式下,缓存单元故障不会对数据完整性和一致性有任何影响。缓存单元同样包含逻辑地址映射机制和远程内存访问协议,实现与缓存客户端模块的逻辑地址映射和数据通信。缓存单元划分为索引区、数据区和镜像区三个部分。索引区用来进行数据的映像与变换,保存本缓存单元所有的数据区页面、镜像区页面的索引。数据区存放存储服务的读写缓存数据。镜像区存放其他控制器发送过来的镜像数据,以及其他缓存单元的索引数据,实现读写数据、索引数据的全镜像。主机端对数据主要有两种访问方式:长期周期访问和短期频繁访问。长期周期访问是指数据块在间隔较长的时间内被周期性的重复访问,典型应用包括日志、定时备份等。短期频繁访问是指数据块在较短的时间内频繁的被访问。为最大化缓存命中率,全局缓存中应尽量保存短期被频繁访问的数据,但若短期频繁访问的数据一直未得到访问,那么它们也应先于长期周期访问的数据而被替换出全局缓存。这就需要兼顾长期与短期的访问情况,研究基于长短期访问频度的全局缓存替换处理。为全局缓存的数据块增加4个字节的数据访问频度值,
数据块访问频度值由高到低的每个字节,代表了间隔由短到长的周期内,数据块被访问情况。用Bn[i]表示由高到低第η个字节第i位的取值,若在单位时间T内,数据块被访问,则置B0
为1,否则置B0
为O。每隔8a*T时间,采用如下规则更新数据块访问频
度值:
Ba[i+l]=Ba[i] (i=0, I,......, 6)
Ba+l[i+l]=Ba+l[i] (i=0, I,......,6)
Ba+l
=Ba
|| Ba[l] ||......|| Ba[6] || Ba[7]
上面的规则可以保证,若访问模式为长期周期访问,那么低位字节中将有多位连续为1,若访问模式为短期频繁访问,那么高位字节中将有多位连续为1,而低位字节很少会出现多位连续为I的情况。替换全局缓存中的数据时,每次都选择数据块访问频度值最小的进行替换。这是因为短期频繁访问的数据具有较大的访问频度值,但若在较长一段时期内未被访问,短期频繁访问的数据访问频度值将逐渐小于长期周期访问的数据。这样可保证全局缓存中会尽量保存短期频繁访问的数据,但若在较长一段时期未被访问,它们将先于长期周期访问数据而被替换。除说明书所述的技术特征外, 均为本专业技术人员的已知技术。
权利要求
1.一种长短周期访问频度的全局共享缓存替换方法,其特征在于,基于块的访问频度值来对页进行替换,同时兼顾了长周期和短周期的数据访问类型,有效地提高了缓存命中率,系统包括映射管理器模块,缓存替换处理模块,缓存分配处理模块,镜像处理模块和cache 一致性处理模块五个模块,其中: 映射管理器模块,用于本地内存和共享虚拟内存地址空间的映射,它的功能是将本地内存映射到全局共享内存地址空间中并维持数据的一致性; 缓存替换处理模块,用于全局共享缓存的替换处理,在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断,当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间; 缓存分配处理模块,使用两级内存管理策略,使用多级页表的方式来进行地址转换,为使共享空间的分配尽量均匀,系统共享内存的分配是采用循环分配的方式来进行; 镜像处理模块,用于为了防止单节点失效,在数据读写时,将数据同时写入到两个独立的内存区域中,有效地防止了任一节点由于意外故障而导致缓存里的数据丢失; cache 一致性处理模块,基于目录的实现方式来保证统多个节点中同一数据的多个副本的一致,它为内存中的每一页维持一目录项,该目录项记录所有当前持有此行副本的节点以及数据块的状态信息,包括是否被写过,是否被某个节点独占还是被多个节点共享,当一个节点欲往某一块写数且可能引起数据不一致时,它就根据目录的内容只向持有此行的备份的那些节点发出使无 效或更新信号来维持数据的一致性,具体步骤如下: 1)所有缓存单元被组织成为一个全局缓存池,缓存单元因为故障或升级的原因离开或加入缓存池,系统采用缓存资源发现机制,实现无缝增加或减少全局缓存容量,保证存储服务不会受到资源变动的影响,缓存单元通过定期广播资源声明消息主动申明自己部分或者全部的缓存的可用性,新的缓存单元加入时向所有控制器、缓存单元广播资源声明消息,控制器收到之后即把此单元加入可用缓存资源索引中; 2)全局共享缓存有三种运行模式,分别是正常模式、降级模式和直写模式,缓存单元冗余机制采用多控制器冗余机制中的软硬件结合的状态检测机制实现,为了提高可靠性,某缓存单元失效后将只由环形高可用中的前向节点接管其缓存服务,同时缓存池进入降级模式,在正常模式和降级模式中,全局缓存池采用写回模式把缓存数据写入后端物理磁盘,并且在同一时刻容忍任一缓存单元出现故障;极端情况下,系统剩余一个缓存单元运行时,全局共享缓存将采取数据直写模式,直写模式下,缓存单元故障不会对数据完整性和一致性有任何影响; 3)缓存单元同样包含逻辑地址映射机制和远程内存访问协议,实现与缓存客户端模块的逻辑地址映射和数据通信,缓存单元划分为索引区、数据区和镜像区三个部分,索引区用来进行数据的映像与变换,保存本缓存单元所有的数据区页面、镜像区页面的索引,数据区存放存储服务的读写缓存数据,镜像区存放其他控制器发送过来的镜像数据,以及其他缓存单元的索引数据,实现读写数据、索引数据的全镜像; 4)主机端对数据有两种访问方式:长期周期访问和短期频繁访问,长期周期访问是指数据块在间隔较长的时间内被周期性的重复访问,应用包括日志、定时备份,短期频繁访问是指数据块在较短的时间内频繁的被访问,为最大化缓存命中率,全局缓存中应尽量保存短期被频繁访问的数据,但若短期频繁访问的数据一直未得到访问,那么它们也应先于长期周期访问的数据而被替换出全局缓存,这就需要兼顾长期与短期的访问情况,研究基于长短期访问频度的全局缓存替换处理,为全局缓存的数据块增加4个字节的数据访问频度值,数据块访问频度值由高到低的每个字节,代表了间隔由短到长的周期内,数据块被访问情况,用Bn[i]表示由高到低第η个字节第i位的取值,若在单位时间T内,数据块被访问,则置B0
为1,否则置B0
为O,每隔8a*T时间,采用如下规则更新数据块访问频度值:Ba[i+l]=Ba[i] (i=0, I,......, 6) Ba+l[i+l]=Ba+l[i] (i=0, I,......,6) Ba+l
=Ba
|| Ba[l] ||......|| Ba[6] || Ba[7] 上面的规则保证,若访问模式为长期周期访问,那么低位字节中将有多位连续为1,若访问模式为短期频繁访问,那么高位字节中将有多位连续为1,而低位字节很少会出现多位连续为I的情况; 5)替换全局缓存中的数据时,每次都选择数据块访问频度值最小的进行替换,这是因为短期频繁访问的数据具有较大的访问频度值,但若在较长一段时期内未被访问,短期频繁访问的数据访问频度值将逐渐小于长期周期访问的数据,这样能保证全局缓存中会尽量保存短期频繁访问的数据,但若在较长一段时期未被访问,它们将先于长期周期访问数据而被替 换。
全文摘要
本发明提供一种长短周期访问频度的全局共享缓存替换方法,主机端对数据主要有两种访问方式长期周期访问和短期频繁访问,长期周期访问是指数据块在间隔较长的时间内被周期性的重复访问,而传统的基于老化处理替换策略不能识别这一类型的数据访问,导致缓存在应对此类访问时缓存完全失效。为了解决上述技术问题,本发明提供了一种实现长短周期访问频度的全局共享缓存替换方法,该方法包括映射管理器,缓存替换处理,缓存分配处理,镜像处理和cache一致性处理五个模块。
文档编号G06F12/12GK103246616SQ20131019542
公开日2013年8月14日 申请日期2013年5月24日 优先权日2013年5月24日
发明者王恩东, 吕烁, 文中领 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1