一种数据处理方法及数据缓存系统的制作方法

文档序号:6494266阅读:181来源:国知局
一种数据处理方法及数据缓存系统的制作方法
【专利摘要】本发明实施例公开了一种数据处理方法及数据缓存系统,应用于数据处理【技术领域】。在本发明实施例的方法中,数据缓存系统可以先确定存储器空间中待读取数据块的第一访问温度,并根据第一访问温度得到第一辐射范围,然后将待读取数据块和第一辐射范围内的数据块读取到缓存空间中。本实施例中数据缓存系统考虑到了对待读取数据块的访问热度即访问温度,及该待读取数据块所影响到的数据块,可以实现尽量将访问频率相当的数据块读取到缓存空间,从而提高了存储器中缓存空间的命中率,进而提高了系统对存储器的输入输出接口的访问效率。
【专利说明】一种数据处理方法及数据缓存系统
【技术领域】
[0001]本发明涉及数据处理【技术领域】,特别涉及数据处理方法及数据缓存系统。
【背景技术】
[0002]缓存(Cache)技术是计算机系统中常见的用于提高数据访问速度的技术,该技术广泛用于在速率不同的存储器之间交换数据时提高低速存储器的访问效率,常见的缓存应用有中央处理器(Central Processing Unit, CPU)缓存和磁盘缓存。
[0003]一般情况下,在缓存中存放着过期数据和预读数据,缓存中的数据被使用到的概率越高,则缓存的命中率越高,缓存带来的数据访问速度的提升也越明显,因此对于缓存中数据的替换和预取是决定缓存效率的重要因素。目前缓存数据的预取主要是通过数据的访问历史,预估即将对缓存数据可能的访问方式,并按照估计的方式将数据读入缓存中,但这种方法不灵活且适应性性差,使得缓存的命中率比较低。

【发明内容】

[0004]本发明实施例提供数据处理方法及数据缓存系统,提高存储器的输入输出接口的访问效率。
[0005]本发明实施例第一方面提供一种数据处理方法,应用于对包括缓存空间和存储器空间的存储器的数据处理,包括:
[0006]确定所述存储器空间中待读取数据块初始的第一访问温度,所述第一访问温度用于指示对所述待读取数据块的访问热度;
[0007]根据确定所述初始的第一访问温度,及预置访问温度和辐射范围的对应关系,确定所述待读取数据块的第一辐射范围,所述第一辐射范围用于指示所述待读取数据块影响到的其它数据块;
[0008]将所述存储器空间中所述待读取数据块,及在所述第一辐射范围内的多个数据块读取到所述缓存空间中。
[0009]本发明实施例第一方面的第一种可能的实现方式中,所述方法还包括:
[0010]建立所述缓存空间中数据块的管理信息表,所述数据管理信息表中包括所述缓存空间中每个数据块的绑定信息,所述绑定信息包括数据块在所述缓存空间中的位置信息和在所述存储器空间中的位置信息。
[0011]结合本发明实施例第一方面,或第一方面的第一种可能实现方式,在本发明实施例的第一方面的第二种实现方式中,所述方法还包括:
[0012]记录并更新所述缓存空间中数据块的访问温度;
[0013]如果第一数据块的访问温度与周边某个数据块的访问温度差超过预置的第一温度差,将所述缓存空间中的第二数据块与所述第一数据块的位置交换,或将所述缓存空间中的第三数据块与所述第一数据块的位置交换;
[0014]所述第二数据块的访问温度与所述周边某个数据块的访问温度之差在预置的第二温度差范围内;所述第三数据块是在物理上与所述周边数据块最近,且在逻辑上与所述第一数据块最近的数据块。
[0015]结合本发明实施例第一方面的第二种可能实现方式,在本发明实施例的第一方面的第三种实现方式中,所述方法还包括:
[0016]将所述存储器空间上储存的所述第一数据块和第二数据块的物理位置,或将所述存储器空间上储存的所述第一数据块和第三数据块的物理位置交换。
[0017]结合本发明实施例第一方面的第二种可能实现方式或第三种实现方式,在本发明实施例的第一方面的第四种实现方式中,所述更新所述缓存空间中数据块的访问温度具体包括:
[0018]当所述数据块被访问,增加所述被访问到的数据块的访问温度;
[0019]当所述数据块未被访问的时间达到预置的时间,将所述未被访问到的数据块的访问温度缩减。
[0020]结合本发明实施例第一方面的第二种可能实现方式或第三种实现方式,在本发明实施例的第一方面的第五种实现方式中,所述将所述缓存空间中的第二数据块或第三数据块,与所述第一数据块的位置交换,之前还包括:
[0021]将所述需要交换的数据块标记为需要进行位置交换;
[0022]根据交换触发事件触发执行所述将所述缓存空间中的第二数据块与所述第一数据块的位置交换,或将所述缓存空间中的第三数据块与所述第一数据块的位置交换的步骤。
[0023]结合本发明实施例第一方面,或第一方面的第一种可能实现方式到第五种实现方式中的任一实现方式,在本发明实施例的第一方面的第六种实现方式中,所述方法还包括:
[0024]当所述缓存空间已满,用所述存储器空间中新的数据块替换所述缓存空间中访问温度和/或辐射温度最低的数据块。
[0025]结合本发明实施例第一方面,或第一方面的第一种可能实现方式到第六种实现方式中的任一实现方式,在本发明实施例的第一方面的第七种实现方式中,所述方法还包括:
[0026]确定所述缓存空间中缓存数据块的第二访问温度;
[0027]根据所述缓存数据块的第二访问温度,及预置的访问温度和辐射范围的对应关系,确定所述缓存数据块的第二辐射范围;
[0028]根据所述第二辐射范围,如果需要从所述存储器空间中读取数据块,则将所述存储器空间中在所述第二辐射范围内的数据块读取到所述缓存空间中。
[0029]本发明实施例第二方面提供一种数据缓存系统,包括存储器,在所述存储器上包括缓存空间和存储器空间,所述系统还包括:
[0030]第一温度确定单元,用于确定所述存储器空间中待读取数据块初始的第一访问温度,所述第一访问温度用于指示对所述待读取数据块的访问热度;
[0031]第一范围确定单元,用于根据所述第一温度确定单元确定的第一访问温度,及预置的访问温度与辐射范围的对应关系,确定所述待读取数据块的第一辐射范围,所述第一辐射范围用于指示所述待读取数据块影响到的其它数据块;[0032]第一读取单元,用于将所述待读取数据块,及在第一辐射范围内的多个数据块读取到所述缓存空间中。
[0033]本发明实施例第二方面的第一种实现方式中,所述系统还包括:
[0034]信息表建立单元,用于建立数据块的管理信息表,所述数据块的管理信息表中包括所述缓存空间中每个数据块的绑定信息,所述绑定信息包括数据块在所述缓存空间中的位置信息和在所述存储器空间中的位置信息。
[0035]结合本发明实施例第二方面或第二方面的第一种实现方式,本发明实施例第二方面的第二种实现方式中,所述系统还包括:
[0036]温度记录单元,用于记录并更新所述缓存空间中数据块的访问温度;
[0037]第一交换单元,用于如果第一数据块的访问温度与周边某个数据块的访问温度差超过预置的第一温度差,将所述缓存空间中的第二数据块与所述第一数据块的位置交换,或将所述缓存空间中的第三数据块与所述第一数据块的位置交换;
[0038]所述第二数据块的访问温度与所述周边某个数据块的访问温度之差在预置的第二温度差范围内;所述第三数据块是在物理上与所述周边数据块最近,且在逻辑上与所述第一数据块最近的数据块。
[0039]结合本发明实施例第二方面的第二种实现方式,本发明实施例第二方面的第三种实现方式中,所述系统还包括:
[0040]第二交换单元,用于将所述存储器空间上储存的所述第一数据块和第二数据块的物理位置,或将所述存储器空间上储存的所述第一数据块和第三数据块的物理位置交换。
[0041]结合本发明实施例第二方面的第二种或第三种实现方式,本发明实施例第二方面的第四种实现方式中:
[0042]所述温度记录单元,用于当所述数据块被访问时,增加所述被访问到的数据块的访问温度;当所述数据块未被访问的时间达到预置的时间,将所述未被访问到的数据块的访问温度缩减。
[0043]结合本发明实施例第二方面的第二种或第三种实现方式,本发明实施例第二方面的第五种实现方式中,所述系统还包括:
[0044]标记单元,用于将所述需要交换的数据块标记为需要进行位置交换;
[0045]所述第一交换单元,用于根据交换触发事件触发执行将所述缓存空间中的第二数据块与所述第一数据块的位置交换,或将所述缓存空间中的第三数据块与所述第一数据块的位置交换的步骤。
[0046]结合本发明实施例第二方面,或第二方面的第一种到第五种实现方式中的任一实现方式,本发明实施例第二方面的第六种实现方式中,所述系统还包括:
[0047]替换单元,用于当所述缓存空间已满,用所述存储器空间中新的数据块替换所述缓存空间中访问温度和/或辐射温度最低的数据块。
[0048]结合本发明实施例第二方面,或第二方面的第一种到第六种实现方式中的任一实现方式,本发明实施例第二方面的第七种实现方式中,所述系统还包括:
[0049]第二温度确定单元,用于确定所述缓存空间中缓存数据块的第二访问温度;
[0050]第二范围确定单元,用于根据所述第二温度确定单元确定的缓存数据块的第二访问温度,及预置的访问温度和辐射范围的对应关系,确定所述缓存数据块的第二辐射范围;
[0051]第二读取单元,用于根据所述第二范围确定单元确定的第二辐射范围,如果需要从所述存储器空间中读取数据块,则将所述存储器空间中在所述第二辐射范围内的数据块读取到所述缓存空间中。
[0052]在本发明实施例的方法中,数据缓存系统可以先确定存储器空间中待读取数据块的第一访问温度,并根据第一访问温度得到第一辐射范围,然后将该待读取数据块及在第一辐射范围内的多个数据块读取到缓存空间中。本实施例中数据缓存系统考虑到了对待读取数据块的访问热度即访问温度,及该待读取数据块所影响到的其它数据块,可以实现尽量将访问频率相当的数据块读取到缓存空间,从而提高了存储器中缓存空间的命中率,进而提高了系统对存储器的输入输出(IO)接口的访问效率。
【专利附图】

