在高速缓存中选择数据进行刷盘的方法和装置制造方法及图纸

技术编号:9667840 阅读:150 留言:0更新日期:2014-02-14 06:12
本发明专利技术实施例提供一种在高速缓存中选择数据进行刷盘的方法和装置,一种在高速缓存中选择数据进行刷盘的方法包括:将高速缓存中待处理数据区域分割为至少一个由连续存储有数据的存储单元组成的第一数据块,所述第一数据块中存储脏数据的存储单元所占比例不低于预设阈值,所述待处理数据区域中所有存储脏数据的存储单元均位于所述第一数据块内;为每一个所述第一数据块生成一个输入/输出指令;将所述输入/输出指令发送到目标存储器中,以使所述目标存储器存储所述第一数据块。本发明专利技术实施例提供的在高速缓存中选择数据进行刷盘的方法和装置,用于提高对高速缓存的刷盘效率并节约带宽。

【技术实现步骤摘要】
在高速缓存中选择数据进行刷盘的方法和装置
本专利技术实施例涉及数据存储
,尤其涉及一种在高速缓存中选择数据进行刷盘的方法和装置。
技术介绍
在计算机系统中,为了弥补低速设备和高速设备之间的巨大性能差异,需要使用高速缓存(cache),cache广泛存在于各种计算机系统中,例如计算机CPU与内存之间、内存和外部硬盘之间等。Cache的容量一般较小,但速度高于低速设备而接近高速设备,在系统中设置cache可以提高低速设备的数据读写速度。然而cache的容量是远远小于低速设备的,因此必然需要对cache中的数据进行换入换出处理。以硬盘作为低速设备,一部分内存作为cache为例,从硬盘中读取并存入cache的数据和硬盘上存储的数据相同,称之为干净数据;从外部新写入cache的数据或者从硬盘读取到cache后又被修改的数据称之为脏数据。对于干净数据,可以直接释放其所占的cache资源;而对于脏数据,为了避免数据丢失,需要将其写到硬盘中后,使其转变为干净数据后,再释放其所占的cache资源。把脏数据写入硬盘中的过程称之为刷盘,刷盘的效率直接影响整个系统的输入输出(InputandOutput,I/O)性能。现有的刷盘方法中,最简单的是对于cache中的某一存储区域,首先确定其中包含脏数据的数据块,然后分别为每个包含脏数据的数据块生成一个写I/O指令,并发送给硬盘进行存储,但这种方法会针对每个不连续的包含脏数据的数据块生成一个写I/O指令,存在下发写I/O指令过多的问题,刷盘效率较低。为了提高刷盘效率,可以对于cache中的某一存储区域,首先在该区域中找到包含尽量多的脏数据的连续数据块,然后对该连续数据块生成一个写I/O指令,并发送给硬盘进行存储,但这种方法中一段连续的数据块中可能包含过多的干净数据,在刷盘过程中可能存在浪费带宽的问题。
技术实现思路
本专利技术实施例提供一种在高速缓存中选择数据进行刷盘的方法和装置,用于提高对高速缓存的刷盘效率并节约带宽。第一方面提供一种在高速缓存中选择数据进行刷盘的方法,包括:将高速缓存中待处理数据区域分割为至少一个由连续存储有数据的存储单元组成的第一数据块,所述第一数据块中存储脏数据的存储单元所占比例不低于预设阈值,所述待处理数据区域中所有存储脏数据的存储单元均位于所述第一数据块内;为每一个所述第一数据块生成一个输入/输出指令;将所述输入/输出指令发送到目标存储器中,以使所述目标存储器存储所述第一数据块。在第一方面第一种可能的实现方式中,所述第一数据块头部和尾部的存储单元中均存储有脏数据。结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述将高速缓存中待处理数据区域分割为至少一个由连续存储有数据的存储单元组成的第一数据块,包括:将所述高速缓存中待处理的数据区域分割为至少一个由连续存储有数据的存储单元组成的第二数据块,所述第二数据块头部和尾部的存储单元均存储有脏数据,所述待处理数据区域中所有存储脏数据的存储单元均位于所述第二数据块内;若所述第二数据块中存储脏数据的存储单元所占比例低于预设阈值,则去除所述第二数据块中连续存储干净数据的存储单元中最长的一段存储单元,并将剩余的两段存储单元分别作为新的第二数据块;当所述第二数据块中存储脏数据的存储单元所占比例不低于预设阈值时,将所述第二数据块作为所述第一数据块。结合第一方面第二种可能的实现方式,在第三种可能的实现方式中,所述将所述高速缓存中待处理的数据区域分割为至少一个由连续存储有数据的存储单元组成的第二数据块,包括:将所述高速缓存中待处理的数据区域分割为至少一个由连续存储有数据的存储单元组成的第三数据块,所述第三数据块头部和尾部的存储单元均连接未储存数据的存储单元,所述待处理数据区域中所有存储脏数据的存储单元均位于所述第三数据块内;将存储有脏数据的第三数据块作为第四数据块。将所述第四数据块中第一个存储有脏数据的存储单元到最后一个存储有脏数据的数据单元之间连续的存储单元作为所述第二数据块。结合第一方面至第一方面第三种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,所述将高速缓存中待处理数据区域分割为至少一个由连续存储有数据的存储单元组成的第一数据块之前,还包括:根据所述目标存储器当前数据读写状态确定所述预设阈值。结合第一方面至第一方面第四种可能的实现方式中任一种可能的实现方式,在第五种可能的实现方式中,所述存储单元的大小为所述目标存储器最小访问单位的大小。结合第一方面至第一方面第五种可能的实现方式中任一种可能的实现方式,在第六种可能的实现方式中,所述目标存储器包括机械式硬盘。第二方面提供一种在高速缓存中选择数据进行刷盘的装置,包括:分割模块,用于将高速缓存中待处理数据区域分割为至少一个由连续存储有数据的存储单元组成的第一数据块,所述第一数据块中存储脏数据的存储单元所占比例不低于预设阈值,所述待处理数据区域中所有存储脏数据的存储单元均位于所述第一数据块内;生成模块,用于为每一个所述第一数据块生成一个输入/输出指令;发送模块,用于将所述输入/输出指令发送到目标存储器中,以使所述目标存储器存储所述第一数据块。在第二方面第一种可能的实现方式中,所述分割模块,还用于使所述第一数据块头部和尾部的存储单元中均存储有脏数据。结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述分割模块,包括:分割单元,用于将所述高速缓存中待处理的数据区域分割为至少一个由连续存储有数据的存储单元组成的第二数据块,所述第二数据块头部和尾部的存储单元均存储有脏数据,所述待处理数据区域中所有存储脏数据的存储单元均位于所述第二数据块内;判断单元,用于若所述第二数据块中存储脏数据的存储单元所占比例低于预设阈值,则去除所述第二数据块中连续存储干净数据的存储单元中最长的一段存储单元,并将剩余的两段存储单元分别作为新的第二数据块;确定单元,用于当所述第二数据块中存储脏数据的存储单元所占比例不低于预设阈值时,将所述第二数据块作为所述第一数据块。结合第二方面第二种可能的实现方式,在第三种可能的实现方式中,所述分割单元,具体用于将所述高速缓存中待处理的数据区域分割为至少一个由连续存储有数据的存储单元组成的第三数据块,所述第三数据块头部和尾部的存储单元均连接未储存数据的存储单元,所述待处理数据区域中所有存储脏数据的存储单元均位于所述第三数据块内;将存储有脏数据的第三数据块作为第四数据块。将所述第四数据块中第一个存储有脏数据的存储单元到最后一个存储有脏数据的数据单元之间连续的存储单元作为所述第二数据块。结合第二方面至第二方面第三种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,还包括:预处理模块,用于根据所述目标存储器当前数据读写状态确定所述预设阈值。结合第二方面至第二方面第四种可能的实现方式中任一种可能的实现方式,在第五种可能的实现方式中,所述存储单元的大小为所述目标存储器最小访问单位的大小。结合第二方面至第二方面第五种可能的实现方式中任一种可能的实现方式,在第六种可能的实现方式中,所述目标存储器包括机械式硬盘。本实施例提供的在高速缓存中选择数据进行刷盘的方法和装置,通过将高速缓存中待处理的数据区域分割为至少一个第一本文档来自技高网
...
在高速缓存中选择数据进行刷盘的方法和装置

【技术保护点】
一种在高速缓存中选择数据进行刷盘的方法,其特征在于,包括:将高速缓存中待处理数据区域分割为至少一个由连续存储有数据的存储单元组成的第一数据块,所述第一数据块中存储脏数据的存储单元所占比例不低于预设阈值,所述待处理数据区域中所有存储脏数据的存储单元均位于所述第一数据块内;为每一个所述第一数据块生成一个输入/输出指令;将所述输入/输出指令发送到目标存储器中,以使所述目标存储器存储所述第一数据块。

【技术特征摘要】
1.一种在高速缓存中选择数据进行刷盘的方法,其特征在于,包括:将高速缓存中待处理数据区域分割为至少一个由连续存储有数据的存储单元组成的第一数据块,所述第一数据块中存储脏数据的存储单元所占比例不低于预设阈值,所述待处理数据区域中所有存储脏数据的存储单元均位于所述第一数据块内;为每一个所述第一数据块生成一个输入/输出指令;将所述输入/输出指令发送到目标存储器中,以使所述目标存储器存储所述第一数据块;所述第一数据块头部和尾部的存储单元中均存储有脏数据;所述将高速缓存中待处理数据区域分割为至少一个由连续存储有数据的存储单元组成的第一数据块,包括:将所述高速缓存中待处理的数据区域分割为至少一个由连续存储有数据的存储单元组成的第二数据块,所述第二数据块头部和尾部的存储单元均存储有脏数据,所述待处理数据区域中所有存储脏数据的存储单元均位于所述第二数据块内;若所述第二数据块中存储脏数据的存储单元所占比例低于预设阈值,则去除所述第二数据块中连续存储干净数据的存储单元中最长的一段存储单元,并将剩余的两段存储单元分别作为新的第二数据块;当所述第二数据块中存储脏数据的存储单元所占比例不低于预设阈值时,将所述第二数据块作为所述第一数据块。2.根据权利要求1所述的方法,其特征在于,所述将所述高速缓存中待处理的数据区域分割为至少一个由连续存储有数据的存储单元组成的第二数据块,包括:将所述高速缓存中待处理的数据区域分割为至少一个由连续存储有数据的存储单元组成的第三数据块,所述第三数据块头部和尾部的存储单元均连接未储存数据的存储单元,所述待处理数据区域中所有存储脏数据的存储单元均位于所述第三数据块内;将存储有脏数据的第三数据块作为第四数据块;将所述第四数据块中第一个存储有脏数据的存储单元到最后一个存储有脏数据的数据单元之间连续的存储单元作为所述第二数据块。3.根据权利要求1或2所述的方法,其特征在于,所述将高速缓存中待处理数据区域分割为至少一个由连续存储有数据的存储单元组成的第一数据块之前,还包括:根据所述目标存储器当前数据读写状态确定所述预设阈值。4.根据权利要求1或2所述的方法,其特征在于,所述存储单元的大小为所述目标存储器最小访问单位的大小。5.根据权利要求...

【专利技术属性】
技术研发人员:冯宇
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1