CN109144431B - 数据块的缓存方法、装置、设备及存储介质 - Google Patents

数据块的缓存方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN109144431B
CN109144431B CN201811157995.7A CN201811157995A CN109144431B CN 109144431 B CN109144431 B CN 109144431B CN 201811157995 A CN201811157995 A CN 201811157995A CN 109144431 B CN109144431 B CN 109144431B
Authority
CN
China
Prior art keywords
data block
block
cache space
lazy
list
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.)
Active
Application number
CN201811157995.7A
Other languages
English (en)
Other versions
CN109144431A (zh
Inventor
周可
张煜
王桦
吉永光
程彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Huazhong University of Science and Technology
Original Assignee
Tencent Technology Shenzhen Co Ltd
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd, Huazhong University of Science and Technology filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201811157995.7A priority Critical patent/CN109144431B/zh
Publication of CN109144431A publication Critical patent/CN109144431A/zh
Priority to EP19866678.6A priority patent/EP3859536B1/en
Priority to PCT/CN2019/105509 priority patent/WO2020063355A1/zh
Priority to US17/038,680 priority patent/US11461239B2/en
Application granted granted Critical
Publication of CN109144431B publication Critical patent/CN109144431B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种数据块的缓存方法、装置、计算机设备及存储介质,属于存储技术领域。所述方法包括:获取访问请求,所述访问请求用于请求访问第一数据块;当所述第一数据块在所述缓存空间中未命中时,检测第二数据块是否满足懒惰条件,所述第二数据块是所述缓存空间中的备选剔除块;当所述第二数据块满足所述懒惰条件时,从所述存储空间访问所述第一数据块且不将所述第二数据块替换出所述缓存空间中。本申请能够极大地延长第二数据块在缓存空间中的停留时长,提高有用数据块的命中率,从而提升存储系统的读写性能。

Description

数据块的缓存方法、装置、设备及存储介质
技术领域
本申请涉及存储技术领域,特别涉及一种数据块的缓存方法、装置、设备及存储介质。
背景技术
数据存储系统包括:存储空间和缓存空间。存储空间存储有全量数据块,缓存空间用于存储被频繁访问的热度数据块。热度数据块是全量数据块的子集。
在数据存储系统中采用缓存算法来移入或移出缓存空间中的热度数据块。在缓存空间中已经存储满的场景下,对于缓存空间中每个未命中的数据块,缓存算法将该数据块从存储空间中读取后,作为新的热度数据块与缓存空间中的一个旧热度数据块进行交换。
由于典型的使用场景下,存在很多热度数据块的重复访问在很长时间后才能发生。如果缓存算法只是简单的在每次未命中时替换缓存空间中的热度数据块,新存入的热度数据块会污染缓存空间,而这个热度数据块在将来的缓存过程中可能永远不会被命中,从而降低缓存空间的使用效率。
发明内容
本申请实施例提供了一种数据块的缓存方法、装置、设备及存储介质,可以解决在缓存空间中每个未命中的数据块均进行替换时,新存入的热度数据块会污染缓存空间,而这个热度数据块在将来的缓存过程中可能永远不会被命中,从而降低缓存空间的使用效率的问题。所述技术方案如下:
根据本申请的一个方面,提供了一种数据块的缓存方法,用于存储系统中,所述存储系统包括存储空间和缓存空间,所述方法包括:
获取访问请求,所述访问请求用于请求访问第一数据块;
当所述第一数据块未在所述缓存空间中命中时,检测第二数据块是否满足懒惰条件,所述第二数据块是所述缓存空间中的备选剔除块,所述懒惰条件是用于衡量所述第一数据块的重新访问概率的条件;
当所述第二数据块满足所述懒惰条件时,从所述存储空间读取所述第一数据块且不将所述第一数据块添加至所述缓存空间中;
当所述第二数据块不满足所述懒惰条件时,使用所述第二数据块替换所述缓存空间中的第二数据块。
根据本申请的另一方面,提供了一种数据块的缓存装置,应用于存储系统中,所述存储系统包括存储空间和缓存空间,所述装置包括:
获取模块,用于获取访问请求,所述访问请求用于请求访问第一数据块;
检测模块,用于当所述第一数据块未在所述缓存空间中命中时,检测所述第一数据块是否满足懒惰条件,所述懒惰条件是用于衡量所述第一数据块的重新访问概率的条件;
读取模块,用于当所述第一数据块满足所述懒惰条件时,从所述存储空间读取所述第一数据块且不将所述第一数据块添加至所述缓存空间中。
根据本申请的另一方面,提供了一种应用于存储系统中的计算机设备,所述存储系统包括存储空间和缓存空间,所述计算机设备包括:
处理器;
与所述处理器相连的收发器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为加载并执行所述可执行指令以实现如上所述的数据块的缓存方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的数据块的缓存方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过当第一数据块在缓存空间中未命中时,检测缓存空间中的第二数据块是否满足懒惰条件,当第二数据块满足懒惰条件时,从存储空间读取第一数据块且暂不将第二数据块替换出缓存空间中,能够极大地延长第二数据块在缓存空间中的停留时长,提高有用数据块的命中率,从而提升存储系统的读写性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的存储系统的结构示意图;
图2是本申请一个示例性实施例提供的数据块的缓存方法的流程图;
图3是本申请另一个示例性实施例提供的数据块的缓存方法的流程图;
图4是本申请另一个示例性实施例提供的数据块的缓存方法的流程图;
图5是本申请一个示例性实施例提供的索引表、元数据区和数据区的结构示意图;
图6是本申请一个示例性实施例提供的第一懒惰条件的示意图;
图7是本申请一个示例性实施例提供的第二懒惰条件的示意图;
图8是本申请一个示例性实施例提供的数据块的缓存方法的实施示意图;
图9是本申请一个示例性实施例提供的数据块的缓存装置的结构框图;
图10是本申请一个示例性实施例提供的数据块的缓存装置的结构框图;
图11是本申请另一个示例性实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的若干个术语进行介绍:
懒惰替换:是指第一数据块在缓存空间中未命中时,条件性的将该第一数据块与缓存空间中的第二数据块(也称备选剔除块)进行替换的方式。这里的“懒惰”是相对于相关技术中,在缓存空间中每次未命中数据块时,均强制对缓存空间中的备选剔除块进行强制替换而言的。
重用距离:是对同一个数据块的两次连续访问之间的唯一数据块的计数,或,对同一个数据块的两次连续访问之间的数据块的计数。例如,历史访问的数据块序列包括:1-2-4-5-4-3-3-2,当采用唯一数据块的计数方式时,数据块2的重用距离是3,因为在数据块的两次连续访问之间的唯一数据块集合是{3,4,5};当采用数据块的计数方式时,数据块的重用距离是5。连续访问也称重新访问,是指同一个数据块再次被访问的事件。
在存储系统中,数据块的重用距离对缓存命中率有很大的影响。通常,不同的存储系统具有不同的重用距离特性。例如,在传统的片上高速缓存环境中,平均重用距离可能远远短于云块存储系统。
索引表:是一种用于加速数据查找的数据结构,常见的索引表结构包括:B树、B+树、哈希散列表以及红黑树等。
命中:当一个数据块被访问时,若该数据块存在于缓存空间中,即认为在缓存空间中命中了该数据块。
图1示出了本申请一个示例性实施例提供的存储系统100的结构框图。该存储系统100包括:控制设备120、缓存空间140和存储空间160。
控制设备120是用于控制缓存空间140对被频繁访问的数据块142进行存储的计算机设备。可选地,控制设备120中运行有缓存算法,该缓存算法用于实现本申请各个实施例中提供的数据块的缓存方法。
缓存空间140是用于对存储空间160中被频繁访问的数据块142进行缓存的存储逻辑单元。缓存空间140的读写性能优于存储空间160的读写性能。缓存空间140可采用非易失性缓存设备来构建。非易失性缓存设备包括:固态硬盘(Solid State Drives,SSD)、相变存储(Phase-Change Memory,PCM)、自旋转移扭矩磁随机存取器(Shared TransistorTechnology Magnetic Random Access Memory,STT-MRAM)及电阻式内存(ReRAM)等。
存储空间160是用于对全量的数据块164进行存储的存储逻辑单元。存储空间160可采用非易失性存储设备来构建。常见的非易失性存储设备为机械硬盘。在存储空间160中存在多个存储卷162,每个存储卷162中存储有多个数据块164。可选地,数据块的大小是相同或不同的,比如数据块的大小可以是4KB、8KB、16KB、32KB等。每个存储卷162对应有各自的卷ID,每个数据块164对应有各自的块ID。
在一些可选的实施例中,存储系统100还包括接入设备110,该接入设备110用于接收各个终端180发送的数据块的访问请求,并将各个访问请求按照接收时间由早到晚的顺序存储在请求列表112中。
示意性,各个客户端180可以向接入设备110发送数据块的访问请求,该数据块的访问请求可以是读请求或写请求。控制设备120根据该访问请求对缓存空间140和存储空间160中的数据块进行访问。当缓存空间140中命中该数据块时,控制设备120优先从缓存空间140访问该数据块;当缓存空间140中未命中该数据块时,控制设备120从存储空间160访问该数据块。
在相关技术中,若客户端向存储系统请求访问数据块,而该数据块在缓存空间中未命中时,缓存算法会将每个未命中的数据块从存储空间移入缓存空间中(若缓存空间已经满,则需要将相应的备选剔除块移出缓存空间)。但是这种简单地将每个未命中的数据块替换至缓存空间中的方式,会使得一些重新访问可能性很低的数据块进入缓存空间,从而污染缓存空间,但将来可能永远都不会被命中。
另外,由于新型的非易失性缓存介质都具有写次数限制的特性,当写次数达到一定次数后即会寿命耗尽,因此当缓存空间采用这种新型的非易失性缓存介质构建时,上述缓存算法也会很快地耗尽缓存介质的寿命。
本申请实施例希望提供一种尽可能将有价值的数据块保留在缓存空间的技术方案。本申请实施例提供的数据块的缓存方法,可以应用于具有缓存空间和存储空间的存储系统中。典型的,该存储系统是云块存储系统。云块存储系统为用户提供一种弹性的块级别云存储服务,云块存储系统将同时服务于拥有多种工作负载的数万个租户。
图2示出了本申请一个示例性实施例提供的数据块的缓存方法的流程图。本实施例以该方法应用于图1所示的存储系统中来举例说明。该方法包括:
在步骤201中,获取访问请求,该访问请求用于请求访问第一数据块;
控制设备从请求列表中读取一个访问请求,请求列表中按序存储有多个访问请求。示例性的,控制设备从请求列表中读取接收时间最早的访问请求,该访问请求用于请求访问第一数据块。
示意地,该访问请求中携带有第一数据块的标识信息,该标识信息包括:卷ID和块ID,或者,块ID。控制设备根据标识信息检测第一数据块是否存在于缓存空间中。
当第一数据块在缓存空间中命中时,控制设备在缓存空间中访问该第一数据块。当第一数据块在缓存空间中未命中时,执行步骤202。
在步骤202中,当第一数据块在缓存空间中未命中时,检测第二数据块是否满足懒惰条件,第二数据块是缓存空间中的备选剔除块,懒惰条件是根据重新访问概率确定将第二数据块延迟替换出缓存空间的条件;
示意性的,当缓存空间中的各个数据块采用链表按照重新访问概率进行排序存储时,第二数据块是位于链表尾部的数据块。
懒惰条件又称为懒惰替换条件。可选地,懒惰条件是根据第二数据块的重新访问概率,决策是否要将第二数据块延迟替换出缓存空间中的条件;可选地,懒惰条件是当第二数据块的重新访问概率高于期望阈值时,确定将第二数据块延迟替换出缓存空间中的条件;可选地,懒惰条件是根据第二数据块的重新访问分值和/或重用距离来确定第二数据块的重新访问概率,根据第二数据块的重新访问概率决策是否要将第二数据块延迟替换出缓存空间中的条件。
在步骤203中,当第二数据块满足懒惰条件时,从存储空间访问第一数据块且不将第二数据块替换出缓存空间中;
当第二数据块满足懒惰条件时,代表第二数据块的重新访问概率较高,控制设备从存储空间中读取第一数据块,暂不将第二数据块替换出缓存空间中。
在步骤204中,当第二数据块不满足懒惰条件时,使用第一数据块替换缓存空间中的第二数据块。
当第二数据块不满足懒惰条件时,代表第二数据块的重新访问概率较低,控制设备从存储空间读取第一数据块后,使用第一数据块替换缓存空间中的第二数据块。
综上所述,本实施例提供的方法,通过当第一数据块在缓存空间中未命中时,检测第二数据块是否满足懒惰条件,当第二数据块满足懒惰条件时,从存储空间读取第一数据块且暂不将第二数据块替换出缓存空间中,能够极大地延长第二数据块在缓存空间中的停留时长,提高有用数据块的命中率,从而提升存储系统的读写性能。
在基于图2的可选实施例中,当缓存空间中未命中第一数据块时,如果缓存空间的第二数据块满足懒惰条件,则暂不将第二数据块替换出缓存空间,从而延长第二数据块在缓存空间中的停留时长。对于未替换入缓存空间的第一数据块,使用数据块标识列表(Block Identifier List,BIL)记录该第一数据块的历史访问情况。对于存储在BIL中的第一数据块,在下一次被访问时具有更高的概率被替换入缓存空间中。通过该方式,能够更加高效的筛选出对缓存空间更有益的数据块,同时也可以避免对缓存设备不必要的写入。
图3示出了本申请一个示例性实施例提供的数据块的缓存方法的流程图。本实施例以该方法由图1中的控制设备120执行来举例说明。该方法包括:
在步骤301中,获取访问请求,该访问请求用于请求访问第一数据块;
控制设备从请求列表中读取一个访问请求,请求列表中按序存储有多个访问请求。示例性的,控制设备从请求列表中读取接收时间最早的第i个访问请求,该第i个访问请求用于请求访问第一数据块。
在步骤302中,检测第一数据块是否存在于缓存空间中;
示意地,该访问请求中携带有第一数据块的标识信息,该标识信息包括:卷ID和块ID,或者,块ID。控制设备根据标识信息检测第一数据块是否存在于缓存空间中。当存在于缓存空间时,即为在缓存空间中命中该第一数据块。
当第一数据块在缓存空间中命中时,控制设备在缓存空间中访问该第一数据块。当第一数据块在缓存空间中未命中时,执行步骤303。
在步骤303中,当第一数据块在缓存空间中未命中时,检测第一数据块是否存在于BIL中;
BIL存储有历史访问的n个数据块的块元数据。可选地,块元数据包括但不限于:数据块的块ID、数据块所在存储卷的卷ID、数据块的重用距离、数据块的标记(flag)值、数据块在缓存空间中的停留时长中的至少一项。
其中,flag值是用于表示数据块在重新访问维度的重要性的分值,也称重新访问分值,由控制设备根据数据块的历史重新访问数据动态维护。停留时长是按照数据块在缓存空间中存储后,经历的数据块访问次数来计量的。比如一个数据块2在缓存空间中存储后,后续的数据块访问序列为:1-2-3-6-7-5-4-7,则该数据块的停留时长为8。
控制设备根据第一数据块的块ID,查询第一数据块是否存储于BIL中。当第一数据块不存在于BIL中时,进入步骤304;当第一数据块存在于BIL中时,进入步骤305。
本实施例中提供有两个懒惰条件:第一懒惰条件和第二懒惰条件,第一懒惰条件所指示的重新访问概率小于第二懒惰条件所指示的重新访问概率。也即,第二懒惰条件比第一懒惰条件具有更强的限定,第二数据块需要具有更大的重新访问概率,才能继续停留在缓存空间中。
在步骤304中,当第一数据块不存在于BIL中时,检测第二数据块是否满足第一懒惰条件;
示意性的,第一懒惰条件包括:
1、第二数据块的flag值大于预设值(比如0)。
当第二数据块满足第一懒惰条件时,进入步骤306;当第二数据块不满足第一懒惰条件时,进入步骤307。
在步骤305中,当第一数据块存在于BIL中时,检测第二数据块是否满足第二懒惰条件;
示意性的,第二懒惰条件包括:
1、第二数据块的flag值大于预设值(比如0);且,
2、第二数据块在缓存空间中的停留时长大于K倍的数据块平均重用距离。可选地,K为可变参数,随存储系统的负载大小变化而变化。
在步骤306中,从存储空间访问第一数据块且不将第二数据块替换出缓存空间中;
控制设备从存储空间访问第一数据块,对第一数据块进行读取或写入。但暂不将第一数据块存入缓存空间,也不将第二数据块替换出缓存空间中。将第二数据块继续保留在缓存空间中进行缓存。
在步骤307中,使用第一数据块替换缓存空间中的第二数据块。
控制设备从存储空间访问第一数据块,对第一数据块进行读取或写入。同时将第二数据块移出缓存空间,并将第一数据块存入缓存空间中进行缓存。
然后,控制设备更新相应数据块的块元数据。
综上所述,本实施例提供的方法,通过提供两个懒惰条件来进行数据块的重新访问可能性判断,当第一数据块存在于BIL时,第一数据块具有更高的概率被换入缓存空间中,从而使得更有价值的数据块存入缓存空间中,减少缓存空间中的数据块被替换出的可能性,从而提高缓存空间的利用率,也减少对缓存空间的写入次数。
在基于图3的可选实施例中,存储系统中提供有两个列表:懒惰替换列表(LazyEviction List,LEL)和BIL。
LEL用于存储位于缓存空间的数据块的实体以及块元数据,数据块的实体也即数据块的数据本身。块元数据是用于描述数据块的元数据,包括但不限于:数据块的块ID、数据块所在存储卷的卷ID、数据块的重用距离、数据块的flag值、数据块在缓存空间中的停留时长中的至少一项。其中:
块ID用于在整个存储系统或所在存储卷中唯一标识数据块。块ID可以采用数字、字母和字符中的至少一种来表示。
卷ID用于在整个存储系统中唯一标识存储卷。
重用距离是对同一个数据块的两次连续访问之间的唯一数据块(或数据块)的计数。
flag值是用于表示数据块在重新访问维度的重要性的分值,也称重新访问分值,由控制设备根据数据块的历史重新访问数据动态维护。在一个可能的实施例中,当一个数据块在缓存空间中被命中时,按照第一幅度增加flag值;当一个数据块在缓存空间中作为备选剔除块且因满足懒惰条件未被替换时,按照第二幅度减少flag值。
可选地,第一幅度小于第二幅度,比如,flag的初始值为0,当数据块在缓存空间中命中时,flag值加1;当数据块作为备选剔除块,却由于满足懒惰条件而未被替换出缓存空间时,flag值将被减半。
停留时长是按照数据块在缓存空间中存储后,经历的数据块访问次数来计量的。比如一个数据块2在缓存空间中存储后,后续的数据块访问序列为:1-2-3-6-7-5-4-7,则该数据块的停留时长为8。
BIL用于存储历史访问过的n个数据块。BIL是一个影子链表,BIL可以仅存储数据块的卷ID以及块ID等块元信息,不需要存储数据块的实体。
可选地,LEL和BIL具有相同的列表长度。LEL和BIL的两条链表都包含列表头部和列表尾部两个端点,数据块总是从列表头部插入链表中,从列表尾部删除。
图4是本申请另一个示意性实施例提供的数据块的缓存方法的流程图。本实施例以该方法应用于图1所示的存储系统的控制设备中来举例说明。该方法包括:
步骤401,从请求列表中读取一个访问请求,该访问请求用于请求访问第一数据块;
控制设备从请求列表中读取一个访问请求,请求列表中按序存储有多个访问请求。示例性的,控制设备从请求列表中读取一个访问请求,比如接收时间最早的访问请求,该访问请求用于请求访问第一数据块。
示意地,该访问请求中携带有第一数据块的标识信息,该标识信息包括:卷ID和块ID,或者,块ID。本实施例以卷ID和块ID来唯一标识数据块进行举例说明。
步骤402,在索引表中查询第一数据块;
索引表中存储有每个数据块的卷ID、块ID、以及数据块的链指针。该数据块的链指针可以指向LEL,还可以指向BIL。
示意性的参考图5,缓存空间中存储有索引表50、元数据区51和数据区52。索引表50存储有每个数据块的卷ID、块ID和链指针。当数据块存在于LEL链表中时,链指针指向LEL链表中的某一个链表元素;当数据块存在于BIL链表中时,链指针指向BIL链表中的某一个链表元素。链表是一种数据结构,移入链表的数据从链表头部进入链表,移出链表的数据从链表尾部移出链表。在其它实施例中,LEL和BIL也可采用队列等数据结构,本实施例对此不加以限定。
比如,卷m中的块n位于LEL链表中的链表头部,也即存在于LEL中;卷8中的块4位于BIL链表中的链表尾部,也即存在于LEL中。
LEL链表中存储有每个数据块的块元数据以及每个数据块在数据区52中的指针(可认为是数据块的实体)。BIL链表中存储有每个数据块的块元数据。
每个数据块的数据内容存储在数据区52中。
控制设备根据第一数据块的卷ID和块ID,在索引表中查询第一数据块的存储信息。
步骤403,判断第一数据块是否存在于LEL;
控制设备判断第一数据块的链指针是否指向LEL链表中的某个链表元素。
当第一数据块存在于LEL时,认为在缓存空间中命中第一数据块,进入步骤404;当第一数据块不存在于LEL时,认为在缓存空间中未命中第二数据块,进入步骤406。
步骤404,从LEL访问第一数据块;
由于缓存空间中存储有第一数据块,控制设备从LEL链表中获取第一数据块在数据区中的存储位置,根据该存储位置对第一数据块进行读取操作或写入操作。
步骤405,将第一数据块的块元数据移动至LEL的列表头部;
控制设备在缓存空间中命中第一数据块时,还会将第一数据块的块元数据移动至LEL的列表头部,降低第一数据块被替换出缓存空间的可能性。
步骤406,判断第一数据块是否存在于BIL;
当在缓存空间中未命中第一数据块时,控制设备判断第一数据块的链指针是否指向BIL链表中的某个链表元素。
当第一数据块未存在于BIL时,表示第一数据块是最近一段时间内的首次访问数据块,采用相对宽松的第一懒惰条件对位于LEL的列表尾部的第二数据块进行懒惰替换评估,进入步骤407。
当第一数据块存在于BIL时,表示第一数据块是最近一段时间内历史访问过的数据块,采用更为严苛的第二懒惰条件对位于LEL的列表尾部的第二数据块进行懒惰替换评估,以便增大第一数据块被替换入缓存空间的可能性,进入步骤408。
步骤407,判断第二数据块是否满足第一懒惰条件;
示意性的,第一懒惰条件包括:第二数据块的flag值大于0。
当第二数据块满足第一懒惰条件时,进入步骤409;当第二数据块不满足第一懒惰条件时,进入步骤412。
步骤408,判断第二数据块是否满足第二懒惰条件;
示意性的,第二懒惰条件包括:第二数据块的flag值大于0,且第二数据块在LEL中的停留时长大于K倍的块平均重用距离,K为可变参数,K可以随着存储系统的负载变化而变化。比如,当负载较重时,增大K来减少替换次数;当负载较轻时,减少K来增加替换次数。
当第二数据块满足第二懒惰条件时,进入步骤415;当第二数据块不满足第二懒惰条件时,进入步骤417。
步骤409,从存储空间访问第一数据块,暂不将第二数据块替换出缓存空间;
当第二数据块满足第一懒惰条件时,控制设备从存储空间读取或写入第一数据块,暂不将第一数据块插入LEL中,也即暂不采用第一数据块将第二数据块替换出缓存空间。
步骤410,将第一数据块的块元数据移动至BIL的列表头部;
控制设备还将第一数据块的块元数据插入至BIL的列表头部,以便在BIL中记录本次对第一数据块的访问。
步骤411,将位于BIL的列表尾部的第三数据块的块元数据删除;
控制设备还将第三数据块的块元数据从BIL的列表尾部删除,以保证BIL中的链表元素的总数为n个。
步骤412,使用第一数据块替换第二数据块;
当第二数据块不满足第一懒惰条件时,控制设备在LEL中使用第一数据块替换第二数据块,也即将第一数据块插入LEL,且将第二数据块从LEL中删除。
步骤413,将第一数据块的块元数据移动至LEL的列表头部;
在使用第一数据块替换第二数据块后,控制设备将第一数据块的块元数据插入LEL的列表头部。
步骤414,将位于LEL的列表尾部的第二数据块的块元数据删除;
控制设备还将第二数据块的块元数据从LEL的列表尾部删除,以保证LEL中的链表元素的总数为n个。
参考图6,当第一数据块是首次访问块X时,若第二数据块满足第一懒惰条件,则将第一数据块的块元数据插入BIL的列表头部;若第二数据块不满足第一懒惰条件,则将第一数据块的块元数据插入LEL的列表头部。
步骤415,从存储空间访问第一数据块,暂不将第二数据块替换出缓存空间;
当第二数据块满足第二懒惰条件时,控制设备从存储空间读取或写入第一数据块,暂不将第一数据块插入LEL中,也即暂不采用第一数据块将第二数据块替换出缓存空间。
步骤416,将第一数据块的块元数据移动至BIL的列表头部;
由于第一数据块的块元数据已经存在于BIL中,因此控制设备将第一数据块的块元数据移动至BIL的列表头部。
步骤417,使用第一数据块替换第二数据块;
当第二数据块不满足第二懒惰条件时,控制设备在LEL中使用第一数据块替换第二数据块,也即将第一数据块插入LEL,且将第二数据块从LEL中删除。
步骤418,将第一数据块的块元数据移动至LEL的列表头部;
在使用第一数据块替换第二数据块后,控制设备将第一数据块的块元数据插入LEL的列表头部。
步骤419,将位于LEL列表尾部的第二数据块的块元数据移动至BIL的列表头部;
控制设备还将第二数据块的块元数据从LEL的列表尾部删除,以保证LEL中的链表元素的总数为n个。控制设备还将第二数据块的块元数据插入至BIL的列表头部,这样能够保证第二数据块被下一次重新访问时,具有更高的概率被替换回LEL中。
参考图7,当第一数据块在BIL链表中命中时,若第二数据块满足第二懒惰条件时,将第一数据块的块元数据插入BIL的列表头部;若第二数据块不满足第二懒惰条件时,将第一数据块的块元数据插入LEL的列表头部,并将第二数据块的块元数据从LEL的列表尾部移动至BIL的列表头部。
步骤420,更新相关数据块的块元数据;
在每一次数据块的访问请求结束后,需要更新相关数据块的块元数据。更新的内容包括但不限于:全部或部分数据块的重用距离、位于缓存空间中的各个数据块的停留时长、第一数据块的flag值、第二数据块的flag值中的至少一种。
可选地,若停留时长是采用上一次访问时间来间接表示时,仅更新第一数据块的上一次访问时间即可。
步骤421,所有访问请求是否已处理完毕;
控制设备检测请求列表中的每个访问请求是否已经处理完毕。
若已经处理完毕,则结束;若请求列表中还存在未处理的访问请求,则进入步骤422。
步骤422,在请求列表中获取下一个访问请求。
控制设备从请求列表中获取下一个访问请求,重新进入步骤402进行处理。
如图8所示,综上所述,本实施例提供的方法,通过提供两个懒惰条件来进行数据块的重新访问可能性判断,当第一数据块存在于BIL时,第一数据块具有更高的概率被换入缓存空间中,从而使得更有价值的数据块存入缓存空间中,减少缓存空间中的数据块被替换出的可能性,从而提高缓存空间的利用率,也减少对缓存空间的写入次数。
本实施例提供的方法,通过在第一数据块为首次访问块且第二数据块符合懒惰条件时,将第一数据块的块元数据移入BIL中,使得第一数据块在下一次被访问时,具有更高的概率被替换入缓存空间中。
本实施例提供的方法,通过在第一数据块属于BIL且第二数据块不符合懒惰条件时,将第二数据块的块元数据从缓存空间中删除后移动至BIL的列表头部中进行存储,使得该第二数据块在下一次被访问时,具有更高的概率被替换入缓存空间中。
对于本申请的各个实施例,通过实验结果显示,上述缓存方法能极大的提高算法的命中率,从而提升存储系统的读写性能。同时,还能够减少对缓存空间的写入次数,从而延长缓存空间的使用寿命。
在一个示意性的例子中,通过采集块级网络存储服务(Cloud Block Service,CBS)真实用户数据,采用日志驱动的试验方法,测试结果显示该算法相对最近最少使用(Least recently used,LRU)算法提升23.80%的命中率,相对读缓存淘汰(AdjustableReplacement Cache,ARC)算法提升15.70%的命中率,相对ARC算法提升9.66%的命中率。
在一个示意性的例子中,由于懒惰替换的特性,该方法能够极大的减少对非易失性缓存设备的写入,从而能够有效延长缓存设备的使用寿命。测试结果显示该算法相对LRU算法减少62.85%的缓存设备写入流量,相对ARC算法减少61.85%的缓存设备写入流量。
在一个示意性的例子中,参考图8,当用户请求访问数据块A,当数据块A存在于LEL中时,直接从缓存空间84中访问该数据块A。当数据块不存在于LEL中时,检测该数据块是否存在于BIL,以及位于缓存空间84中作为备选剔除块的数据块B是否满足懒惰条件。
当数据块A未存在于BIL,且数据块B满足第一懒惰条件时,从存储空间82访问该数据块A。
当数据块A存在于BIL,且数据块B满足第二懒惰条件时,从存储空间82访问该数据块A。
当数据块A未存在于BIL,且数据块B不满足第一懒惰条件时,从存储空间82读取该数据块A,并使用数据块A在缓存空间84中替换数据块B。
当数据块A存在于BIL,且数据块B不满足第一懒惰条件时,从存储空间82读取该数据块A,并使用数据块A在缓存空间84中替换数据块B。
以下为本申请的装置实施例,对于装置实施例中未详细描述的细节,可以参考上述方法实施例中的相应记载。
图9是本申请一个示例性实施例提供的数据块的缓存装置的结构框图。该缓存装置可以实现成为存储系统的一部分,也可以应用于上述存储系统中,比如实现为控制设备中的一部分。该装置包括:
获取模块920,用于获取访问请求,所述访问请求用于请求访问第一数据块;
检测模块940,用于当所述第一数据块在所述缓存空间中未命中时,检测第二数据块是否满足懒惰条件,所述第二数据块是所述缓存空间中的备选剔除块,所述懒惰条件是根据重新访问概率确定将所述第二数据块延迟替换出所述缓存空间的条件;
访问模块960,用于当所述第二数据块满足所述懒惰条件时,从所述存储空间访问所述第一数据块且不将所述第二数据块替换出所述缓存空间中。所述访问模块960,还用于当所述第二数据块不满足所述懒惰条件时,使用第一数据块替换所述第二数据块。
在一个可选的实施例中,所述存储系统存储有BIL,所述BIL存储有历史访问的n个数据块的块元数据,n为正整数。
所述检测模块940,用于当所述第一数据块不存在于所述BIL中时,检测所述第二数据块是否满足第一懒惰条件;当所述第一数据块存在于所述BIL中时,检测所述第二数据块是否满足第二懒惰条件;
其中,所述第一懒惰条件所指示的重新访问概率小于所述第二懒惰条件所指示的重新访问概率。
在一个可选的实施例中,所述第一懒惰条件包括:所述第二数据块的所述标记值大于第一阈值,所述标记值是用于衡量所述第二数据块的访问重要程度的变量;所述第二懒惰条件包括:所述第二数据块的所述标记值大于第二阈值,且所述第二数据块在所述缓存空间中的停留时长大于K倍的块平均重用距离。
在一个可选的实施例中,当所述第二数据块在所述缓存空间中命中时,按照第一幅度增加所述标记值;当所述第二数据块在所述缓存空间中因满足所述懒惰条件未被替换时,按照第二幅度减少所述标记值。
在一个可选的实施例中,所述装置还包括:元数据修改模块980,如图9所示。
所述元数据修改模块980,用于当所述第二数据块满足所述第一懒惰条件时,将所述第一数据块的块元数据添加至所述BIL的列表头部,并将所述BIL的列表尾部的第三数据块的块元数据进行删除,以及当所述第二数据块满足所述第二懒惰条件时,将所述第一数据块的块元数据移动至所述BIL的列表头部。
在一个可选的实施例中,所述存储系统存储有LEL,所述LEL存储有位于所述缓存空间中的n个数据块的块元数据,n为正整数。
当所述第二数据块不满足所述第一懒惰条件时,所述元数据修改模块980用于将所述第二数据块的块元数据从所述LEL的列表尾部删除。
当所述第二数据块不满足所述第二懒惰条件时,所述元数据修改模块980用于将所述第二数据块的块元数据从所述LEL的列表尾部删除,且将所述第二数据块的块元数据移动至所述BIL的列表头部。
当所述第二数据块不满足所述懒惰条件时,所述元数据修改模块980用于将所述第一数据块的块元数据移动至所述LEL的列表头部。
可选地,所述懒惰条件包括第一懒惰条件和第二懒惰条件。
图11是本申请一个实施例提供的计算机设备的结构示意图。具体来讲:计算机设备1000包括中央处理单元(英文:Central Processing Unit,简称:CPU)1001、包括随机存取存储器(英文:random access memory,简称:RAM)1002和只读存储器(英文:read-onlymemory,简称:ROM)1003的系统存储器1004,以及连接系统存储器1004和中央处理单元1001的系统总线1005。所述计算机设备1000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1006,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量存储设备1007。
所述基本输入/输出系统1006包括有用于显示信息的显示器1008和用于用户输入信息的诸如鼠标、键盘之类的输入设备1009。其中所述显示器1008和输入设备1009都通过连接到系统总线1005的输入/输出控制器1010连接到中央处理单元1001。所述基本输入/输出系统1006还可以包括输入/输出控制器1010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器1010还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1007通过连接到系统总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。所述大容量存储设备1007及其相关联的计算机可读介质为计算机设备1000提供非易失性存储。也就是说,所述大容量存储设备1007可以包括诸如硬盘或者只读光盘(英文:Compact Disc Read-Only Memory,简称:CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(英文:erasable programmable read-only memory,简称:EPROM)、电可擦除可编程只读存储器(英文:electrically erasable programmableread-only memory,简称:EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字通用光盘(英文:Digital Versatile Disc,简称:DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。
根据本申请的各种实施例,所述计算机设备1000还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1000可以通过连接在所述系统总线1005上的网络接口单元1011连接到网络1012,或者说,也可以使用网络接口单元1011来连接到其他类型的网络或远程计算机系统(未示出)。
其中,上述处理器被配置为加载并执行可执行指令以实现如上述方法实施例提供的数据块的缓存方法。
本申请还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方法实施例提供的数据块的缓存方法。
本申请还提供了一种计算机程序产品,当其在电子设备上运行时,使得电子设备执行上述各个方法实施例所述的数据块的缓存方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (14)

1.一种数据块的缓存方法,其特征在于,用于存储系统中,所述存储系统包括存储空间和缓存空间,所述存储系统存储有数据块标识列表BIL,所述BIL存储有历史访问的n个数据块的块元数据,n为正整数,所述方法包括:
获取访问请求,所述访问请求用于请求访问第一数据块;
当所述第一数据块在所述缓存空间中未命中时,检测第二数据块是否满足懒惰条件,其中,当所述第一数据块不存在于所述BIL中时,检测所述第二数据块是否满足第一懒惰条件;当所述第一数据块存在于所述BIL中时,检测所述第二数据块是否满足第二懒惰条件,其中,所述第一懒惰条件所指示的重新访问概率小于所述第二懒惰条件所指示的重新访问概率,所述第二数据块是所述缓存空间中的备选剔除块,所述懒惰条件是根据重新访问概率确定将所述第二数据块延迟替换出所述缓存空间的条件;
当所述第二数据块满足所述懒惰条件时,从所述存储空间访问所述第一数据块且不将所述第二数据块替换出所述缓存空间中。
2.根据权利要求1所述的方法,其特征在于,
所述第一懒惰条件包括:所述第二数据块的标记值大于第一阈值,所述标记值是用于衡量所述第二数据块的访问重要程度的变量;
所述第二懒惰条件包括:所述第二数据块的所述标记值大于第二阈值,且所述第二数据块在所述缓存空间中的停留时长大于K倍的块平均重用距离,K>0。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括;
当所述第二数据块在所述缓存空间中命中时,按照第一幅度增加所述标记值;
当所述第二数据块在所述缓存空间中因满足所述懒惰条件未被替换时,按照第二幅度减少所述标记值。
4.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
当所述第二数据块满足所述第一懒惰条件时,将所述第一数据块的块元数据添加至所述BIL的列表头部,并将所述BIL的列表尾部的第三数据块的块元数据进行删除;
当所述第二数据块满足所述第二懒惰条件时,将所述第一数据块的块元数据移动至所述BIL的列表头部。
5.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
当所述第二数据块不满足所述第一懒惰条件或所述第二懒惰条件时,使用所述第一数据块替换所述第二数据块。
6.根据权利要求1至3任一所述的方法,其特征在于,所述存储系统存储有懒惰替换列表LEL,所述LEL存储有位于所述缓存空间中的n个数据块的块元数据,n为正整数;所述方法还包括:
当所述第二数据块不满足所述第一懒惰条件时,将所述第二数据块的块元数据从所述LEL的列表尾部删除;
当所述第二数据块不满足所述第二懒惰条件时,将所述第二数据块的块元数据从所述LEL的列表尾部删除,且将所述第二数据块的块元数据移动至所述BIL的列表头部。
7.根据权利要求1至3任一所述的方法,其特征在于,所述存储系统存储有懒惰替换列表LEL,所述LEL存储有位于所述缓存空间中的n个数据块的块元数据,n为正整数;所述方法还包括:
当所述第二数据块不满足所述懒惰条件时,将所述第一数据块的块元数据移动至所述LEL的列表头部。
8.一种数据块的缓存装置,其特征在于,应用于存储系统中,所述存储系统包括存储空间和缓存空间,所述存储系统存储有数据块标识列表BIL,所述BIL存储有历史访问的n个数据块的块元数据,n为正整数,所述装置包括:
获取模块,用于获取访问请求,所述访问请求用于请求访问第一数据块;
检测模块,用于当所述第一数据块在所述缓存空间中未命中时,检测所述第二数据块是否满足懒惰条件,其中,当所述第一数据块不存在于所述BIL中时,检测所述第二数据块是否满足第一懒惰条件;当所述第一数据块存在于所述BIL中时,检测所述第二数据块是否满足第二懒惰条件,其中,所述第一懒惰条件所指示的重新访问概率小于所述第二懒惰条件所指示的重新访问概率,所述第二数据块是所述缓存空间中的备选剔除块,所述懒惰条件是根据重新访问概率确定将所述第二数据块延迟替换出所述缓存空间的条件;
访问模块,用于当所述第二数据块满足所述懒惰条件时,从所述存储空间访问所述第一数据块且不将所述第二数据块替换出所述缓存空间中。
9.根据权利要求8所述的装置,其特征在于,
所述第一懒惰条件包括:所述第二数据块的标记值大于第一阈值,所述标记值是用于衡量所述第二数据块的访问重要程度的变量;
所述第二懒惰条件包括:所述第二数据块的所述标记值大于第二阈值,且所述第二数据块在所述缓存空间中的停留时长大于K倍的块平均重用距离。
10.根据权利要求8至9任一所述的装置,其特征在于,所述装置还包括:
元数据修改模块,用于当所述第二数据块满足所述第一懒惰条件时,将所述第一数据块的块元数据添加至所述BIL的列表头部,并将所述BIL的列表尾部的第三数据块的块元数据进行删除;以及当所述第二数据块满足所述第二懒惰条件时,将所述第一数据块的块元数据移动至所述BIL的列表头部。
11.根据权利要求8至9任一所述的装置,其特征在于,所述存储系统存储有懒惰替换列表LEL,所述LEL存储有位于所述缓存空间中的n个数据块的块元数据,n为正整数;所述装置还包括:
元数据修改模块,用于当所述第二数据块不满足所述第一懒惰条件时,将所述第二数据块的块元数据从所述LEL的列表尾部删除;以及当所述第二数据块不满足所述第二懒惰条件时,将所述第二数据块的块元数据从所述LEL的列表尾部删除,且将所述第二数据块的块元数据移动至所述BIL的列表头部。
12.一种应用于存储系统中的计算机设备,其特征在于,所述存储系统包括存储空间和缓存空间,所述计算机设备包括:
处理器;
与所述处理器相连的收发器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为加载并执行所述可执行指令以实现如上权利要求1至7任一所述的数据块的缓存方法。
13.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一所述的数据块的缓存方法。
14.一种计算机程序产品,其特征在于,包括计算机程序或指令,所述计算机程序或者指令被处理器执行时实现如权利要求1至7任一所述的数据块的缓存方法。
CN201811157995.7A 2018-09-30 2018-09-30 数据块的缓存方法、装置、设备及存储介质 Active CN109144431B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201811157995.7A CN109144431B (zh) 2018-09-30 2018-09-30 数据块的缓存方法、装置、设备及存储介质
EP19866678.6A EP3859536B1 (en) 2018-09-30 2019-09-12 Method and device for buffering data blocks, computer device, and computer-readable storage medium
PCT/CN2019/105509 WO2020063355A1 (zh) 2018-09-30 2019-09-12 数据块的缓存方法、装置、计算机设备及计算机可读存储介质
US17/038,680 US11461239B2 (en) 2018-09-30 2020-09-30 Method and apparatus for buffering data blocks, computer device, and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811157995.7A CN109144431B (zh) 2018-09-30 2018-09-30 数据块的缓存方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN109144431A CN109144431A (zh) 2019-01-04
CN109144431B true CN109144431B (zh) 2021-11-02

Family

ID=64814106

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811157995.7A Active CN109144431B (zh) 2018-09-30 2018-09-30 数据块的缓存方法、装置、设备及存储介质

Country Status (4)

Country Link
US (1) US11461239B2 (zh)
EP (1) EP3859536B1 (zh)
CN (1) CN109144431B (zh)
WO (1) WO2020063355A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144431B (zh) * 2018-09-30 2021-11-02 华中科技大学 数据块的缓存方法、装置、设备及存储介质
CN110245095A (zh) * 2019-06-20 2019-09-17 华中科技大学 一种基于数据块图谱的固态盘缓存优化方法和系统
CN111625536B (zh) * 2020-04-23 2023-09-22 北京城市网邻信息技术有限公司 一种数据访问方法及装置
US20240211407A1 (en) * 2022-12-27 2024-06-27 Advanced Micro Devices, Inc. Managing a Cache Using Per Memory Region Reuse Distance Estimation

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799392A (zh) * 2012-06-16 2012-11-28 北京忆恒创源科技有限公司 存储设备及其中断控制方法
CN103257935A (zh) * 2013-04-19 2013-08-21 华中科技大学 一种缓存管理方法及其应用
CN103678169A (zh) * 2013-11-11 2014-03-26 华中科技大学 一种高效利用固态盘缓存的方法和系统
CN104391653A (zh) * 2014-10-31 2015-03-04 山东超越数控电子有限公司 一种基于数据块的高速缓存设计方法
CN105094691A (zh) * 2014-05-21 2015-11-25 华为技术有限公司 一种数据操作的方法、设备和系统
CN106897030A (zh) * 2017-02-28 2017-06-27 郑州云海信息技术有限公司 一种缓存数据管理方法及装置
CN107430551A (zh) * 2015-12-01 2017-12-01 华为技术有限公司 数据缓存方法、存储控制装置、及存储设备
CN107463509A (zh) * 2016-06-05 2017-12-12 华为技术有限公司 缓存管理方法、缓存控制器以及计算机系统
CN108021674A (zh) * 2017-12-06 2018-05-11 浙江远算云计算有限公司 一种同步云端仿真数据的多级缓存传输加速系统
WO2018161272A1 (zh) * 2017-03-08 2018-09-13 华为技术有限公司 一种缓存替换方法,装置和系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654855B1 (en) * 2000-10-26 2003-11-25 Emc Corporation Method and apparatus for improving the efficiency of cache memories using chained metrics
US7275135B2 (en) * 2001-08-31 2007-09-25 Intel Corporation Hardware updated metadata for non-volatile mass storage cache
US7774549B2 (en) * 2006-10-11 2010-08-10 Mips Technologies, Inc. Horizontally-shared cache victims in multiple core processors
US8443341B2 (en) * 2006-11-09 2013-05-14 Rogue Wave Software, Inc. System for and method of capturing application characteristics data from a computer system and modeling target system
GB0625330D0 (en) * 2006-12-20 2007-01-24 Ibm System,method and computer program product for managing data using a write-back cache unit
US8601216B2 (en) * 2010-08-31 2013-12-03 Oracle International Corporation Method and system for removing cache blocks
US9251052B2 (en) * 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
WO2014015409A1 (en) * 2012-07-24 2014-01-30 Institute Of Computer Science Of The Foundation For Research And Technology - Hellas (Ics-Forth) System and method for implementing ssd-based i/o caches
US9274956B1 (en) * 2012-10-31 2016-03-01 Amazon Technologies, Inc. Intelligent cache eviction at storage gateways
US9779029B2 (en) * 2012-11-06 2017-10-03 Facebook, Inc. Cache replacement policy for data with strong temporal locality
US9009413B2 (en) * 2012-12-21 2015-04-14 Intel Corporation Method and apparatus to implement lazy flush in a virtually tagged cache memory
CN103440207B (zh) * 2013-07-31 2017-02-22 北京智谷睿拓技术服务有限公司 缓存方法及装置
US9471497B2 (en) * 2014-01-24 2016-10-18 Netapp, Inc. Methods for combining access history and sequentiality for intelligent prefetching and devices thereof
US20150347310A1 (en) * 2014-05-30 2015-12-03 Lsi Corporation Storage Controller and Method for Managing Metadata in a Cache Store
US9892044B1 (en) * 2015-01-30 2018-02-13 EMC IP Holding Company LLC Methods to efficiently implement coarse granularity cache eviction
US9779031B2 (en) * 2015-06-17 2017-10-03 International Business Machines Corporation Caching policies for selection and replacement of objects
US20170168944A1 (en) * 2015-12-15 2017-06-15 Facebook, Inc. Block cache eviction
US10223278B2 (en) * 2016-04-08 2019-03-05 Qualcomm Incorporated Selective bypassing of allocation in a cache
US20180173636A1 (en) * 2016-12-20 2018-06-21 Intel Corporation Increasing lifetime reliability for a cache memory
CN109144431B (zh) * 2018-09-30 2021-11-02 华中科技大学 数据块的缓存方法、装置、设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799392A (zh) * 2012-06-16 2012-11-28 北京忆恒创源科技有限公司 存储设备及其中断控制方法
CN103257935A (zh) * 2013-04-19 2013-08-21 华中科技大学 一种缓存管理方法及其应用
CN103678169A (zh) * 2013-11-11 2014-03-26 华中科技大学 一种高效利用固态盘缓存的方法和系统
CN105094691A (zh) * 2014-05-21 2015-11-25 华为技术有限公司 一种数据操作的方法、设备和系统
CN104391653A (zh) * 2014-10-31 2015-03-04 山东超越数控电子有限公司 一种基于数据块的高速缓存设计方法
CN107430551A (zh) * 2015-12-01 2017-12-01 华为技术有限公司 数据缓存方法、存储控制装置、及存储设备
CN107463509A (zh) * 2016-06-05 2017-12-12 华为技术有限公司 缓存管理方法、缓存控制器以及计算机系统
CN106897030A (zh) * 2017-02-28 2017-06-27 郑州云海信息技术有限公司 一种缓存数据管理方法及装置
WO2018161272A1 (zh) * 2017-03-08 2018-09-13 华为技术有限公司 一种缓存替换方法,装置和系统
CN108021674A (zh) * 2017-12-06 2018-05-11 浙江远算云计算有限公司 一种同步云端仿真数据的多级缓存传输加速系统

Also Published As

Publication number Publication date
EP3859536A4 (en) 2021-12-01
WO2020063355A1 (zh) 2020-04-02
US11461239B2 (en) 2022-10-04
EP3859536A1 (en) 2021-08-04
US20210011857A1 (en) 2021-01-14
CN109144431A (zh) 2019-01-04
EP3859536B1 (en) 2024-02-28

Similar Documents

Publication Publication Date Title
CN109144431B (zh) 数据块的缓存方法、装置、设备及存储介质
Eisenman et al. Flashield: a hybrid key-value cache that controls flash write amplification
EP3229142B1 (en) Read cache management method and device based on solid state drive
US20170371807A1 (en) Cache data determining method and apparatus
TW201732603A (zh) 剖析快取替代
CN104571954B (zh) 一种数据存储方法及装置
CN104503703B (zh) 缓存的处理方法和装置
CN113672166B (zh) 数据处理方法、装置、电子设备及存储介质
JP6402647B2 (ja) データ配置プログラム、データ配置装置およびデータ配置方法
CN104077242A (zh) 一种缓存管理方法和装置
US11593268B2 (en) Method, electronic device and computer program product for managing cache
CN113641681B (zh) 一种空间自适应的海量数据查询方法
KR20230026946A (ko) 해싱을 사용하는 키 밸류 스토리지 장치 및 그것의 동작 방법
US9851925B2 (en) Data allocation control apparatus and data allocation control method
CN117235088B (zh) 一种存储系统的缓存更新方法、装置、设备、介质及平台
CN109491619A (zh) 缓存数据处理方法、装置和系统
US20190114082A1 (en) Coordination Of Compaction In A Distributed Storage System
Eisenman et al. Flashield: a key-value cache that minimizes writes to flash
US20140359228A1 (en) Cache allocation in a computerized system
CN110658999B (zh) 一种信息更新方法、装置、设备及计算机可读存储介质
CN107506156B (zh) 一种块设备的io优化方法
CN105740167A (zh) 一种文件系统缓存删除的方法及系统
CN111611179B (zh) 元数据命中率提升方法、装置、存储介质及电子设备
CN112667530A (zh) 一种数据缓存方法及装置
CN116185904A (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