【附图说明】
[0053]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0054]图1是本发明实施例提供的一种数据缓存系统的结构示意图;
[0055]图2是本发明实施例提供的一种数据处理方法的流程图;
[0056]图3是本发明实施例中存储器的存储器空间和缓存空间储存数据块的结构示意图;
[0057]图4是本发明实施例中数据块链表的指示示意图;
[0058]图5是本发明实施例提供的另一种数据处理方法的流程图;
[0059]图6a是本发明实施例将存储器空间中的数据块读取到缓存空间的示意图;
[0060]图6b是本发明实施例将存储器的缓存空间中数据块增加的示意图;
[0061]图6c是本发明实施例将存储器的存储器空间和缓存空间中数据块交换的示意图;
[0062]图7是本发明实施例提供的另一种数据处理方法的流程图;
[0063]图8是本发明实施例提供的一种数据缓存系统的结构示意图;
[0064]图9是本发明实施例提供的另一种数据缓存系统的结构示意图;
[0065]图10是本发明实施例提供的另一种数据缓存系统的结构示意图;
[0066]图11是本发明实施例提供的另一种数据缓存系统的结构示意图。
【具体实施方式】
[0067]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0068]本发明实施例提供一种数据处理方法,主要用于数据缓存系统对包括缓存空间和存储器空间的存储器(比如磁盘等具有存储功能的器件)上的数据处理,参考图1所示,在数据缓存系统中包括存储器和处理器,其中处理器可以将存储器的存储器空间中储存的数据块读取到存储器的缓存空间,来提高低速存储器的数据访问效率。
[0069]本实施例的方法是数据缓存系统中处理器所执行的方法,方法流程图如图2所示,包括:
[0070]步骤101,确定存储器空间中待读取数据块初始的第一访问温度,其中一个数据块的访问温度用于指示该数据块的访问热度,具体可以用数据块被访问到的次数来表示,或用数据块被访问到的次数的变化值来表示,或用数据块被访问到的次数和/或未访问到的时间等信息来表示。
[0071]可以理解,在存储器的各个空间中是以数据块为最小单位来储存数据的,每个数据块对应一个物理地址,这些数据块可以按照物理地址顺序编号,数据块的物理距离是指两个数据块在存储器存放的物理位置之间的距离,具体可以通过这两个数据块的物理地址之差的绝对值,或用物理地址顺序编号之差来表示。其中有些数据块是在逻辑上关联的,多个逻辑上关联的数据块可以组成一个文件,这样可以将同一个文件对应的多个数据块进行顺序编号并关联成同一个文件,比如文件filel可以成为三个数据块即filel-1,filel-2及filel-3。数据块的逻辑距离是指同一个文件的两个数据块的逻辑之间的距离,具体可以用这两个数据块的编号之差的绝对值来表示。
[0072]当系统需要访问存储器空间中的某一数据块(即待读取数据块)时,就需要将该待读取数据块读取到缓存空间中,数据缓存系统就需要先为该待读取数据块确定一个初始的第一访问温度,具体地:
[0073]如果缓存空间中的容量足够,可以直接按照预置的规定设定一个初始的第一访问温度(比如I),或按照数据缓存系统之前访问该待读取数据块的历史记录来设定该初始的第一访问温度,如果历史记录中该带读取数据块被访问到的次数较高,则本步骤中确定的第一访问温度也越高;如果缓存空间中的容量不够储存该待读取数据块,则系统需要将该待读取数据块替换缓存空间中的一个数据块,可以将该待读取数据块初始的第一访问温度确定为被替换的缓存空间中的一个数据块的访问温度,或该缓存空间中的一个数据块的访问温度+1,或根据经验取其它系数。
[0074]步骤102,根据步骤101中确定的第一访问温度及预置的访问温度和辐射范围的对应关系,确定上述待读取数据块的第一辐射范围,该第一辐射范围用于指示上述待读取数据块所影响到的其它数据块,即该待读取数据块能影响到哪些其它的数据块,这里影响到是指在系统对数据块的访问时的影响,该第一辐射范围可以用与该待读取数据块之间的物理距离和/或逻辑距离来表示,具体地,可以用数据块的个数等表示。
[0075]本实施例中,一个数据块被访问的热度可以通过上述的访问温度来衡量,而该数据块周边的至少一个数据块被访问的热度可以通过该数据块的辐射温度来衡量,其中辐射温度是由于一个数据块周边的至少一个数据块的访问温度对该数据块的辐射产生的,周边数据块的访问温度越高,该数据块的辐射温度也越高,具体可以通过周边数据块被访问的次数来表示,比如周边数据块被访问到一次,则该数据块的辐射温度会加1,其中一个数据块周边的数据块是指在物理位置上与该数据块相邻的至少一个数据块,包括该数据块前一个(或多个)和后一个(或多个)物理位置上的数据块。
[0076]在数据缓存系统中可以根据经验预置有访问温度与辐射范围的对应关系该对应关系可以是指数值上的直接对应,还可以是指函数对应关系,比如对应关系为F = k(T),其中F为辐射范围,k是经验系数,T是访问温度,即该对应关系为辐射范围是经验系数和访问温度的函数关系式。在执行本步骤时,数据缓存系统可以根据步骤101中得到的第一访问温度从该预置的对应关系中查找得到,或根据对应关系计算得到。其中较高的访问温度对应较大的辐射范围,则认为在辐射范围内的数据块被访问到的几率也会比较高。
[0077]步骤103,将上述步骤101中所述的待读取数据块,及在第一辐射范围内的多个数据块读取到存储器的缓存空间中。
[0078]其中假设第一辐射范围为与O到N个数据块之间,则数据缓存系统可以读取与该待读取数据块之间的物理距离小于N的多个数据块,或读取与该待读取数据块之间的逻辑距离小于N的多个数据块,或读取与该待读取数据块之间的逻辑距离加物理距离小于N的多个数据块,或读取与该待读取数据块之间的逻辑距离小于N的多个数据块及与该待读取数据块之间的物理距离小于N的多个数据块。
[0079]数据缓存系统将存储器空间的数据块读取到存储器的缓存空间时,可以按照分组进行存放,这样在对缓存的数据块进行访问时,就可以对多个分组的数据块并行访问。例如,如图3所示,存储器的缓存空间能储存6组数据块,每个分组包括6个数据块,如果将存储器空间上储存的18个数据块分别读取到缓存空间时,可以按照存储器空间储存这多个(18个)数据块的物理位置顺序存放到缓存空间中,具体地,可以将数据块1、7、13存放到第一分组,将数据块2、8、14存放到第二分组,将数据块3、9、15存放到第三分组,将数据块4、
10、16存放到第四分组,将数据块5、11、17存放到第五分组,将数据块6、12、18存放到第6分组。
[0080]进一步地,为了对读取到缓存空间的数据块进行管理,数据缓存系统还可以建立缓存空间中数据块的管理信息表,该管理信息表是用来储存缓存空间中数据块的相关信息,比如数据块名称等。具体可以是数据块链表或其他形式的表等,在数据块链表中每个节点表示缓存空间中的一个数据块,且该数据块链表中包括每个节点的绑定信息,该绑定信息可以包括数据块在缓存空间中的位置信息和在存储器空间中的位置信息,还可以包括数据块逻辑编号,物理位置编号,与该数据块逻辑相关的其它数据块在缓存空间中的位置信息,及该数据块在存储器空间中的周边数据块在缓存空间中的位置信息等。这样可以通过数据块链表中的一个节点,可以指向缓存空间的一个数据块及与该数据块逻辑相关的数据块等。例如图4所示,数据块链表中的节点Inode对应存储器空间中逻辑编号为2的数据块,该数据块2储存为缓存空间第2分组的第4个数据块,而在逻辑上与该数据块2相关且相邻的数据块I和3分别储存为缓存空间中第I分组的第2个数据块及第3分组的第5个数据块。
[0081]可见,在本发明实施例的方法中,数据缓存系统可以先确定存储器空间中待读取数据块的第一访问温度,并根据第一访问温度得到第一辐射范围,然后将该待读取数据块和在第一辐射范围内的多个数据块读取到缓存空间中。本实施例中数据缓存系统考虑到了对待读取数据块的访问热度即访问温度,及该待读取数据块所影响到的其它数据块,可以实现尽量将访问频率相当的数据块读取到缓存空间,从而提高了存储器中缓存空间的命中率,进而提高了系统对存储器的输入输出(IO)接口的访问效率。
[0082]参考图5所示,在一个具体的实施例中,数据缓存系统除了可以执行上述步骤101到103,还包括执行如下的步骤,来动态地更新缓存空间中数据块的位置,保证访问频率相当的数据块集中地在缓存空间中储存:
[0083]步骤104,记录并更新缓存空间中数据块的访问温度,数据缓存系统需要记录缓存空间中每个数据块的访问温度和辐射温度,并在每个数据块被访问后,更新被访问数据块的访问温度,即在原来访问温度的基础上加1,且需要更新被访问数据块周边数据块的辐射温度即在原来辐射温度的基础上加I。通过上述访问温度可以衡量一个数据块的热度,在其它具体实施例中,数据块的热度还与时间有关,当缓存空间中一个数据块未被访问的时间到达预置的时间,则数据缓存系统会将该数据块的访问温度和辐射温度缩减,且该数据块周边的数据块的辐射温度也会缩减,且缩减量与时间成正比。
[0084]步骤105,判断缓存空间中某一数据块(即第一数据块)的访问温度与周边某个数据块(缓存空间中前一和/或后一物理位置上,或前η个和/或后m个物理位置上的数据块)的访问温度差是否查过预置的第一温度差,如果超过,则执行步骤106,如果未超过,则会重复执行上述步骤104。
[0085]步骤106,将缓存空间中的第二数据块与第一数据块的位置交换,或将缓存空间中的第三数据块与第一数据块的位置交换。该第二数据块的访问温度与上述第一数据块周边某个数据块的访问温度之差在预置的第二温度差范围内,即将访问温度相当的第二数据块与第一数据块周边的某个数据块聚合到一起,该第二数据块和第一数据块的物理位置可以相差较远;该第三数据块是在物理上与上述第一数据块周边某个数据块最近,且在逻辑上与第一数据块最近的数据块。通过本步骤的交换,可以实现当与第一数据块在物理上距离较远而逻辑上距离较近的另一数据块由于访问次数的增加,其访问温度超过了与第一数据块在物理上临近却逻辑不相关的周边数据块的辐射温度时,可以将第一数据块和另一数据块交换位置。
[0086]通过上述的步骤104到106可以将热度相当的数据块聚合到一起,由于系统在关闭后,缓存空间上的数据块会丢失,为了在系统重启后能记忆该热度相当的数据块,在数据缓存系统不仅需要执行步骤106,进一步地还需要根据步骤106中的交换,将存储器的存储器空间上储存的需要交换的两个数据块的物理位置交换,即存储器空间上储存的第一数据块和第二数据块的物理位置,或将存储器空间上储存的第一数据块和第三数据块的物理位置交换。这样系统在重启后,可以直接按照存储器空间中数据块的存储顺序将数据块读取到缓存空间中。
[0087]需要说明的是,在执行步骤106的交换操作时,可以立即将需要进行位置交换将需要交换的两个数据块(即第一数据块和第二数据块,或第一数据块和第三数据块)在缓存空间中的物理位置交换;或先将需要交换的数据块标记为需要进行位置交换,且还可以标记与哪个数据块进行交换的信息,并根据交换触发事件来触发对已经标记的数据块进行步骤106中物理位置交换的操作。其中交换触发事件包括数据缓存系统的负载较低,或标记的数据块的个数超过阈值,或系统中其它进程结束或开启等。进一步地,当执行完步骤106后,由于交换后的数据块(上述第二数据块或第三数据块)周边的数据块发生变化,而该交换后的数据块的访问温度与被交换后的数据块(上述第一数据块)及周边数据块的访问温度不同,使得交换后的数据块及其周边数据块受到的辐射发生改变,则数据缓存系统还需要重新确定交换后的数据块及其周边的数据块的辐射温度,具体地,可以将交换后的数据块即第二数据块或第三数据块周边的数据块的辐射温度更新为交换后的数据块的访问温度,将该交换后的数据块的辐射温度更新后周边某个数据块的访问温度等,且还需要更新上述的建立的缓存空间中数据块的管理信息表。
[0088]上述步骤106主要是根据访问温度差来交换数据块,在另一个具体的实施例中,缓存空间中数据块的物理位置交换还可以根据其它的聚合策略,比如将逻辑上距离较近的数据块聚合到一起,或辐射温度相差较近的数据块聚合到一起等。最终尽可能的使缓存空间中两个访问温度较高的数据块之间的物理距离和逻辑距离一致,也就是说,尽可能的将缓存空间中同一个文件(逻辑相关的数据块)的数据块交换到一起,又由于系统对存储器进行数据访问时,直接对存储器的缓存空间中的数据块进行访问,这样读取到缓存空间中的数据块都是访问热度较高且被访问概率很大的数据块,从而提高存储器的缓存空间的命中率,使得系统对存储器的输入输出接口的访问效率比较高;同时如果将存储器空间中的数据块根据缓存空间的数据块进行聚合后,使得对存储器空间的数据块大多是连续的,提高了该存储器本身的输入输出接口的访问速度。
[0089]在其它具体的实施例中,数据缓存系统除了可以执行上述步骤101到106外,还可以执行如下的操作:当缓存空间已满时,如果需要将新的数据块读到缓存空间时,数据缓存系统可以用新的数据块替换缓存空间中访问温度和/或辐射温度最低的数据块,还可以设置该新的数据块的访问温度大于被替换出缓存空间的数据块的访问温度;且根据该新的数据块的访问温度,重新设置新的数据块周边数据块的辐射温度大于被替换出缓存空间的数据块的访问温度。另外,还需要更新数据块的管理信息表中与该新的数据块相关的信息等。
[0090]例如图6a所示,在存储器空间中包括的数据块逻辑上相关的FiIel-1到Filel_5,数据块File2-2到File2-6,及数据块File3_4等,如果需要将数据块Filel-3读取到缓存空间,假设该数据块Filel-3的辐射范围为1,则可以将在存储器空间中与数据块Filel-3的物理距离为I的数据块Filel-2和File2-2,及与数据块Filel-3的逻辑距离为I的数据块Filel-4按照在存储器空间中的顺序读取到缓存空间中。例如图6b所示,随着对数据块Filel-3的访问,该数据块Filel-3的访问温度升高,则该访问温度对应的辐射范围增加,随后会将增加的辐射范围内的数据块Filel-1、File2-3和Filel_5都读取到缓存空间中。例如图6c所示,随着对缓存空间中数据块的访问,当数据块Filel-4的热度升高,将缓存空间和存储器空间中数据块Filel-4与离数据块Filel-3较近的数据块File2_3的物理位置交换,则该数据块File2-3由于远离数据块Filel-3的辐射区可以优先被替换出缓存空间。
[0091]可见,本发明实施例中提出了一种基于数据块的访问热度(用访问温度来衡量)的数据读取方法,使得在缓存空间中访问热度较高的数据块聚合在一起,提高了缓存空间的命中率;同时如果存储器空间中的数据块随着缓存器空间的数据块而聚合,使得存储器空间中的数据块大多连续,最终使得对存储器的访问连续,提高了存储器的输入输出接口的访问效率;且利用对缓存空间中数据块的访问热度统计,来动态地调整缓存空间中数据块的位置,使系统能够根据实际运行情况来提高存储器的数据访问效率。另外上述实施例中的方法可以用于单机中来提升存储器的性能,同样也可以用到集群系统来提高集群系统对热点数据的访问效率。
[0092]需要说明的是,通过上述步骤101到103后,在数据缓存系统对缓存空间数据块进行访问的过程中,参考图7所示,在另一个具体的实施例中,由于缓存空间中数据块的访问温度的改变,其辐射范围也会发生变化,根据辐射范围的变化来随时确定是否要有新的数据块从存储器空间中读取到缓存空间中。具体地,数据缓存系统还可以执行如下步骤来从存储器空间中读取数据块:
[0093]步骤107,确定缓存空间中缓存数据块的第二访问温度,该第二访问温度用于指示对该缓存数据块的访问热度。
[0094]步骤108,根据步骤107中确定的缓存数据块的第二访问温度,及系统中预置的访问温度和辐射范围的对应关系,确定缓存数据块的第二辐射范围,该第二辐射范围用于指示该缓存数据块影响到的其它数据块,即该缓存数据块能影响到哪些其它的数据块,这里影响到是指在系统对数据块的访问时的影响,具体可以用与该缓存数据块之间的物理距离和/或逻辑距离来表示。上述第一和第二辐射范围,及第一和第二访问温度并不表示顺序关系,而是表示不同的辐射范围及不同的访问温度值;且这里确定第二辐射范围的方法与上述第一辐射范围的确定方法类似,在此不进行赘述。
[0095]步骤109,根据步骤108中确定的第二辐射范围,如果需要从存储器空间中读取数据块,比如当该第二辐射范围内数据块的个数大于当前缓存空间中该缓存数据块周边的数据块个数,则需要从存储器空间中读取数据块,则数据缓存系统会将在第二辐射范围内的数据块读取到缓存空间中。这样可以通过步骤107到109,动态地变动缓存空间中的数据块。
[0096]本发明实施例还提供一种数据缓存系统,其结构示意图如图8所示,包括:存储器10,在存储器10上包括缓存空间110和存储器空间120,该系统还可以包括:
[0097]第一温度确定单元20,用于确定所述存储器空间120中待读取数据块的第一访问温度,所述第一访问温度用于指示对所述待读取数据块的访问热度。
[0098]第一范围确定单兀21,用于根据所述第一温度确定单兀20确定的第一访问温度,及预置的访问温度与辐射范围的对应关系,确定所述待读取数据块的第一辐射范围,所述第一辐射范围用于指示所述待读取数据块影响到的其它数据块。
[0099]第一读取单元22,用于将所述存储器空间120中待读取数据块,及在所述第一范围确定单元21确定的第一辐射范围内的多个数据块读取到所述缓存空间110中。
[0100]可见,本发明实施例的数据缓存系统中,第一温度确定单元20可以先确定待读取数据块的第一访问温度,并由第一范围确定单元21根据第一访问温度得到第一辐射范围,然后第一读取单元22将待读取数据块及在第一辐射范围内的数据块读取到缓存空间110中。本实施例中数据缓存系统考虑到了对待读取数据块访问的热度即第一访问温度,及该待读取数据块所影响到的数据块,可以实现尽量将访问频率相当的数据块读取到缓存空间,从而提高了存储器中缓存空间的命中率,进而提高了系统对存储器的输入输出接口的访问效率。
[0101]参考图9所示,在一个具体的实施例中,数据缓存系统除了可以包括如图8所示的结构外,还可以包括信息表建立单元23、温度记录单元24、第一交换单元25、第二交换单元26、标记单元27和替换单元28,其中:
[0102]信息表建立单元23,用于建立缓存空间110中数据块的管理信息表,所述管理信息表中每个节点对应缓存空间110中的一个数据块,且在管理信息表中可以包括所述缓存空间110中每个数据块的绑定信息,所述绑定信息包括数据块在所述缓存空间110中的位置信息和在所述存储器空间120中的位置信息,还可以包括数据块逻辑编号,物理位置编号,与该数据块逻辑相关的其它数据块在缓存空间110中的位置信息,及该数据块在存储器空间120中的周边数据块在缓存空间中的位置信息等。
[0103]温度记录单元24,用于记录并更新缓存空间110中数据块的访问温度,具体地温度记录单元24可以在数据块初始读取到缓存空间110时,记录初始的第一访问温度,并在缓存空间110中的数据块被访问时,增加所述被访问到的数据块的访问温度;当所述数据块未被访问的时间达到预置的时间,将所述未被访问到的数据块的访问温度缩减,且缩减量与未被访问到的时间成正比。且该温度记录单元24还可以记录缓存空间110中数据块的辐射温度,具体的记录方法可以参见上述方法实施例中所述,在此不进行赘述。
[0104]第一交换单元25,用于如果温度记录单元24记录的第一数据块的访问温度与周边某个数据块的访问温度差超过预置的第一温度差,将所述缓存空间110中的第二数据块与所述第一数据块的位置交换,或将所述缓存空间中的第三数据块与所述第一数据块的位置交换;所述第二数据块的访问温度与所述周边某个数据块的访问温度之差在预置的第二温度差范围内;所述第三数据块是在物理上与所述周边数据块最近,且在逻辑上与所述第一数据块最近的数据块。该第一交换单元25对缓存空间110中数据块的物理位置交换还可以根据其它的聚合策略,比如将逻辑上距离较近的数据块聚合到一起,或辐射温度相差较近的数据块聚合到一起等。
[0105]第二交换单元26,用于根据第一交换单元25的交换,相应地将所述存储器空间120上储存的所述第一数据块和第二数据块的物理位置,或将所述存储器空间120上储存的所述第一数据块和第三数据块的物理位置交换,比如第一交换单元25将缓存空间中数据块I和4的位置交换,则第二交换单元26可以将存储器空间120中数据块I和4的位置交换。
[0106]标记单元27,用于将需要交换的数据块标记为需要进行位置交换,且还可以标记与各个数据块交换的数据块的信息。
[0107]替换单元28,用于当所述缓存空间110已满,用所述存储器空间120中新的数据块替换所述缓存空间110中访问温度和/或辐射温度最低的数据块。该替换单元28还可以在替换后,触发温度记录单元24更新该新的数据块的访问温度和辐射温度,及该新的数据块周边的数据块的辐射温度等信息,具体更新的方法参见上述方法实施例中所述,且可以触发信息表建立单元23更新信息管理表中与该新的数据块相关的信息。
[0108]本实施例的系统中,可以通过第一温度确定单元20、第一范围确定单元21和第一读取单元22将存储器空间120中的数据块读取到缓存空间110后,信息表建立单元23可以建立缓存空间110中数据块的管理信息表,便于对缓存空间110中的数据块进行管理。
[0109]在数据缓存系统对缓存空间110中数据块的访问过程中,可以由第一交换单元25直接根据温度记录单元24记录的访问温度来交换缓存空间110中的数据块;也可以先由标记单元27为需要交换的数据块进行标记,然后再由第一交换单元25根据交换触发事件触发执行所述将缓存空间110中的第二数据块或第三数据块,与所述第一数据块的位置交换,且触发对标记单元27所标记的需要交换的其他数据块进行位置交换,其中交换触发事件包括数据缓存系统的负载较低,或标记单元27所标记的数据块的个数超过阈值,或系统中其它进程结束或开启等。同时为了使得系统在重启后可以记忆当前存储器的缓存空间110所储存的数据块的位置,第二交换单元26还需要将存储器空间120中的数据块进行相应的位置交换。
[0110]在第一交换单元25进行位置交换后,可以触发温度记录单元24更新该交换后的数据块(即上述第二数据块或第三数据块)周边的数据块的辐射温度,及该交换后的数据块的辐射温度等信息,且可以触发信息表建立单元23更新数据块的管理信息表中与交换后的数据块及与被交换的数据块相关的信息。
[0111]参考图10所示,在一个具体的实施例中,数据缓存系统除了可以包括如图8所示的结构外,还可以包括第二温度确定单元29、第二范围确定单元30和第二读取单元31,其中:
[0112]由于数据缓存系统对缓存空间110中数据的访问,使得上述缓存空间110中数据块的访问温度改变,上述第二温度确定单元29,用于定时或不定时地确定缓存空间110中缓存数据块的第二访问温度;而第二范围确定单元30还可以根据第二温度确定单元29确定的缓存空间中缓存数据块的第二访问温度,及预置的访问温度和辐射范围的对应关系,确定缓存数据块的第二辐射范围;且第二读取单元12还可以根据第二范围确定单元30确定的第二辐射范围,如果需要从存储器空间120中读取新的数据块,将存储器空间120中在第二辐射范围内的数据块读取到所述缓存空间110中。这样可以通过第二温度确定单元29、第二范围确定单元30和第二读取单元31动态地变动缓存空间中的数据块。
[0113]本发明实施例还提供另一种数据缓存系统,结构示意图如图11所示,包括分别连接到总线上的存储器40、处理器41、输入装置43和输出装置44,其中:
[0114]存储器40中用来储存从输入装置43输入的数据,且还可以储存处理器41处理数据的必要文件等信息,本实施例中存储器40包括存储器空间和缓存空间;
[0115]输入装置43和输出装置44是数据缓存系统与其他设备通信的端口,还可以包括数据缓存系统外接的输出设备比如显示器、键盘、鼠标和打印机等,其中输入装置43可以包括鼠标和键盘等,而输出装置44包括显示器等;
[0116]本实施例中的处理器41可以用于确定所述存储器空间中待读取数据块的第一访问温度,所述第一访问温度用于指示对所述待读取数据块的访问热度;根据所述确定的第一访问温度确定,及预置的访问温度与辐射范围的对应关系,所述待读取数据块的第一辐射范围,所述第一辐射范围用于指示所述待读取数据块影响到的其它数据块;将所述待读取数据块,及在所述第一辐射范围内的多个数据块读取到所述缓存空间中。为了方便对缓存空间中数据的管理,处理器41还可以建立缓存空间中数据块的管理信息表,所述管理信息表中包括所述缓存空间中每个数据块的绑定信息,所述绑定信息包括数据块在所述缓存空间中的位置信息和在所述存储器空间中的位置信息等信息。
[0117]进一步地,在缓存空间中的数据块被访问的过程中,处理器41还可以确定所述缓存空间中缓存数据块的第二访问温度;并根据确定的缓存数据块的第二访问温度,及预置的访问温度和辐射范围的对应关系,确定所述缓存数据块的第二辐射范围;然后根据确定的第二辐射范围,如果需要从所述存储器空间中读取新的数据块,则将所述存储器空间中在所述第二辐射范围内的数据块读取到所述缓存空间中。这样根据系统实际对数据块的访问情况,动态地调整了缓存空间中的数据块。
[0118]进一步地,处理器41还可以记录并更新所述缓存空间中数据块的访问温度,具体地,在更新访问温度时,当所述数据块被访问,增加所述被访问到的数据块的访问温度;当所述数据块未被访问的时间达到预置的时间,将所述未被访问到的数据块的访问温度缩减等;如果第一数据块的访问温度与周边某个数据块的访问温度差超过预置的第一温度差,处理器41还可以将所述缓存空间中的第二数据块与所述第一数据块的位置交换,或将所述缓存空间中的第三数据块与所述第一数据块的位置交换;所述第二数据块的访问温度与所述周边某个数据块的访问温度之差在预置的第二温度差范围内;所述第三数据块是在物理上与所述周边数据块最近,且在逻辑上与所述第一数据块最近的数据块。同时处理器41可以根据对缓存空间中数据块的交换,将所述存储器空间上储存的所述第一数据块和第二数据块的物理位置,或将所述存储器空间上储存的所述第一数据块和第三数据块的物理位置交换。
[0119]在另一种情况下,处理器41可以先将所述需要交换的数据块标记为需要进行位置交换,然后根据交换触发事件触发执行将所述缓存空间中的第二数据块与所述第一数据块的位置交换,或将所述缓存空间中的第三数据块与所述第一数据块的位置交换的步骤,且还需要执行标记的所有数据块的位置交换。在对缓存空间中数据块进行交换后,处理器41还需要更新建立的管理信息表中发生交换的数据块的信息,且还需要重新确定交换后数据块及其周边数据块的辐射温度。
[0120]进一步地,处理器41还可以当所述缓存空间已满,用所述存储器空间中新的数据块替换所述缓存空间中访问温度和/或辐射温度最低的数据块。且处理器41还需要确定并记录该新的数据块的辐射温度和访问温度,及该新的数据块周边的数据块的辐射温度等信息,及管理信息表中与该新的数据块及与被替换的数据块相关的信息等。
[0121]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM)、随机存取存储器(RAM)、磁盘或光盘等。
[0122]以上对本发明实施例所提供的数据处理方法和数据缓存系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种数据处理方法,其特征在于,应用于对包括缓存空间和存储器空间的存储器的数据处理,包括: 确定所述存储器空间中待读取数据块初始的第一访问温度,所述第一访问温度用于指示对所述待读取数据块的访问热度; 根据确定所述初始的第一访问温度,及预置访问温度和辐射范围的对应关系,确定所述待读取数据块的第一辐射范围,所述第一辐射范围用于指示所述待读取数据块影响到的其它数据块; 将所述存储器空间中所述待读取数据块,及在所述第一辐射范围内的多个数据块读取到所述缓存空间中。
2.如权利要求1所述的方法,其特征在于,所述方法还包括: 建立所述缓存空间中数据块的管理信息表,所述数据管理信息表中包括所述缓存空间中每个数据块的绑定信息,所述绑定信息包括数据块在所述缓存空间中的位置信息和在所述存储器空间中的位置信息。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括: 记录并更新所述缓存空间中数据块的访问温度; 如果第一数据块的访问温度与周边某个数据块的访问温度差超过预置的第一温度差,将所述缓存空间中的第二数据块与所述第一数据块的位置交换,或将所述缓存空间中的第三数据块与所述第一数据块的位置交换; 所述第二数据块的访问温度与所述周边某个数据块的访问温度之差在预置的第二温度差范围内;所述第三数据块是在物理上与所述周边数据块最近,且在逻辑上与所述第一数据块最近的数据块。
4.如权利要求3所述的方法,其特征在于,所述方法还包括: 将所述存储器空间上储存的所述第一数据块和第二数据块的物理位置,或将所述存储器空间上储存的所述第一数据块和第三数据块的物理位置交换。
5.如权利要求3或4所述的方法,其特征在于,所述更新所述缓存空间中数据块的访问温度具体包括: 当所述数据块被访问,增加所述被访问到的数据块的访问温度; 当所述数据块未被访问的时间达到预置的时间,将所述未被访问到的数据块的访问温度缩减。
6.如权利要求3或4所述的方法,其特征在于,所述将所述缓存空间中的第二数据块或第三数据块,与所述第一数据块的位置交换,之前还包括: 将所述需要交换的数据块标记为需要进行位置交换; 根据交换触发事件触发执行所述将所述缓存空间中的第二数据块与所述第一数据块的位置交换,或将所述缓存空间中的第三数据块与所述第一数据块的位置交换的步骤。
7.如权利要求1至5任一项所述的方法,其特征在于,所述方法还包括: 当所述缓存空间已满,用所述存储器空间中新的数据块替换所述缓存空间中访问温度和/或辐射温度最低的数据块。
8.如权利要求1至7任一项所述的方法,其特征在于,所述方法还包括: 确定所述缓存空间中缓存数据块的第二访问温度;根据所述缓存数据块的第二访问温度,及预置的访问温度和辐射范围的对应关系,确定所述缓存数据块的第二辐射范围; 根据所述第二辐射范围,如果需要从所述存储器空间中读取数据块,则将所述存储器空间中在所述第二辐射范围内的数据块读取到所述缓存空间中。
9.一种数据缓存系统,其特征在于,包括存储器,在所述存储器上包括缓存空间和存储器空间,所述系统还包括: 第一温度确定单元,用于确定所述存储器空间中待读取数据块初始的第一访问温度,所述第一访问温度用于指示对所述待读取数据块的访问热度; 第一范围确定单元,用于根据所述第一温度确定单元确定的第一访问温度,及预置的访问温度与辐射范围的对应关系,确定所述待读取数据块的第一辐射范围,所述第一辐射范围用于指示所述待读取数据块影响到的其它数据块; 第一读取单元,用于将所述待读取数据块,及在第一辐射范围内的多个数据块读取到所述缓存空间中。
10.如权利要求9所述的系统,其特征在于,所述系统还包括: 信息表建立单元,用于建立数据块的管理信息表,所述数据块的管理信息表中包括所述缓存空间中每个数据块的绑定信息,所述绑定信息包括数据块在所述缓存空间中的位置信息和在所述存储器空间中的位置信息。
11.如权利要求9或10所述的系统,其特征在于,所述系统还包括: 温度记录单元,用于记录并更新所述缓存空间中数据块的访问温度; 第一交换单元,用于如果第一数据块的访问温度与周边某个数据块的访问温度差超过预置的第一温度差,将所述缓存空间中的第二数据块与所述第一数据块的位置交换,或将所述缓存空间中的第三数据块与所述第一数据块的位置交换; 所述第二数据块的访问温度与所述周边某个数据块的访问温度之差在预置的第二温度差范围内;所述第三数据块是在物理上与所述周边数据块最近,且在逻辑上与所述第一数据块最近的数据块。
12.如权利要求11所述的系统,其特征在于,所述系统还包括: 第二交换单元,用于将所述存储器空间上储存的所述第一数据块和第二数据块的物理位置,或将所述存储器空间上储存的所述第一数据块和第三数据块的物理位置交换。
13.如权利要求11或12所述的系统,其特征在于,所述温度记录单元,用于当所述数据块被访问时,增加所述被访问到的数据块的访问温度;当所述数据块未被访问的时间达到预置的时间,将所述未被访问到的数据块的访问温度缩减。
14.如权利要求11或12所述的系统,其特征在于,所述系统还包括: 标记单元,用于将所述需要交换的数据块标记为需要进行位置交换; 所述第一交换单元,用于根据交换触发事件触发执行将所述缓存空间中的第二数据块与所述第一数据块的位置交换,或将所述缓存空间中的第三数据块与所述第一数据块的位置交换的步骤。
15.如权利要求9至14任一项所述的系统,其特征在于,所述系统还包括: 替换单元,用于当所述缓存空间已满,用所述存储器空间中新的数据块替换所述缓存空间中访问温度和/或辐射温度最低的数据块。
16.如权利要求9至15任一项所述的系统,其特征在于,还包括: 第二温度确定单元,用于确定所述缓存空间中缓存数据块的第二访问温度; 第二范围确定单元,用于根据所述第二温度确定单元确定的缓存数据块的第二访问温度,及预置的访问温度和辐射范围的对应关系,确定所述缓存数据块的第二辐射范围;第二读取单元,用于根据所述第二范围确定单元确定的第二辐射范围,如果需要从所述存储器空间中读取数据块,则将所述存储器空间中在所述第二辐射范围内的数据块读取到所述缓存 空间中。
【文档编号】G06F12/08GK103902473SQ201210590079
【公开日】2014年7月2日 申请日期:2012年12月31日 优先权日:2012年12月31日
【发明者】夏静霆 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1