CN109542348A - 一种数据下刷方法及装置 - Google Patents
一种数据下刷方法及装置 Download PDFInfo
- Publication number
- CN109542348A CN109542348A CN201811376492.9A CN201811376492A CN109542348A CN 109542348 A CN109542348 A CN 109542348A CN 201811376492 A CN201811376492 A CN 201811376492A CN 109542348 A CN109542348 A CN 109542348A
- Authority
- CN
- China
- Prior art keywords
- cache
- cache blocks
- block
- blocks
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种数据下刷方法及装置,该方法包括:从缓存空间中选取预设大小的缓存数据,预设大小为磁盘阵列的一个条带的大小;将预设大小的缓存数据,一起刷写到磁盘阵列中。由此可见,该方法根据后端磁盘阵列条带化技术的特点,从缓存空间中选取一个条带大小的缓存数据进行数据刷写,这样可以使输入输出的负载均衡到后端磁盘阵列的多个物理磁盘上,以提升缓存数据下刷到后端磁盘阵列的速度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据下刷方法及装置。
背景技术
在存储系统中,为了提升写请求的响应时间,数据写入缓存后就返回,写入到缓存中的数据再异步刷写到后端磁盘中。
而为了提升数据刷写性能,需要提升缓存数据下刷到后端磁盘阵列的速度。如何提高下刷速度,是目前需要解决的问题。
发明内容
本申请实施例的主要目的在于提供一种数据下刷方法及装置,能够提升缓存数据下刷到后端磁盘阵列的速度。
本申请实施例提供的一种数据下刷方法,包括:
从缓存空间中选取预设大小的缓存数据,所述预设大小为磁盘阵列的一个条带的大小;
将所述预设大小的缓存数据,一起刷写到所述磁盘阵列中。
可选的,所述缓存空间被预先划分为多个固定大小的缓存块,并为每个具有缓存数据的缓存块定义唯一标识信息;
则,所述从缓存空间中选取预设大小的缓存数据,包括:
根据所述缓存空间中的具有缓存数据的缓存块的唯一标识信息,从所述缓存空间中选取预设大小的缓存数据。
可选的,所述缓存块的唯一标识信息包括第一标识信息和第二标识信息,所述第一标识信息为所述缓存块中的缓存数据所属的逻辑卷的唯一标识,所述第二标识信息为所述逻辑卷的起始偏移地址。
可选的,所述从所述缓存空间中选取预设大小的缓存数据,包括:
选取目标缓存块,所述目标缓存块是所述缓存空间中一个具有缓存数据的缓存块;
从所述目标缓存块开始,按照预设存储方向依次查找具有缓存数据的缓存块,并将当前查找到的缓存块、之前查找到的缓存块以及所述目标缓存块一起形成第一连续缓存块;
若当前形成的第一连续缓存块达到所述预设大小,则提取所述第一连续缓存块中的缓存数据;
若当前形成的第一连续缓存块没有达到所述预设大小,则按照所述预设存储方向的相反方向依次查找到具有缓存数据的缓存块,并将当前查找到的缓存块、之前查找到的缓存块一起形成第二连续缓存块;
若第三连续缓存块达到所述预设大小,则提取所述第三连续缓存块中的缓存数据,所述第三连续缓存块包括所述第一连续缓存块和所述第二连续缓存块。
可选的,所述缓存空间中具有缓存数据的各个缓存块以哈希链表的形式进行组织;
则,所述按照预设存储方向依次查找具有缓存数据的缓存块,包括:
将所述目标缓存块的下一缓存块作为当前缓存块,所述当前缓存块是所述预设存储方向上的缓存块;
根据所述当前缓存块的唯一标识信息查找所述哈希链表;
若能查找到所述当前缓存块,则确定所述当前缓存块具有缓存数据,并将所述当前缓存块的下一缓存块作为所述当前缓存块,继续执行所述根据所述当前缓存块的唯一标识信息查找所述哈希链表的步骤;
若不能查找到所述当前缓存块,则确定所述当前缓存块不具有缓存数据。
可选的,所述按照所述预设存储方向的相反方向依次查找到具有缓存数据的缓存块,包括:
将所述目标缓存块的下一缓存块作为当前缓存块,所述当前缓存块是所述预设存储方向的相反方向上的缓存块;
根据所述当前缓存块的唯一标识信息查找所述哈希链表;
若能查找到所述当前缓存块,则确定所述当前缓存块具有缓存数据,并将所述当前缓存块的下一缓存块作为所述当前缓存块,继续执行所述根据所述当前缓存块的唯一标识信息查找所述哈希链表的步骤;
若不能查找到所述当前缓存块,则确定所述当前缓存块不具有缓存数据。
本申请实施例提供的一种数据下刷装置,包括:
选取单元,用于从缓存空间中选取预设大小的缓存数据,所述预设大小为磁盘阵列的一个条带的大小;
刷写单元,将所述预设大小的缓存数据,一起刷写到所述磁盘阵列中。
可选的,所述缓存空间被预先划分为多个固定大小的缓存块,并为每个具有缓存数据的缓存块定义唯一标识信息;
则,所述选取单元,包括:
第一选取子单元,用于根据所述缓存空间中的具有缓存数据的缓存块的唯一标识信息,从所述缓存空间中选取预设大小的缓存数据。
可选的,所述缓存块的唯一标识信息包括第一标识信息和第二标识信息,所述第一标识信息为所述缓存块中的缓存数据所属的逻辑卷的唯一标识,所述第二标识信息为所述逻辑卷的起始偏移地址。
可选的,所述第一选取子单元包括:
第二选取子单元,用于选取目标缓存块,所述目标缓存块是所述缓存空间中一个具有缓存数据的缓存块;
正向查找子单元,用于从所述目标缓存块开始,按照预设存储方向依次查找具有缓存数据的缓存块,并将当前查找到的缓存块、之前查找到的缓存块以及所述目标缓存块一起形成第一连续缓存块;
第一提取子单元,用于若当前形成的第一连续缓存块达到所述预设大小,则提取所述第一连续缓存块中的缓存数据;
反向查找子单元,用于若当前形成的第一连续缓存块没有达到所述预设大小,则按照所述预设存储方向的相反方向依次查找到具有缓存数据的缓存块,并将当前查找到的缓存块、之前查找到的缓存块一起形成第二连续缓存块;
第二提取子单元,用于若第三连续缓存块达到所述预设大小,则提取所述第三连续缓存块中的缓存数据,所述第三连续缓存块包括所述第一连续缓存块和所述第二连续缓存块。
可选的,所述缓存空间中具有缓存数据的各个缓存块以哈希链表的形式进行组织;
则,所述正向查找子单元,包括:
第一确定子单元,用于将所述目标缓存块的下一缓存块作为当前缓存块,所述当前缓存块是所述预设存储方向上的缓存块;
第一查找子单元,用于根据所述当前缓存块的唯一标识信息查找所述哈希链表;
第二查找子单元,用于若能查找到所述当前缓存块,则确定所述当前缓存块具有缓存数据,并将所述当前缓存块的下一缓存块作为所述当前缓存块,继续执行所述根据所述当前缓存块的唯一标识信息查找所述哈希链表的步骤;
第二确定子单元,用于若不能查找到所述当前缓存块,则确定所述当前缓存块不具有缓存数据。
可选的,所述反向查找子单元,包括:
第三确定子单元,用于将所述目标缓存块的下一缓存块作为当前缓存块,所述当前缓存块是所述预设存储方向的相反方向上的缓存块;
第三查找子单元,用于根据所述当前缓存块的唯一标识信息查找所述哈希链表;
第四查找子单元,用于若能查找到所述当前缓存块,则确定所述当前缓存块具有缓存数据,并将所述当前缓存块的下一缓存块作为所述当前缓存块,继续执行所述根据所述当前缓存块的唯一标识信息查找所述哈希链表的步骤;
第四确定子单元,用于若不能查找到所述当前缓存块,则确定所述当前缓存块不具有缓存数据。由此可见,本申请实施例具有如下有益效果:
本申请实施例提供的数据下刷方法及装置,通过从缓存空间中选取一个条带大小的缓存数据;将一个条带大小的缓存数据,一起刷写到磁盘阵列中。由此可见,该方法根据后端磁盘阵列条带化技术的特点,通过从缓存空间中选取一个条带大小的缓存数据进行数据刷写,这样可以使输入输出(Input/Output,I/O)的负载均衡到后端磁盘阵列的多个物理磁盘上,以提升缓存数据下刷到后端磁盘阵列的速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据下刷方法流程图;
图2为本申请实施例提供的一种将缓存空间划分为缓存块的示意图;
图3为本申请实施例提供的一种从缓存空间中选取预设大小的缓存数据的方法流程图;
图4为本申请实施例提供的一种将缓存块组织成哈希链表形式的示意图;
图5为本申请实施例提供的一种按照预设存储方向依次查找具有缓存数据的缓存块的方法流程图;
图6为本申请实施例提供的一种按照预设存储方向依次查找具有缓存数据的缓存块的场景示意图;
图7为本申请实施例提供的一种按照预设存储方向的相反方向依次查找到具有缓存数据的缓存块的方法流程图;
图8为本申请实施例提供的一种按照预设存储方向的相反方向依次查找具有缓存数据的缓存块的场景示意图;
图9为本申请实施例提供的一种数据下刷装置的组成示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更清楚的描述本申请实施例提供的方案,下面对向存储系统写数据的场景以及涉及到的专有名词进行说明:
在存储系统中,为了提升写请求的响应时间,数据写入缓存后就返回,写入到缓存中的数据再异步刷写到后端磁盘中。后端磁盘在存储系统中都组织成磁盘阵列(RedundantArrays of Independent Drives,RAID)的形式,因为RAID提供了条带化技术。RAID条带化技术就是一种自动的将I/O(输入/输出)的负载均衡到多个物理磁盘上的技术,条带化技术就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去。这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的I/O并行能力,从而获得非常好的性能。而为了提升数据刷写性能,需要提升缓存数据下刷到后端磁盘阵列的速度。
条带大小:可以是前述中“将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去”的向每一磁盘存储的小部分数据的大小。
缓存脏数据:可以是已写入至缓存空间中,但是还没有被下刷至后端磁盘阵列中的数据。
基于现有技术中的问题,本申请实施例提供了一种数据下刷方法,参见图1,该图示出了本申请实施例提供的一种数据下刷方法流程图,可以包括步骤S101-S102:
S101:从缓存空间中选取预设大小的缓存数据,预设大小为磁盘阵列的一个条带的大小。
在本实施例中,在数据写入至缓存空间之后,可以从缓存空间中选取出具有预设大小的缓存数据。其中,预设大小可以是预先设置的数据大小的粒度,比如预设大小可以是500KB。在本实施例中,可以将预设大小设置为后端磁盘阵列的一个条带的大小。
S102:将预设大小的缓存数据,一起刷写到所述磁盘阵列中。
在本实施例中,可以将选取的具有预设大小的缓存数据构成一个写操作,并将该写操作下发至后端磁盘整列,进而把该预设大小的缓存数据刷写至后端磁盘阵列中。
在本实施例的一种实现方式中,缓存空间被预先划分为多个固定大小的缓存块,并为每个具有缓存数据的缓存块定义唯一标识信息;则,从缓存空间中选取预设大小的缓存数据,包括:根据所述缓存空间中的具有缓存数据的缓存块的唯一标识信息,从所述缓存空间中选取预设大小的缓存数据。
在本实施例中,可以按照一个固定大小的粒度,预先将缓存空间划分成多个等粒度的缓存块,并且对于每个已经被写入数据的缓存块,可以为其都定义有用于区分的唯一标识信息。其中,固定大小的粒度可以按照实际应用进行设定,比如可以是25KB;唯一标识信息可以是为了对不同的具有缓存数据的缓存块进行区分而定义的信息,比如可以是由数字、字母等组成的信息等。
在本实施例的一种实现方式中,缓存块的唯一标识信息包括第一标识信息和第二标识信息,第一标识信息为缓存块中的缓存数据所属的逻辑卷的唯一标识,第二标识信息为逻辑卷的起始偏移地址。
在本实施例中,对于每个已经被写入数据的缓存块,可以将缓存块中的缓存数据所属的逻辑卷的唯一标识记为第一标识信息,将缓存块中的缓存数据所属的逻辑卷的起始偏移地址记为第二标识信息。其中,逻辑卷可以是由逻辑磁盘形成的虚拟盘,即为磁盘分区;逻辑卷的起始偏移地址可以是在对逻辑卷进行分段后,在段内相对于该段首地址的偏移量。
在实际的应用场景中,可以将逻辑卷记为lun_id,可以将逻辑卷的起始偏移地址记为lba。在一个示例中,可以通过如下数据结构对具有缓存数据的缓存块进行描述:
Struct cache_segment{
Uint32lun_id;
Uint62lba;
Uint64memory_addr;
}
在本实施例中,可以将缓存块中的缓存数据对应的第一标识信息和第二标识信息的组合作为缓存块的唯一标识信息。则,可以理解的是,只有在缓存块已经被写入数据的情况下,才可以将该缓存块中的缓存数据对应的第一标识信息和第二标识信息作为该缓存块唯一标识信息。
在本实施例中,参见图2,该图示出了本申请实施例提供的一种将缓存空间划分为缓存块的示意图。如图2所示,图2(a)示出了一个具有50000KB存储容量的缓存空间A,可以对其进行划分,图2(b)示出了按照25KB的粒度可以将该存储空间A划分成200个等粒度的缓存块。其中,如果这200个缓存块中的80个被写入数据,则可以为这80个缓存块分别定义唯一标识信息。比如可以为这80个缓存块定义的唯一标识信息分别为:lun_id=1、lba=1;lun_id=1、lba=2;lun_id=1、lba=3;…;lun_id=1、lba=80。
在本实施例的一种实现方式中,参见图3,该图示出了本申请实施例提供的一种从缓存空间中选取预设大小的缓存数据的方法流程图,可以包括步骤S301-S305:
S301:选取目标缓存块,目标缓存块是缓存空间中一个具有缓存数据的缓存块。
在本实施例中,可以在具有缓存数据的全部缓存块中,任意选定一个缓存块作为目标缓存块。其中,目标缓存块可以是缓存空间中的任意一个具有缓存数据的缓存块。例如:可以选取唯一标识符为lun_id=1、lba=62的缓存块作为目标缓存块。
S302:从目标缓存块开始,按照预设存储方向依次查找具有缓存数据的缓存块,并将当前查找到的缓存块、之前查找到的缓存块以及目标缓存块一起形成第一连续缓存块。
在本实施例中,在选定目标缓存块之后,从目标缓存块开始,按照预设存储方向依次查找具有缓存数据的缓存块。其中,预设存储方向可以是预先设定的用于查找缓存块的方向。下面以一个具体示例对预设存储方向进行说明:对于图2(b)中示出的80个具有缓存数据的缓存块,在选取唯一标识信息为lun_id=1、lba=62的缓存块作为目标缓存块之后,则可以设定预设存储方向为按照缓存块的唯一标识信息中的第一标识信息(lun_id)相同、第二标识信息(lba)从小到大的方向。这样,可以从唯一标识信息为lun_id=1、lba=62的缓存块开始,按照缓存块的唯一标识信息中的第一标识信息(lun_id)相同、第二标识信息(lba)从小到大的方向,依次查找出唯一标识信息为lun_id=1、lba=63、lun_id=1、lba=64…lun_id=1、lba=80的缓存块。可以理解的是,也可以将预设存储方向设定为按照缓存块的唯一标识信息中的第一标识信息(lun_id)相同、第二标识信息(lba)从大到小的方向。由于根据该种预设方向查找缓存块的原理与前述相同,因此不再赘述。
在本实施例的一种实现方式中,缓存空间中具有缓存数据的各个缓存块以哈希链表的形式进行组织。
在本实施例中,为了更快速的查找缓存块,可以将缓存空间中具有缓存数据的各个缓存块以哈希链表(hash_link)的形式进行组织。参见图4,该图示出了本申请实施例提供的一种将缓存块组织成哈希链表形式的示意图。如图4所示,将缓存块组织成哈希链表形式之后,可以包括有多条哈希冲突链,并且在每条哈希冲突链中都包括有哈希链表表头(hlist_head)和多个缓存块。这样,当需要查找一个缓存块时,可以根据该缓存块的唯一标识符lun_id与lba计算得出一个哈希key值,并根据该哈希key值查找到其对应的哈希冲突链,接着,再对该哈希冲突链进行遍历即可找到需要查找的缓存块。在一个示例中,可以通过如下数据结构对将缓存块组织成哈希链表形式进行描述:
Struct cache_segment{
Struct cache_segment*hash_link;
}
则,参见图5,该图示出了本申请实施例提供的一种按照预设存储方向依次查找具有缓存数据的缓存块的方法流程图,可以包括步骤S501-S504:
S501:将目标缓存块的下一缓存块作为当前缓存块,当前缓存块是预设存储方向上的缓存块。
在本实施例中,可以将目标缓存块的预设存储方向上的下一缓存块作为当前缓存块。参见图6,该图示出了本申请实施例提供的一种按照预设存储方向依次查找具有缓存数据的缓存块的场景示意图,如图6(a)所示,在本实施例中,由于仅将缓存空间中具有缓存数据的各个缓存块组织成哈希链表形式,因此,只能在哈希链表中查找到lun_id=1、lba=1至lun_id=1、lba=80对应的缓存块。当设定预设存储方向为按照缓存块的唯一标识信息中的第一标识信息(lun_id)相同、第二标识信息(lba)从小到大的方向时,则可以将目标缓存块lun_id=1、lba=62的预设存储方向上的下一缓存块作为当前缓存块,即将lun_id=1、lba=63作为当前缓存块。
S502:根据当前缓存块的唯一标识信息查找哈希链表。
在本实施例中,在确定当前缓存块之后,则可以确定当前缓存块的唯一标识信息,这样,可以根据当前缓存块的唯一标识信息在哈希链表查找到相应的缓存块。比如,已经确定当前缓存块的唯一标识信息为lun_id=1、lba=63,这样,可以通过当前缓存块的唯一标识信息lun_id=1、lba=63在哈希链表中查找到lun_id=1、lba=63对应的缓存块。
S503:若能查找到当前缓存块,则确定当前缓存块具有缓存数据,并将当前缓存块的下一缓存块作为当前缓存块,继续执行步骤S502。
在本实施例中,如果可以在哈希链表中查找到当前缓存块时,即可以确定该当前缓存块具有缓存数据,这样,可以将该当前缓存块的在预设存储方向上的下一缓存块作为当前缓存块,而将该当前缓存块作为之前查找到的缓存块。例如:如图6(b)所示,在能查找到当前缓存块lun_id=1、lba=63之后,可以将lun_id=1、lba=63的下一缓存块作为当前缓存块,即将lun_id=1、lba=64缓存块作为当前缓存块,而将已查找到的lun_id=1、lba=63作为之前查找到的缓存块,并继续执行步骤S502,以在哈希链表中查找lun_id=1、lba=64缓存块。这样,在经过多数轮次的循环之后,就可以查找出目标缓存块在预设存储方向的全部的缓存块。
在本实施例中,在每循环一轮缓存块查找时,即可以将当前查找到的当前缓存块、之前查找到的缓存块以及目标缓存块一起形成第一连续缓存块。例如:如图6(b)所示,lun_id=1、lba=64为当前缓存块、lun_id=1、lba=63为之前查找到的缓存块、lun_id=1、lba=62为目标缓存块,则可以将lun_id=1、lba=64,lun_id=1、lba=63和lun_id=1、lba=62缓存块一起形成第一连续缓存块。
S504:若不能查找到当前缓存块,则确定当前缓存块不具有缓存数据。
在本实施例中,如果在哈希链表中没有查找到当前缓存块时,则可以确定该当前缓存块不具有缓存数据,这样,停止在预设存储方向上继续查找具有缓存数据的缓存块。例如:如图6(c)所示,在循环执行步骤S502后,如果在某一轮将lun_id=1、lba=81缓存块作为当前缓存块,则可以理解的是,在哈希链表中一定不会查找到lun_id=1、lba=81缓存块,因此可以确定lun_id=1、lba=81缓存块中不具有缓存数据,则停止在预设存储方向上继续查找具有缓存数据的缓存块。
可以理解的是,根据上述按照预设存储方向依次查找具有缓存数据的缓存块的方法,只要循环足够多轮次的步骤S502,即可查找出目标缓存块在预设存储方向上的具有缓存数据的全部缓存块。例如:在循环足够多轮次的步骤S502之后,可以查找出目标缓存块lun_id=1、lba=62在预设存储方向上的具有缓存数据的全部缓存块,即lun_id=1、lba=63,…,lun_id=1、lba=80缓存块。
S303:若当前形成的第一连续缓存块达到预设大小,则提取所述第一连续缓存块中的缓存数据。
在本实施例中,在当前形成的第一连续缓存块达到预设大小时,则可以确定在第一连续缓存块中缓存的数据可以构成一个条带大小的数据,这时,可以将第一连续缓存块中的缓存数据提取出来以备将该数据刷写至后端磁盘阵列中。例如:在一个条带大小为500KB、且一个缓存块的存储容量为25KB的场景下,当当前形成的第一连续缓存块由20个缓存块形成时,即第一连续缓存块中存储的数据大小达到500KB,则可以确定在第一连续缓存块中缓存的数据可以构成一个条带大小的数据,这时,可以将第一连续缓存块中的缓存数据提取出来以备将该数据刷写至后端磁盘阵列中。
在本实施例中,对于循环查找目标缓存块的预设存储方向的缓存块时,每以轮在哈希链表中查找到当前缓存块时,即可以将该当前查找到的当前缓存块、之前查找到的缓存块以及目标缓存块一起形成第一连续缓存块,并将该当前形成的第一连续缓存块中存储的数据大小与预设大小进行比较,如果该当前形成的第一连续缓存块中存储的数据大小达到预设大小,即停止执行循环查找缓存块的步骤,并提取出当前形成的第一连续缓存块中的缓存数据;如果该当前形成的第一连续缓存块中存储的数据大小未达到预设大小,即可以继续执行循环查找缓存块的步骤,直至形成的第一连续缓存块中存储的数据达到预设大小或者在哈希链表中不能查找出预设存储方向的缓存块。
下面以一个示例进行说明:图6(b)示出了以lun_id=1、lba=64作为当前缓存块,并在哈希链表中查找该lun_id=1、lba=64缓存块的示意图,则在哈希链表中查找出该lun_id=1、lba=64缓存块之后,可以将当前缓存块lun_id=1、lba=64、之前查找到的缓存块lun_id=1、lba=63以及目标缓存块lun_id=1、lba=62一起形成第一连续缓存块。即对该当前形成的lun_id=1、lba=64,lun_id=1、lba=63与lun_id=1、lba=62缓存块一起形成第一连续缓存块,并将该当前形成的第一连续缓存块中存储的数据大小与预设大小进行比较,如果该当前形成的第一连续缓存块中存储的数据大小达到预设大小,即停止执行循环查找缓存块的步骤,并提取出当前形成的第一连续缓存块中的缓存数据;如果该当前形成的第一连续缓存块中存储的数据大小未达到预设大小,即可以继续执行循环查找缓存块的步骤,直至形成的第一连续缓存块中存储的数据达到预设大小或者在哈希链表中不能查找出预设存储方向的缓存块。
S304:若当前形成的第一连续缓存块没有达到预设大小,则按照预设存储方向的相反方向依次查找到具有缓存数据的缓存块,并将当前查找到的缓存块、之前查找到的缓存块一起形成第二连续缓存块。
在本实施例中,如果当前形成的第一连续缓存块中存储的数据未达到预设大小时,则可以按照预设存储方向的相反方向依次查找到具有缓存数据的缓存块。例如:在一个条带大小为500KB、且一个缓存块的存储容量为25KB的场景下,当当前形成的第一连续缓存块由18个缓存块形成,且在该预设存储方向上不能再找到缓存块时,即第一连续缓存块中存储的数据大小为450KB,则可以确定在第一连续缓存块中缓存的数据大小未达到一个条带大小的数据,这时,可以按照预设存储方向的相反方向依次查找具有缓存数据的缓存块。其中,预设存储方向为按照缓存块的唯一标识信息中的第一标识信息相同、第二标识信息(lba)从小到大的方向,则预设存储方向的相反方向为按照缓存块的唯一标识信息中的第一标识信息相同、第二标识信息(lba)从大到小的方向。
在本实施例的一种实现方式中,参见图8,该图示出了本申请实施例提供的一种按照预设存储方向的相反方向依次查找到具有缓存数据的缓存块的方法流程图,可以包括步骤S701-S704:
S701:将目标缓存块的下一缓存块作为当前缓存块,所述当前缓存块是所述预设存储方向的相反方向上的缓存块。
在本实施例中,可以将目标缓存块的预设存储方向的相反方向上的下一缓存块作为当前缓存块。参见图8,该图示出了本申请实施例提供的一种按照预设存储方向的相反方向依次查找具有缓存数据的缓存块的场景示意图,如图8(a)所示,当预设存储方向为按照缓存块的唯一标识信息中的第一标识信息(lun_id)相同、第二标识信息(lba)从小到大的方向时,则预设存储方向的相反方向为按照缓存块的唯一标识信息中的第一标识信息(lun_id)相同、第二标识信息(lba)从大到小的方向,则,可以将目标缓存块lun_id=1、lba=62的预设存储方向的相反方向上的下一缓存块作为当前缓存块,即将lun_id=1、lba=61作为当前缓存块。
S702:根据当前缓存块的唯一标识信息查找所述哈希链表。
在本实施例中,在确定当前缓存块之后,则也可以确定当前缓存块的唯一标识信息,这样,可以根据当前缓存块的唯一标识信息在哈希链表查找到相应的缓存块。比如,已经确定当前缓存块的唯一标识信息为lun_id=1、lba=61,这样,可以通过当前缓存块的唯一标识信息lun_id=1、lba=61在哈希链表中查找到lun_id=1、lba=61对应的缓存块。
S703:若能查找到当前缓存块,则确定当前缓存块具有缓存数据,并将当前缓存块的下一缓存块作为当前缓存块,继续执行步骤S702。
在本实施例中,如果可以在哈希链表中查找到当前缓存块时,即可以确定该当前缓存块具有缓存数据,这样,可以将该当前缓存块的预设存储方向的相反方向上的下一缓存块作为当前缓存块,而将该当前缓存块作为之前查找到的缓存块。例如:如图8(b)所示,在能查找到当前缓存块lun_id=1、lba=61之后,可以将lun_id=1、lba=61的下一缓存块作为当前缓存块,即将lun_id=1、lba=60缓存块作为当前缓存块,而将lun_id=1、lba=61作为之前查找到的缓存块,并继续执行步骤S702,以在哈希链表中查找lun_id=1、lba=60缓存块。这样,在经过多数轮次的循环之后,就可以查找出目标缓存块在预设存储方向的全部的缓存块。
在本实施例中,在每循环一轮缓存块查找时,即可以将当前查找到的当前缓存块、之前查找到的缓存块一起形成第二连续缓存块。例如:如图8(b)所示,lun_id=1、lba=60为当前缓存块、lun_id=1、lba=61为之前查找到的缓存块,则可以将lun_id=1、lba=60和lun_id=1、lba=61缓存块一起形成第二连续缓存块。
S704:若不能查找到所述当前缓存块,则确定所述当前缓存块不具有缓存数据。
在本实施例中,如果在哈希链表中没有查找到当前缓存块时,则可以确定该当前缓存块不具有缓存数据,这样,停止在预设存储方向上继续查找具有缓存数据的缓存块。
S305:若第三连续缓存块达到所述预设大小,则提取第三连续缓存块中的缓存数据,第三连续缓存块包括第一连续缓存块和第二连续缓存块。
在本实施例中,可以将第一连续缓存块和第二连续缓存块一起组成第三连续缓存块,在当前形成的第三连续缓存块达到预设大小时,则可以确定在第三连续缓存块中缓存的数据可以构成一个条带大小的数据,这时,可以将第三连续缓存块中的缓存数据提取出来以备将该数据刷写至后端磁盘阵列中。例如:在一个条带大小为500KB、且一个缓存块的存储容量为25KB的场景下,当第一连续缓存块由18个缓存块形成时,即第一连续缓存块中存储的数据大小为450KB,且第二连续缓存块由2个缓存块形成时,即第二连续缓存块中存储的数据大小为50KB,这样,包括第一连续缓存块与第二连续缓存块的第三连续缓存块中缓存的数据的大小为500KB,因此,可以确定第三连续缓存块中缓存的数据的大小达到一个条带大小的数据,这时,可以将第三连续缓存块中的缓存数据提取出来以备将该数据刷写至后端磁盘阵列中。
在本实施例中,对于循环查找目标缓存块的与预设存储方向相反方向上的缓存块时,在每一轮在哈希链表中查找到当前缓存块时,即可以将该当前查找到的当前缓存块和之前查找到的缓存块一起形成第二连续缓存块,并将第一连续缓存块与该当前形成的第二连续缓存块一起形成第三连续缓存块,然后将该当前形成的第三连续缓存块中存储的数据大小与预设大小进行比较,如果该当前形成的第三连续缓存块中存储的数据大小达到预设大小,即停止执行循环查找缓存块的步骤,并提取出当前形成的第三连续缓存块中的缓存数据;如果该当前形成的第三连续缓存块中存储的数据大小未达到预设大小,即可以继续执行循环查找缓存块的步骤,直至形成的第三连续缓存块中存储的数据达到预设大小或者在哈希链表中不能查找出与预设存储方向相反方向的缓存块。
下面以一个示例进行说明:图8(b)示出了以lun_id=1、lba=60作为当前缓存块,并在哈希链表中查找该lun_id=1、lba=60缓存块的示意图,则在哈希链表中查找出该lun_id=1、lba=60缓存块之后,可以将当前缓存块lun_id=1、lba=60与之前查找到的缓存块lun_id=1、lba=61一起形成第二连续缓存块。即对该当前形成的lun_id=1、lba=61与lun_id=1、lba=60缓存块一起形成第二连续缓存块,并将第一连续缓存块与该当前形成的第二连续缓存块一起形成第三连续缓存块,且将该当前形成的第三连续缓存块中存储的数据大小与预设大小进行比较,如果该当前形成的第三连续缓存块中存储的数据大小达到预设大小,即停止执行循环查找缓存块的步骤,并提取出当前形成的第三连续缓存块中的缓存数据;如果该当前形成的第三连续缓存块中存储的数据大小未达到预设大小,即可以继续执行循环查找缓存块的步骤,直至形成的第三连续缓存块中存储的数据达到预设大小或者在哈希链表中不能查找出预设存储方向的缓存块。
在本实施例中提供的在哈希链表中查找具有缓存数据的缓存块的方法中,可以首先将查找缓存块的方向设置为先按照缓存块的唯一标识信息中的第一标识信息(lun_id)相同、第二标识信息(lba)从小到大的方向,若在该查找方向上查到并形成的第一连续缓存块中存储数据的大小未达到预设大小,还可以按照与原查找方向相反的方向继续进行查找,直至查找并组成的第三连续缓存块中存储数据的大小达到预设方向为止;可以理解的是,还可以首先将查找缓存块的方向设置为先按照缓存块的唯一标识信息中的第一标识信息(lun_id)相同、第二标识信息(lba)从大到小的方向,若在该查找方向上查到并形成的第一连续缓存块中存储数据的大小未达到预设大小,还可以按照与原查找方向相反的方向继续进行查找,直至查找并组成的第三连续缓存块中存储数据的大小达到预设方向为止。对于该种在哈希链表中查找具有缓存数据的缓存块的方法,由于查找的原理与前述相同,因此不再赘述。
综上,本申请实施例提供的一种数据下刷方法,通过从缓存空间中选取一个条带大小的缓存数据;将一个条带大小的缓存数据,一起刷写到磁盘阵列中。由此可见,该方法根据后端磁盘阵列条带化技术的特点,通过从缓存空间中选取一个条带大小的缓存数据进行数据刷写,这样可以使输入输出(Input/Output,I/O)的负载均衡到后端磁盘阵列的多个物理磁盘上,以提升缓存数据下刷到后端磁盘阵列的速度。
参见图9,该图示出了本申请实施例提供的一种数据下刷装置的组成示意图,该装置包括:
选取单元901,用于从缓存空间中选取预设大小的缓存数据,所述预设大小为磁盘阵列的一个条带的大小;
刷写单元902,将所述预设大小的缓存数据,一起刷写到所述磁盘阵列中。
在本实施例的一种实现方式中,所述缓存空间被预先划分为多个固定大小的缓存块,并为每个具有缓存数据的缓存块定义唯一标识信息;
则,所述选取单元901,包括:
第一选取子单元,用于根据所述缓存空间中的具有缓存数据的缓存块的唯一标识信息,从所述缓存空间中选取预设大小的缓存数据。
在本实施例的一种实现方式中,所述缓存块的唯一标识信息包括第一标识信息和第二标识信息,所述第一标识信息为所述缓存块中的缓存数据所属的逻辑卷的唯一标识,所述第二标识信息为所述逻辑卷的起始偏移地址。
在本实施例的一种实现方式中,所述第一选取子单元包括:
第二选取子单元,用于选取目标缓存块,所述目标缓存块是所述缓存空间中一个具有缓存数据的缓存块;
正向查找子单元,用于从所述目标缓存块开始,按照预设存储方向依次查找具有缓存数据的缓存块,并将当前查找到的缓存块、之前查找到的缓存块以及所述目标缓存块一起形成第一连续缓存块;
第一提取子单元,用于若当前形成的第一连续缓存块达到所述预设大小,则提取所述第一连续缓存块中的缓存数据;
反向查找子单元,用于若当前形成的第一连续缓存块没有达到所述预设大小,则按照所述预设存储方向的相反方向依次查找到具有缓存数据的缓存块,并将当前查找到的缓存块、之前查找到的缓存块一起形成第二连续缓存块;
第二提取子单元,用于若第三连续缓存块达到所述预设大小,则提取所述第三连续缓存块中的缓存数据,所述第三连续缓存块包括所述第一连续缓存块和所述第二连续缓存块。
在本实施例的一种实现方式中,所述缓存空间中具有缓存数据的各个缓存块以哈希链表的形式进行组织;
则,所述正向查找子单元,包括:
第一确定子单元,用于将所述目标缓存块的下一缓存块作为当前缓存块,所述当前缓存块是所述预设存储方向上的缓存块;
第一查找子单元,用于根据所述当前缓存块的唯一标识信息查找所述哈希链表;
第二查找子单元,用于若能查找到所述当前缓存块,则确定所述当前缓存块具有缓存数据,并将所述当前缓存块的下一缓存块作为所述当前缓存块,继续执行所述根据所述当前缓存块的唯一标识信息查找所述哈希链表的步骤;
第二确定子单元,用于若不能查找到所述当前缓存块,则确定所述当前缓存块不具有缓存数据。
在本实施例的一种实现方式中,所述反向查找子单元,包括:
第三确定子单元,用于将所述目标缓存块的下一缓存块作为当前缓存块,所述当前缓存块是所述预设存储方向的相反方向上的缓存块;
第三查找子单元,用于根据所述当前缓存块的唯一标识信息查找所述哈希链表;
第四查找子单元,用于若能查找到所述当前缓存块,则确定所述当前缓存块具有缓存数据,并将所述当前缓存块的下一缓存块作为所述当前缓存块,继续执行所述根据所述当前缓存块的唯一标识信息查找所述哈希链表的步骤;
第四确定子单元,用于若不能查找到所述当前缓存块,则确定所述当前缓存块不具有缓存数据。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本申请各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种数据下刷方法,其特征在于,包括:
从缓存空间中选取预设大小的缓存数据,所述预设大小为磁盘阵列的一个条带的大小;
将所述预设大小的缓存数据,一起刷写到所述磁盘阵列中。
2.根据权利要求1所述的方法,其特征在于,所述缓存空间被预先划分为多个固定大小的缓存块,并为每个具有缓存数据的缓存块定义唯一标识信息;则,所述从缓存空间中选取预设大小的缓存数据,包括:
根据所述缓存空间中的具有缓存数据的缓存块的唯一标识信息,从所述缓存空间中选取预设大小的缓存数据。
3.根据权利要求2所述的方法,其特征在于,所述缓存块的唯一标识信息包括第一标识信息和第二标识信息,所述第一标识信息为所述缓存块中的缓存数据所属的逻辑卷的唯一标识,所述第二标识信息为所述逻辑卷的起始偏移地址。
4.根据权利要求2或3所述的方法,其特征在于,所述从所述缓存空间中选取预设大小的缓存数据,包括:
选取目标缓存块,所述目标缓存块是所述缓存空间中一个具有缓存数据的缓存块;
从所述目标缓存块开始,按照预设存储方向依次查找具有缓存数据的缓存块,并将当前查找到的缓存块、之前查找到的缓存块以及所述目标缓存块一起形成第一连续缓存块;
若当前形成的第一连续缓存块达到所述预设大小,则提取所述第一连续缓存块中的缓存数据;
若当前形成的第一连续缓存块没有达到所述预设大小,则按照所述预设存储方向的相反方向依次查找到具有缓存数据的缓存块,并将当前查找到的缓存块、之前查找到的缓存块一起形成第二连续缓存块;
若第三连续缓存块达到所述预设大小,则提取所述第三连续缓存块中的缓存数据,所述第三连续缓存块包括所述第一连续缓存块和所述第二连续缓存块。
5.根据权利要求4所述的方法,其特征在于,所述缓存空间中具有缓存数据的各个缓存块以哈希链表的形式进行组织;
则,所述按照预设存储方向依次查找具有缓存数据的缓存块,包括:
将所述目标缓存块的下一缓存块作为当前缓存块,所述当前缓存块是所述预设存储方向上的缓存块;
根据所述当前缓存块的唯一标识信息查找所述哈希链表;
若能查找到所述当前缓存块,则确定所述当前缓存块具有缓存数据,并将所述当前缓存块的下一缓存块作为所述当前缓存块,继续执行所述根据所述当前缓存块的唯一标识信息查找所述哈希链表的步骤;
若不能查找到所述当前缓存块,则确定所述当前缓存块不具有缓存数据。
6.根据权利要求5所述的方法,其特征在于,所述按照所述预设存储方向的相反方向依次查找到具有缓存数据的缓存块,包括:
将所述目标缓存块的下一缓存块作为当前缓存块,所述当前缓存块是所述预设存储方向的相反方向上的缓存块;
根据所述当前缓存块的唯一标识信息查找所述哈希链表;
若能查找到所述当前缓存块,则确定所述当前缓存块具有缓存数据,并将所述当前缓存块的下一缓存块作为所述当前缓存块,继续执行所述根据所述当前缓存块的唯一标识信息查找所述哈希链表的步骤;
若不能查找到所述当前缓存块,则确定所述当前缓存块不具有缓存数据。
7.一种数据下刷装置,其特征在于,包括:
选取单元,用于从缓存空间中选取预设大小的缓存数据,所述预设大小为磁盘阵列的一个条带的大小;
刷写单元,将所述预设大小的缓存数据,一起刷写到所述磁盘阵列中。
8.根据权利要求7所述的装置,其特征在于,所述缓存空间被预先划分为多个固定大小的缓存块,并为每个具有缓存数据的缓存块定义唯一标识信息;则,所述选取单元,包括:
第一选取子单元,用于根据所述缓存空间中的具有缓存数据的缓存块的唯一标识信息,从所述缓存空间中选取预设大小的缓存数据。
9.根据权利要求8所述的装置,其特征在于,所述缓存块的唯一标识信息包括第一标识信息和第二标识信息,所述第一标识信息为所述缓存块中的缓存数据所属的逻辑卷的唯一标识,所述第二标识信息为所述逻辑卷的起始偏移地址。
10.根据权利要求8或9所述的装置,其特征在于,所述第一选取子单元包括:
第二选取子单元,用于选取目标缓存块,所述目标缓存块是所述缓存空间中一个具有缓存数据的缓存块;
正向查找子单元,用于从所述目标缓存块开始,按照预设存储方向依次查找具有缓存数据的缓存块,并将当前查找到的缓存块、之前查找到的缓存块以及所述目标缓存块一起形成第一连续缓存块;
第一提取子单元,用于若当前形成的第一连续缓存块达到所述预设大小,则提取所述第一连续缓存块中的缓存数据;
反向查找子单元,用于若当前形成的第一连续缓存块没有达到所述预设大小,则按照所述预设存储方向的相反方向依次查找到具有缓存数据的缓存块,并将当前查找到的缓存块、之前查找到的缓存块一起形成第二连续缓存块;
第二提取子单元,用于若第三连续缓存块达到所述预设大小,则提取所述第三连续缓存块中的缓存数据,所述第三连续缓存块包括所述第一连续缓存块和所述第二连续缓存块。
11.根据权利要求10所述的装置,其特征在于,所述缓存空间中具有缓存数据的各个缓存块以哈希链表的形式进行组织;
则,所述正向查找子单元,包括:
第一确定子单元,用于将所述目标缓存块的下一缓存块作为当前缓存块,所述当前缓存块是所述预设存储方向上的缓存块;
第一查找子单元,用于根据所述当前缓存块的唯一标识信息查找所述哈希链表;
第二查找子单元,用于若能查找到所述当前缓存块,则确定所述当前缓存块具有缓存数据,并将所述当前缓存块的下一缓存块作为所述当前缓存块,继续执行所述根据所述当前缓存块的唯一标识信息查找所述哈希链表的步骤;
第二确定子单元,用于若不能查找到所述当前缓存块,则确定所述当前缓存块不具有缓存数据。
12.根据权利要求11所述的装置,其特征在于,所述反向查找子单元,包括:
第三确定子单元,用于将所述目标缓存块的下一缓存块作为当前缓存块,所述当前缓存块是所述预设存储方向的相反方向上的缓存块;
第三查找子单元,用于根据所述当前缓存块的唯一标识信息查找所述哈希链表;
第四查找子单元,用于若能查找到所述当前缓存块,则确定所述当前缓存块具有缓存数据,并将所述当前缓存块的下一缓存块作为所述当前缓存块,继续执行所述根据所述当前缓存块的唯一标识信息查找所述哈希链表的步骤;
第四确定子单元,用于若不能查找到所述当前缓存块,则确定所述当前缓存块不具有缓存数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811376492.9A CN109542348B (zh) | 2018-11-19 | 2018-11-19 | 一种数据下刷方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811376492.9A CN109542348B (zh) | 2018-11-19 | 2018-11-19 | 一种数据下刷方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542348A true CN109542348A (zh) | 2019-03-29 |
CN109542348B CN109542348B (zh) | 2022-05-10 |
Family
ID=65848111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811376492.9A Active CN109542348B (zh) | 2018-11-19 | 2018-11-19 | 一种数据下刷方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542348B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7124253B1 (en) * | 2004-02-18 | 2006-10-17 | Sun Microsystems, Inc. | Supporting directory-based cache coherence in an object-addressed memory hierarchy |
CN101040256A (zh) * | 2004-09-10 | 2007-09-19 | 卡威姆网络有限公司 | 用于多核处理器的存储指令排序 |
CN102185929A (zh) * | 2011-06-02 | 2011-09-14 | 杭州华三通信技术有限公司 | 一种基于san资源的视频监控数据存储方法及其装置 |
CN103051977A (zh) * | 2013-01-11 | 2013-04-17 | 乐视网信息技术(北京)股份有限公司 | 一种处理p2p缓存数据的方法 |
CN104049918A (zh) * | 2014-07-03 | 2014-09-17 | 浪潮集团有限公司 | 一种双控存储服务器的缓存管理方法 |
US20140281131A1 (en) * | 2013-03-15 | 2014-09-18 | Fusion-Io, Inc. | Systems and methods for persistent cache logging |
CN104133784A (zh) * | 2014-07-24 | 2014-11-05 | 大唐移动通信设备有限公司 | 一种报文缓存管理方法与装置 |
CN104461936A (zh) * | 2014-11-28 | 2015-03-25 | 华为技术有限公司 | 缓存数据的刷盘方法及装置 |
CN104503703A (zh) * | 2014-12-16 | 2015-04-08 | 华为技术有限公司 | 缓存的处理方法和装置 |
CN104536699A (zh) * | 2014-12-11 | 2015-04-22 | 中国科学院声学研究所 | 一种基于嵌入式文件系统的流式数据写入方法 |
US20160179678A1 (en) * | 2014-12-19 | 2016-06-23 | International Business Machines Corporation | Non-volatile memory controller cache architecture with support for separation of data streams |
CN106681668A (zh) * | 2017-01-12 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种基于固态盘缓存的混合式存储系统及存储方法 |
CN107844436A (zh) * | 2017-11-02 | 2018-03-27 | 郑州云海信息技术有限公司 | 一种缓存中脏数据的组织管理方法、系统及存储系统 |
CN108107792A (zh) * | 2017-12-29 | 2018-06-01 | 美的集团股份有限公司 | Lua脚本的加载方法、终端及计算机可读存储介质 |
-
2018
- 2018-11-19 CN CN201811376492.9A patent/CN109542348B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7124253B1 (en) * | 2004-02-18 | 2006-10-17 | Sun Microsystems, Inc. | Supporting directory-based cache coherence in an object-addressed memory hierarchy |
CN101040256A (zh) * | 2004-09-10 | 2007-09-19 | 卡威姆网络有限公司 | 用于多核处理器的存储指令排序 |
CN102185929A (zh) * | 2011-06-02 | 2011-09-14 | 杭州华三通信技术有限公司 | 一种基于san资源的视频监控数据存储方法及其装置 |
CN103051977A (zh) * | 2013-01-11 | 2013-04-17 | 乐视网信息技术(北京)股份有限公司 | 一种处理p2p缓存数据的方法 |
US20140281131A1 (en) * | 2013-03-15 | 2014-09-18 | Fusion-Io, Inc. | Systems and methods for persistent cache logging |
CN104049918A (zh) * | 2014-07-03 | 2014-09-17 | 浪潮集团有限公司 | 一种双控存储服务器的缓存管理方法 |
CN104133784A (zh) * | 2014-07-24 | 2014-11-05 | 大唐移动通信设备有限公司 | 一种报文缓存管理方法与装置 |
CN104461936A (zh) * | 2014-11-28 | 2015-03-25 | 华为技术有限公司 | 缓存数据的刷盘方法及装置 |
CN104536699A (zh) * | 2014-12-11 | 2015-04-22 | 中国科学院声学研究所 | 一种基于嵌入式文件系统的流式数据写入方法 |
CN104503703A (zh) * | 2014-12-16 | 2015-04-08 | 华为技术有限公司 | 缓存的处理方法和装置 |
US20160179678A1 (en) * | 2014-12-19 | 2016-06-23 | International Business Machines Corporation | Non-volatile memory controller cache architecture with support for separation of data streams |
CN106681668A (zh) * | 2017-01-12 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种基于固态盘缓存的混合式存储系统及存储方法 |
CN107844436A (zh) * | 2017-11-02 | 2018-03-27 | 郑州云海信息技术有限公司 | 一种缓存中脏数据的组织管理方法、系统及存储系统 |
CN108107792A (zh) * | 2017-12-29 | 2018-06-01 | 美的集团股份有限公司 | Lua脚本的加载方法、终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109542348B (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107066393B (zh) | 提高地址映射表中映射信息密度的方法 | |
CN105589812B (zh) | 磁盘碎片整理方法、装置及主机 | |
CN104850358B (zh) | 一种磁光电混合存储系统及其数据获取和存储方法 | |
JP5043820B2 (ja) | 低冗長記憶システムで索引を行う方法 | |
CN103502957B (zh) | 数据处理方法及装置 | |
US8478939B2 (en) | Relative heat index based hot data determination for block based storage tiering | |
CN108009008A (zh) | 数据处理方法和系统、电子设备 | |
CN104503703B (zh) | 缓存的处理方法和装置 | |
CN106610903A (zh) | 层级化存储器系统、存储器控制器和去重及存储器层级化方法 | |
CN110058822A (zh) | 一种磁盘阵列横向拓展方法 | |
CN108280229A (zh) | 内存数据读写方法和装置 | |
CN105117351A (zh) | 向缓存写入数据的方法及装置 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN102201005A (zh) | 一种文件系统的流媒体增强文件布局方法 | |
CN105573674A (zh) | 一种面向海量小文件的分布式存储方法 | |
CN107153512A (zh) | 一种数据迁移方法和装置 | |
CN107844436B (zh) | 一种缓存中脏数据的组织管理方法、系统及存储系统 | |
CN107633097B (zh) | 一种数据库表的动态扩容方法及系统 | |
CN104765754A (zh) | 数据存储方法及装置 | |
CN103823641B (zh) | 一种在线扩容的虚拟卷系统及其实现方法 | |
CN104077241A (zh) | 缓存淘汰算法切换处理方法及装置 | |
CN106844491A (zh) | 一种临时数据的写入、读取方法及写入、读取装置 | |
CN101997919B (zh) | 一种存储资源的管理方法及管理装置 | |
CN106528703A (zh) | 一种重复删除的模式切换方法及装置 | |
CN109753446A (zh) | 一种存储系统下刷缓存数据的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |