CN115729851A - 一种数据预取方法以及相关设备 - Google Patents
一种数据预取方法以及相关设备 Download PDFInfo
- Publication number
- CN115729851A CN115729851A CN202111015508.5A CN202111015508A CN115729851A CN 115729851 A CN115729851 A CN 115729851A CN 202111015508 A CN202111015508 A CN 202111015508A CN 115729851 A CN115729851 A CN 115729851A
- Authority
- CN
- China
- Prior art keywords
- prefetching
- storage device
- access
- data
- optimal
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据预取方法以及相关设备,用于生成高效且自适应力强的预取策略组合,提高数据预取效率。本申请实施例方法包括:存储设备识别目标访问流,目标访问流指示访问存储设备内的目标数据;存储设备根据目标访问流确定最优预取策略组合,最优预取策略组合为至少两个预取策略的组合;存储设备根据最优预取策略组合进行数据预取。
Description
技术领域
本申请实施例涉及数据处理领域,尤其涉及一种数据预取方法以及相关设备。
背景技术
利用数据访问的局部性原理,数据预取技术将需要访问的数据从低速的外部存储设备预先读取到内存,从而提高数据访问速度。
在现有的数据预取技术中,常使用的一种数据预取策略是单一粒度预取策略,在该数据预取方案中,存储设备采用单一粒度进行数据预取,例如高速缓存中使用的BestOffset算法,存储设备每次预取一个数据块到缓存模块,降低了预取失效的代价。例如Read-Ahead算法中,存储设备每次预取的数据块指数增加,使得存储设备一次可以预取多个数据块,在顺序访问模式下预取效率很高。
在现有的数据预取技术中,单一粒度预取策略只采用单一粒度进行数据预取,在预取粒度小时,预取效率较低,需要频繁触发预取动作;在预取粒度大时,如果预取失效会造成大量无效的数据读取,降低了数据访问性能;无法适应访问场景的变化,数据预取的适应性差。
发明内容
本申请实施例提供了一种数据预取方法以及相关设备,用于生成高效且自适应力强的预取策略组合,提高数据预取效率。
本申请实施例第一方面提供了一种数据预取方法,该方法应用于存储设备进行数据预取,提高数据预取的效率,降低数据预取失效的代价,该方法包括:存储设备识别目标访问流,目标访问流指示访问存储设备内的目标数据;存储设备根据目标访问流确定最优预取策略组合,最优预取策略组合为至少两个预取策略的组合;存储设备根据最优预取策略组合进行数据预取。
本申请实施例提供的数据预取方法,将多种不同粒度的预取策略组合在一起,根据数据访问模式选择合适的策略组合进行预取。同时可以根据历史访问流信息即访问记录,自动从多组策略组合中选择最佳的预取策略组,用于提供多粒度的数据预取策略组合方法,可以满足各种场景的访问需求;本发明是多种粒度的组合,不同数据流或者同一数据流的不同访问阶段会采用不同粒度组合的预取策略,并且这种组合是动态自适应的。
在第一方面的一种可能的实现方式中,上述存储设备根据目标访问流确定最优预取策略组合,包括:存储设备根据多个预取策略组合计算目标访问流对应的多个预取收益;存储设备根据多个预取收益确定最优预取策略组合,最优预取策略组合为多个预取收益中的最优预取收益对应的预取策略组合。
该种可能的实现方式中,存储设备通过根据多个预取收益确定最优预取策略组合,根据历史访问流信息即访问记录,自动从多组策略组合中选择最佳的预取策略组合,用于提供多粒度的数据预取策略组合方法,可以满足各种场景的访问需求。
在第一方面的一种可能的实现方式中,在上述存储设备根据最优预取策略组合进行数据预取之后,该方法还包括:存储设备计算数据预取的第二预取收益;若第二预取收益不满足预设要求,存储设备重新确定预取策略组合。
该种可能的实现方式中,存储设备还可以在第二预取收益不满足预设要求时重新确定预取策略组合,增加了本方案的可实现性。
在第一方面的一种可能的实现方式中,上述存储设备根据最优预取策略组合进行数据预取,包括:存储设备在不同的访问阶段根据相应的预取策略进行数据预取,相应的预取策略为最优预取策略组合中包括的预取策略。
该种可能的实现方式中,具体提供了一种数据预取策略的预取方法,在不同的访问阶段根据相应的预取策略进行数据预取,多种粒度的组合,不同数据流或者同一数据流的不同访问阶段会采用不同粒度组合的预取策略,并且这种组合是动态自适应的。
在第一方面的一种可能的实现方式中,在上述存储设备识别目标访问流之前,该方法还包括:存储设备根据历史访问流的访问信息生成访问流记录,访问信息包括访问流的访问类型、起始地址和偏移量。
在第一方面的一种可能的实现方式中,上述存储设备识别目标访问流,包括:存储设备根据访问流记录识别目标访问流
在第一方面的一种可能的实现方式中,上述预取策略包括单一粒度预取策略、粒度自适应切换预取策略和混合粒度预取策略。
本申请第二方面提供一种存储设备,该存储设备具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:确定单元。
本申请第三方面提供一种存储设备,该存储设备包括至少一个处理器、存储器、输入/输出(input/output,I/O)接口以及存储在存储器中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第四方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第五方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第六方面提供了一种芯片系统,该芯片系统包括至少一个处理器,至少一个处理器用于实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存处理人工智能模型的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供的数据预取方法,将多种不同粒度的预取策略组合在一起,根据数据访问模式选择合适的策略组合进行预取。同时可以根据历史访问流信息即访问记录,自动从多组策略组合中选择最佳的预取策略组,用于提供多粒度的数据预取策略组合方法,可以满足各种场景的访问需求;本发明并非在不同粒度之间进行来回切换,而是多种粒度的组合,不同数据流或者同一数据流的不同访问阶段会采用不同粒度组合的预取策略,并且这种组合是动态自适应的。
附图说明
图1为集中式存储系统的一种网络架构图;
图2A为单一粒度预取策略的一种数据预取方法;
图2B为单一粒度预取策略的另一种数据预取方法;
图3为本申请实施例中数据预取方法的一个流程示意图;
图4为本申请实施例中数据预取方法的另一个流程示意图;
图5为本申请实施例中数据预取方法的另一个流程示意图;
图6为本申请实施例中存储设备的一个结构示意图;
图7为本申请实施例中存储设备的另一个结构示意图。
具体实施方式
本申请实施例提供了一种数据预取方法以及相关设备,用于提供多粒度的数据预取方法,满足各种场景的访问需求。
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
如图1所示,利用数据访问的局部性原理,数据预取技术将需要访问的数据从低速的外部存储设备预先读取到内存,从而提高数据访问速度。在图1所示的应用场景中,用户通过应用程序来存取数据。运行这些应用程序的计算机被称为“应用服务器”。应用服务器100可以是物理机,也可以是虚拟机。物理应用服务器包括但不限于桌面电脑、服务器、笔记本电脑以及移动设备。应用服务器通过光纤交换机110访问存储系统以存取数据。然而,交换机110只是一个可选设备,应用服务器100也可以直接通过网络与存储系统120通信。或者,光纤交换机110也可以替换成以太网交换机、InfiniBand交换机、RoCE(RDMA overConverged Ethernet)交换机等。
图1所示的存储系统120是一个集中式存储系统。集中式存储系统的特点是有一个统一的入口,所有从外部设备来的数据都要经过这个入口,这个入口就是集中式存储系统的引擎121。引擎121是集中式存储系统中最为核心的部件,许多存储系统的高级功能都在其中实现。
如图1所示,引擎121中有一个或多个控制器,图1以引擎包含两个控制器为例予以说明。控制器0与控制器1之间具有镜像通道,那么当控制器0将一份数据写入其内存124后,可以通过所述镜像通道将所述数据的副本发送给控制器1,控制器1将所述副本存储在自己本地的内存124中。由此,控制器0和控制器1互为备份,当控制器0发生故障时,控制器1可以接管控制器0的业务,当控制器1发生故障时,控制器0可以接管控制器1的业务,从而避免硬件故障导致整个存储系统120的不可用。当引擎121中部署有4个控制器时,任意两个控制器之间都具有镜像通道,因此任意两个控制器互为备份。
引擎121还包含前端接口125和后端接口126,其中前端接口125用于与应用服务器100通信,从而为应用服务器100提供存储服务。而后端接口126用于与硬盘134通信,以扩充存储系统的容量。通过后端接口126,引擎121可以连接更多的硬盘134,从而形成一个非常大的存储资源池。
在硬件上,如图1所示,控制器0至少包括处理器123、内存124。处理器123是一个中央处理器(central processing unit,CPU),用于处理来自存储系统外部(服务器或者其他存储系统)的数据访问请求,也用于处理存储系统内部生成的请求。示例性的,处理器123通过前端端口125接收应用服务器100发送的写数据请求时,会将这些写数据请求中的数据暂时保存在内存124中。当内存124中的数据总量达到一定阈值时,处理器123通过后端端口将内存124中存储的数据发送给硬盘134进行持久化存储。
内存124是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储器。内存包括至少两种存储器,例如内存既可以是随机存取存储器,也可以是只读存储器(Read Only Memory,ROM)。举例来说,随机存取存储器是动态随机存取存储器(Dynamic Random Access Memory,DRAM),或者存储级存储器(Storage Class Memory,SCM)。DRAM是一种半导体存储器,与大部分随机存取存储器(Random Access Memory,RAM)一样,属于一种易失性存储器(volatile memory)设备。SCM是一种同时结合传统储存装置与存储器特性的复合型储存技术,存储级存储器能够提供比硬盘更快速的读写速度,但存取速度上比DRAM慢,在成本上也比DRAM更为便宜。然而,DRAM和SCM在本实施例中只是示例性的说明,内存还可以包括其他随机存取存储器,例如静态随机存取存储器(Static Random Access Memory,SRAM)等。而对于只读存储器,举例来说,可以是可编程只读存储器(Programmable Read Only Memory,PROM)、可抹除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)等。另外,内存124还可以是双列直插式存储器模块或双线存储器模块(Dual In-line MemoryModule,简称DIMM),即由动态随机存取存储器(DRAM)组成的模块,还可以是固态硬盘(Solid State Disk,SSD)。实际应用中,控制器0中可配置多个内存124,以及不同类型的内存124。本实施例不对内存113的数量和类型进行限定。此外,可对内存124进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,内存124中存储的数据也不会丢失。具有保电功能的内存被称为非易失性存储器。
内存124中存储有软件程序,处理器123运行内存124中的软件程序可实现对硬盘的管理。例如将硬盘抽象化为存储资源池,然后划分为LUN提供给服务器使用等。这里的LUN其实就是在服务器上看到的硬盘。当然,一些集中式存储系统本身也是文件服务器,可以为服务器提供共享文件服务。
控制器1(以及其他图1中未示出的控制器)的硬件组件和软件结构与控制器0类似,这里不再赘述。
图1所示的是一种盘控分离的集中式存储系统。在该系统中,引擎121可以不具有硬盘槽位,硬盘134需要放置在硬盘框130中,后端接口126与硬盘框130通信。后端接口126以适配卡的形态存在于引擎121中,一个引擎121上可以同时使用两个或两个以上后端接口126来连接多个硬盘框。或者,适配卡也可以集成在主板上,此时适配卡可通过PCIE总线与处理器112通信。
需要说明的是,图1中只示出了一个引擎121,然而在实际应用中,存储系统中可包含两个或两个以上引擎121,多个引擎121之间做冗余或者负载均衡。
硬盘框130包括控制单元131和若干个硬盘134。控制单元131可具有多种形态。一种情况下,硬盘框130属于智能盘框,如图1所示,控制单元131包括CPU和内存。CPU用于执行地址转换以及读写数据等操作。内存用于临时存储将要写入硬盘134的数据,或者从硬盘134读取出来将要发送给控制器的数据。另一种情况下,控制单元131是一个可编程的电子部件,例如数据处理单元(data processing unit,DPU)。DPU具有CPU的通用性和可编程性,但更具有专用性,可以在网络数据包,存储请求或分析请求上高效运行。DPU通过较大程度的并行性(需要处理大量请求)与CPU区别开来。可选的,这里的DPU也可以替换成图形处理单元(graphics processing unit,GPU)、嵌入式神经网络处理器(neural-networkprocessing units,NPU)等处理芯片。通常情况下,控制单元131的数量可以是一个,也可以是两个或两个以上。当硬盘框130包含至少两个控制单元131时,硬盘134与控制单元131之间可具有归属关系。如果硬盘134与控制单元131之间具有归属关系,那么每个控制单元只能访问归属于它的硬盘,这往往涉及到在控制单元131之间转发读/写数据请求,导致数据访问的路径较长。另外,如果存储空间不足,在硬盘框130中增加新的硬盘134时需要重新绑定硬盘134与控制单元131之间的归属关系,操作复杂,导致存储空间的扩展性较差。因此在另一种实施方式中,控制单元131的功能可以卸载到网卡104上。换言之,在该种实施方式中,硬盘框130内部不具有控制单元131,而是由网卡104来完成数据读写、地址转换以及其他计算功能。此时,网卡104是一个智能网卡。它可以包含CPU和内存。在某些应用场景中,网卡104也可能具有持久化内存介质,如持久性内存(Persistent Memory,PM),或者非易失性随机访问存储器(Non-Volatile Random Access Memory,NVRAM),或者相变存储器(phasechange memory,PCM)等。CPU用于执行地址转换以及读写数据等操作。内存用于临时存储将要写入硬盘134的数据,或者从硬盘134读取出来将要发送给控制器的数据。也可以是一个可编程的电子部件,例如数据处理单元(data processing unit,DPU)。DPU具有CPU的通用性和可编程性,但更具有专用性,可以在网络数据包,存储请求或分析请求上高效运行。DPU通过较大程度的并行性(需要处理大量请求)与CPU区别开来。可选的,这里的DPU也可以替换成图形处理单元(graphics processing unit,GPU)、嵌入式神经网络处理器(neural-network processing units,NPU)等处理芯片。硬盘框130中的网卡104和硬盘134之间没有归属关系,网卡104可访问该硬盘框130中任意一个硬盘134,因此在存储空间不足时扩展硬盘会较为便捷。
按照引擎121与硬盘框130之间通信协议的类型,硬盘框130可能是SAS硬盘框,也可能是NVMe硬盘框,IP硬盘框以及其他类型的硬盘框。SAS硬盘框,采用SAS3.0协议,每个框支持25块SAS硬盘。引擎121通过板载SAS接口或者SAS接口模块与硬盘框130连接。NVMe硬盘框,更像一个完整的计算机系统,NVMe硬盘插在NVMe硬盘框内。NVMe硬盘框再通过RDMA端口与引擎121连接。
图1所示的存储系统为盘控分离的集中式存储系统,除此之外,本申请实施例中的存储设备还可以是盘控一体的集中式存储系统、分布式存储系统或其他类型的存储系统,具体此处不做限定。
如图2A和图2B所示,在现有的数据预取技术中,常使用的一种数据预取策略是单一粒度预取策略,在该数据预取方案中,存储设备采用单一粒度进行数据预取,请参阅图2A,例如高速缓存中使用的Best Offset算法,存储设备每次预取一个数据块到缓存模块,降低了预取失效的代价,依次访问1001号块、1002号块…1006号块,在图2A中,Best Offset算法在读取1001号块的同时预先读取下一个数据块1002号块,以此类推,后续的读取都命中。请参阅图2B,例如Read-Ahead算法中,存储设备每次预取的数据块指数增加,使得存储设备一次可以预取多个数据块,在顺序访问模式下预取效率很高;在图2B中,依次访问1001号块、1002号块…1006号块,RA算法第一次预读取1个数据块(1002号块),第二次预读取2个数据块(1003、1004号块),第三次预读取4个数据块(1004~1006号块,其中1004号块已预读,实际预读取3个数据块。
在现有的数据预取技术中,单一粒度预取策略只采用单一粒度进行数据预取,在预取粒度小时,预取效率较低,需要频繁触发预取动作;在预取粒度大时,如果预取失效会造成大量无效的数据读取,降低了数据访问性能;无法适应访问场景的变化,数据预取的适应性差。
粒度自适应切换预取策略是采用预取粒度自适应切换的方式,通过分析数据访问模型的改变选择合适的预取粒度进行数据预取。虽然这类预取策略能够根据应用负载的变化调整预取粒度,但同一时段内仍采用单一粒度进行数据预取,难以同时满足云场景下不同应用的数据访问需求。虽然能根据负载变化调整预取粒度,但本质上仍然是采用单一粒度进行数据预取,难以同时满足云场景下不同应用的数据访问需求。本发明并非在不同粒度之间进行来回切换,而是多种粒度的组合,即不同数据预取策略的组合;不同数据流或者同一数据流的不同访问阶段会采用不同粒度组合的预取策略,并且这种组合是动态自适应的。
混合粒度预取策略采用多种预取粒度来进行数据预取。不同于粒度自适应切换预取策略,混合粒度预取策略是同时采用多种粒度,根据不同数据访问流的顺序性强弱选择合适的粒度进行数据预取。混合粒度预取策略忽略了同一数据流在不同时刻所需要的预取粒度也是不同的,例如顺序流的访问截断现象,一直使用粗粒度预取很容易导致末端预取时读取大量的无效数据。
请参阅图3,本申请实施例提供了一种数据预取方法,该方法应用于存储设备进行数据预取,提高数据预取的效率,降低数据预取失效的代价,还可以提供多粒度的数据预取方法,满足各种场景的访问需求,该方法包括:存储设备识别目标访问流,该目标访问流指示访问存储设备内的目标数据;存储设备根据目标访问流确定最优预取策略组合,最优预取策略组合为至少两个预取策略的组合;存储设备根据最优预取策略组合进行数据预取。
基于上述数据预取方法,下面对本申请实施例中的数据预取方法进行描述:
请参阅图4,本申请实施例中的数据预取方法的一个流程包括:
401、存储设备生成访问流记录。
存储设备跟踪每个历史访问流并生成对应的访问流记录。具体地,存储设备可以对设备的数据访问记录进行访问信息的采集和过滤,从而生成对应的访问流记录。例如该访问流记录可以是一个访问流记录列表,当存储设备接收到其他设备发送的访问流后,就将该访问流的相关信息记录在该访问流记录列表中。当存储设备发现接收到的访问流为已保存在该访问流记录列表中的访问流,则该存储设备更新该访问流的访问信息。
本申请实施例中的访问流的访问信息可以是该访问流的起始地址和偏移量,也可以是该访问流的访问类型等信息,具体此处不做限定。
402、存储设备识别目标访问流。
存储设备在接收到目标访问流之后,存储设备识别目标访问流在访问流记录对应的访问流的相关访问信息。具体地,本申请实施例中的存储设备可以根据访问流记录中的起始地址、偏移量和访问类型识别出该目标访问流。
403、存储设备确定最优预取策略组合。
存储设备根据目标访问流确定最优预取策略组合。
具体地,该存储设备包括预取策略决策器,该预取策略决策器保存有多个数据预取策略和多条预取策略组合规则,每条预取策略组合规则用于一类地址的访问流。例如该预取策略组合规则可以是【(步长a,策略1),(步长b,策略2),(步长c,策略4)…】,在该预取策略组合规则中,不同的数据预取策略对应不同的预取粒度。该预取策略组合规则可以指示存储设备在访问流访问存储设备的不同阶段按照不同的数据预取策略进行数据预取。存储设备在识别出目标访问流后,根据目标访问流的相关访问信息计算各个预取策略组合的预取收益,然后确定预取收益最大的预取策略组合为最优预取策略组合。
本申请实施例中的预取收益包括预取效率和预取失效开销,该预取效率指的是该存储设备按照该预取策略组合进行数据预取的效率。该预取失效开销指的是存储设备预取数据失效之后的代价,例如当以数据粒度A进行数据预取时,若数据预取失败或该访问流不再访问该数据,则粒度A的数据预取失败就是预取数据失效的代价。预取数据粒度大的时候,预取数据失效的代价就大于预取数据库粒度小的时候预取数据失效的代价。
存储设备可以根据目标访问流的相关访问信息计算各个不同预取策略组合的预取收益。本申请实施例中的访问流的访问信息可以是该访问流的起始地址和偏移量,也可以是该访问流的访问类型等信息,具体此处不做限定。
请参阅图5,一种可能的实现方式中,本申请实施例中的存储设备在接收到目标访问流后,存储设备中的预取器先根据预设的预取策略进行数据预取,同时存储设备的预取策略决策器根据目标访问流的相关访问信息确定对应的最优预取策略组合,并发送给预取器,然后存储设备中的预取器根据预取策略决策器发送的最优预取策略组合进行下一阶段的数据预取,具体此处不做限定。
本申请实施例中的预取策略包括单一粒度预取策略和混合粒度预取策略,除此之外,本申请实施例中的预取策略还可以是其他预取策略,例如粒度自适应切换预取策略,具体此处不做限定。
本申请实施例中存储设备根据各个预取策略组合的预取收益确定最优预取策略组合,除此之外本申请实施例中的存储设备还可以采用统计学习的算法或启发式学习等算法确定最优预取策略组合,具体此处不做限定。
404、存储设备进行数据预取。
存储设备根据预取策略决策器确定的最优预取策略组合进行数据预取。
一种可能的实现方式中,本申请实施例中的存储设备在接收到目标访问流后,存储设备中的预取器先根据预设的预取策略进行数据预取,同时存储设备的预取策略决策器根据目标访问流的相关访问信息确定对应的最优预取策略组合,并发送给预取器,然后存储设备中的预取器根据预取策略决策器发送的最优预取策略组合进行下一阶段的数据预取,具体此处不做限定。
405、存储设备重新确定预取策略组合。
存储设备在根据最优预取策略组合进行下一阶段的数据预取后,对实际的数据预取效果进行检测,若实际的数据预取效果不满足要求,则存储设备重新确定预取策略组合。
具体地,存储设备在根据预取策略决策器发送的最优预取策略组合进行数据预取之后,存储设备可以计算数据预取的第二预取收益即实际数据预取的效果,例如可以计算数据预取的预取效率和预取失效开销等,若这些实际数据预取的第二预取收益不满足预设要求,则存储设备重新确定预取策略组合。例如若访问流的访问模式发生变化,则实际预取效果就会变差,存储设备就需要重新确定预取策略组合。
本申请实施例提供的数据预取方法,将多种不同粒度的预取策略组合在一起,根据数据访问模式选择合适的策略组合进行预取。同时可以根据历史访问流信息即访问记录,自动从多组策略组合中选择最佳的预取策略组,用于提供多粒度的数据预取策略组合方法,可以满足各种场景的访问需求;本发明并非在不同粒度之间进行来回切换,而是多种粒度的组合,不同数据流或者同一数据流的不同访问阶段会采用不同粒度组合的预取策略,并且这种组合是动态自适应的。
下面对本申请实施例中的存储设备进行描述,请参阅图6,本申请实施例提供的一种存储设备600,该存储设备可以为上述图3中存储设备,该存储设备600包括:
识别模块601,用于识别目标访问流,目标访问流指示访问存储设备内的目标数据;具体地,该识别模块601用于:根据访问流记录识别目标访问流。具体实现方式,请参考图4所示实施例中步骤402:存储设备识别目标访问流,这里不再赘述。
第一确定模块602,用于根据目标访问流确定最优预取策略组合,最优预取策略组合为至少两个预取策略的组合;具体实现方式,请参考图4所示实施例中步骤403:存储设备确定最优预取策略组合,这里不再赘述。
一种可能的实现方式中,上述第一确定模块602包括:
计算单元603,用于根据多个预取策略计算目标访问流对应的多个预取收益;具体实现方式,请参考图4所示实施例中步骤403:存储设备确定最优预取策略组合,这里不再赘述。
确定单元604,用于根据多个预取收益确定最优预取策略组合,最优预取策略为多个预取收益中的最优预取收益对应的预取策略组合。具体实现方式,请参考图4所示实施例中步骤403:存储设备确定最优预取策略组合,这里不再赘述。
预取模块605,用于根据最优预取策略组合进行数据预取。该预取模块603具体用于:在不同的访问阶段根据相应的预取策略进行数据预取,相应的预取策略为最优预取策略组合中包括的预取策略。具体实现方式,请参考图4所示实施例中步骤404:存储设备进行数据预取,这里不再赘述。
一种可能的实现方式中,该存储设备600还包括:
计算模块606,用于计算数据预取的第二预取收益;具体实现方式,请参考图4所示实施例中步骤405:存储设备重新确定预取策略组合,这里不再赘述。
第二确定模块607,用于若第二预取收益不满足预设要求,重新确定预取策略组合。具体实现方式,请参考图4所示实施例中步骤405:存储设备重新确定预取策略组合,这里不再赘述。
一种可能的实现方式中,该存储设备600还包括:
生成模块608,用于根据历史访问流的访问信息生成访问流记录,访问信息包括访问流的访问类型、起始地址和偏移量。具体实现方式,请参考图4所示实施例中步骤401:存储设备生成访问流记录,这里不再赘述。
本实施例中,存储设备可以执行前述图4中任一项所示实施例中存储设备所执行的操作,具体此处不再赘述。
图7是本申请实施例提供的一种存储设备结构示意图,该存储设备700可以包括一个或一个以上中央处理器(central processing units,CPU)701和存储器705,该存储器705中存储有一个或一个以上的应用程序或数据。
其中,存储器705可以是易失性存储或持久存储。存储在存储器705的程序可以包括一个或一个以上模块,每个模块可以包括对存储设备中的一系列指令操作。更进一步地,中央处理器701可以设置为与存储器705通信,在存储设备700上执行存储器705中的一系列指令操作。
其中,中央处理器701用于执行存储器705中的计算机程序,以使得存储设备700用于执行:存储设备识别目标访问流,目标访问流指示访问存储设备内的目标数据;存储设备根据目标访问流确定最优预取策略组合,最优预取策略组合为至少两个预取策略的组合;存储设备根据最优预取策略组合进行数据预取。具体实现方式,请参考图4所示实施例中步骤401-405,此处不再赘述。
存储设备700还可以包括一个或一个以上电源702,一个或一个以上有线或无线网络接口703,一个或一个以上输入输出接口704,和/或,一个或一个以上操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
该存储设备700可以执行前述图3所示实施例中存储设备所执行的操作,具体此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (16)
1.一种数据预取方法,其特征在于,所述方法包括:
存储设备识别目标访问流,所述目标访问流指示访问所述存储设备内的目标数据;
所述存储设备根据所述目标访问流确定最优预取策略组合,所述最优预取策略组合为至少两个预取策略的组合;
所述存储设备根据所述最优预取策略组合进行数据预取。
2.根据权利要求1所述的方法,其特征在于,所述存储设备根据所述目标访问流确定最优预取策略组合,包括:
所述存储设备根据多个预取策略计算所述目标访问流对应的多个预取收益;
所述存储设备根据所述多个预取收益确定最优预取策略组合,所述最优预取策略为所述多个预取收益中的最优预取收益对应的预取策略组合。
3.根据权利要求2所述的方法,其特征在于,在所述存储设备根据最优预取策略组合进行数据预取之后,所述方法还包括:
所述存储设备计算数据预取的第二预取收益;
若所述第二预取收益不满足预设要求,所述存储设备重新确定预取策略组合。
4.根据权利要求3所述的方法,其特征在于,所述存储设备根据所述最优预取策略组合进行数据预取,包括:
所述存储设备在不同的访问阶段根据相应的预取策略进行数据预取,所述相应的预取策略为所述最优预取策略组合中包括的预取策略。
5.根据权利要求4所述的方法,其特征在于,在所述存储设备识别目标访问流之前,所述方法还包括:
所述存储设备根据历史访问流的访问信息生成访问流记录,所述访问信息包括所述访问流的访问类型、起始地址和偏移量。
6.根据权利要求5所述的方法,其特征在于,所述存储设备识别目标访问流,包括:
所述存储设备根据所述访问流记录识别所述目标访问流。
7.根据权利要求6所述的方法,其特征在于,所述预取策略包括单一粒度预取策略、粒度自适应切换预取策略和混合粒度预取策略。
8.一种存储设备,其特征在于,所述存储设备包括:
识别模块,用于识别目标访问流,所述目标访问流指示访问所述存储设备内的目标数据;
第一确定模块,用于根据所述目标访问流确定最优预取策略组合,所述最优预取策略组合为至少两个预取策略的组合;
预取模块,用于根据所述最优预取策略组合进行数据预取。
9.根据权利要求8所述的存储设备,其特征在于,所述第一确定模块包括:
计算单元,用于根据多个预取策略计算所述目标访问流对应的多个预取收益;
确定单元,用于根据所述多个预取收益确定最优预取策略组合,所述最优预取策略为所述多个预取收益中的最优预取收益对应的预取策略组合。
10.根据权利要求9所述的存储设备,其特征在于,所述存储设备还包括:
计算模块,用于计算数据预取的第二预取收益;
第二确定模块,用于若所述第二预取收益不满足预设要求,则重新确定预取策略组合。
11.根据权利要求10所述的存储设备,其特征在于,所述预取模块具体用于:
在不同的访问阶段根据相应的预取策略进行数据预取,所述相应的预取策略为所述最优预取策略组合中包括的预取策略。
12.根据权利要求11所述的存储设备,其特征在于,所述存储设备还包括:
生成模块,用于根据历史访问流的访问信息生成访问流记录,所述访问信息包括所述访问流的访问类型、起始地址和偏移量。
13.根据权利要求12所述的存储设备,其特征在于,所述识别模块具体用于:
根据所述访问流记录识别所述目标访问流。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的方法。
15.一种存储设备,其特征在于,包括处理器和存储有计算机程序的计算机可读存储介质;
所述处理器与所述计算机可读存储介质耦合,所述计算机程序被所述处理器执行时实现如权利要求1-7任一项所述的方法。
16.一种芯片系统,其特征在于,包括处理器,所述处理器被调用用于执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111015508.5A CN115729851A (zh) | 2021-08-31 | 2021-08-31 | 一种数据预取方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111015508.5A CN115729851A (zh) | 2021-08-31 | 2021-08-31 | 一种数据预取方法以及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115729851A true CN115729851A (zh) | 2023-03-03 |
Family
ID=85292164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111015508.5A Pending CN115729851A (zh) | 2021-08-31 | 2021-08-31 | 一种数据预取方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115729851A (zh) |
-
2021
- 2021-08-31 CN CN202111015508.5A patent/CN115729851A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11029853B2 (en) | Dynamic segment allocation for write requests by a storage system | |
US9798472B1 (en) | Extent level cache destaging | |
CN110008149B (zh) | 融合式存储器件及其操作方法 | |
US8572321B2 (en) | Apparatus and method for segmented cache utilization | |
US11188256B2 (en) | Enhanced read-ahead capability for storage devices | |
EP3982269A1 (en) | Systems, methods, and devices for accelerators with virtualization and tiered memory | |
KR20170002866A (ko) | 분산 환경에서 사용자 애플리케이션의 액세스 특성에 따른 적응형 캐시 관리 방법 | |
WO2017157145A1 (zh) | 一种数据预取方法以及装置 | |
CN115794669A (zh) | 一种扩展内存的方法、装置及相关设备 | |
CN113590508A (zh) | 动态可重构的内存地址映射方法及装置 | |
US7725654B2 (en) | Affecting a caching algorithm used by a cache of storage system | |
US20240201880A1 (en) | Resource Allocation Method and Apparatus | |
CN115470157A (zh) | 预取方法、电子设备、存储介质及程序产品 | |
CN115079936A (zh) | 一种数据写入方法及装置 | |
JP3935873B2 (ja) | プリフェッチ・バッファを用いたメモリ電力管理 | |
CN115729851A (zh) | 一种数据预取方法以及相关设备 | |
CN114860625A (zh) | 数据访问方法、装置、设备及可读存储介质 | |
US11449428B2 (en) | Enhanced read-ahead capability for storage devices | |
CN116340203A (zh) | 数据预读取方法、装置、处理器及预取器 | |
CN114661239A (zh) | 一种基于nvme硬盘的数据交互系统及方法 | |
CN116560560A (zh) | 存储数据的方法和相关装置 | |
CN116670656A (zh) | 分层持久存储器分配 | |
JP2022547684A (ja) | I/o性能を最適化するためのメモリ・コピーおよびメモリ・マッピング間の動的な切り替え | |
US10346193B1 (en) | Efficient placement of virtual machines based on cache hit ratio | |
US9244832B1 (en) | Cache learning model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |