一种数据的写入方法及装置与流程

文档序号:11250810阅读:322来源:国知局
一种数据的写入方法及装置与流程

本发明涉及计算机领域,尤其涉及一种数据的写入方法及装置。



背景技术:

随着计算机硬件性能的飞速发展,计算机缓存设备的容量和缓存设备的访问速度均获得大幅提升。

目前,当缓存设备达到缓存更新阈值,即缓存设备存储的缓存数据较多,无法读入更多数据时,需要将缓存设备中的一些使用频率较低的数据从缓存设备刷出。缓存设备可以将待刷出的数据发送给磁盘设备以写入数据,磁盘设备通过移动磁头将数据写入各个数据的目的存储地址。

但是,当待写入的各个数据的目的存储地址的距离较远时,磁头的移动范围大,磁盘设备的写入速度慢,进而导致缓存设备的刷出速度慢。



技术实现要素:

有鉴于此,本发明实施例的主要目的在于提供一种数据的写入方法,以实现一种提高缓存设备的刷出速度的数据写入方法。

为达到上述目的,本发明的技术方案是这样实现的:

第一方面,本发明实施例提供一种数据的写入方法,包括:第一存储模块生成待写入第二存储模块的数据集合;所述数据集合中的第一数据根据自身的目的存储地址排序;所述第一存储模块将所述数据集合中的第一数据按顺序发送给所述第二存储模块。

上述方案中,所述第一存储模块为缓存设备,所述生成待写入第二存储模块的数据集合,包括:所述第一存储模块从自身的缓存数据集合中选择多个第一数据;所述第一存储模块根据所述多个第一数据,生成所述数据集合。

上述方案中,所述数据集合包括一个或多个数据子集;所述第一存储模块从自身的缓存数据集合中选择多个第一数据,包括:所述第一存储模块从磁盘区集合中选择至少一个磁盘区,所述磁盘区存储有至少两个第二数据;所述第一存储模块在所述缓存数据集合中选择与所述至少一个磁盘区中的各个磁盘区对应的缓存数据作为所述一个或多个数据子集中的多个第一数据,所述缓存数据的目的存储地址归属于所述至少一个磁盘区。所述第一存储模块根据所述多个第一数据生成所述数据集合,包括:根据选中的各个数据子集的第一数据及自身的目的存储地址在对应的磁盘区中的顺序,生成所述一个或多个数据子集;根据所述一个或多个数据子集生成所述数据集合。

上述方案中,所述至少一个磁盘区为所述磁盘区集合中活跃度低于第一阈值的磁盘区。

上述方案中,在所述生成待写入第二存储模块的数据集合之前,还包括:所述第一存储模块生成磁盘区队列,所述磁盘区队列中的磁盘区按照各自的目的存储地址排序;每个所述磁盘区存储有至少两个第二数据。所述第一存储模块根据所述多个第一数据生成所述数据集合,包括:根据选中的多个第一数据以及对应的磁盘区在所述磁盘区队列中的顺序,生成所述数据集合。

上述方案中,所述每个磁盘区中的第一数据按照各自的目的存储地址排序。

上述方案中,所述多个第一数据为所述缓存数据集合中活跃度低于第二阈值的缓存数据。

上述方案中,所述生成待写入第二存储模块的数据集合,包括:所述第一存储模块已达到更新缓存条件,所述更新缓存条件为所述缓存数据集合的数据量达到缓存饱和阈值。

上述方案中,在所述生成待写入第二存储模块的数据集合之前,包括:接收第二存储模块访问请求,所述第二存储模块访问请求包括待访问的第二数据的目的存储地址;判断所述待访问的第二数据是否已经同步;若所述待访问的第二数据未被同步,则判断所述第一存储模块是否达到更新缓存条件;若所述第一存储模块已达到更新缓存条件,执行生成所述数据集合的步骤。

上述方案中,所述方法还包括:若所述第一存储模块未达到更新缓存条件,则在所述第一存储模块中同步所述待访问的第二数据,得到所述待访问的第二数据对应的缓存数据,所述缓存数据的目的存储地址与所述待访问的第二数据的目的存储地址相同,并记录所述待访问的第二数据对应的缓存数据的活跃度。

上述方案中,所述方法还包括:若所述待访问的第二数据已经同步,则更新所述待访问的第二数据对应的缓存数据的活跃度。

第二方面,本发明提供一种数据的写入方法,包括:第一存储模块生成待写入第二存储模块的数据集合;所述数据集合中的第一数据的目的存储地址属于预设的地址范围;所述第一存储模块将所述数据集合发送给所述第二存储模块。

上述方案中,所述第一存储模块为缓存设备,所述生成待写入第二存储模块的数据集合,包括:所述第一存储模块从自身的缓存数据集合中选择多个第一数据;所述第一存储模块根据所述多个第一数据,生成所述数据集合。

上述方案中,所述数据集合包括一个或多个数据子集;所述多个第一数据包括属于所述一个或多个数据子集的第一数据。所述第一存储模块从自身的缓存数据集合中选择多个第一数据,包括:所述第一存储模块从磁盘区集合中选择至少一个磁盘区,每个磁盘区具有预设长度的地址范围,所述磁盘区存储有至少两个第二数据;所述第一存储模块在所述缓存数据集合中选择与所述至少一个磁盘区对应的缓存数据作为所述一个或多个数据子集中的第一数据,所述缓存数据的目的存储地址归属于所述至少一个磁盘区。

上述方案中,所述至少一个磁盘区为所述磁盘区集合中活跃度低于第一阈值的磁盘区。

上述方案中,在所述生成待写入第二存储模块的数据集合之前,还包括:所述第一存储模块生成磁盘区队列,所述磁盘区队列中的磁盘区按照各自的目的存储地址排序;每个所述磁盘区存储有至少两个第二数据。所述第一存储模块根据所述多个第一数据生成所述数据集合,包括:根据选中的多个第一数据以及对应的磁盘区在所述磁盘区队列中的顺序,生成所述数据集合。

上述方案中,所述每个磁盘区中的第一数据按照各自的目的存储地址排序。

上述方案中,所述多个第一数据为所述缓存数据集合中活跃度低于第二阈值的缓存数据。

上述方案中,所述生成待写入第二存储模块的数据集合,包括:所述第一存储模块已达到更新缓存条件,所述更新缓存条件为所述缓存数据集合的数据量达到缓存饱和阈值。

上述方案中,在所述生成待写入第二存储模块的数据集合之前,包括:接收第二存储模块访问请求,所述第二存储模块访问请求包括待访问的第二数据的目的存储地址;判断所述待访问的第二数据是否已经同步;若所述待访问的第二数据未被同步,则判断所述第一存储模块是否达到更新缓存条件;若所述第一存储模块已达到更新缓存条件,执行生成所述数据集合的步骤。

上述方案中,所述方法还包括:若所述第一存储模块未达到更新缓存条件,则在所述第一存储模块中同步所述待访问的第二数据,得到所述待访问的第二数据对应的缓存数据,所述缓存数据的目的存储地址与所述待访问的第二数据的目的存储地址相同,并记录所述待访问的第二数据对应的缓存数据的活跃度。

上述方案中,所述方法还包括:若所述待访问的第二数据已经同步,则更新所述待访问的第二数据对应的缓存数据的活跃度。

第三方面,本发明实施例提供一种数据的写入装置,包括:处理模块,用于生成待写入第二存储模块的数据集合;所述数据集合中的第一数据根据自身的目的存储地址排序;发送模块,用于将所述数据集合中第一数据按顺序发送给第二存储模块。

上述方案中,所述处理模块,用于从自身的缓存数据集合中选择多个第一数据;还用于根据所述多个第一数据,生成所述数据集合。

上述方案中,所述第一处理模块,具体用于从磁盘区集合中选择至少一个磁盘区,所述磁盘区存储有至少两个第二数据;以及,在所述缓存数据集合中选择与所述至少一个磁盘区对应的缓存数据作为所述多个第一数据,所述缓存数据的目的存储地址归属于所述至少一个磁盘区。

