CN112199304B - 数据预取方法及装置 - Google Patents

数据预取方法及装置 Download PDF

Info

Publication number
CN112199304B
CN112199304B CN201910611456.4A CN201910611456A CN112199304B CN 112199304 B CN112199304 B CN 112199304B CN 201910611456 A CN201910611456 A CN 201910611456A CN 112199304 B CN112199304 B CN 112199304B
Authority
CN
China
Prior art keywords
data
data block
read
subinterval
association
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
CN201910611456.4A
Other languages
English (en)
Other versions
CN112199304A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910611456.4A priority Critical patent/CN112199304B/zh
Publication of CN112199304A publication Critical patent/CN112199304A/zh
Application granted granted Critical
Publication of CN112199304B publication Critical patent/CN112199304B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

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

数据预取方法及装置
技术领域
本申请涉及存储技术领域,特别涉及一种数据预取方法及装置。
背景技术
在存储设备中,缓存的访问速度比硬盘的访问速度快,因此,在应用中,当接收到一个读数据请求时,可以根据该读数据请求对下一个读数据请求所要读取的数据进行预测,并提前将预测的数据从硬盘中读取到缓存中来。这样,当存储设备接收到读数据请求时,可以实现缓存中数据的读命中,从而大大提高读数据请求的处理速度。
相关技术中,存储设备在接收到读数据请求时,可以根据该读数据请求包括的待读取数据的逻辑地址,确定待读取数据所在的数据块。之后,确定与待读取数据所在的数据块有关联关系的至少一个数据块,并将确定的至少一个数据块的数据预取至缓存。
由此可见,相关技术中通常均是直接预取整个数据块的数据至缓存中,然而,由于数据块的粒度通常远远大于读数据请求所要读取的数据粒度,因此,通过上述方法预取的数据量往往偏大,这不仅导致了较大的预取浪费率,还将导致读盘压力较大。
发明内容
本申请提供了一种数据预取方法及装置,可以用于解决相关技术中预取浪费率大且读盘压力较大的额问题。所述技术方案如下:
第一方面,提供了一种数据预取方法,应用于存储设备,所述方法包括:接收读数据请求,所述读数据请求包括待读取数据的逻辑地址;根据所述待读取数据的逻辑地址确定所述待读取数据所在的第一数据块,所述待读取数据的逻辑地址是所述第一数据块的逻辑地址区间的子集;选择与所述第一数据块有关联关系的第二数据块,所述第二数据块的逻辑地址区间包括多个子区间;根据每个子区间的访问频率从所述多个子区间中确定目标子区间;将所述目标子区间中存储的数据预取至缓存。
在本申请实施例中,在确定与待读取数据所在的第一数据块有关联关系的第二数据块之后,可以根据第二数据块中各个子区间的访问频率来确定目标子区间,并将目标子区间中的数据预取至缓存。也即,本申请可以根据各个子区间的访问频率更为精细的预取数据块中某些区间内的数据,相对于直接预取整个数据块中的数据,减小了预取的数据量,降低了预取浪费率。并且,由于减小了预取的数据量,因此,降低了读盘压力。
可选地,所述存储设备包括多个数据块。相应地,所述选择与所述第一数据块有关联关系的第二数据块的实现过程可以为:分别计算每个数据块与所述第一数据块的关联度;将关联度超过设定的关联阈值的数据块作为所述第二数据块。
其中,每个数据块与第一数据块的关联度的大小可以用于指示在访问第一数据块之后,下一次访问的数据块为该数据块的概率。通过计算每个数据块与第一数据块的关联度,可以确定出读取第一数据块之后,下一个最有可能读取的数据块。这样,可以提高预取的准确度。
可选地,所述分别计算每个数据块与所述第一数据块的关联度的实现过程可以包括:根据设定的算法分别计算每个数据块与所述第一数据块的关联度,所述设定的算法包括条件概率法、贝叶斯算法、卷积神经网络算法、长短期记忆网络算法、神经网络算法、循环神经网络算法、概率图模型算法中的任意一种。
可选地,所述方法还包括:根据所述存储设备的性能调整所述关联阈值。
在本申请中,可以根据存储设备的性能来动态的调整关联阈值的大小,以此来调节预取的数据的数据量的多少,这样,可以更好的控制读盘压力,以及更好的控制命中率与浪费率之间的平衡。
可选地,所述目标子区间的访问频率大于设定的频率阈值。
在本申请中,预取的目标子区间的访问频率大于设定的频率阈值,这样,预取的目标子区间将不为访问频率为0的子区间,也即,预取的目标子区间均是访问频率较高的区间,这样,可以提高预取的准确度。
可选地,所述目标子区间的访问热度大于设定的热度阈值,所述目标子区间的访问热度根据所述目标子区间的访问频率与所述第二数据块的关联度确定得到。
在本申请中,也可以通过各个子区间的访问热度来选取访问热度相对较高的目标子区间。由于访问热度根据子区间的访问频率与子区间所属的数据块与第一数据块之间的关联度确定得到,这样,根据该访问热度选取得到的目标子区间中的数据后续被命中的概率更大,也即,可以有效提高预取数据的命中率。
第二方面,提供了一种数据预取装置,所述数据预取装置具有实现上述第一方面中数据预取方法行为的功能。所述数据预取装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的数据预取方法。
第三方面,提供了一种数据预取装置,所述数据预取装置的结构中包括处理器和存储器,所述存储器用于存储支持数据访问装置执行上述第一方面所提供的数据预取方法的程序,以及存储用于实现上述第一方面所提供的数据预取方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据预取方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据预取方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请提供的技术方案带来的有益效果至少包括:
在本申请实施例中,在确定与待读取数据所在的第一数据块有关联关系的第二数据块之后,可以根据第二数据块中各个子区间的访问频率来确定目标子区间,并将目标子区间中的数据预取至缓存。也即,本申请可以根据各个子区间的访问频率更为精细的预取数据块中某些区间内的数据,相对于直接预取整个数据块中的数据,减小了预取的数据量,降低了预取浪费率。并且,由于减小了预取的数据量,因此,降低了读盘压力。
附图说明
图1是本申请实施例提供的数据预取方法所涉及的存储系统的示意图;
图2是本申请实施例提供的一种数据预取方法的流程图;
图3是本申请实施例提供的一种数据块中的子区间的划分示意图;
图4是本申请实施例示出的一种数据预取装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例涉及的系统架构进行介绍。
图1是本申请实施例提供的数据预取方法所涉及的存储系统架构图。如图1所示,该存储系统包括主机01、控制器02和多个硬盘03。主机01和控制器02之间通过网络文件系统(英文全称:Network File System,英文简称:NFS)/通用网络文件系统(英文全称:Common Internet File System,英文简称:CIFS)协议或者光纤通道(英文全称:FiberChannel,英文简称:FC)协议进行通信。具体的,主机01可以向控制器02发送写数据请求,控制器02接收写数据请求之后将写数据请求携带的数据写入硬盘03中。另外,主机01还可以向控制器02发送读数据请求,控制器02接收读数据请求之后,根据读数据请求中的待读取数据的逻辑地址查找其缓存102中是否保存有待读取数据,如果有则直接将待读取的数据发送给主机01,如果没有则从硬盘03中获得该数据并发送给主机01。其中,控制器02和硬盘03可以集成在一个存储设备中,也可以位于相互独立的两个设备中,本申请实施例不对控制器02和硬盘03的位置关系做任何限定。
以读数据请求为例,当用户在主机01上或者与主机01连接的客户端上提起一个较大的读数据请求时,主机01往往将该读数据请求拆分成多个请求发送给控制器02处理。将读数据请求拆分成多个请求的操作可以由主机01中的主机总线适配器(Host BusAdapter,HBA)执行,也可以由控制器02中的HBA执行。拆分后的每个请求的大小可以相同也可以不相同,本实施例不对拆分后的读数据请求的大小进行限定。另外,拆分后的多个读数据请求的逻辑地址是连续的。这种逻辑地址连续的多个读数据请求被称为顺序流。主机01可以将顺序流中的多个读数据请求串行地发送给控制器02处理,也可以将顺序流中的多个读数据请求并行地发送给控制器02处理。其中,串行地发送给控制器02处理的顺序流叫做串行顺序流,并行地发送给控制器02处理的顺序流叫做并行顺序流。对于串行顺序流,主机01依次将连续的多个读数据请求中的每个读数据请求发送给控制器02,待上一个读数据请求处理完毕之后再发送下一个读数据请求。对于并行顺序流,主机01向控制器02发送连续的多个读数据请求中的至少两个读数据请求,存储设备可并行处理至少两个读数据请求。假设主机01向控制器02发送9个读数据请求,如果这9个读数据请求是串行处理的,那么主机01首先发送第一个读数据请求,待接收第一个读数据请求的响应结果之后再发送第二个读数据请求,待接收第二个读数据请求的响应结果之后再发送第三个读数据请求,依此类推,直至这9个读数据请求全部处理完毕。如果这9个读数据请求是并行处理的,那么主机01可以同时将第一个读数据请求、第二个读数据请求以及第三个读数据请求发送给控制器02,控制器02并行处理这三个读数据请求,当第一个读数据请求处理完毕时,即使第二个读数据请求或者第三个数据访问请求尚未处理完毕,主机01都可以向控制器02发送第四个读数据请求,依此类推,直至这9个读数据请求全部处理完毕。
需要说明的是,如图1所示,控制器02至少包括处理器021和缓存022。
处理器021是一个中央处理器(英文:central processing unit,CPU)。在本申请实施例中,处理器021可以用于接收来自主机01的读数据请求以及写数据请求、处理读数据请求以及写数据请求。
缓存022用于临时存储从主机01接收的数据或从硬盘03读取的数据。控制器02接收主机01发送的多个写数据请求时,可以将多个写数据请求中的数据暂时保存在缓存022中。当缓存022的容量达到一定阈值时,将缓存022存储的数据发送给硬盘03。硬盘03存储该数据。缓存022包括易失性存储器,非易失性存储器或其组合。易失性存储器例如为随机访问存储器(英文:random-access memory,RAM)。非易失性存储器例如软盘、硬盘、固态硬盘(solid state disk,SSD)、光盘等各种可以存储用于实现本申请方案的程序代码的机器可读写介质。
可以理解的是,缓存022读取数据的速度高于硬盘03读取数据的速度。因此,如果该读数据请求所要读取的数据在缓存022中命中,那么就不必再从硬盘中03中读取该数据,从而提高读取数据的效率。为了提高缓存的数据命中率,通常的做法是从硬盘03中预先读取一段数据(例如图1所示的数据023),写入缓存022。那么,当主机01向控制器02发送读数据请求要求读取数据023时,由于数据023已经被提前读取到缓存022中了,因此处理器021可以直接向主机01发送数据023。虽然在主机01发送的读数据请求到达缓存022之前就将硬盘03中的部分数据预取至缓存022中,可以提高缓存的数据命中率,然而预取的数据太多不仅会造成浪费,而且还会造成较大的读盘压力。因此,如何预取数据是很重要的问题。
在申请本实施例中,硬盘03的空间可以划分为多个数据块(chunk),每个数据块的大小相同,本实施例以数据块的大小是256KB为例,并且每个数据块具有一段逻辑地址,这段逻辑地址可以划分为多个子区间。当处理器021接收一个读数据请求时,该读数据请求包括待读取数据的逻辑地址,根据待读取数据的逻辑地址可以确定待读取数据所在的数据块。在确定出待读取数据所在的数据块后,可以选择多个数据块中与待读取数据所在的数据块有关联关系的数据块,并根据选择出的数据块中各个子区间的访问频率确定目标子区间,将目标子区间的数据预取至缓存022。
接下来对本申请实施例提供的数据预取方法进行介绍。
图2是本申请实施例提供的一种数据预取方法的流程图。该方法可以应用于存储设备中,该存储设备可以为集成有图1所示的控制器02和硬盘03的设备。如图2所示,该方法包括以下步骤:
步骤201:接收读数据请求,读数据请求包括待读取数据的逻辑地址。
在本申请实施例中,存储设备可以接收主机下发的读数据请求。其中,该读数据请求可以是由主机对一个较大的读数据请求进行拆分后的多个请求中的一个请求。该读数据请求中可以包括待读取数据所在的存储空间的逻辑地址。除此之外,该读数据请求中还可以包括待读取数据的长度信息。
步骤202:根据待读取数据的逻辑地址确定待读取数据所在的第一数据块,待读取数据的逻辑地址是第一数据块的逻辑地址区间的子集。
在本申请实施例中,硬盘可以被划分为多个数据块。每个数据块具有一段逻辑地址。并且,每个数据块对应一个用于唯一标识自身的数据块标识。存储设备中可以存储有每个数据块的数据标识和相应数据块的逻辑地址区间之间的映射关系。基于此,在接收到读数据请求之后,存储设备可以从上述映射关系中确定该读数据请求中包括的待读取数据的逻辑地址所处的逻辑地址区间,并获取该逻辑地址区间对应的数据块标识,获取的该数据块标识所标识的数据块即为待读取数据所在的第一数据块。
步骤203:选择与第一数据块有关联关系的第二数据块,第二数据块的逻辑地址区间包括多个子区间。
在确定第一数据块之后,存储设备可以从硬盘包括的剩余数据块中选择与第一数据块有关联关系的第二数据块。
需要说明的是,存储设备可以分别计算剩余数据块中每个数据块与第一数据块的关联度,并将关联度超过设定的关联阈值的数据块作为第二数据块。其中,任一数据块与第一数据块之间的关联度可以用于指示在访问第一数据块之后,下一次访问的数据块为该数据块的概率。
示例性地,在本申请实施例中,存储设备可以通过条件概率来计算每个数据块与第一数据块之间的关联度。其中,以剩余数据块中的数据块B为例,存储设备可以通过下述公式来计算该数据块B与第一数据块(下述公式中称为数据块A)之间的关联度。
其中,P(B|A)是指数据块A(即第一数据块)和数据块B之间的关联度,也即,在读取数据块A的数据之后,读取数据块B中的数据的概率。f1是指在读取数据块A的请求之后的预设时长t内接收到的读取数据块B的请求的数量。f2是指在读取数据块A的请求之后的预设时长t内接收到的请求的总数量。
需要说明的是,f1和f2可以是根据该存储设备接收并处理的多个历史读数据请求统计得到。示例性地,存储设备可以获取当前时刻之前的一段时长T内接收到的多个历史读数据请求的历史信息,该历史信息可以包括相应请求所读取的数据所在的数据块的数据块标识,每个请求的接收时间等信息。在获取到历史信息之后,存储设备可以对多个历史读数据请求的历史信息进行统计。例如,当预设时长t较短,该预设时长t内仅包含一个请求时,存储设备可以根据历史信息从多个请求中查找读取数据块B的请求,统计查找到的这些请求中上一个请求为读取数据块A的请求的数量,将统计的数量作为f1。同理,存储设备可以统计多个历史读数据请求中读取数据块A的历史读数据请求的数量,将该数量作为f2
例如,假设存储设备在当前时刻之前的一段时长T内接收到20个历史读数据请求。这20个历史读数据请求对应读取的数据块依次为:A→B→C→A→E→F→C→D→S→G→B→A→E→F→A→B→C→F→G→S。在此基础上,存储设备可以统计20个请求中读取A的请求的下一个请求为读取B的请求的数量,一共有2个,此时,f1=2。统计20个请求中读取数据块A的请求的数量,一共有4个,此时,f2=4。由此可知,P(B|A)=2/4。
可选地,在本申请实施例中,当每个读取数据块A的请求之后的预设时长内接收到的请求的数量不相等时,存储设备也可以确定在每个读取数据块A的读数据请求之后的预设时长t内接收到读取数据块B的读数据请求的数量,并计算这些数量的总和,将该总和作为f1。统计每个读取数据块A的读数据请求之后的预设时长t内接收到的所有请求的数量的总和,将该总和作为f2
例如,假设在当前时刻之前的一段时长T内一共接收到3个读取数据块A的请求,5个读取数据块B的请求。从接收到第一个读取数据块A的请求起的第一个预设时长内,一共接收到2个请求,其中,有一个读数数据块B的请求。从接收到第二个读取数据块A的请求起的第二个预设时长内,一共接收到1个读数据请求,其中不存在读取数据块B的请求。从接收到第三个读取数据块A的请求起的第三个预设时长内,一共接收到3个读数据请求,其中存在一个读取数据块B的请求。由此可知,在三个读取数据块A的请求之后的三个预设时长内接收到的读取数据块B的请求的总数量为2,也即,f1=2。而在这三个预设时长内接收到的所有请求的总数量为6,也即,f2=6,因此,P(B|A)=2/6。
上述仅是本申请实施例给出的一种计算每个数据块与第一数据块之间的关联度的方法。可选地,存储设备也可以通过其他设定的算法来计算每个数据块与第一数据块之间的关联度。其中,该设定的算法可以包括条件概率、贝叶斯算法、卷积神经网络算法、长短期记忆网络算法、神经网络算法、循环神经网络算法、概率图模型算法中的任意一种。需要说明的是,在采用上述任一种算法来计算两个数据块之间的关联度之前,存储设备同样可以根据一段时长T内接收并处理的多个历史读数据请求的历史信息来对上述算法进行训练,以便后续可以根据训练好的算法来计算两个数据块之间的关联度。
在计算出每个数据块与第一数据块之间的关联度之后,存储设备可以将关联度超过设定的关联阈值的数据块作为第二数据块。需要说明的是,关联度超过设定的关联阈值的数据块的数量可能为一个,也可能为多个,也即,在本申请实施例中,选择出的与第一数据块有关联关系的第二数据块可以为一个,也可以为多个。
需要说明的是,设定的关联阈值可以是由用户在初始化时设置的。并且,在本申请实施例中,每隔一段时间,存储设备还可以根据自身的性能来对该设定的关联阈值进行调整。
示例性地,存储设备可以统计一段时间t1内预取至缓存的数据的命中率,并统计该段时间t1内预取至缓存的数据的浪费率。计算命中率与浪费率的比值,得到第一比值。存储设备中可以存储有设定的比值范围。将第一比值与该比值范围进行比较,如果该第一比值位于该比值范围内,则认为命中率和浪费率满足要求,此时,可以保持当前的关联阈值不变。如果第一比值小于该比值范围的下限值,则说明当前命中率较低,浪费率较高。此时,该存储设备可以将当前的关联阈值调大。如果第一比值大于该比值范围的上限值,则说明当前命中率较高,此时,该存储设备可以将当前的关联阈值调小。在将关联阈值调整之后,存储设备可以继续统计从调整完成起一段时间t1内的命中率和浪费率,并继续通过上述方法来对决定是否对调整后的关联阈值继续调整,以使得关联阈值尽可能的处于该比值范围内,以此来维持系统收益率的平衡。
例如,假设初始设定的关联阈值为ε1,设定的比值范围为[2,5],存储设备可以统计按照该ε1进行预取数据的一段时间t1内的命中率和浪费率。如果命中率为0.5,浪费率为0.5,也即,第一比值为1。存储设备可以将该第一比值与设定的比值范围进行比较,可以确定第一比值不位于该比值范围内,且第一比值小于该比值范围的下限值。也即,当前的命中率较低,浪费率较高。此时,可以将ε1调大,得到ε2,以此减少选择的第二数据块的数量,进而减小浪费率,提高命中率。如果命中率为0.8,浪费率为0.2,此时,第一比值为4,此时,可以确定第一比值位于该比值范围内,则存储设备可以不对ε1进行调整。如果命中率为6/7,浪费率为1/7,则第一比值为6,此时,可以确定第一比值大于该比值范围的上限值。也即,当前的命中率较高,此时,该存储设备可以减小ε1,以此来增加选择的第二数据块的数量。在通过上述方法比较第一比值和设定的比值范围,并根据结果完成操作之后,再隔预设时长t1,可以继续通过上述方法来统计命中率和浪费率,并根据命中率和浪费率来决定如何对关联阈值进行调整。
可选地,存储设备还可以根据一段时间t1内接收到的读数据请求,确定这段时间内每秒的请求数量。根据每秒的请求数量来调整该关联阈值。其中,如果每秒的请求数量大于第三数值,则说明请求较多,在这种情况下,可以增大关联阈值,以减小读盘压力,如果每秒的请求数量小于第四数值,则说明请求较少,此时,可以减小关联阈值。
另外,在本申请实施例中,硬盘的每个数据块的逻辑地址区间均可以被划分为多个子区间。其中,每个子区间的大小可以相等,也可以不等,本申请实施例对此不做限定。其中,每个数据块包括的多个子区间可以按照每个子区间的逻辑地址进行编号。例如,第二数据块包括的多个子区间,可以根据每个子区间的逻辑地址进行编号。
以第二数据块为例,如图3所示,假设第二数据块的大小为512KB,按照4KB的大小,可以将第二数据块划分为128个子区间,每个子区间均为大小为4KB的连续区间。依次为128个子区间进行编号,这128个子区间的编号可以依次为0-127。
步骤204:根据每个子区间的访问频率从多个子区间中确定目标子区间。
在选择出第二数据块之后,存储设备可以根据第二数据块包括的多个子区间中每个子区间的访问频率,从多个子区间中确定目标子区间。
由前述步骤203中的介绍可知,第二数据块的数量可能为一个,也可能为多个。接下来,首先介绍当第二数据块为一个时,根据每个子区间的访问频率从多个子区间中确定目标子区间的实现方式。
示例性地,由于读数据请求中均携带有所要读取的数据的逻辑地址,因此,存储设备可以根据当前时刻之前的一段时间t1内接收并处理的历史读数据请求,确定第二数据块中每个子区间的访问频率。之后,存储设备可以将访问频率大于设定的频率阈值的子区间作为目标子区间。由于访问频率大于设定的频率阈值的子区间可能有一个,也可能有多个,因此,目标子区间也就可能为一个,也可能为多个。
例如,假设第二数据块包括128个子区间,存储设备首先可以统计当前时刻之前的一段时间t1内接收到的多个历史读数据请求中要读取的数据的逻辑地址包括第一个子区间的请求的数量,并将该数量确定为第一个子区间对应的访问频率。接下来确定多个历史读数据请求中要读取的数据的逻辑地址包括第二个子区间的请求的数量,将该数量确定为第二个子区间的访问频率。依次类推,确定得到128个子区间的访问频率。之后,从这128个子区间中确定访问频率大于频率阈值的子区间,确定的这些子区间即为目标子区间。
其中,设定的频率阈值可以是由用户在初始化时设置的。另外,在本申请实施例中,每隔一段时间,存储设备也可以根据自身的性能对该频率阈值进行调整。具体的调整方式可以参考前述对关联阈值的调整方式,本申请实施例在此不再赘述。
可选地,在另一种可能的实现方式中,在确定每个子区间的访问频率之后,可以将各个子区间的访问频率按照从大到小的顺序进行排序,将排在前h的访问频率对应的子区间作为目标子区间。
例如,可以对128个子区间的访问频率从大到小的顺序进行排序,将排在前5的访问频率所对应的子区间作为目标子区间。
值得注意的是,在本申请实施例中,每隔一段时间,存储设备也可以根据自身的性能对h的大小进行调整。具体的调整原理可以参考前述实施例中对关联阈值的调整原理,本申请实施例在此不再赘述示例性地,存储设备可以统计一段时间t1内按照h来预取数据的情况下,预取至缓存的数据的命中率,并统计该段时间t1内预取至缓存的数据的浪费率。计算命中率与浪费率的比值,得到第一比值。存储设备中可以存储有设定的比值范围,将第一比值与该比值范围进行比较。如果该第一比值位于该比值范围内,则不对h进行调整;如果第一比值大于该比值范围的上限值,则说明当前命中率较高,此时可以将h调大,也即,增大预取的数量。如果第一比值小于该比值范围的下限值,则说明当前命中率较低,浪费率较高,此时可以将h调小,以减少选择的目标子区间的数量,从而降低浪费率。
可选地,在本申请实施例中,存储设备也可以将设定的频率阈值和预取数量结合起来来选择目标子区间。也即,存储设备首先可以根据设定的频率阈值来筛选得到一部分子区间。如果筛选出来的子区间的数量大于预取数量h,则可以继续对筛选出来的子区间按照访问频率从大到小的顺序进行排序,之后,选取排在前h个的子区间作为目标子区间。
在结合设定的频率阈值和预取数量来选择目标子区间情况下,每隔一段时间,存储设备可以对设定的频率阈值或者是预取数量进行调整,具体调整方式可以参考前述介绍的相关实现方式,本申请实施例在此不再赘述。需要说明的是,存储设备也可以同时调整设定的频率阈值和预取数量。其中,存储设备可以通过前述介绍的方式调整设定的频率阈值,在将频率阈值调高的同时,可以相应地减小预取数量。在将频率阈值调低的同时,可以相应地增大预取数量。或者,存储设备可以通过前述介绍的实现方式调整预取数量,在将预取数量调大的同时,可以相应地调低频率阈值,在将预取数量调低时,可以相应地调高频率阈值。
上述介绍了当第二数据块的数量为一个时,从第二数据块的多个子区间中确定目标子区间的实现方式。当第二数据块的数量为多个时,存储设备可以通过以下几种方式来确定目标子区间。
第一种方式:存储设备可以确定每个第二数据块包括的多个子区间中每个子区间的访问频率。之后,对于任一个第二数据块,可以将该第二数据块中访问频率大于设定的频率阈值的子区间作为目标子区间。这样,确定出的目标子区间可能是位于不同数据块中的多个子区间。
例如,假设选择出的第二数据块一共有3个,存储设备在第一个数据块中选择访问频率大于设定的频率阈值的子区间,得到2个子区间,在第二个数据块中选择访问频率大于设定的频率阈值的子区间,得到1个子区间,在第三个数据块中选择访问频率大于设定的频率阈值的子区间,得到0个子区间,这样,最终得到的目标子区间有3个,其中两个位于第一个第二数据块上,另一个位于第二个第二数据块上。
第二种方式:存储设备可以确定每个第二数据块包括的多个子区间中每个子区间的访问频率。对于任一个第二数据块,存储设备可以计算该数据块内每个子区间的访问频率与该数据块的关联度之间的乘积,将该乘积作为相应子区间的访问热度。其中,该数据块的关联度是指前述计算得到的该数据块与第一数据块之间的关联度。在确定出每个第二数据块中的每个子区间的访问热度之后,存储设备可以将所有第二数据块中访问热度大于设定的热度阈值的子区间作为目标子区间。
例如,假设选择出的第二数据块一共有3个,第一个第二数据块与第一数据块的关联度为P1,第二个第二数据块与第一数据块的关联度为P2,第三个第二数据块与第一数据块的关联度为P3。存储设备可以计算第一个第二数据块中每个子区间的访问频率与P1的乘积,并将计算得到的乘积作为第一个第二数据块中相应子区间的访问热度。计算第二个第二数据块中每个子区间的访问频率与P2的乘积,将计算得到的乘积作为第二个第二数据块中相应子区间的访问热度。计算第三个第二数据块中每个子区间的访问频率与P3的乘积,得到第三个第二数据块中每个子区间的访问热度。在计算得到所有子区间的访问热度之后,存储设备可以从中选择大于设定的热度阈值的子区间作为目标子区间。
需要说明的是,在本申请实施例中,每隔一段时间,存储设备可以根据自身的性能来对设定的热度阈值进行调整,以此来调整预取的子区间的数量。具体的调整方式可以参考前述对关联阈值的调整方式,本申请实施例在此不再赘述。
可选地,在一种可能的实现方式中,在确定出每个子区间的访问热度之后,存储设备也可以对所有的访问热度按照从大到小的顺序进行排序,之后,将排在前h的访问热度对应的子区间作为目标子区间。其中,h的大小可以预先由用户进行设置。
可选地,在另一种可能的实现方式中,存储设备可以将设定的热度阈值和预取数量h结合起来来选择目标子区间。示例性地,存储设备可以先通过设定的热度阈值从多个子区间中筛选出一部分子区间。如果筛选出的这部分子区间的数量大于预取数量h,则存储设备可以进一步地对筛选出来的子区间按照访问热度从高到低进行排序,之后,从中选择排在前h个的子区间作为目标子区间。在这种情况下,每隔一段时间,存储设备可以对设定的热度阈值或预取数量进行调整,具体的调整方式可以参考前述实施例中的相关实现方式,本申请实施例在此不再赘述。
需要说明的是,在将排在前h的访问热度对应的子区间作为目标子区间时,如果有多个子区间的访问热度相同,则可以从这些访问热度相同的子区间中确定逻辑地址距离待读取数据的逻辑地址最近的子区间作为目标子区间。
第三种方式:存储设备可以确定每个第二数据块包括的多个子区间中每个子区间的访问频率。之后,对于任一第二数据块,存储设备可以按照第二数据块中的各个子区间的访问频率的大小,确定各个子区间对应的访问等级。之后,存储设备可以计算每个子区间的访问等级与该第二数据块的关联度之间的乘积,并将该乘积作为相应子区间的访问热度。在计算出所有第二数据块中各个子区间的访问热度之后,可以从中选择访问热度大于设定的热度阈值的子区间作为目标子区间,或者是可以将所有的子区间的访问热度按照从大到小的顺序进行排序,将排在前h的访问热度对应的子区间作为目标子区间。
需要说明的是,在按照各个子区间的访问频率的大小,确定各个子区间对应的访问等级时,存储设备可以获取第二数据块中各个子区间的访问频率中的最大值,将0到最大值确定为第二数据块的访问频率区间。之后,存储设备可以将该访问频率区间划分为多个子频率区间,每个子频率区间对应一个访问等级。其中,各个子频率区间不存在重叠,且子频率区间的下限值越大,则对应的访问等级越大。也即,二者成正比。之后,存储设备可以确定每个子区间的访问频率所处的子频率区间,进而根据所处的子频率区间确定对应访问等级。
例如,假设第二数据块中各个子区间的访问频率的最大值为f,则第二数据块的访问频率区间为[0,f],将这个访问频率区间划分为3个子频率区间,其中,第一个子频率区间可以为0,第二个子频率区间可以为[1,f1],第三个子频率区间可以为[f1+1,f]。这样,第一个子频率区间对应的访问等级为1,第二个子频率区间对应的访问等级2,第三个子频率区间对应的访问等级则为3。
可选地,在一种可能的实现方式中,存储设备中可以存储有频率区间与访问等级的映射关系。在这种情况下,存储设备可以从该映射关系中获取每个第二数据块中的每个子区间的访问频率所在的频率区间所对应的访问等级。
例如,表1示出了一种频率区间与访问等级的映射关系。其中,当访问频率为0时,对应的访问等级为1。频率区间为[1,5]时,对应的访问等级为2。频率区间为大于5时,对应的访问等级为3。这样,各个第二数据块中子区间的访问频率为0的,该子区间对应的访问等级即为1,子区间的访问频率位于[1,5]的,则该子区间对应的访问等级为2,子区间的访问频率大于5的,该子区间对应的访问等级即为3。
表1频率区间与访问等级的映射关系
F=0 1≤F≤5 F>5
1 2 3
需要说明的是,上述给出的频率区间的数量、区间大小等仅是本申请实施例给出的一种可能的示例,并不构成对本申请的限定。另外,在本申请实施例中,每隔一段时间,存储设备同样可以根据自身的性能来对频率区间进行调整。
第四种方式:存储设备可以确定每个第二数据块包括的多个子区间中每个子区间的访问频率。之后,存储设备可以对各个第二数据块中的各个子区间的访问频率进行排序。在排序之后,存储设备可以根据预设的预取子区间数量h以及第二数据块的数量,为每个第二数据块分配对应的预取数量n,其中,按照关联度的大小,关联度越小的第二数据块,分配到的预取数量n越小。在分配完预取数量n之后,存储设备可以按照每个第二数据块的预取数量n,从各个第二数据块中的子区间中确定访问频率排在前n的子区间作为目标子区间。
步骤205:将目标子区间中存储的数据预取至缓存。
在确定目标子区间之后,存储设备可以将目标子区间中存储的数据预取至缓存。其中,由前述介绍可知,目标子区间的数量有可能为一个,也有可能为多个,有可能属于同一个数据块,也有可能属于不同数据块。
当目标子区间仅有一个时,该存储设备可以直接根据该目标子区间的逻辑地址,生成一个预取命令来预取该目标子区间内存储的数据。
可选地,如果目标子区间有多个,则对于该多个目标子区间中逻辑地址连续的目标子区间,存储设备可以生成一个预取命令来预取逻辑地址连续的目标子区间的数据。对于多个目标子区间中逻辑地址相隔较远的目标子区间,则根据各个子区间的逻辑地址生成对应的预取命令来分别预取各个子区间内的数据。
需要说明的是,在本申请实施例中,存储设备可以每隔一段时间根据自身的性能对设定的关联阈值、热度阈值
在本申请实施例中,在确定与待读取数据所在的第一数据块有关联关系的第二数据块之后,可以根据第二数据块中各个子区间的访问频率来确定目标子区间,并将目标子区间中的数据预取至缓存。也即,本申请可以根据各个子区间的访问频率更为精细的预取数据块中某些区间内的数据,相对于直接预取整个数据块中的数据,减小了预取的数据量,降低了预取浪费率。并且,由于减小了预取的数据量,因此,降低了读盘压力。并且,本申请实施例根据各个子区间的访问频率来确定目标子区间,访问频率越高,被确定为目标子区间的概率越大,这样,最终预取的子区间将是一段时间内被读取过的次数较高的区间,增大了命中率。
另外,在一些相关技术中,可以将硬盘划分为粒度较小的数据块,例如4KB。在这种情况下,根据数据块之间的关联关系预取数据块中的数据,虽然预取精度较高,但是由于数据块粒度较小,数量较多,因此,各个数据块之间的关联关系将呈指数级增加,极为复杂,这将导致管理成本、可靠性、内存成本和计算复杂度极高。而本申请实施例并不需要将硬盘划分为更小的粒度,在保持数据块粒度大小正常的情况下,通过将数据块划分子区间,根据子区间的访问频率来预取子区间,而不是根据子区间的关联关系来预取子区间,无需管理子区间之间的关联关系,在保证了命中率的同时,降低了管理成本、计算复杂度等。
接下来对本申请实施例提供的数据预取装置进行介绍。
图4是本申请实施例提供的一种数据预取装置400的结构示意图。如图4所示,该装置400包括:
接收模块401,用于执行上述实施例中的步骤201;
第一确定模块402,用于执行上述实施例中的步骤202;
选择模块403,用于执行上述实施例中的步骤203;
第二确定模块404,用于执行上述实施例中的步骤204;
预取模块405,用于执行上述实施例中的步骤205;
其中,上述接收模块401、第一确定模块402、选择模块403、第二确定模块404和预取模块405可以由图1所示的处理器021调用缓存022中的程序指令执行,或者可以由处理器021单独执行。
可选地,存储设备包括多个数据块,选择模块包括:
计算子模块,用于分别计算每个数据块与第一数据块的关联度;
确定子模块,用于将关联度超过设定的关联阈值的数据块作为第二数据块。
可选地,计算子模块具体用于:
根据设定的算法分别计算每个数据块与第一数据块的关联度,设定的算法包括贝叶斯算法、卷积神经网络算法、长短期记忆网络算法、神经网络算法、循环神经网络算法、概率图模型算法中的任意一种。
可选地,该装置还用于:根据存储设备的性能调整关联阈值。
可选地,目标子区间的访问频率大于设定的频率阈值。
可选地,目标子区间的访问热度大于设定的热度阈值,目标子区间的访问热度根据目标子区间的访问频率与第二数据块的关联度确定得到。
在本申请实施例中,在确定与待读取数据所在的第一数据块有关联关系的第二数据块之后,可以根据第二数据块中各个子区间的访问频率来确定目标子区间,并将目标子区间中的数据预取至缓存。也即,本申请可以根据各个子区间的访问频率更为精细的预取数据块中某些区间内的数据,相对于直接预取整个数据块中的数据,减小了预取的数据量,降低了预取浪费率。并且,由于减小了预取的数据量,因此,降低了读盘压力。并且,本申请实施例根据各个子区间的访问频率来确定目标子区间,访问频率越高,被确定为目标子区间的概率越大,这样,最终预取的子区间将是一段时间内被读取过的次数较高的区间,增大了命中率。
需要说明的是:上述实施例提供的数据预取装置在进行数据预取时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据预取装置与数据预取方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))、或者半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种数据预取方法,其特征在于,应用于存储设备,所述方法包括:
接收读数据请求,所述读数据请求包括待读取数据的逻辑地址;
根据所述待读取数据的逻辑地址确定所述待读取数据所在的第一数据块,所述待读取数据的逻辑地址是所述第一数据块的逻辑地址区间的子集;
选择与所述第一数据块有关联关系的第二数据块,所述第二数据块的逻辑地址区间包括多个子区间;
根据每个子区间的访问频率从所述多个子区间中确定目标子区间;
将所述目标子区间中存储的数据预取至缓存。
2.如权利要求1所述的方法,其特征在于,所述存储设备包括多个数据块,所述选择与所述第一数据块有关联关系的第二数据块包括:
分别计算每个数据块与所述第一数据块的关联度;
将关联度超过设定的关联阈值的数据块作为所述第二数据块。
3.如权利要求2所述的方法,其特征在于,所述分别计算每个数据块与所述第一数据块的关联度,包括:
根据设定的算法分别计算每个数据块与所述第一数据块的关联度,所述设定的算法包括贝叶斯算法、卷积神经网络算法、长短期记忆网络算法、神经网络算法、循环神经网络算法、概率图模型算法中的任意一种。
4.如权利要求2或3所述的方法,其特征在于,所述方法还包括:
根据所述存储设备的性能调整所述关联阈值。
5.如权利要求1所述的方法,其特征在于,所述目标子区间的访问频率大于设定的频率阈值。
6.如权利要求2或3所述的方法,其特征在于,所述目标子区间的访问热度大于设定的热度阈值,所述目标子区间的访问热度根据所述目标子区间的访问频率与所述第二数据块的关联度确定得到。
7.一种数据预取装置,其特征在于,应用于存储设备,所述装置包括:
接收模块,用于接收读数据请求,所述读数据请求包括待读取数据的逻辑地址;
第一确定模块,用于根据所述待读取数据的逻辑地址确定所述待读取数据所在的第一数据块,所述待读取数据的逻辑地址是所述第一数据块的逻辑地址区间的子集;
选择模块,用于选择与所述第一数据块有关联关系的第二数据块,所述第二数据块的逻辑地址区间包括多个子区间;
第二确定模块,用于根据每个子区间的访问频率从所述多个子区间中确定目标子区间;
预取模块,用于将所述目标子区间中存储的数据预取至缓存。
8.如权利要求7所述的装置,其特征在于,所述存储设备包括多个数据块,所述选择模块包括:
计算子模块,用于分别计算每个数据块与所述第一数据块的关联度;
确定子模块,用于将关联度超过设定的关联阈值的数据块作为所述第二数据块。
9.如权利要求8所述的装置,其特征在于,所述计算子模块具体用于:
根据设定的算法分别计算每个数据块与所述第一数据块的关联度,所述设定的算法包括贝叶斯算法、卷积神经网络算法、长短期记忆网络算法、神经网络算法、循环神经网络算法、概率图模型算法中的任意一种。
10.如权利要求8或9所述的装置,其特征在于,所述装置还用于:
根据所述存储设备的性能调整所述关联阈值。
11.如权利要求7所述的装置,其特征在于,所述目标子区间的访问频率大于设定的频率阈值。
12.如权利要求8或9所述的装置,其特征在于,所述目标子区间的访问热度大于设定的热度阈值,所述目标子区间的访问热度根据所述目标子区间的访问频率与所述第二数据块的关联度确定得到。
CN201910611456.4A 2019-07-08 2019-07-08 数据预取方法及装置 Active CN112199304B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910611456.4A CN112199304B (zh) 2019-07-08 2019-07-08 数据预取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910611456.4A CN112199304B (zh) 2019-07-08 2019-07-08 数据预取方法及装置

Publications (2)

Publication Number Publication Date
CN112199304A CN112199304A (zh) 2021-01-08
CN112199304B true CN112199304B (zh) 2024-04-09

Family

ID=74004441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910611456.4A Active CN112199304B (zh) 2019-07-08 2019-07-08 数据预取方法及装置

Country Status (1)

Country Link
CN (1) CN112199304B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114065947B (zh) * 2021-11-15 2022-07-22 深圳大学 一种数据访问推测方法、装置、存储介质及电子设备
CN114116528B (zh) * 2021-11-22 2022-11-11 深圳大学 一种内存访问地址预测方法、装置、存储介质及电子设备
CN114706798B (zh) * 2022-06-08 2022-08-12 四川省人工智能研究院(宜宾) 基于注意力机制的固态硬盘数据预取方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101960426A (zh) * 2008-01-02 2011-01-26 桑迪士克以色列有限公司 具有直接用户访问的存储装置
CN103635887A (zh) * 2013-09-23 2014-03-12 华为技术有限公司 缓存数据的方法和存储系统
CN104063330A (zh) * 2014-06-25 2014-09-24 华为技术有限公司 数据预取方法及装置
CN107943711A (zh) * 2016-10-12 2018-04-20 慧荣科技股份有限公司 数据储存装置及其数据维护方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8214599B2 (en) * 2008-11-04 2012-07-03 Gridiron Systems, Inc. Storage device prefetch system using directed graph clusters

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101960426A (zh) * 2008-01-02 2011-01-26 桑迪士克以色列有限公司 具有直接用户访问的存储装置
CN103635887A (zh) * 2013-09-23 2014-03-12 华为技术有限公司 缓存数据的方法和存储系统
CN104063330A (zh) * 2014-06-25 2014-09-24 华为技术有限公司 数据预取方法及装置
CN107943711A (zh) * 2016-10-12 2018-04-20 慧荣科技股份有限公司 数据储存装置及其数据维护方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种面向SSD-HDD混合存储的热区跟踪替换算法;刘圣卓;姜进磊;杨广文;;小型微型计算机系统;20121015(第10期);全文 *

Also Published As

Publication number Publication date
CN112199304A (zh) 2021-01-08

Similar Documents

Publication Publication Date Title
TWI684099B (zh) 剖析快取替代
CN112199304B (zh) 数据预取方法及装置
TWI627536B (zh) 用於具有調適分割之一共用快取之系統及方法
US7500063B2 (en) Method and apparatus for managing a cache memory in a mass-storage system
US8972661B2 (en) Dynamically adjusted threshold for population of secondary cache
US8566550B2 (en) Application and tier configuration management in dynamic page reallocation storage system
CN108710639B (zh) 一种基于Ceph的海量小文件存取优化方法
CN106547476B (zh) 用于数据存储系统的方法和装置
US9858197B2 (en) Cache management apparatus of hybrid cache-based memory system and the hybrid cache-based memory system
US10191857B1 (en) Machine learning for metadata cache management
KR101522402B1 (ko) 반도체 디스크 장치 및 그것의 데이터 관리 방법
US9501419B2 (en) Apparatus, systems, and methods for providing a memory efficient cache
EP3089039A1 (en) Cache management method and device
EP4020153A1 (en) Cache space management method and device
WO2019127487A1 (zh) 一种数据预取方法、装置和存储设备
CN115470157A (zh) 预取方法、电子设备、存储介质及程序产品
CN114138687A (zh) 一种数据预取方法、装置、电子设备及存储介质
WO2021062982A1 (zh) 管理hmb内存的方法、装置、计算机设备及存储介质
CN112379841A (zh) 数据处理方法、装置和电子设备
WO2021190501A1 (zh) 数据预取方法、装置以及存储设备
KR20190106271A (ko) 메모리 시스템 및 그것의 동작 방법
US10997077B2 (en) Increasing the lookahead amount for prefetching
CN111104435B (zh) 一种元数据组织方法、装置、设备及计算机可读存储介质
JP6112193B2 (ja) アクセス制御プログラム、ディスク装置及びアクセス制御方法
CN117813592A (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