一种基于大数据量和大规模缓存快速释放的方法和系统转让专利

申请号 : CN201610555255.3

文献号 : CN106201918B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 丁陈李超李晓翔

申请人 : 合肥易立迅科技有限公司

摘要 :

本发明公开了一种基于大数据量和大规模缓存快速释放的方法,数据的修改原则是在入缓存的同时将系统“当前存盘序列号”赋值给该数据的缓存标记域;系统拥有“当前存盘序列号”和“前一个存盘序列号”,缓存数据的批量“写入”(也称落盘)硬盘的操作将定周期进行,每一次“写入”过程结束后,修改这2个参数:“当前存盘序列号”=前一个周期的“当前存盘序列号”+1,而“前一个存盘序列号”=前一个周期的“当前存盘序列号”;当系统缓存需要释放空间时,系统将数据的缓存标记域的数值与系统此刻的“前一个存盘序列号”进行比对,大于等于的数据不能清除,反则如果是小于的数据都可以被清除,完成缓存的安全释放。

权利要求 :

1.一种基于大数据量和大规模缓存快速释放的方法,其特征在于,包括以下方法步骤:步骤S1、在系统设置“当前存储磁盘序列号”和“前一个存储磁盘序列号”,缓存数据的批量“写入”存储磁盘的操作将定期进行;

步骤S2、每一次“写入”过程结束后,修改这2个参数:“当前存储磁盘序列号”=前一个时钟周期的“当前存储磁盘序列号”+1,而“前一个存储磁盘序列号”=前一个时钟周期的“当前存储磁盘序列号”;

步骤S3、数据的修改原则是在写入缓存的同时将系统“当前存储磁盘序列号”赋值给该数据的缓存标记域;

步骤S4、当系统缓存需要释放空间时,系统将数据的缓存标记域的数值与系统此刻的“前一个存盘序列号”进行比对,大于等于的数据不能清除,反则如果是小于的数据都可以被清除;

步骤S5、按照数据被访问频率和最近访问时间排序快速完成缓存的安全释放。

2.根据权利要求1所述的一种基于大数据量和大规模缓存快速释放的方法,其特征在于,所述步骤S3中缓存标记只在读入缓存时被赋值一次。

3.根据权利要求1所述的一种基于大数据量和大规模缓存快速释放的方法,其特征在于,所述步骤S2中所有进入缓存的“写入”数据都在下一个写入时钟周期被写入存储磁盘。

4.根据权利要求1所述的一种基于大数据量和大规模缓存快速释放的方法,其特征在于,所述步骤S4中缓存释放队列中所有进入缓存的只读数据进入缓存的时间在写入数据之后,在队列前面的先释放。

5.根据权利要求1所述的一种基于大数据量和大规模缓存快速释放的方法,其特征在于,所述步骤S4中缓存释放队列中所有进入缓存的只读数据都根据被使用的时间戳排队,在队列前面的先释放。

说明书 :

一种基于大数据量和大规模缓存快速释放的方法和系统

技术领域

[0001] 本发明涉及计算机数据缓存技术领域,具体涉及一种基于大数据量和大规模缓存快速释放的方法和系统。

背景技术

[0002] 计算机软件在处理数据时,需要对数据库进行读和写的操作,所有需要写入和读取的数据都会先进入缓存,当处理的数据量不断增加时,就需要增加缓存的容量,而计算机缓存的容量相对于数据总量来讲是有限的。
[0003] 缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。L1Cache(一级缓存)是CPU第一层高速缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般L1缓存的容量通常在32-256KB。L2Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速率与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,普通台式机CPU的L2缓存一般为128KB到2MB或者更高,笔记本、服务器和工作站上用CPU的L2高速缓存最高可达1MB-3MB。
[0004] 缓存只是内存中少部分数据的复制品,所以CPU到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时CPU还是会到内存中去找数据,这样系统的速率就慢下来了,不过CPU会把这些数据复制到缓存中去,以便下一次不要再到内存中去取。随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,又不频繁了,所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据是被访问最频繁的。
[0005] 随着计算机应用的不断发展,需要处理的数据量不断增加,而且数据量的增长总是大于缓存容量的增长,如果按照数据被访问的频繁来选择缓存的数据,而把其它最少访问的数据释放(清除),那么在释放的频率很高和每次释放的容量很大时,就有可能把应该写入磁盘的数据在没有完成写入的情况下清除了。
[0006] 如公开(公告)号为CN105095495A的中国专利,公开了一种分布式文件系统缓存管理方法和系统,其中,方包括:元数据服务器MDS对缓存集合进行检索,确定所述缓存集合中缓存的数目;判断所述缓存的数目是否大于预设最大缓存数,若大于,则向客户端发送缓存释放请求;所述客户端接收到所述缓存释放请求后,根据栈算法将所述缓存集合中当前不使用节点的缓存清除。当MDS判定缓存集合内缓存数目超过最大缓存数时,向客户端发送缓存释放请求,使客户端得知系统对缓存资源的使用情况,并针对当前缓存资源的使用情况做出响应,根据栈算法将缓存集合中当前不使用节点的缓存清除,实现对缓存集合内缓存的有效管理。该方法也不能保证缓存清除的精度,容易把不该清除的缓存清除掉。
[0007] 因此,如何在有限缓存容量的条件下,通过及时释放必要的缓存空间为后续数据处理提供可用的缓存容量,同时又保证缓存释放的安全性和高效性,就是本发明的算法所要达到的效果。

发明内容

[0008] 本发明所要解决的技术问题在于提供一种基于大数据量和大规模缓存快速释放的方法和系统,使得一个数据处理系统能够极大地提高系统缓存容量的利用率,又不增加系统的计算负担和数据写入的安全性。
[0009] 本发明所要解决的技术问题采用以下技术方案来实现:
[0010] 一种基于大数据量和大规模缓存快速释放的方法,包括以下方法步骤:
[0011] 步骤一、在系统设置“当前存储磁盘序列号”和“前一个存储磁盘序列号”,缓存数据的批量“写入”(也称落盘)存储磁盘的操作将定期进行;
[0012] 步骤二、每一次“写入”过程结束后,修改这2个参数:“当前存储磁盘序列号”=前一个时钟周期的“当前存储磁盘序列号”+1,而“前一个存储磁盘序列号”=前一个时钟周期的“当前存储磁盘序列号”;
[0013] 其中,写入时钟周期的结束边缘将触发二个计数器加一,并把这二个相邻的整数赋值给系统的二个存盘序列号:
[0014] 批量修改过程在一个时钟周期完成;
[0015] 步骤三、数据的修改原则是在写入缓存的同时将系统“当前存储磁盘序列号”赋值给该数据的缓存标记域;
[0016] 步骤四、当系统缓存需要释放空间时,系统将数据的缓存标记域的数值与系统此刻的“前一个存储磁盘序列号”进行比对,大于等于的数据不能清除,反则如果是小于的数据都可以被清除;
[0017] 步骤五、按照数据被访问频率和最近访问时间排序快速完成缓存的安全释放。
[0018] 进一步地,所述(步骤三)中缓存标记只在读入缓存时被赋值一次。
[0019] 进一步地,所述(步骤一)中所有进入缓存的“写入”数据都在下一个“写入”周期被写入存储磁盘。
[0020] 进一步地,所述(步骤四)中缓存释放队列中所有进入缓存的只读数据进入缓存的时间在写入数据之后,在队列前面的先释放。
[0021] 进一步地,所述(步骤四)中缓存释放队列中所有进入缓存的只读数据都根据被使用的时间戳排队,在队列前面的先释放。
[0022] 一种基于大数据量和大规模缓存快速释放的系统,包括系统计算单元、缓存单元和系统存储单元,所述系统计算单元用于数据的计算,所述缓存单元用于数据在系统计算单元层读写存储数据时进行缓存,以提高系统的效率,所述系统存储单元用于保存应用所需数据。
[0023] 本发明的有益效果是:
[0024] 1.缓存数据的管理上,采用附加缓存标志位,这是一个U32的整数;
[0025] 2.每次缓存标志位只需赋值一次,就可以完成每个数据的进出缓存的操作,节省了一次赋值的操作,在大数据量大规模缓存管理过程中就极大地减少了系统的计算资源,并且提高了系统速度和效率;
[0026] 3.系统始终维护二个系统标志符,这是二个U32的相邻整数,每次的操作都是最简单的计数加一。
[0027] 4、本发明基于大数据量和大规模缓存快速释放的方法和系统普遍适用于各种数据处理过程中的缓存释放管理,成为解决缓存容量瓶颈的新技术标准。

附图说明

[0028] 图1是本发明基于大数据量和大规模缓存释放的流程图;
[0029] 图2是本发明基于大数据量和大规模缓存释放系统的架构框图。

具体实施方式

[0030] 为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
[0031] 图1是本发明基于大数据量和大规模缓存释放的方法的详细流程图,包括以下步骤:
[0032] 步骤101:在系统设置“当前存储磁盘序列号”和“前一个存储磁盘序列号”,缓存数据的批量“写入”(也称落盘)磁盘的操作将定期进行。
[0033] 当系统重新启动时,将这二个系统存储磁盘序列号立即读入缓存
[0034] 步骤102:每一次“写入”过程结束后,修改这2个参数:“当前存储磁盘序列号”=前一个周期的“当前存储磁盘序列号”+1,而“前一个存储磁盘序列号”=前一个周期的“当前存储磁盘序列号”。
[0035] 步骤102具体包括如下过程:
[0036] 写入时钟周期的结束边缘将触发二个计数器加一,并把这二个相邻的整数赋值给系统的二个存储磁盘序列号:
[0037] 步骤103:数据写入缓存的同时将系统“当前存储磁盘序列号”赋值给该数据的缓存标记域。
[0038] 批量修改过程在一个时钟周期完成。
[0039] 步骤104:系统将数据的缓存标记域的数值与系统此刻的“前一个存储磁盘序列号”进行比对,大于等于的数据不能清除,反则如果是小于的数据都可以被清除。
[0040] 如图2所示,本发明基于大数据量和大规模缓存释放的系统包括系统计算单元,缓存单元,系统存储单元;
[0041] 所述系统计算单元用于数据的计算。
[0042] 所述缓存单元用于数据在系统计算单元层读写存储数据时进行缓存,以提高系统的效率;
[0043] 所述系统存储用于保存应用所需数据。
[0044] 本发明揭示的基于大数据量和大规模缓存释放方法和系统,实现了以最低限度的附加计算量,获得缓存空间的高效快速安全利用,解决了大数据条件下缓存容量快速释放和数据写入安全的矛盾。
[0045] 以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。