上述方案中,所述处理模块,还用于生成磁盘区队列,所述磁盘区队列中的磁盘区按照各自的目的存储地址排序;每个所述磁盘区存储有至少两个第二数据;以及用于根据选中的多个第一数据以及对应的磁盘区在所述磁盘区队列中的顺序,生成所述数据集合。

上述方案中,所述装置还包括:接收模块,用于接收第二存储模块访问请求,所述第二存储模块访问请求包括待访问的第二数据的目的存储地址;所述处理模块,还用于判断所述待访问的第二数据是否已经同步;以及用于在所述待访问的第二数据未被同步时,判断第一存储模块是否达到更新缓存条件,所述更新缓存条件为所述缓存数据集合的数据量达到缓存饱和阈值;以及用于在所述第一存储模块已达到更新缓存条件时,执行所述生成所述数据集合的步骤。

上述方案中,所述处理模块,还用于在所述第一存储模块未达到更新缓存条件时,在所述第一存储模块中同步所述待访问的第二数据,得到所述待访问的第二数据对应的缓存数据,所述缓存数据的目的存储地址与所述待访问的第二数据的目的存储地址相同,并记录所述待访问的第二数据对应的缓存数据的活跃度。

上述方案中,所述处理模块,还用于在所述待访问的第二数据已经同步时,更新所述待访问的第二数据对应的缓存数据的活跃度。

第四方面,本发明提供一种数据的写入装置,包括:处理模块,用于生成待写入第二存储模块的数据集合;所述数据集合中的第一数据的目的存储地址属于预设的地址范围;发送模块,用于将所述数据集合发送给第二存储模块。

本发明实施例通过生成待写入第二存储模块的数据集合,数据集合按照第一数据的目的存储地址排序,并按照顺序向第二存储模块发送数据集合中的第一数据,当第二存储模块依次写入第一数据时,按照目的存储地址排序的的顺序写入各个第一数据对应的总写入路径,必然比按照其他排序写入对应的总写入路径较短。因此,通过生成写入时间较短的数据集合,本发明实施例可以提升第一存储模块向第二存储模块写入数据的速度。

附图说明

图1为本发明实施例一中数据写入方法的流程示意图;

图2为本发明实施例二中数据写入方法的流程示意图;

图3为图2所示数据写入方法的一种可选实施方式的流程图;

图4为本发明实施例三中数据写入方法的流程示意图;

图5为本发明实施例数据写入方法中磁盘区队列的一种可选的实施方式的示意图;

图6为本发明实施例一数据写入装置的结构示意图;

图7为本发明实施例二数据写入装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

实施例一

图1为本发明实施例一中数据写入方法的流程示意图,如图1所示,本实施例提供的数据的写入方法,包括:

s101:第一存储模块生成待写入第二存储模块的数据集合,数据集合中的第一数据根据自身的目的存储地址排序。

s102:第一存储模块将数据集合中的第一数据按顺序发送给第二存储模块。

在本发明实施例中,第一存储模块和第二存储模块上可以包括多个存储单元,例如,扇区(sector)或块(block)。第一数据的大小可以为存储单元的整数倍。第一数据的目的存储地址可以为第一数据在待写入的第二存储模块中的物理存储地址。

可选地、网络服务器等。第二存储模块可以是具备存储数据功能的设备,例如,磁盘设备、网络服务器等。例如,本发明实施例提供的数据写入方法可以应用于缓存设备向磁盘设备写入数据的场景。

举例来说,当第一存储模块为缓存设备,第二存储模块为磁盘设备时,本发明实施例提供一种可选的实施方式,本实施方式中,s101可以包括:

第一存储模块从自身的缓存数据集合中选择多个第一数据;

第一存储模块根据多个第一数据,生成数据集合。

需要说明的是,多个第一数据的目的存储地址可以归属于同一第二存储模块或者多个第二存储模块,则第一存储模块可以将数据集合中的第一数据发送给其目的存储地址归属的第二存储模块。示例性的,缓存设备可以将数据集合发送给对应的磁盘设备的磁盘驱动器。

可选的,缓存设备可以在达到更新缓存阈值条件时,执行生成待写入第二存储模块的数据集合的步骤。例如,更新缓存阈值条件可以是缓存设备的缓存数据集合的数据量达到缓存饱和阈值,即缓存设备即将存满。

需要说明的是,缓存设备在由于即将存满无法从磁盘设备读入新的数据时,需要从自身当前存储的缓存数据中选择一个或多个第一数据写入磁盘设备,以置换出部分存储空间。因此,基于该应用场景,本发明实施例提供的数据写入方法,能够提高缓存设备进行缓存更新操作时的速度,从而更快的释放缓存设备中的存储空间。

可选的,多个第一数据可以为缓存数据集合中活跃度低于第二阈值的缓存数据。或者,多个第一数据可以为缓存数据集合中活跃度最低的多个缓存数据。

需要说明的是,当处理器向缓存设备发送访问请求,请求访问磁盘设备上的第二数据时,若该第二数据已经从磁盘设备上同步至缓存设备上,即在缓存设备的缓存数据集合中存储与第二数据对应的缓存数据,则处理器可以直接访问缓存设备中与第二数据对应的缓存数据,该操作结果可称为一次命中。相应的,可以根据一段时间内多次访问请求是否命中计算该段时间的数据命中率。由于选择的第一数据为活跃度较低的缓存数据,因而采用这种根据活跃度选择待置换出缓存设备的第一数据的方式,能够提高留存在缓存设备上的缓存数据集合的数据命中率,进而提高处理器的平均访问速度。

可选的,数据集合中的多个第一数据可以按照目的存储地址由远及近排序,也可以按照由近及远排序。这两种方式排序的数据集合对应的总的写入路径长度相同。因此,本发明对此不做限制,此处不再赘述。

本发明实施例提供的数据的写入方法,通过生成待写入第二存储模块的数据集合,数据集合按照第一数据的目的存储地址排序,并按照顺序向第二存储模块发送数据集合中的第一数据,当第二存储模块依次写入第一数据时,按照目的存储地址排序的的顺序写入各个第一数据对应的总写入路径,必然比按照其他排序写入对应的总写入路径较短。因此,本发明实施例可以通过生成写入时间较短的数据集合,提升第一存储模块向第二存储模块写入数据的速度。

实施例二

图2为本发明实施例二中数据写入方法的流程示意图,本发明实施例还提供一种通过生成写入时间较短的数据集合,以提升第一存储模块向第二存储模块写入数据的速度的数据的写入方法。

如图2所示,本发明实施例的步骤包括:

s201:第一存储模块生成待写入第二存储模块的数据集合,数据集合中的第一数据的目的存储地址属于预设的地址范围。

s202:第一存储模块将数据集合发送给第二存储模块。

在本发明实施例中,预设的地址范围可以为第二存储模块上一段连续的存储空间。预设的地址范围可以具有一预设长度。则当一个数据集合中包括两个或两个以上第一数据时,任意两个第一数据的目的存储地址的距离小于预设长度。

采用这种方式生成的数据集合中的第一数据的目的存储地址在第二存储模块中的分布较近,第二存储模块进行写入操作时需要移动的距离相比于对分布较离散的数据进行写入操作时需要移动的距离较短,因此,第二存储模块对这种方式生成的数据集合的写入速度比分布较远的数据集合的写入速度更快。

可选的,待写入第二存储模块的数据集合中的第一数据可以既按照自身的目的存储地址排序且各个第一数据均属于预设的地址范围。采用这种方式可以同时具有图1所示实施例的技术效果。则第二存储模块的写入速度可以从上述两个方面同时得到提升。

需要说明的是,与图1所示方法类似,第一存储模块可以为缓存设备,第二存储模块可以为磁盘设备。可选的,缓存设备可以在达到更新缓存阈值条件时,执行生成待写入第二存储模块的数据集合的步骤。基于该应用场景,本发明实施例提供的数据写入方法,同样能够提高缓存设备进行缓存更新操作时的速度,从而更快的释放缓存设备中的存储空间。

可选的,一个预设长度的地址范围可以定义为一个磁盘区(zone),每个磁盘区可以包括多个存储单元。其中,每个存储单元可以为扇区或块。

则s201可以具体包括:

第一存储模块从磁盘区集合中选择一个磁盘区,磁盘区存储有至少两个第二数据。第一存储模块在自身的缓存数据集合中选择与磁盘区对应的缓存数据作为数据集合中的第一数据,缓存数据的目的存储地址归属于磁盘区。第一存储模块根据多个第一数据,生成数据集合。

其中,需要说明的是,第二存储模块可以划分为多个磁盘区,磁盘区集合可以包括多个磁盘区的标识。采用该选择磁盘区的方式,能够方便第一存储模块快速选择距离较近的第一数据生成数据集合。

可选的,选中的磁盘区可以为磁盘区集合中活跃度低于第一阈值的磁盘区。或者,选中的磁盘区可以为磁盘区集合中活跃度最低的磁盘区。与图1所示方法类似,由于选择的第一数据为活跃度较低的磁盘区对应的缓存数据,因而采用这种根据活跃度选择待置换出缓存设备的第一数据的方式,能够提高留存在缓存设备上的缓存数据集合的数据命中率,进而提高处理器的平均访问速度。

本发明实施例提供的数据的写入方法,通过生成包含至少一个数据子集的数据集合,其中,数据子集中的第一数据的目的存储地址属于具有预设长度的地址范围,由于数据集合中各个子集中的第一数据在第二存储设备中写入地址的分布比较集中,因此,第二存储模块进行写入操作时需要移动的距离相比于对分布较离散的数据进行写入操作时需要移动的距离较短,因此,本发明实施例可以提升第一存储模块向第二存储模块写入数据的速度。

图3为图2所示数据写入方法的一种可选实施方式的流程图。可选的,图2所示方法中的待写入第二存储模块的数据集合可以包括至少一个数据子集,任一数据子集中的第一数据可以属于具有预设长度的地址范围。即,一个数据子集中的第一数据可以属于一个地址范围,不同的数据子集可以对应不同的地址范围。

则在图2所示方法的基础上,如图3所示,在本实施方式中,s201可以具体采用下述的s301-s303实现,s202可以采用下述s304实现。

s301:第一存储模块从磁盘区集合中选择至少两个磁盘区。

其中,至少两个磁盘区中的至少一个磁盘区存储有至少两个第二数据。

s302:第一存储模块在自身的缓存数据集合中选择与至少两个磁盘区对应的缓存数据作为数据集合中的各个数据子集中的第一数据,任一磁盘区对应的缓存数据的目的存储地址归属于磁盘区。

s303:第一存储模块根据多个数据子集,生成数据集合。

s304:第一存储模块分别将数据集合中的数据子集发送给第二存储模块。

在本实施方式中,由于每个数据子集中的第一数据之间的距离较近,使得第二存储模块在写入一个数据集合中的各个第一数据时,可以分别集中写入分布较接近的数据子集中的第一数据,因此,第二存储模块对这种方式生成的数据集合的写入速度比反复跨越地址范围写入数据的写入速度更快。

可选的,至少一个磁盘区为磁盘区集合中活跃度低于第一阈值的磁盘区。或者,至少一个磁盘区为磁盘区集合中活跃度最低的至少一个磁盘区。

需要说明的是,每个磁盘区的活跃度可以根据该磁盘区对应的缓存数据的活跃度得到。例如,该磁盘区对应的三个缓存数据的活跃度分别为a、b和c,则该磁盘区的活跃度s可以为a、b和c的和,该三个缓存数据可以对应三个扇区或块,例如,扇区p、扇区q。

特别要说明的是,随着存储技术的飞速发展,缓存设备的容量大幅度提升,例如,非易失性内存芯片中的非易失性双列直插内存模块(non-volatiledualinlinememorymodule,nvdimm)最高甚至可达256g。当缓存设备的存储容量达到一定程度时,缓存设备达到缓存更新阈值条件的时间间隔t将比较长,在该较长的时间间隔t内,处理器在过去某一段时间对磁盘设备的访问请求会聚集在磁盘设备的一个或多个磁盘区内,例如,处理器访问一个程序,这个程序所涉及的文件在磁盘设备的存储地址通常位置较近,例如属于一个磁盘区。因此,当缓存设备需要进行缓存更新操作时,从磁盘区集合中选择磁盘区的方式,可以将该磁盘区对应的缓存数据一齐置换出缓存设备,即将一个程序对应的缓存数据置换出缓存设备。这样,缓存设备的数据命中率不会因为被选中的磁盘区对应的缓存数据中包括部分活跃度较高的缓存数据而下降。从而能够在保证缓存设备的数据命中率的基础上提高缓存设备的进行更新操作的速度。

可选的,磁盘区集合中的磁盘区可以按照各自的目的存储地址排序。则s303中根据多个数据子集,生成数据集合可以具体包括:按照多个数据子集对应的磁盘区在磁盘区集合中的顺序,生成数据集合,其中,数据集合中的各个数据子集按照目的存储地址排序。

进一步的,各个数据子集中的第一数据也可以按照自身的目的存储地址排序,s303中根据多个数据子集,生成数据集合还可以具体包括:按照多个第一数据在对应的第一数据子集中的顺序,生成数据集合,其中,数据集合中的各个数据子集按照目的存储地址排序,每个数据子集中的缓存数据按照目的存储地址排序。

需要说明的是,采用这种方式,实际上是融合了图1和图2所示的两种方法,即生成的待写入数据集合中第一数据的目的存储地址属于预设的地址范围且数据集合中的第一数据按照目的存储地址排序。因而这种方式能够同时具有图1和图2所示方法所能够带来的技术效果。即,待写入的第一数据的分布比较集中,且能够避免写入操作走弯路,从而使得总的写入路径更短,进而能够大幅提升第二存储模块的写入速度。

本实施方式的其他技术方案细节和技术效果与图2所示方法类似,此处不再赘述。

实施例三

图4为本发明实施例三中数据写入方法的流程示意图,图5为本发明实施例数据写入方法中磁盘区队列的一种可选的实施方式的示意图。本发明实施例的方法提供一种在缓存设备达到更新缓存阈值条件时触发缓存更新操作的实施方式。并且,本发明实施例的方法可以用于获取第一存储模块自身的缓存数据集合中的缓存数据的活跃度,从而能够在触发缓存更新操作时选择活跃度较低的缓存数据作为写入第二存储模块的数据。

本实施例的步骤可以包括:

在图1方法中步骤101(图4中未示出)或者图2方法中s201(图4中未示出)之前执行如下步骤:

s401:第一存储模块接收数据访问请求,该数据访问请求包括待访问的第二数据的目的存储地址。

其中,数据访问请求可以是处理器发送给第一存储模块的。

s402:第一存储模块判断待访问的第二数据是否已经同步,若待访问的第二数据未被同步,执行s403,若待访问的第二数据已经同步,执行406。

s403:判断第一存储模块是否达到更新缓存条件,若第一存储模块已达到更新缓存条件,执行s404,若第一存储模块未达到更新缓存条件,执行s405。

s404:执行缓存更新操作,执行s405。

其中,若本实施例的步骤在图1步骤101之前执行,则缓存更新操作可以包括:生成待写入第二存储模块的数据集合,并将数据集合中的第一数据按顺序发送给第二存储模块。需要说明的是,生成待写入第二存储模块的数据集合的方法可以采用图1所示方法中任一实施方式。

若本实施例的步骤在s201之前执行,则缓存更新操作可以为:生成待写入第二存储模块的数据集合,并将数据集合发送给第二存储模块。需要说明的是,生成待写入第二存储模块的数据集合的方法可以采用图2至图3所示方法中任一实施方式。

s405:在第一存储模块中同步待访问的第二数据,得到待访问的第二数据对应的缓存数据,并记录待访问的第二数据对应的缓存数据的活跃度,执行s406。

其中,缓存数据的目的存储地址与待访问的第二数据的目的存储地址相同。

s406:更新待访问的第二数据对应的缓存数据的活跃度,执行数据命中后的处理步骤。

其中,可选的,可以将缓存数据的活跃度的数值加1。可选的,更新缓存数据的活跃度可以按照近期最少使用算法(leastrecentlyused,lru)、最不经常使用页置换算法(leastfrequentlyusedpage-replacementalgorithm)或者缓存设备更新缓存的其他算法更新。

可选的,在s401之前,可以包括:

s400:第一存储模块生成磁盘区队列。

其中,磁盘区队列可以采用链表或者数组的形式记录所有磁盘区的属性信息和顺序,每个磁盘区的属性信息可以包括:磁盘区的标识、磁盘区的活跃度、磁盘区中的缓存数据的长度和个数以及该磁盘区对应的缓存数据队列等中至少一项,可参考图5。可选的,该磁盘区队列也可以作为图2所示实施例中的磁盘区集合。

则s405中记录待访问的第二数据对应的缓存数据的活跃度可以具体包括:

将待访问的第二数据对应的缓存数据的标识加入到磁盘区队列中对应的磁盘区的缓存数据队列中。

其中,缓存数据队列可以采用链表或这数组的形式记录该磁盘区的各个第一缓存数据的属性信息和顺序,每个缓存数据的属性信息可以包括:缓存数据的标识、缓存数据的活跃度等中至少一项,可参考图5。

磁盘区采用链表或数组记录磁盘区队列、磁盘区集合以及各个磁盘区对应的缓存数据队列的信息,能够使用较少的存储空间保存各个磁盘区对应的缓存数据的排序信息以及磁盘区的排序信息。在实现第一存储模块向第二存储模块快速写入数据的基础上,开销极少、且查询缓存数据的速度较快。

本发明实施例的其他技术方案细节和技术效果与图1至图3所示方法类似,此处不再赘述。

图6为本发明实施例一数据写入装置的结构示意图。如图6所示,本实施例的写入装置可以位于第一存储模块,本发明实施例的装置60包括:

第一处理模块601,用于生成待写入第二存储模块的数据集合;数据集合中的第一数据根据自身的目的存储地址排序;

第一发送模块602,用于将数据集合中第一数据按顺序发送给第二存储模块。

其中,第一处理模块601,可以用于从自身的缓存数据集合中选择多个第一数据;还可以用于根据多个第一数据,生成数据集合。

可选的,第一处理模块601,可以具体用于从磁盘区集合中选择至少一个磁盘区,磁盘区存储有至少两个第二数据;以及,可以用于在缓存数据集合中选择与至少一个磁盘区对应的缓存数据作为多个第一数据,缓存数据的目的存储地址归属于至少一个磁盘区。

可选的,第一处理模块601,还可以用于生成磁盘区队列,磁盘区队列中的磁盘区按照各自的目的存储地址排序;每个磁盘区存储有至少两个第二数据;以及用于根据选中的多个第一数据以及对应的磁盘区在磁盘区队列中的顺序,生成数据集合。

本实施例的其他技术方案细节及其技术效果与图1、图4所示实施例类似,此处不再赘述。

图7为本发明实施例二数据写入装置的结构示意图。如图7所示,本实施例的写入装置可以位于第一存储模块,本发明实施例的装置70包括:

第二处理模块701,用于生成待写入第二存储模块的数据集合;数据集合中的第一数据的目的存储地址属于预设长度的地址范围;

第二发送模块702,用于将数据集合发送给第二存储模块。

其中,第二处理模块,可以用于从自身的缓存数据集合中选择多个第一数据;还可以用于根据多个第一数据,生成数据集合。

可选的,第二处理模块701,可以具体用于从磁盘区集合中选择至少一个磁盘区,磁盘区存储有至少两个第二数据;以及,可以用于在缓存数据集合中选择与至少一个磁盘区对应的缓存数据作为多个第一数据,缓存数据的目的存储地址归属于至少一个磁盘区。

可选的,第二处理模块701,还可以用于生成磁盘区队列,磁盘区队列中的磁盘区按照各自的目的存储地址排序;每个磁盘区存储有至少两个第二数据;以及用于根据选中的多个第一数据以及对应的磁盘区在磁盘区队列中的顺序,生成数据集合。

本实施例的其他技术方案细节及其技术效果与图1、图4所示实施例类似,此处不再赘述。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1