CN114968073A - 数据预取的方法、设备及系统 - Google Patents
数据预取的方法、设备及系统 Download PDFInfo
- Publication number
- CN114968073A CN114968073A CN202110221620.8A CN202110221620A CN114968073A CN 114968073 A CN114968073 A CN 114968073A CN 202110221620 A CN202110221620 A CN 202110221620A CN 114968073 A CN114968073 A CN 114968073A
- Authority
- CN
- China
- Prior art keywords
- partitions
- data
- partition
- memory
- feature
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000005192 partition Methods 0.000 claims abstract description 613
- 230000015654 memory Effects 0.000 claims abstract description 182
- 230000000694 effects Effects 0.000 abstract description 10
- 238000004422 calculation algorithm Methods 0.000 description 20
- 239000002699 waste material Substances 0.000 description 17
- 239000013598 vector Substances 0.000 description 14
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 229910052731 fluorine Inorganic materials 0.000 description 2
- 125000001153 fluoro group Chemical group F* 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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
- 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
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供了一种数据预取的方法、设备及系统,该方法应用于包括多种数据流的预取系统,该预取系统包括第一存储器和第二存储器,该方法包括以下步骤:获取第一存储器的多个分区的统计数据,统计数据用于指示多个分区中每个分区所包括的数据流的历史情况,根据多个分区的统计数据确定预取策略,预取策略用于指示预取数据的位置和预取数据的大小,根据预取策略执行预取操作。本申请提供的数据预取方法可根据每个分区内数据流的特征,针对性确定每个分区的预取策略,可以避免多种数据流之间互相干扰导致预取效果差的问题,提高缓存命中率。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种数据预取的方法、设备及系统。
背景技术
随着计算机硬件的不断发展,中央处理器(central processing unit,CPU)主频已由MHz发展到了GHz,但是常用硬盘的存取速率不到100M/S。CPU和不同存储介质之间的访问速度差距,导致处理器需要花费大量的时间等待存储器数据的返回,使得存储系统的访问效率受限。
为了解决上述问题,业内通常利用高速缓存来加速存储性能,而高速缓存的控制器上通常设置有预取器(prefetching),预取器可以从低速存储介质的数据流中,预测应用即将访问的预取数据,然后从数据流中获取该预取数据并将其提前存储至高速缓存中,从而提高存储系统的访问效率。但是,由于低速存储介质中的数据流的类型繁多,包括顺序流和随机流,其中,顺序流又包括长顺序流和短顺序流等等,但是当前的预取算法通常只能针对顺序流进行预取,并且各种类型的数据流之间还会互相干扰,导致预取器的预取能力受限。
发明内容
本申请提供了一种数据预取的方法、设备及系统,用于解决预取器的预取能力受限的问题。
第一方面,提供了一种数据预取方法,该方法应用于包括多种数据流的预取系统,预取系统包括第一存储器和第二存储器,该方法包括以下步骤:获取第一存储器的多个分区的统计数据,统计数据用于指示多个分区中每个分区所包括的数据流的历史情况,根据多个分区的统计数据确定预取策略,预取策略用于指示预取数据的位置和预取数据的大小,根据预取策略执行预取操作,将预取数据从第一存储器中预取至第二存储器。
该方法通过将第一存储器划分为多个分区,然后根据每个分区内数据流的特征,针对性地确定每个分区的预取策略,可以避免多种数据流之间互相干扰导致预取效果差的问题,提高缓存命中率。
在一种可能的实现方式中,统计数据可包括数据流特征,其中,数据流特征包括数据流数目、数据流长度、数据流的类型、数据流IO大小、数据流IO间隔中的一种或者多种。
可选地,统计数据还可包括每个分区所包括的数据流的数据流信息,且上述数据流特征是根据数据流信息获得的。其中,数据流包括上层应用下发的多个IO,通常地,一个数据流是同一个应用或一类应用生成的用于传输数据或通知的IO的集合。数据流信息包括但不限于每个IO的IO偏移、IO长度和IO时间中的一种或者多种,IO偏移可以是应用所访问的数据所在的地址信息,比如访问地址或者在数据流中的偏移值,IO长度可以是该数据的数据长度,IO时间指的是访问时间,数据流特征可包括但不限于数据流中IO的数目、数据流的类型、数据流的长度、数据流中每个IO的大小、数据流IO间隔等等。其中,数据流特征可以是根据数据流信息确定的。
可选地,上述统计数据可以以特征向量(x1,x2,...,xm)的形式进行表示,其中,该特征向量中的每个元素可代表一个数据流特征,具体可以是该数据流特征的数值,也可以是该数据流特征对应的等级、档位、代码等等,本申请不作具体限定。比如x1可以表示数据流的数目,若数据流数目为1000,那么x1=100。比如x1表示数据流的数目所处的区间,且数据流的数目小于100时所处的区间为1,数据流的数目在100~200之间时对应的区间为2,以此类推,那么对于数据流数目为150的数据流来说,其特征向量中的x1=2。应理解,上述举例用于说明,本申请不作具体限定。
举例来说,假设统计数据用五维向量(x1,x2,x3,x4,x5)表示,其中,x1用于表示数据流的数目,如数据流数目小于等于100,对应维度设为1,超过100小于等于200维度设为2,以此类推。x2用于表示数据流的类型数量,数量不高于5对应值为1,数量在5-10之间对应值为2,以此类推。x3用于表示数据流长度,小于1MB对应维度设为1,超过1MB小于2MB对应维度设为2,一次类推。x4用于数据流IO大小,小于64KB对应维度设为1,大于64KB小于128KB对应维度设为2,以此类推。x5用于表示数据流IO间隔,小于1ms对应维度设为1,大于1ms小于2ms对应维度设为2,以此类推。假设统计分区1的数据流数目为150,数据流的类型有3种,数据流长度为1.5MB,数据流IO大小为120KB,数据流IO间隔为0.5ms,那么上述统计分区1的统计数据为(2,1,2,2,1)。应理解,上述举例用于说明,本申请不作具体限定。
多个分区的统计数据包括的内容越丰富,可以提高分区调整的效率和预取策略的准确度,同时,为了避免大量的统计数据将会占用系统资源,降低处理效率,统计数据用特征向量进行表示,便于后续数据流的类型的统计、数据流的特征相似度的计算等等,从而提高处理效率。
在另一种可能的实现方式中,根据多个分区的统计数据确定预取策略时,可以先根据多个分区的统计数据,对多个分区进行调整,获得多个特征分区,其中,多个特征分区中的每个特征分区包括至少一种类型的数据流,再根据多个特征分区的统计数据,确定多个特征分区中每个特征分区的预取策略,其中,每个特征分区对应一个预取策略。
可选地,可以先根据预设的划分规则对第一存储器的存储空间进行划分,获得上述多个分区,然后再根据每个分区所包括的数据流的类型,对多个分区进行调整,获得多个特征分区。预设的划分规可包括但不限于按磁盘进行分区、按存储空间大小进行分区等等,举例来说,如果第一存储器110包括多块磁盘,那么可以一块盘分为一个分区,如果第一存储器110包括1块磁盘,那么可以将该磁盘每64MB的连续存储空间划分为一个分区,或者每138GB的连续存储空间划分为一个分区等等,具体可根据实际情况预设划分规则,本申请不作具体限定。
将包括混合数据流的第一存储器划分为多个分区,并根据每个分区内数据流的特征,对多个分区进行调整,可以使得每个特征分区内的数据流特征趋于单一,获得多个特征分区,从而将顺序流从混合数据流中分离出来,此时再对多个特征分区进行预取,可以根据每个特征分区内单一的数据流特征,针对性地确定预取策略,避免多种数据流之间互相干扰导致预取效果差的问题,提高缓存命中率。
在另一种可能的实现方式中,根据多个分区的统计数据,对多个分区进行调整,获得多个特征分区时,可根据多个分区的统计数据,将多个分区中数据流的类型数量不低于第一阈值的分区进行拆分,获得多个特征分区。
可选地,数据流的类型数量高于第一阈值的分区在进行拆分时,可以被拆分为2个分区,也可以被拆分为2个以上的分区,拆分规则可以是随机拆分,也可以是平均拆分,还可以是根据不同类型的数据流的分布比例拆分,本申请不对拆分规则进行限定。举例来说,若分区1的数据流的类型数量为5,分区2的数据流的类型数量为2,第一阈值为3,那么可以将分区1进行拆分获得特征分区11和特征分区12,分区2不进行拆分,从而将分区1和分区2拆分为特征分区11、特征分区12和特征分区2。应理解,上述举例用于说明,本申请不对此进行限定。
在多次将多个分区中数据流的类型数量不低于第一阈值的分区进行拆分后,可以使得特征分区内的数据流的类型数量趋于单一,从而将顺序流从混合数据流中分离出来,避免多种数据流之间互相干扰导致预取效果差的问题,提高缓存命中率。
在另一种可能的实现方式中,根据多个分区的统计数据,对多个分区进行调整,获得多个特征分区时,可根据多个分区的统计数据,确定多个分区的数据流特征之间的相似度,然后将相似度不低于第二阈值的分区进行合并,获得多个特征分区。
可选地,上述两个分区是逻辑性连续的两个相邻分区,也就是说,逻辑地址的编址方式连续的两个分区可以合并,比如相邻分区的逻辑区块地址(logical block address,LBA)可以是连续的,即LBA=0的逻辑区块为分区1,LBA=2的逻辑区块为分区2,那么分区1和分区2即为逻辑性连续的两个相邻分区,而分区1对应的物理地址和分区2对应的物理地址可以是连续的,也可以是不连续的,本申请不作具体限定。
可选地,统计数据的相似度可以根据特征向量之间的距离确定,比如欧氏距离(eucledian distance)、曼哈顿距离(manhattan distance)、余弦相似度(cosinesimilarity)、明式距离(minkowski distance)等等,本申请不作具体限定。
将数据流特征之间的相似度不低于第二阈值的分区进行合并,可以避免同一类型的数据流被分散在多个分区,使得同一类型的数据流可以统一确定预取策略,降低计算资源消耗,提高处理效率。
在另一种可能的实现方式中,可将多个分区中数据流的类型数量超过第一阈值的分区进行拆分,同时对多个分区中数据流的特征相似度低于第二阈值的分区进行合并,从而获得多个特征分区。比如多个分区包括分区1、分区2和分区3,分区1的数据流的类型数量超过第一阈值,分区2和分区3的数据流的类型数量低于第一阈值,分区1和分区2的统计数据相似度低于第二阈值,分区1和分区3的数据相似度低于第二阈值,分区2和分区3的统计数据相似度高于第二阈值,那么可以将分区1拆分为特征分区11和特征分区12,分区2和分区3合并为特征分区23,应理解,上述拆分可以是平均拆分,也可以是随机拆分,本申请不作具体限定,并且,上述举例用于说明,本申请不作具体限定。
可选地,在获取第一存储器的多个分区的统计数据之前,可先周期性的对多个分区进行调整,使得多个分区内的数据流类型趋于单一后,再获取第一存储器的多个特征分区的统计数据,若此时多个特征分区内的数据流发生了变化,可以再次调整多个特征分区后,确定每个特征分区的预取策略,执行预取操作。
由于数据流中包含的IO是应用下发的IO,应用下发IO的时间并不是固定的,因此可能会出现经过多个调整周期后,多个特征分区内的数据流特征已趋于单一,但是开始数据预取时,个别特征分区内的数据流发生了变化,导致个别特征分区内的数据流特征不再趋于单一,因此在确定每个特征分区对应的预取策略之前,可再对多个特征分区进行调整,避免由于数据流发生变化导致特征分区内包括多种数据流,从而提高预取准确率,提高缓存命中率。
在另一种可能的实现方式中,根据预取策略执行预取操作时,可先根据多个特征分区中每个特征分区执行预取操作的历史数据预测每个特征分区的预取收益,选择预取收益高于第三阈值的特征分区集合,特征分区集合包括至少一个特征分区,按照预取策略分别执行特征分区集合中每个特征分区的预取操作。
可选地,该预取策略可包括预取数据在数据流中的预取偏移值以及预取长度,还可包括其他用以供处理器从数据流中读取预取数据的相关信息,比如预取数据的读取时间,预取数据的地址等等,本申请不对此进行限定,根据预取策略,处理器可以从第一存储器中读取预取数据,并将其存储至第二存储器中。预取策略可以是根据每个特征分区的统计数据,使用预取算法获得的,预取算法可以是Tap预取算法(Table-based Prefetchingfor Storage Caches)、AMP预取算法(Adaptive Multi-stream Prefetching in a SharedCache)等等,本申请不对采用何种预取算法进行限定。
可选地,每个特征分区的预取收益可包括预取命中率、预取浪费率和预取IO数量中的一种或者多种,其中,预取命中率x包括预取数据被应用从第二存储器中读取的概率,预取浪费率y包括预取数据未被应用从第二存储器中读取的概率,预取IO数量z即为预取数量的IO数目。具体实现中,预取收益可根据每个特征分区的统计数据确定,根据统计数据可计算每个特征分区的历史预取命中率、历史IO数据量、历史预取浪费率等等,基于每个特征分区的历史预取命中率、历史IO数据量、历史预取浪费率可确定预取收益,比如预取收益=αx+βy+γz,其中,α是预取命中率x的权重,β是预取浪费率y的权重,γ是预取IO数量z的权重,α、β和γ可以是经验值,该经验值还可以根据预取收益的准确度进行调整。上述公式用于举例,本申请不作具体限定。
具体实现中,上述预取IO数量可以根据统计数据获得,上述预取命中率x和预取浪费率y可以根据每个特征分区的历史数据,结合统计数据确定。其中,每个特征分区的历史数据包括每个特征分区的历史统计数据,历史统计数据可包括当前周期之前的所有周期内的历史数据流信息和历史数据流特征,历史数据流信息可包括但不限于IO偏移、IO长度和IO时间,历史数据流特征可包括但不限于IO数量、数据流长度、IO间隔等等,并且,历史统计数据可以是每个特征分区上一周期的历史统计数据,也可以是上两个周期的历史统计数据,还可以是本周期之前所有周期的历史统计数据,本申请不作具体限定。
举例来说,当前周期采集的统计信息显示分区1的数据流包括应用下发的1个IO,且该IO的IO偏移为100,长度为50,若历史统计数据显示上一周期该应用下发的历史IO,其实际访问的数据偏移值为0,长度为100,即读取了数据流中偏移值从0~100的一段数据,根据预取算法(比如AMP预取算法)确定预取策略为:预取偏移值为100,预取长度为100,若使用该预取测量,将会读取偏移值从100~200的一段数据,而当前周期采集的统计信息显示,实际需求为偏移值从100~150的一段数据,那么即可预测得到预取命中率为50%,预取浪费率为50%,预取IO数量为1,根据预取收益=αx+βy+γz可以获得预取收益,根据预取收益与第三阈值的大小,确定特征分区集合。应理解,上述举例用于说明,本申请不作具体限定。
通过在执行预取操作之前,确定每个特征分区的预取收益,对预取收益较低的分区取消预取操作,可以进一步提高预取的命中率,提高存储系统的访问效率。
在另一种可能的实现方式中,第一存储器的读写速度低于第二存储器的读写速度;在第一存储器为内存的情况下,第二存储器为缓存;或者,在第一存储器为磁盘时的情况下,第二存储器为内存。
在第一存储器为内存,第二存储器为缓存时,本申请提供的方法可以将内存中的数据提前预取至缓存中,上层应用可从缓存中快速访问该数据,提高内存的访问效率;在第一存储器为磁盘,第二存储器为内存的情况下,本申请提供的方法可以将磁盘中的数据提前预取至内存中,上层应用可从内存中快速访问该数据,提高磁盘的访问效率。
第二方面,提供了一种预取系统,该预取系统包括处理器、第一存储器和第二存储器,其中,处理器,用于获取第一存储器的多个分区的统计数据,统计数据用于指示多个分区中每个分区所包括的数据流的历史情况;处理器,用于根据多个分区的统计数据确定预取策略,预取策略用于指示预取数据在第一存储器中的位置和预取数据的大小;以及,根据预取策略执行预取操作,将预取数据存储至第二存储器。
该系统通过将第一存储器划分为多个分区,使得CPU可根据每个分区内数据流的特征,针对性地确定每个分区的预取策略,将预取数据从第一存储器中预取至第二存储器,该系统可以避免多种数据流之间互相干扰导致预取效果差的问题,提高缓存命中率。
在一种可能的实现方式中,多个分区的统计数据包括多个分区中每个分区所包括的数据流的类型,处理器用于根据第一存储器的多个分区的统计数据,对多个分区进行调整,获得多个特征分区,其中,多个特征分区中的每个特征分区包括至少一种类型的数据流;处理器用于根据多个特征分区的统计数据,确定多个特征分区中每个特征分区的预取策略,其中,一个特征分区对应一个预取策略。
在另一种可能的实现方式中,处理器用于根据多个分区的统计数据,将多个分区中数据流的类型数量不低于第一阈值的分区进行拆分,获得多个特征分区。
在另一种可能的实现方式中,统计数据包括数据流特征,其中,数据流特征包括数据流数目、数据流长度、数据流的类型、数据流IO大小、数据流IO间隔中的一种或者多种。
在另一种可能的实现方式中,处理器用于根据第一存储器的多个分区的统计数据,确定多个分区的数据流特征之间的相似度;处理器用于将相似度不低于第二阈值的分区进行合并,获得多个特征分区。
在另一种可能的实现方式中,处理器用于根据多个特征分区中每个特征分区执行预取操作的历史数据预测每个特征分区的预取收益;处理器用于选择预取收益高于第三阈值的特征分区集合,特征分区集合包括至少一个特征分区;处理器用于按照预取策略分别执行特征分区集合中每个特征分区的预取操作,将预取数据存储至第二存储器。
在另一种可能的实现方式中,第一存储器的读写速度低于第二存储器的读写速度;在第一存储器为内存的情况下,第二存储器为缓存;或者,在第一存储器为磁盘时的情况下,第二存储器为内存。
第三方面,提供了一种处理器,该处理器应用于包括多种数据流的预取系统中,该预取系统包括处理器、第一存储器和第二存储器,其中,处理器包括用于执行第一方面或第一方面任一种可能实现方式中的数据预取方法的各个模块。
第四方面,提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第六方面,提供了一种计算设备,该计算设备包括处理器,该处理器用于执行上述各方面描述的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1是本申请提供的一种预取系统的结构示意图;
图2是本申请提供的一种预取系统在分布式场景中的结构示意图;
图3是本申请提供的一种预取方法的步骤流程示意图;
图4是本申请提供的一种应用场景下的多个分区调整为多个特征分区的流程示意图;
图5是本申请提供的一种应用场景下执行预取操作的步骤流程示意图;
图6是本申请提供的一种处理器的结构示意图;
图7是本申请提供的一种计算设备的结构示意图。
具体实施方式
为了便于理解本发明的技术方案,首先,对本发明涉及的“预取”的应用场景进行解释说明。
随着计算机硬件的不断发展,中央处理器(central processing unit,CPU)主频已由MHz发展到了GHz,但是常用硬盘的存取速率不到100M/S。并且根据摩尔定律,处理器的性能每隔两年可以翻一倍,而磁盘这类机械电子设备,存取速率每年仅增加约8%,导致CPU和不同存储介质之间的访问速度差距越来越大,处理器需要花费大量的时间等待存储器数据的返回,存储器性能严重限制了CPU性能的发挥。
为了解决上述问题,业内通常利用高速缓存来加速存储性能。其中,高速缓存的访问速度高但是容量小,因此高速缓存的控制器上通常设置有预取器(prefetching),预取器可以在上层应用访问预取数据之前,提前将该预取数据从大容量的低速存储介质中读取至高速缓存中,使得上层应用可以从高速缓存中快速读取该预取数据。应理解,一个优秀的预取器能够准确预测出应用即将访问的预取数据,有效提高缓存命中率,极大提升存储器的访问速度。
由于上层应用下发的应用输入/输出(input/output,IO)通常具备不同的IO特征,因此低速存储介质中的数据流为混合数据流,其中,该混合数据流包括多个上层应用下发的应用IO操作,根据应用IO的不同IO特征,混合数据流包括多种类型的数据流,比如顺序流、随机流等等,顺序流还可进一步包括长顺序流、短顺序流等等。具体地,顺序流可包括多个同一时间顺序请求的数据请求,长顺序流的数据量远大于短顺序流,示例性的,顺序流可以包括数据库执行大量的查询IO、流媒体服务IO等等,以数据库中的查询IO为例,长顺序流可以包括对整个表进行扫描查询的多个IO,短顺序流可包括用户指定查询的多个IO,比如对半个表或者筛选出的部分符合条件的表项进行查询。随机流可以包括多个上层应用随机下发的应用IO,比如万维网(world wide web,Web)服务请求,邮箱(mail)服务请求等。而在上述预取应用场景中,当前的预取算法通常只能针对混合数据流中的顺序流实现预取操作,而各种类型的数据流之间互相干扰,导致预取器的预取能力受限。
为了解决上述预取器的预取能力受限的问题,本申请提供了一种预取系统,如图1所示,图1是本申请提供的一种预取系统100,该预取系统100可以将包括混合数据流的第一存储器划分为多个分区,并根据每个分区内数据流的特征,对多个分区进行调整,使得每个分区内的数据流特征趋于单一,获得多个特征分区,从而将顺序流从混合数据流中分离出来,此时再对多个特征分区进行预取,可以避免多种数据流之间互相干扰导致预取效果差的问题,进而提高缓存命中率。
预取系统100可以部署于计算设备内部,计算设备具体可以是物理服务器,比如X86服务器、ARM服务器等等;计算设备也可以是基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,NFV)技术实现的虚拟机(virtual machine,VM),虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,比如云计算中的虚拟设备;计算设备还可以是用于存储数据的存储类设备,比如存储阵列、全闪存高端存储等等,本申请不作具体限定。
预取系统100还可以部署在分布式存储系统中,比如Fusion storage、Hadoop分布式文件系统(hadoop distributed file dystem,HDFS)等,具体可以是将预取系统100部署在分布式存储系统中的某个存储节点中,也可以是数据区域系统100的部分单元部署在存储节点1,部分单元模块部署在存储节点2,本申请不作具体限定。
其中,预取系统100存在多种划分方式,示例性地,如图1所示,该预取系统100可包括第一存储器110、第二存储器120以及处理器130。其中,第一存储器110、第二存储器120以及处理器130之间可以通过总线相互连接,比如快捷外围部件互连标准(peripheralcomponent interconnect express,PCIe)总线或扩展工业标准结构(extended industrystandard architecture,EISA)总线等,也可以通过无线传输等其他手段实现通信,比如以太网(Ethernet),本申请不作具体限定。应理解,图1仅为一种示例性的划分方式,各个模块单元之间可以合并或者拆分为更多或更少的模块单元,本申请不作具体限定,且图1中所示的系统和模块之间的位置关系也不构成任何限制。
第一存储器110和第二存储器120均为存储器。其中,第一存储器110中的数据可被提前预取至第二存储器120,以使处理器130从第二存储器120中读取该数据。其中,该数据指的是通过预取算法确定的应用即将访问的数据,该数据可以是一个数据,也可以是一组数据构成的数据集合。可选地,第一存储器110的访问速率可以低于第二存储器120,这样,将第一存储器110中的预取数据预取至第二存储器120,应用可从访问速率更高的第二存储器120中读取该预取数据,从而提高第一存储器110的访问速率。
应理解,在不同的应用场景下,第一存储器110和第二存储器120的存储器类型不同。示例性地,下面对不同应用场景下第一存储器110和第二存储器120的存储器类型进行举例说明。
在一应用场景中,当图1所示的预取系统100为一台计算设备时,第一存储器110可以是外存,第二存储器120可以是该计算设备中的内存(main memory),其中,外存指的是除内存和处理器的缓存外的存储器。在该应用场景下,将应用即将访问的预取数据X从第一存储器110中提前预取至第二存储器120中,应用可以从第二存储器120中读取该预取数据X,由于内存的访问速率远高于外存,因此使用本申请提供的预取系统可以提高CPU的访问速率。具体实现中,第一存储器可以是磁盘(disk)、光盘(compact disc,CD)、U盘(universalserial bus,USB)、存储卡(memory card)等等中任意一种,其中,上述磁盘包括但不限于机械硬盘(hard disk drive,HDD)、固态硬盘(solid-state drive,SSD)、混合硬盘(solidstate hybrid drive,SSHD)、独立冗余磁盘阵列(redundant arrays of independentdisks,RAID)等等,第一存储器110还可以是上述各种存储介质的组合,本申请不作具体限定。第二存储器120可以是只读存储器(read-only memory,ROM)、随机存储器(randomaccess memory,RAM)、动态随机存储器(dynamic random-access memory,DRAM)、双倍速率同步动态随机存储器(double data rate SDRAM,DDR)等等中任意一种,第二存储器120还可以是上述各种存储介质的组合,本申请不作具体限定。
在另一应用场景下,当图1所示的预取系统100为一台计算设备时,第一存储器110可以是内存,第二存储器是该计算设备的缓存(cache)。在该应用场景下,将应用即将访问的数据X从第一存储器110提前预取至第二存储器120中,应用可以从第二存储器120中读取该数据X,由于缓存的访问速度远高于内存,因此使用本申请提供的预取系统可以提高CPU的访问速率。具体实现中,第一存储器可以是ROM、RAM、DRAM、DDR等等中任意一种,第二存储器120可以是静态随机存取存储器(static random-access memory,SRAM)、异步SRAM(asynchronous SRAM,Async SRAM)、多线程SRAM(synchronous SRAM,Sync SRAM),同歩SRAM(pipelined brst SRAM,PB SRAM)等等中任意一种,本申请不作具体限定。
在再一应用场景下,预取系统100包括多个计算设备,第一存储器和第二存储器可以分别部署于不同的计算设备上,示例性的,如图2所示,图2是分布式场景下本申请提供的预取系统100的结构示意图,其中,第一存储器110可以是存储节点1的外存,第二存储器可以是存储节点2的内存,数据X存储于存储节点1的第一存储器110中,统计模块112和分区调整模块113部署于存储节点1的处理器1301中,预取模块121和存储模块122部署于存储节点2的处理器1302中。在该应用场景下,将应用即将访问的数据X从存储节点1的第一存储器提前预取至存储节点2的第二存储器120中,这样,当存储节点2中的应用访问数据X时,相比于通过网络从第一存储节点的外存(第一存储器110)中远程读取数据X,本申请提供的预取系统可以从第二存储器120(本地内存)中读取该数据X,能够提高CPU的访问速率。具体实现中,存储节点1中的第一存储器可以是磁盘、CD、U盘、存储卡等等,上述磁盘包括但不限于HDD、SSD、SSHD、RAID等等,还可以是上述各种外存的组合,本申请不作具体限定。第二存储器120可以是ROM、RAM、DRAM、DDR等等,还可以是上述各种内存的组合,本申请不作具体限定。
应理解,图2用于举例说明,第一存储器还可以是存储节点1的内存,第二存储器是存储节点2的缓存,或者,第一存储器还可以是存储节点1中的内存,第二存储器是存储节点2的内存。并且,在该应用场景下,数据X从存储节点1的第一存储器110中预取至了存储节点2的内存中,因此处理器1301和处理器1302显示了该应用场景下参与预取的部分单元模块,具体实现中,图2中的存储节点1和存储节点2还可包括更多或更少的单元模块,比如存储节点1的处理器1301中也可包括预取模块和存储模块,用于将预取数据存储至存储节点1的内存中,存储节点2的处理器1302也可包括统计模块和分区调整模块,用于对存储节点2中的外存进行分区调整和统计数据的获取,本申请不对此进行限定。
进一步地,第一存储器110和处理器130存在多种划分方式,示例性的,如图1所示,第一存储器110可包括多个分区111,处理器130可包括统计模块112、分区调整模块113、预取模块121以及存储模块122。
多个分区111用于存储数据。其中,多个分区111可以如图1和图2所示的分区1~分区N所示,N为正整数。
统计模块112用于获取第一存储器的多个分区的统计数据,该统计数据用于指示多个分区中每个分区中数据流的历史情况。参考前述内容可知,数据流包括上层应用下发的多个应用IO,数据流的历史情况可以是数据流中每个IO的历史信息,比如每个IO的访问偏移、访问时间和访问大小等等,举例来说,数据流中的应用IO可以是数据库执行大量的查询请求,该数据流的历史情况可以包括每个查询请求的请求地址、请求时间以及请求数据的大小等等。通常地,一个数据流是同一个应用或一类应用生成的用于传输数据或通知的IO的集合。
分区调整模块113用于根据上述统计数据,对多个分区进行调整获得多个特征分区,以使调整后的多个特征分区中的每个特征分区包括至少一种类型的数据流,其中,数据流的类型至少包括长顺序流、短顺序流和随机流。可选地,分区调整模块113在对多个分区111进行调整时,可以将数据流的类型数量高于第一阈值的分区进行拆分,也可以将数据流特征的相似度高于第二阈值的相邻分区进行合并,获得多个特征分区,其中,相邻分区指的是逻辑性连续的两个分区,例如,逻辑地址的编址方式连续的两个分区可以合并。进一步地,分区调整模块113可对上述多个分区111进行调整后,统计模块112再次获取上述多个特征分区的统计数据,分区调整模块113再次对上述多个特征分区进行调整,循环往复,直至每个特征分区中的数据流特征趋于单一。
具体实现中,多个分区111可以先根据预设的划分规则进行划分,比如一块盘分为一个分区,或者每64MB的连续存储空间划分为一个分区,或者每138GB的连续存储空间划分为一个分区等等,具体可根据实际情况预设划分规则,本申请不作具体限定。举例来说,先根据一块盘分为一个分区的划分规则,将第一存储器110划分为3个分区,分区1为磁盘A,分区2为磁盘B,分区3为磁盘C,通过统计模块112获得是3个分区的统计数据后,确定磁盘A包括长顺序流和短顺序流,磁盘B包括长顺序流和随机流,磁盘C包括短顺序流和随机流,那么分区调整模块113可以对上述3个分区进行调整,获得特征分区1’包括磁盘A和磁盘B中用于存储长顺序流的存储空间,特征分区2’包括磁盘A和磁盘C中用于存储短顺序流的存储空间,特征分区3’包括磁盘B和磁盘C中用于存储随机流的存储空间。应理解,上述举例用于说明,本申请不作具体限定。
可选地,分区调整模块113可在预取系统100启用之前,对多个分区进行多次调整,使得每个特征分区中的数据流特征趋于单一后,再启用该预取系统100。而在预取系统100启用后,统计模块112获取每个特征分区的统计数据,若此时多个特征分区内的数据流发生了变化,导致一些特征分区内的数据流特征不再趋于单一,此时分区调整模块113可再次调整这些特征分区,对数据流特征不再趋于单一的特征分区进行拆分或者合并后,预取模块121再确定每个特征分区的预取策略,从而避免由于数据流发生变化导致特征分区内包括多种数据流,从而提高预取准确率,提高缓存命中率。
预取模块121用于根据上述多个特征分区的数据流特征,确定每个特征分区的预取策略,该预取策略用于指示预取数据的位置和预取数据的大小,以使存储模块122根据该预取策略对每个特征分区执行预取操作,从特征分区中读取预取数据,并存储至第二存储器120的存储模块中。
具体实现中,该预取模块121可包括多个预取子模块,每个预取子模块对应一个特征分区,仍以上述例子为例,特征分区1’包括长顺序流,特征分区2’包括短顺序流,特征分区3’包括随机流,那么预取模块121可包括预取子模块1、预取子模块2以及预取子模块3,其中,预取子模块1可根据特征分区1’中长顺序流的数据特征,确定长顺序流预取策略,以使存储模块122从特征分区1’中读取预取数据,并存储至存储模块中,以此类推,预取子模块2可确定特征分区2’的预取策略,预取子模块3可确定特征分区3’的预取策略,这里不一一展开赘述。并且,多个预取子模块可并行确定各个特征分区的预取策略,提高预取效率。
可选地,该预取模块121中的每个预取子模块在确定每个特征分区的预取策略之后,可先根据每个特征分区执行预取操作的历史数据预测每个特征分区的预取收益,选择预取收益高于第三阈值的特征分区集合,按照预取策略分别执行特征分区集合中每个特征分区的预取操作,其中,特征分区集合包括至少一个特征分区。若预取收益小于阈值的特征分区,则不使用预取策略对该分区进行预取,从而进一步提高预取命中率,提高存储系统的访问速率。
其中,上述每个特征分区的预取收益可包括预取命中率、预取浪费率和预取IO数量中的一种或者多种。预取收益可根据每个特征分区的统计数据确定,根据统计数据可计算每个特征分区的历史预取命中率、历史IO数据量、历史预取浪费率等等,基于每个特征分区的历史预取命中率、历史IO数据量、历史预取浪费率可确定预取收益,比如预取收益=αx+βy+γz,其中,α是预取命中率x的权重,β是预取浪费率y的权重,γ是预取IO数量z的权重,α、β和γ可以是经验值,该经验值还可以根据预取收益的准确度进行调整。上述公式用于举例,本申请不作具体限定。
具体实现中,处理器130可以由至少一个通用处理器构成,例如中央处理器,或者CPU和硬件芯片的组合,上述硬件芯片可以是ASIC、PLD或其组合,上述PLD可以是CPLD、FPGA、GAL或其任一组合,本申请不作具体限定。具体实现中,当预取系统100部署于单个计算设备上时,处理器130可以是该计算设备的CPU;当预取系统100部署于分布式系统时,例如图2所示的分布式存储系统,处理器130可以是存储节点2中的处理器1302,即处理器130为第二存储器120所在的存储节点中的CPU,图2的举例用于说明,本申请不作具体限定。
处理器130可执行各种类型的程序代码,以使预取系统100实现各种功能。具体地,第一存储器110可存储有统计模块112和分区调整模块113的程序代码,第二存储器120可存储有预取模块121和存储模块122的程序代码。处理器130可调用第一存储器110中统计模块112的程序代码,以获取多个分区111的统计数据,然后调用分区调整模块113的程序代码,以实现对多个分区111的调整,从而获得多个特征分区,然后调用第二存储器120中预取模块121的代码,确定多个特征分区的预取策略,然后调用存储模块122的代码,根据预取策略对从多个特征分区中读取预取数据,并将预取数据存储至第二存储器120的存储模块中。
可以理解的是,上述预取策略可以根据特征分区内的数据流特征使用适用的预取算法确定出每个特征分区的预取策略,例如,使用Tap预取算法(Table-based Prefetchingfor Storage Caches)、AMP预取算法(Adaptive Multi-stream Prefetching in a SharedCache)等等,本申请不作具体限定。
综上可知,本申请提供的预取系统,可以将包括混合数据流的第一存储器划分为多个分区,并根据每个分区内数据流的特征,对多个分区进行调整,使得每个分区内的数据流特征趋于单一,获得多个特征分区,从而将顺序流从混合数据流中分离出来,此时再对多个特征分区进行预取,可以根据每个特征分区内单一的数据流特征,针对性地确定预取策略,可以避免多种数据流之间互相干扰导致预取效果差的问题,提高缓存命中率。上述调整过程可以在执行数据预取前执行一次上述调整过程,对多个分区进行调整;也可以在预取过程中根据数据流的情况采用多次上述调整过程,对多个分区实现动态调整。
图3是本申请提供的一种数据预取方法的步骤流程示意图,其中,该数据预取方法可应用于图1和图2所示的预取系统100中,该预取系统100包括多种数据流(即混合数据流),如图3所示,该方法可包括以下步骤:
S310:获取第一存储器110的多个分区111的统计数据,其中,该统计数据用于指示每个分区所包括的数据流的历史情况。
其中,上述多个分区111可以先根据预设的划分规则对第一存储器的存储空间进行划分,举例来说,如果第一存储器110包括多块磁盘,那么可以一块盘分为一个分区,如果第一存储器110包括1块磁盘,那么可以将该磁盘每64MB的连续存储空间划分为一个分区,或者每138GB的连续存储空间划分为一个分区等等,具体可根据实际情况预设划分规则,本申请不作具体限定,应理解,多个分区111的详细描述可参见前述图1和图2实施例中的相关描述,这里不再重复赘述。
在一种可能的实现方式中,上述统计数据可包括每个分区所包括的数据流的数据流信息和数据流特征,其中,数据流包括上层应用下发的多个IO,数据流信息包括但不限于每个IO的IO偏移、IO长度和IO时间中的一种或者多种,IO偏移可以是应用所访问的数据所在的地址信息,比如访问地址或者在数据流中的偏移值,IO长度可以是该数据的数据长度,IO时间指的是访问时间,数据流特征可包括但不限于数据流中IO的数目、数据流的类型、数据流的长度、数据流中每个IO的大小、数据流IO间隔等等。其中,数据流特征可以是根据数据流信息确定的。
具体实现中,上述统计数据可以以特征向量(x1,x2,...,xm)的形式进行表示,其中,该特征向量中的每个元素可代表一个数据流特征,具体可以是该数据流特征的数值,也可以是该数据流特征对应的等级、档位、代码等等,本申请不作具体限定。比如x1可以表示数据流的数目,若数据流数目为1000,那么x1=100。比如x1表示数据流的数目所处的区间,且数据流的数目小于100时所处的区间为1,数据流的数目在100~200之间时对应的区间为2,以此类推,那么对于数据流数目为150的数据流来说,其特征向量中的x1=2。应理解,上述举例用于说明,本申请不作具体限定。
举例来说,假设统计数据用五维向量(x1,x2,x3,x4,x5)表示,其中,x1用于表示数据流的数目,如数据流数目小于等于100,对应维度设为1,超过100小于等于200维度设为2,以此类推。x2用于表示数据流的类型数量,数量不高于5对应值为1,数量在5-10之间对应值为2,以此类推。x3用于表示数据流长度,小于1MB对应维度设为1,超过1MB小于2MB对应维度设为2,一次类推。x4用于数据流IO大小,小于64KB对应维度设为1,大于64KB小于128KB对应维度设为2,以此类推。x5用于表示数据流IO间隔,小于1ms对应维度设为1,大于1ms小于2ms对应维度设为2,以此类推。假设统计分区1的数据流数目为150,数据流的类型有3种,数据流长度为1.5MB,数据流IO大小为120KB,数据流IO间隔为0.5ms,那么上述统计分区1的统计数据为(2,1,2,2,1)。应理解,上述举例用于说明,本申请不作具体限定。
在一种可能的实现方式中,步骤S310可以是处理器130调用第一存储器110中的统计模块112的代码后,获得的各个分区的统计数据。具体实现中,处理器130可以周期性的获取各个分区统计数据,该统计数据是当前周期下各个分区的统计数据,比如每隔2秒获取一次当前各个分区的统计数据,本申请不对周期的具体时间进行限定。
S320:根据多个分区的统计数据确定预取策略,该预取策略用于指示预取数据的位置和预取数据的大小。
在一种可能的实现方式中,可先根据多个分区的统计数据,对上述多个分区111进行调整,获得多个特征分区,步骤S320可以根据多个特征分区的统计数据确定预取策略。其中,每个特征分区用于存储至少一种类型的数据流,然后再确定每个特征分区的预取策略。举例来说,对多个分区111进行调整后可获得3个特征分区,其中,特征分区1内的数据流为长顺序流,特征分区2内的数据流为短顺序流,特征分区3内的数据流为随机流。上述举例用于说明,本申请不作具体限定。
在一种可能的实现方式中,可将数据流的类型数量高于第一阈值的分区进行拆分,获得多个特征分区。具体实现中,数据流的类型数量不低于第一阈值的分区在进行拆分时,可以被拆分为2个分区,也可以被拆分为2个以上的分区,拆分规则可以是随机拆分,也可以是平均拆分,3本申请不对拆分规则进行限定。举例来说,若分区1的数据流的类型数量为5,分区2的数据流的类型数量为2,第一阈值为3,那么可以将分区1进行拆分获得特征分区11和特征分区12,分区2不进行拆分,从而将分区1和分区2拆分为特征分区11、特征分区12和特征分区2。应理解,上述举例用于说明,本申请不对此进行限定。
在一种可能的实现方式中,可根据两个分区的统计数据,对两个相分区的数据流特征进行相似度计算,若相似度高于第二阈值,则说明两个分区的数据流特征趋于一致,可将两个分区进行合并,其中,上述两个分区是逻辑性连续的两个相邻分区,换句话说,逻辑地址的编址方式连续的两个分区可以合并,比如相邻分区的LBA可以是连续的,即LBA=0的逻辑区块为分区1,LBA=2的逻辑区块为分区2,那么分区1和分区2即为逻辑性连续的两个相邻分区,而分区1对应的物理地址和分区2对应的物理地址可以是连续的,也可以是不连续的,本申请不作具体限定。
参考步骤S310的描述可知,每个分区的统计数据可以是特征向量(x1,x2,...,xm)的形式进行表示,因此,统计数据的相似度可以根据特征向量之间的距离确定,比如欧氏距离(eucledian distance)、曼哈顿距离(manhattan distance)、余弦相似度(cosinesimilarity)、明式距离(Minkowski distance)等等,本申请不作具体限定。
在一种可能的实现方式中,可将多个分区111中数据流的类型数量超过第一阈值的分区进行拆分,同时对多个分区111中数据流的特征相似度低于第二阈值的分区进行合并,从而获得多个特征分区。比如多个分区包括分区1、分区2和分区3,分区1的数据流的类型数量超过第一阈值,分区2和分区3的数据流的类型数量低于第一阈值,分区1和分区2的统计数据相似度低于第二阈值,分区1和分区3的数据相似度低于第二阈值,分区2和分区3的统计数据相似度高于第二阈值,那么可以将分区1拆分为特征分区11和特征分区12,分区2和分区3合并为特征分区23,应理解,上述拆分可以是平均拆分,也可以是随机拆分,还可以是根据不同类型的数据流的分布比例拆分。
具体实现中,处理器130可以在步骤S320确定预取策略之前,对多个分区进行调整,还可以在步骤S310之前,周期性的获取各个分区统计数据,周期性调整各个分区获得多个特征分区,每个特征分区中数据流的类型数量低于第一阈值,且各个特征分区之间的数据流特征相似度高于第二阈值时,即每个特征分区中的数据流特征趋于单一后,再执行步骤S310~步骤S330实现数据预取的过程。换句话说,在第一个调整周期内对上述多个分区111进行调整获得多个特征分区后,在第二个调整周期内处理器130可调用统计模块112的代码,对第一个调整周期获得的多个特征分区进行统计,获得多个特征分区的统计数据,然后再调用分区调整模块113的代码对多个特征分区进行进一步的调整,循环往复,多个调整周期后,每个特征分区中的数据流的类型数量将会低于第一阈值,且特征分区的统计数据之间的相似度将会低于第二阈值,使得每个特征分区中的数据流特征趋于单一,不同类型的顺序流可以从混合数据流中分离出来,此时再执行步骤S310~步骤S330将数据从第一存储器预取至第二存储器,能够避免多种数据流之间互相干扰导致预取效果差的问题,进而提高缓存命中率。
例如,图4是本申请提供的一种应用场景下的多个分区调整为多个特征分区的流程示意图,如图4所示,在t=0时刻,多个分区包括分区1、分区2和分区3,其中,分区1、分区2和分区3是逻辑性连续的3个分区,假设CPU每隔周期T调用统计模块112的代码对多个分区内的数据流的历史情况进行采集,获得多个分区的统计数据,并调用分区调整模块113的代码对多个分区进行一次调整,那么在t=T时刻,可以根据分区1、分区2以及分区3的统计特征,将数据流的类型数量高于第一阈值的分区1拆分为特征分区11和特征分区12,将统计数据之间的相似度高于第二阈值的分区2和分区3合并为特征分区23。同理,在t=2T时刻,将特征分区11拆分为特征分区111和特征分区112,将特征分区12和特征分区13合并为特征分区1223。应理解,图4用于举例说明,本申请不作具体限定。
可以理解的,由于数据流中包含的IO是应用下发的IO,应用下发IO的时间并不是固定的,因此可能会出现在步骤S310之前经过多个调整周期后,多个特征分区内的数据流特征已趋于单一,但是步骤S310之后,个别特征分区内的数据流发生了变化,导致个别特征分区内的数据流特征不再趋于单一,因此在步骤S320确定每个特征分区对应的预取策略之前,可再对多个特征分区进行调整,避免由于数据流发生变化导致特征分区内包括多种数据流,从而提高预取准确率,提高缓存命中率。
在一种可能的实现方式中,获得多个特征分区后,处理器130可调用第二存储器120中的预取模块121的代码,根据每个特征分区内的数据流特征,确定每个特征分区对应的预取策略。应理解,预取策略用于指示预取数据的位置和预取数据的大小,处理器130可根据预取策略从第一存储器110的数据流中获取预取数据。
其中,该预取策略可包括预取数据在数据流中的预取偏移值以及预取长度,还可包括其他用以供处理器130从数据流中读取预取数据的相关信息,比如预取数据的读取时间,预取数据的地址等等,本申请不对此进行限定。根据预取策略,处理器130可以从第一存储器中读取预取数据,并将其存储至第二存储器中。具体实现中,预取策略可以是根据每个特征分区的统计数据,使用预取算法获得的,预取算法可以是Tap预取算法、AMP预取算法等等,本申请不对采用何种预取算法进行限定。
S330:根据预取策略执行预取操作。
具体实现中,处理器130可使用每个特征分区对应的预取策略,对每个特征分区进行预取,将预取数据从第一存储器110的数据流中读取出来,并存储至第二存储器120中,以实现数据预取的功能,提高存储器的访问速度。
在一种可能的实现方式中,获得每个特征分区的预取策略之后,可先个根据多个特征分区中每个特征分区执行预取操作的历史数据预测每个特征分区的预取收益,然后选择预取收益高于第三阈值的特征分区集合,按照预取策略分别执行特征分区集合中每个特征分区的预取操作,其中,特征分区集合包括至少一个特征分区。处理器130可确定每个分区使用对应的预取策略进行数据预取后的预取收益,然后再调用存储模块122,对预取收益不低于第三阈值的特征分区进行预取,对预取收益低于第三阈值的特征分区放弃预取,从而进一步提高预取命中率,避免预取失效带来的资源浪费。
具体实现中,处理器130可周期性的获取多个分区的统计数据,并周期性的将多个分区调整为多个特征分区,然后周期性的对第一存储器进行预取,仍以图4所示的例子为例,t=T时刻获得特征分区11、特征分区12以及特征分区23之后,处理器130可调用预取模块121,确定特征分区11的预取策略11,特征分区12的预取策略12以及特征分区23的预取策略23,然后确定特征分区11使用预取策略11进行预取后的预取收益11,特征分区12使用预取策略12进行预取后的预取收收益12,特征分区23使用预取策略23进行预取后的预取收益23,若预取收益11和预取收益12都不低于第三阈值,但是预取收益23低于第三阈值,那么在t=T时刻下,处理器130可调用存储模块122对特征分区11和特征分区12进行预取,而不对特征分区23进行预取,同理,可确定的t=2T时刻下每个特征分区的预取收益,这里不再展开赘述。应理解,上述举例用于说明,本申请不作具体限定。
在一种可能的实现方式中,上述每个特征分区的预取收益可包括预取命中率x、预取浪费率y和预取IO数量z中的一种或者多种,其中,预取命中率x包括预取数据被应用从第二存储器120中读取的概率,预取浪费率y包括预取数据未被应用从第二存储器120中读取的概率,预取IO数量z即为预取数量的IO数目。具体地,可以为预取命中率、预取浪费率和预取IO数量设置不同的权重,示例性的,预取收益=αx+βy+γz,其中,α是预取命中率x的权重,β是预取浪费率y的权重,γ是预取预取IO数量z的权重,α、β和γ可以是经验值,该经验值还可以根据预取收益的准确度进行调整。上述公式用于举例,本申请不作具体限定。
具体实现中,上述预取IO数量可以根据步骤S310采集的统计数据获得,上述预取命中率x和预取浪费率y可以根据每个特征分区的历史数据,结合步骤S310采集的统计数据确定。其中,每个特征分区的历史数据包括每个特征分区的历史统计数据,历史统计数据可包括当前周期之前的所有周期内的历史数据流信息和历史数据流特征,历史数据流信息可包括但不限于IO偏移、IO长度和IO时间,历史数据流特征可包括但不限于IO数量、数据流长度、IO间隔等等,其中,历史统计数据的具体描述可参考步骤S310中关于统计数据的描述,这里不再重复赘述,并且,历史统计数据可以是每个特征分区上一周期的历史统计数据,也可以是上两个周期的历史统计数据,还可以是本周期之前所有周期的历史统计数据,本申请不作具体限定。
举例来说,当前周期采集的统计信息显示分区1的数据流包括应用下发的1个IO,且该IO的IO偏移为100,长度为50,若历史统计数据显示上一周期该应用下发的历史IO,其实际访问的数据偏移值为0,长度为100,即读取了数据流中偏移值从0~100的一段数据,根据预取算法(比如AMP预取算法)确定预取策略为:预取偏移值为100,预取长度为100,若使用该预取测量,将会读取偏移值从100~200的一段数据,而当前周期采集的统计信息显示,实际需求为偏移值从100~150的一段数据,那么即可预测得到预取命中率为50%,预取浪费率为50%,预取IO数量为1,根据预取收益=αx+βy+γz可以获得预取收益,根据预取收益与第三阈值的大小,确定特征分区集合。应理解,上述举例用于说明,本申请不作具体限定。
可选地,该历史统计数据还可包括预取系统100当前的负载情况、历史预取收益估计的准确率等等其他相关信息,可以理解的,历史统计数据包含的内容越丰富,预取收益的准确度越高,但是对于预取系统100的处理压力将会增大,因此具体可根据预取系统100的处理能力确定历史数据的其他相关信息,本申请不对此进行限定。
在一种可能的实现方式中,处理器130调用预取模块确定特征分区的预取策略和预取收益,并确定该预取收益不低于第三阈值的情况下,处理器130调用存储模块使用预取策略对该特征分区进行预取操作之前,还可先查询第二存储器120中是否存在该预取策略对应的预取数据,若存在,可以取消本次预取操作,若不存在,再根据预取策略对该特征分区进行预取,将预取数据从第一存储器中读取至第二存储器,从而避免重复读取这一情况的发生,进而避免资源浪费。
应理解,由于每个周期内,每个特征分区内的数据流特征可能会发生变化,可能会导致部分特征分区内的数据流的类型数量突然增加,此时对该类特征分区进行预取,仍会出现预取命中率低的情况,本申请通过在预取前确定每个特征分区的预取收益,可以筛选出该类数据流发生变化的特征分区,从而提高预取命中率,进而提高存储器的访问效率。值得注意的是,在当前周期确定每个特征分区的预取收益后,可以在当前周期对预取收益不低于第三阈值的特征分区执行预取操作,也可以在下一周期执行预取操作,本申请不作具体限定。
进一步地,对于部分长期保持低预取收益的特征分区,可以调用分区调整模块113对该类特征分区进行调整,从而提高预取命中率;若该特征分区内的数据流已趋于单一,但是预取收益仍旧较低,可以对预取收益中的权重参数进行调整,避免由于预取收益的权重参数设置不合理对预取操作产生影响。
举例来说,仍以图4所示的应用场景为例,假设在t=2T时刻获得了特征分区111、特征分区112以及特征分区1223后,根据预取策略执行预取操作的步骤流程可以如图5所示,在t=2T与t=2T这一时间周期内,可以先确定每个特征分区的预取策略,获得特征分区111的预取策略111,特征分区112的预取策略112,特征分区1223的预取策略1223,然后确定每个特征分区的预取收益,根据特征分区111的历史数据确定预取收益111,根据特征分区112的历史数据确定预取收益112,根据特征分区1223的历史数据确定预取收益1223,接着将每个特征分区的预取收益与第三阈值进行比较,低于第三阈值的特征分区1223在本周期不进行预取操作,高于第三阈值的特征分区111和特征分区112则根据各自对应的预取策略,在下一周期开始时,即t=3T时执行预取操作。应理解,图5用于举例说明,特征分区111好特征分区112也可以在当前周期执行预取操作,本申请不作具体限定。
综上可知,本申请提供的数据预取方法,可以将用于存储预取数据的第一存储器划分为多个分区,并根据每个分区内数据流的特征,对多个分区进行调整,使得每个分区内的数据流特征趋于单一,获得多个特征分区,从而将顺序流从混合数据流中分离出来,此时再对多个特征分区进行预取,可以避免多种数据流之间的互相干扰导致预取效果差的问题,进而提高缓存命中率。
上面详细阐述了本申请实施例的方法,为了便于更好的实施本申请实施例上述方案,相应地,下面还提供用于配合实施上述方案的相关设备。
图6是本申请提供的一种处理器130的结构示意图,该处理器130应用于图1所示的预取系统100中,该预取系统100包括处理器130、第一存储器110和第二存储器120。如图6所示,处理器130可包括统计模块112、分区调整模块113、预取模块121以及存储模块122,其中,
统计模块112,用于获取第一存储器的多个分区的统计数据,统计数据用于指示多个分区中每个分区所包括的数据流的历史情况。
预取模块121,用于根据多个分区的统计数据确定预取策略,预取策略用于指示预取数据在第一存储器110中的位置和预取数据的大小。
存储模块122用于根据预取策略执行预取操作,将预取数据存储至第二存储器120。
可选地,多个分区的统计数据包括多个分区中每个分区所包括的数据流的类型,分区调整模块113用于根据第一存储器110的多个分区的统计数据,对多个分区进行调整,获得多个特征分区,其中,多个特征分区中的每个特征分区包括至少一种类型的数据流;分区调整模块113用于根据多个特征分区的统计数据,确定多个特征分区中每个特征分区的预取策略,其中,一个特征分区对应一个预取策略。
可选地,分区调整模块113用于根据多个分区的统计数据,将多个分区中数据流的类型数量不低于第一阈值的分区进行拆分,获得多个特征分区。
可选地,统计数据包括数据流特征,其中,数据流特征包括数据流数目、数据流长度、数据流的类型、数据流IO大小、数据流IO间隔中的一种或者多种。
可选地,分区调整模块113用于根据第一存储器110的多个分区的统计数据,确定多个分区的数据流特征之间的相似度;处理器130用于将相似度不低于第二阈值的分区进行合并,获得多个特征分区。
可选地,预取模块121用于根据多个特征分区中每个特征分区执行预取操作的历史数据预测每个特征分区的预取收益;预取模块121用于选择预取收益高于第三阈值的特征分区集合,特征分区集合包括至少一个特征分区;存储模块122用于按照预取策略分别执行特征分区集合中每个特征分区的预取操作,将预取数据存储至第二存储器120。
可选地,第一存储器110的读写速度低于第二存储器120的读写速度;在第一存储器110为内存的情况下,第二存储器120为缓存;或者,在第一存储器110为磁盘时的情况下,第二存储器120为内存。
根据本申请实施例的处理器130可对应于执行本申请实施例中描述的方法,并且处理器130中的各个模块和/或功能分别为了实现图1至图5中的各个方法的相应流程,为了简洁,在此不再赘述。
综上可知,本申请提供的处理器,可以将用于存储预取数据的第一存储器划分为多个分区,并根据每个分区内数据流的特征,对多个分区进行调整,使得每个分区内的数据流特征趋于单一,获得多个特征分区,从而将顺序流从混合数据流中分离出来,此时再对多个特征分区进行预取,可以避免多种数据流之间的互相干扰导致预取效果差的问题,进而提高缓存命中率。
图7是本申请提供的一种计算设备700的结构示意图。其中,计算设备700可以是图1-图6中的预取系统100。如图7所示,计算设备700包括:处理器130、通信接口140、第一存储器110以及第二存储器120。其中,处理器130、通信接口140、第一存储器110以及第二存储器120可以通过内部总线150相互连接,也可通过无线传输等其他手段实现通信。本申请实施例以通过总线连接为例,总线可以是PCIe总线或EISA总线等。总线150可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器130可以由至少一个通用处理器构成,例如CPU,或者CPU和硬件芯片的组合。上述硬件芯片可以是ASIC、PLD或其组合。上述PLD可以是CPLD、FPGA、GAL或其任意组合。处理器130执行各种类型的数字存储指令,例如存储在第一存储器110或者第二存储器120中的软件或者固件程序,它能使计算设备700提供多种服务。
第一存储器110用于存储数据和程序代码,该程序代码可由处理器130来控制执行。程序代码中可以包括一个或多个软件模块,如统计模块的代码、分区调整模块的代码等等,其中,统计模块用于获取第一存储器110的多个分区的统计数据;分区调整模块用于根据多个分区的统计数据,对多个分区进行调整,获得多个特征分区。具体可用于执行图3实施例中的步骤S310及其可选步骤,这里不再进行赘述。
第二存储器120用于存储数据和程序代码,该程序代码可由处理器130来控制执行。程序代码中可以包括一个或多个软件模块,如预取模块的代码、存储模块的代码等等,其中,预取模块用于根据多个分区的统计数据确定预取策略;存储模块用于根据预取策略执行预取操作,将预取数据存储至第二存储器,具体可用于执行图3实施例中的步骤S320~步骤S330及其可选步骤,这里不再进行赘述。
在一应用场景中,第一存储器110可以是磁盘、CD、USB、存储卡等等中任意一种,其中,上述磁盘包括但不限于HDD、SSD、SSHD、RAID等等,第一存储器110还可以是上述各种存储介质的组合,本申请不作具体限定。第二存储器120可以是ROM、RAM、DRAM、DDR等等中任意一种,第二存储器120还可以是上述各种存储介质的组合,本申请不作具体限定。
在另一应用场景中,第一存储器110可以是ROM、RAM、DRAM、DDR等等中任意一种,第二存储器120可以是SRAM、异步SRAM、多线程SRAM,同歩SRAM等等中任意一种,本申请不作具体限定。
通信接口140可以为有线接口(例如以太网接口),可以为内部接口(例如高速串行计算机扩展总线(peripheral component interconnect express,PCIe)总线接口)、有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与与其他设备或模块进行通信。
需要说明的是,本实施例可以是通用的物理服务器实现的,例如,ARM服务器或者X86服务器,也可以是基于通用的物理服务器结合NFV技术实现的虚拟机实现的,虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,比如在本实施例可以在云计算基础设施上实现。
需要说明的,图7仅仅是本申请实施例的一种可能的实现方式,实际应用中,计算设备700还可以包括更多或更少的部件,这里不作限制。关于本申请实施例中未示出或未描述的内容,可参见前述图1-图6实施例中的相关阐述,这里不再赘述。
应理解,图7所示的计算设备还可以是至少一个物理服务器构成的计算机集群,比如第一存储器110和第二存储器120分别位于不同的物理服务器上,具体可参考图2实施例,为了避免重复,此处不再赘述。
本申请还提供一种存储阵列,该存储阵列可包括一个或多个存储节点,每个存储节点的结构可以如图1所示,以存储阵列具体为独立冗余磁盘阵列(redundant arrays ofindependent disks,RAID)为例,处理器1301可以是RAID控制器,第一存储器110可以是RAID控制的逻辑硬盘块,比如逻辑固态硬盘(logical solid state disk,LSSD),第二存储器120可以是RAID控制器的内存,当然,存储阵列还可以是其他类型的存储阵列,本申请不作具体限定。示例性的,以该存储阵列包括两个存储节点为例,该存储阵列的结构还可以如图2所示,该存储阵列用于实现上述图3-图5所示方法的流程的操作步骤。
本申请还提供一种预取系统,该预取系统的结构如图1或图2所示,该预取系统用于实现上述图3-图5所示方法的流程的操作步骤。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在处理器上运行时,图3-图5所示的方法流程得以实现。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在处理器上运行时,图1-图5所示的方法流程得以实现。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括至少一个计算机指令。在计算机上加载或执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含至少一个可用介质集合的服务器、数据中心等数据存储节点。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital videodisc,DVD)、或者半导体介质。半导体介质可以是SSD。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种数据预取方法,其特征在于,所述方法应用于包括多种数据流的预取系统,所述预取系统包括第一存储器和第二存储器,所述方法包括:
获取所述第一存储器的多个分区的统计数据,所述统计数据用于指示所述多个分区中每个分区所包括的数据流的历史情况;
根据所述多个分区的统计数据确定预取策略,所述预取策略用于指示预取数据的位置和预取数据的大小;
根据所述预取策略执行预取操作。
2.根据权利要求1所述的方法,其特征在于,所述多个分区的统计数据包括所述多个分区中每个分区所包括的数据流的类型,所述根据所述多个分区的统计数据确定预取策略包括:
根据所述多个分区的统计数据,对所述多个分区进行调整,获得多个特征分区,其中,所述多个特征分区中的每个特征分区包括至少一种类型的数据流;
根据所述多个特征分区的统计数据,确定所述多个特征分区中每个特征分区的预取策略,其中,所述每个特征分区对应一个预取策略。
3.根据权利要求2所述的方法,其特征在于,所述根据所述多个分区的统计数据,对所述多个分区进行调整,获得多个特征分区包括:
根据所述多个分区的统计数据,将所述多个分区中数据流的类型数量不低于第一阈值的分区进行拆分,获得所述多个特征分区。
4.根据权利要求2或3所述的方法,其特征在于,所述统计数据包括数据流特征,其中,所述数据流特征包括数据流数目、数据流长度、数据流的类型、数据流IO大小、数据流IO间隔中的一种或者多种。
5.根据权利要求4所述的方法,其特征在于,所述根据所述多个分区的统计数据,对所述多个分区进行调整,获得多个特征分区包括:
根据所述多个分区的统计数据,确定所述多个分区的数据流特征之间的相似度;
将所述相似度不低于第二阈值的分区进行合并,获得所述多个特征分区。
6.根据权利要求2至5任一权利要求所述的方法,其特征在于,所述根据所述预取策略执行预取操作包括:
根据所述多个特征分区中每个特征分区执行预取操作的历史数据预测所述每个特征分区的预取收益;
选择预取收益高于第三阈值的特征分区集合,所述特征分区集合包括至少一个特征分区;
按照所述预取策略分别执行所述特征分区集合中每个特征分区的预取操作。
7.根据权利要求1至6任一权利要求所述的方法,其特征在于,所述第一存储器的读写速度低于所述第二存储器的读写速度;
在所述第一存储器为内存的情况下,所述第二存储器为缓存;或者,
在所述第一存储器为磁盘时的情况下,所述第二存储器为内存。
8.一种预取系统,其特征在于,所述预取系统包括处理器、第一存储器和第二存储器,其中,
所述处理器,用于获取所述第一存储器的多个分区的统计数据,所述统计数据用于指示所述多个分区中每个分区所包括的数据流的历史情况;
所述处理器,用于根据所述多个分区的统计数据确定预取策略,所述预取策略用于指示预取数据在所述第一存储器中的位置和预取数据的大小;以及,根据所述预取策略执行预取操作,将所述预取数据存储至所述第二存储器。
9.根据权利要求8所述的系统,其特征在于,所述多个分区的统计数据包括所述多个分区中每个分区所包括的数据流的类型,
所述处理器用于根据所述第一存储器的多个分区的统计数据,对所述多个分区进行调整,获得多个特征分区,其中,所述多个特征分区中的每个特征分区包括至少一种类型的数据流;
所述处理器用于根据所述多个特征分区的统计数据,确定所述多个特征分区中每个特征分区的预取策略,其中,一个特征分区对应一个预取策略。
10.根据权利要求9所述的系统,其特征在于,所述处理器用于根据所述多个分区的统计数据,将所述多个分区中数据流的类型数量不低于第一阈值的分区进行拆分,获得所述多个特征分区。
11.根据权利要求9或10所述的系统,其特征在于,所述统计数据包括数据流特征,其中,所述数据流特征包括数据流数目、数据流长度、数据流的类型、数据流IO大小、数据流IO间隔中的一种或者多种。
12.根据权利要求11所述的系统,其特征在于,
所述处理器用于根据所述第一存储器的多个分区的统计数据,确定所述多个分区的数据流特征之间的相似度;
所述处理器用于将所述相似度不低于第二阈值的分区进行合并,获得所述多个特征分区。
13.根据权利要求9至12任一权利要求所述的系统,其特征在于,
所述处理器用于根据所述多个特征分区中每个特征分区执行预取操作的历史数据预测所述每个特征分区的预取收益;
所述处理器用于选择预取收益高于第三阈值的特征分区集合,所述特征分区集合包括至少一个特征分区;
所述处理器用于按照所述预取策略分别执行所述特征分区集合中每个特征分区的预取操作,将所述预取数据存储至所述第二存储器。
14.根据权利要求10至13任一权利要求所述的系统,其特征在于,所述第一存储器的读写速度低于所述第二存储器的读写速度;
在所述第一存储器为内存的情况下,所述第二存储器为缓存;或者,
在所述第一存储器为磁盘时的情况下,所述第二存储器为内存。
15.一种计算设备,其特征在于,包括处理器和存储器,所述存储器存储有代码,所述处理器执行所述代码实现如权利要求1至9任一权利要求所述方法的操作步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110221620.8A CN114968073A (zh) | 2021-02-27 | 2021-02-27 | 数据预取的方法、设备及系统 |
PCT/CN2021/142647 WO2022179294A1 (zh) | 2021-02-27 | 2021-12-29 | 数据预取的方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110221620.8A CN114968073A (zh) | 2021-02-27 | 2021-02-27 | 数据预取的方法、设备及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968073A true CN114968073A (zh) | 2022-08-30 |
Family
ID=82973665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110221620.8A Pending CN114968073A (zh) | 2021-02-27 | 2021-02-27 | 数据预取的方法、设备及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114968073A (zh) |
WO (1) | WO2022179294A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116910100B (zh) * | 2023-09-08 | 2023-11-28 | 湖南立人科技有限公司 | 用于低代码平台的缓存数据处理方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101390047A (zh) * | 2006-02-27 | 2009-03-18 | Nxp股份有限公司 | 数据处理系统和用于预取数据和/或指令的方法 |
CN101853303B (zh) * | 2010-06-02 | 2012-02-01 | 深圳市迪菲特科技股份有限公司 | 一种基于语义智能存储方法及系统 |
CN102857483B (zh) * | 2011-06-30 | 2016-06-29 | 国际商业机器公司 | 预取数据的方法、设备和装置 |
US10866896B2 (en) * | 2015-09-30 | 2020-12-15 | Arm Limited | Apparatus and method for prefetching access request addresses in an adjacent region of memory |
CN109032965B (zh) * | 2017-06-12 | 2021-01-12 | 华为技术有限公司 | 一种数据读取方法、主机及存储设备 |
JP2019204335A (ja) * | 2018-05-24 | 2019-11-28 | 株式会社日立製作所 | データ処理装置およびプリフェッチ方法 |
CN110688062B (zh) * | 2019-08-26 | 2021-03-30 | 华为技术有限公司 | 一种缓存空间的管理方法及装置 |
-
2021
- 2021-02-27 CN CN202110221620.8A patent/CN114968073A/zh active Pending
- 2021-12-29 WO PCT/CN2021/142647 patent/WO2022179294A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022179294A1 (zh) | 2022-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102821113A (zh) | 缓存方法及系统 | |
US10223270B1 (en) | Predicting future access requests by inverting historic access requests in an object storage system | |
US11093399B2 (en) | Selecting resources to make available in local queues for processors to use | |
CN111737168A (zh) | 一种缓存系统、缓存处理方法、装置、设备及介质 | |
CN110770691A (zh) | 混合数据存储阵列 | |
US11048631B2 (en) | Maintaining cache hit ratios for insertion points into a cache list to optimize memory allocation to a cache | |
CN115421924A (zh) | 一种内存分配方法、装置及设备 | |
WO2022179294A1 (zh) | 数据预取的方法、设备及系统 | |
EP4170499A1 (en) | Data storage method, storage system, storage device, and storage medium | |
US20230325277A1 (en) | Memory controller performing selective and parallel error correction, system including the same and operating method of memory device | |
US10915470B2 (en) | Memory system | |
CN112379841A (zh) | 数据处理方法、装置和电子设备 | |
CN108628551A (zh) | 一种数据处理方法及装置 | |
CN115794366A (zh) | 一种内存预取方法及装置 | |
CN116560560A (zh) | 存储数据的方法和相关装置 | |
US11210125B2 (en) | Cache allocation to a virtual machine | |
CN108762679B (zh) | 一种在线ddp与离线ddp相结合的方法及其相关装置 | |
CN115495433A (zh) | 一种分布式存储系统、数据迁移方法及存储装置 | |
CN115793957A (zh) | 写数据的方法、装置及计算机存储介质 | |
CN115904795A (zh) | 存储系统中的数据存储方法及装置 | |
CN110865768A (zh) | 写缓存资源分配方法、装置、设备以及存储介质 | |
US20240028379A1 (en) | Cache management in a hyperconverged infrastructure | |
CN117806571B (zh) | 一种云主机的i/o参数值确定方法、计算机设备及其云平台 | |
CN108446241B (zh) | 内存访问方法及装置 | |
CN113297099A (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 |