CN105094701B - 一种自适应预读方法及装置 - Google Patents
一种自适应预读方法及装置 Download PDFInfo
- Publication number
- CN105094701B CN105094701B CN201510429021.XA CN201510429021A CN105094701B CN 105094701 B CN105094701 B CN 105094701B CN 201510429021 A CN201510429021 A CN 201510429021A CN 105094701 B CN105094701 B CN 105094701B
- Authority
- CN
- China
- Prior art keywords
- read request
- read
- sequence
- reading mode
- matching
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 16
- 230000008569 process Effects 0.000 claims abstract description 13
- 238000010586 diagram Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种自适应预读方法及装置,上述方法包括以下步骤:接收读请求后,获取所述读请求对应的读模式及与所述读模式对应的预读参数;对所述读模式对应的读请求序列,按照预设更新匹配策略,进行更新匹配;获取匹配的读请求序列的匹配计数并根据所述读请求序列的新的匹配计数,调整所述读请求序列在读请求序列排序链表中的位置后,按照获取的预读参数进行预读;实现了自适应的统计每种读模式匹配成功的概率,并在运行过程中动态调整,新的读请求优先匹配概率高的读模式,以此减少匹配的搜索次数,提高预读算法的效率。
Description
技术领域
本发明属于数据处理领域,尤其涉及一种自适应预读方法及装置。
背景技术
随着数字化时代到来,在人们的日常生活和科学研究中,越来越多的传统业务开始数字化、网络化,促使数据爆炸式增长,这使得存储系统在整个业务处理系统中的地位也愈发重要,然而源源不断的数据流导致存储系统产生严重的输入输出I/O瓶颈问题。
计算机系统的性能主要由处理子系统性能和I/O子系统性能两部分决定;其中,CPU处理速度始终保持了高速增长,而I/O子系统其存储容量虽然增长较快,但其处理速度增长远跟不上CPU处理速度增长。
现有技术中,为了解决上述问题,从寄存器、L1/L2高度缓存、内存、闪存、到磁盘/光盘/存储网络,各级存储器硬件组成了一个金字塔结构,越是底层存储容量越大,访问速度也越慢;在操作系统层面通过缓存系统来对金字塔结构的存储硬件进行支持,预读算法作为缓存系统的重要组成部分,对提高I/O子系统的性能至关重要;预读算法通过预测即将访问的页面,并通过提前将待访问的数据批量读入内存缓存,来减少访问磁盘次数,降低等待磁盘的延迟,从而提高I/O子系统的性能。
开源的Linux操作系统中,提供了一种按需预读的算法,该算法能有效的识别顺序读,在随机读模式下不会带来额外的时间和空间开销,且实现简单,性能较高;但是该算法支持的预读模式较少,不支持前向顺序读、跨步读等读模式,且在已有的算法框架下,较难扩展支持新的读模式。
在著名的文件系统ZFS中,提供了一种预读算法,该算法记录系统中的读请求历史序列,新的读请求到来时,与读请求序列中的每一个读请求依次比对,如果成功匹配前向/后向顺序读、跨步读等其中之一,则合并配对的两个读请求,并触发预读操作;如果未匹配成功,则加入到读请求序列。该算法记录了较多的读请求历史信息,能支持更多的读模式,但是查找配对的过程较为费时(假设系统支持m种读模式,记录了n个读请求信息,则每次查找的复杂度为O(n*m)),特别是在多个线程并发读取时。
发明内容
本发明提供一种自适应预读方法及装置,以解决上述问题。
本发明提供一种自适应预读方法。上述方法包括以下步骤:
接收读请求后,获取所述读请求对应的读模式及与所述读模式对应的预读参数;
对所述读模式对应的读请求序列,按照预设更新匹配策略,进行更新匹配;
获取匹配的读请求序列的匹配计数并根据所述读请求序列的新的匹配计数,调整所述读请求序列在读请求序列排序链表中的位置后,按照获取的预读参数进行预读。
本发明还提供一种自适应预读装置,包括获取模块、更新匹配模块、排序预读模块;其中,所述获取模块通过所述更新匹配模块与所述排序预读模块相连;
所述获取模块,用于接收读请求后,获取所述读请求对应的读模式及与所述读模式对应的预读参数并将所述读模式、所述预读参数发送至所述更新匹配模块;
所述更新匹配模块,用于对所述读模式对应的读请求序列,按照预设更新匹配策略,进行更新匹配并将匹配结果发送至所述排序预读模块;
所述排序预读模块,用于获取匹配的读请求序列的匹配计数并根据所述读请求序列的新的匹配计数,调整所述读请求序列在读请求序列排序链表中的位置后,按照获取的预读参数进行预读。
通过以下方案:接收读请求后,获取所述读请求对应的读模式及与所述读模式对应的预读参数;对所述读模式对应的读请求序列,按照预设更新匹配策略,进行更新匹配;获取匹配的读请求序列的匹配计数并根据所述读请求序列的新的匹配计数,调整所述读请求序列在读请求序列排序链表中的位置后,按照获取的预读参数进行预读;实现了自适应的统计每种读模式匹配成功的概率,并在运行过程中动态调整,新的读请求优先匹配概率高的读模式,以此减少匹配的搜索次数,提高预读算法的效率。
通过以下方案:所述读模式包括顺序读模式、跨步读模式;其中,所述顺序读模式包括前向顺序读、后向顺序读;所述跨步读模式包括前向跨步读、后向跨步读;有效匹配多种读模式,并灵活适用于不同的应用场景。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例1的算法数据结构示意图;
图2为本发明实施例2的顺序读判定示意图;
图3为本发明实施例3的跨步读判定方法及预读长度示意图;
图4为本发明实施例4的预读算法处理流程图;
图5所示为本发明实施例5的自适应预读方法处理流程图;
图6所示为本发明实施例6的自适应预读装置结构图;
图7所示为本发明实施例7的又一自适应预读装置结构图;
图8所示为本发明实施例8的又一自适应预读装置结构图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1为本发明实施例1的算法数据结构示意图,如图1所示,读请求序列CNT使用双向链表来实现,即为图中标明的读请求链表;其中,有两个节点的读请求链表,表示已识别的跨步读序列;有一个节点的读请求链表,表示已识别的顺序读序列或未识别读模式的序列。
所有读请求序列也通过一双向链表进行链接,即为图中的读请求序列排序链表,该链表中的每一节点,保存对应读请求序列的概率统计值,该概率统计值表示该读请求序列被匹配成功的概率。算法实际实现时,该概率统计值使用读请求序列成功匹配次数表示。
应用层下发的读请求可由二元组R(offset,len)表示,为支持预读,增加prefetch_len表示预读的长度,增加prefetch_offset表示预读的偏移,由此成为四元组R(offset,len,prefetch_offset,prefetch_len)。
图2为本发明实施例2的顺序读判定示意图,如图2所示,展示了后向顺序读和前向顺序读的判定方法及预读长度。
后向顺序读需满足R2.offset=R1.offset+R1.len,另外R2触发的预读长度和起始偏移由以下规则确定:
如果R1.prefetch_len>=R2.len,则R2.prefetch_offset=R2.offset+R1.prefetch_len,R2.prefetch_len=R2.len;
如果R1.prefetch_len<R2.len,则R2.prefetch_offset=R2.offset+R2.len,R2.prefetch_len=R2.len;
前向顺序读需满足R2.offset+R2.len=R1.offset-1,另外R2触发的预读长度和起始偏移由以下规则确定:
如果R1.prefetch_len>=R2.len,则R2.prefetch_offset=R2.offset-R1.prefetch_len+R2.len,R2.prefetch_len=R2.len;
如果R1.prefetch_len<R2.len,则R2.prefetch_offset=R2.offset,R2.prefetch_len=R2.len。
图3为本发明实施例3的跨步读判定方法及预读长度示意图,如图3所示,后向跨步读需满足R2.offset=R1.offset+R1.len+stride,另外R2触发的预读长度和起始偏移由以下规则确定:
如果R1.prefetch_len>=R2.len,则R2.prefetch_offset=R2.offset+R2.len+stride,R2.prefetch_len=R2.len;
如果R1.prefetch_len<R2.len,R2需触发两次读操作,一是同步读,即把R2读请求尚未读入缓存的部分读入,即范围[R2.offset+R1.prefetch_len,R2.offset+R1.len]中的数据;二是预读,其中R2.prefetch_offset=R2.offset+R2.len+stride,R2.prefetch_len=R2.len。
前向跨步读需满足R2.offset+R2.len+stride=R1.offset-1,另外R2触发的预读长度和起始偏移由以下规则确定:
如果R1.prefetch_len>=R2.len,则R2.prefetch_offset=R2.offset-R2.len-stride,R2.prefetch_len=R2.len;
如果R1.prefetch_len<R2.len,R2需触发两次读操作,一是同步读,即把R2读请求尚未读入缓存的部分读入,即范围[R2.offset,R2.offset+R2.len-R1.prefetch_len]中的数据;二是预读,其中R2.prefetch_offset=R2.offset-R2.len-stride,R2.prefetch_len=R2.len。
另外跨步读判定模块还包括跨步读请求序列创建功能,判定一个跨步读请求序列成立,至少需要三个读请求,这三个读请求并未和任何读请求序列匹配并满足R2.offset-R1.offset-R1.len=R3.offset-R2.offset-R2.len,当R2.offset-R1.offset-R1.len>0时,为后向跨步读,R2.offset-R1.offset-R1.len<0时,为前向跨步读。若上述判定条件成立,则利用R2和R3创建一个跨步读请求序列。
图4为本发明实施例4的预读算法处理流程图,包括以下步骤:
步骤1:新的读请求到来时,首先进行顺序读模式判定,若判定为不属于顺序读模式(前向顺序读、后向顺序读)的一种,则跳转到步骤2,否则跳转到步骤4;
步骤2:继续进行跨步读模式判定,若判定为不属于跨步读模式(前向跨步读、后向跨步读)的一种,则跳转到步骤3,否则跳转到步骤4;
步骤3:若新的读请求无法与已确定的读模式匹配,则建立新的跨步读请求序列;若创建成功则跳转到步骤4,否则跳转到步骤8;
步骤4:更新匹配的读请求序列,对于顺序读请求序列,删除原读请求节点,添加当前读请求节点;对于跨步读请求序列,删除第一个读请求节点,添加当前读请求节点;
步骤5:增加匹配的读请求序列的匹配计数;
步骤6:根据该读请求序列的新的匹配计数,调整其在读请求序列排序链表中的位置;
步骤7:计算预读的偏移和大小,进行预读,跳转到步骤10;
步骤8:以当前读请求创建新的读请求序列,匹配计数初始化为1;
步骤9:将新的读请求序列添加到读请求序列排序链表的尾端
步骤10:算法结束。
图5所示为本发明实施例5的自适应预读方法处理流程图,包括以下步骤:
步骤501:接收读请求后,获取所述读请求对应的读模式及与所述读模式对应的预读参数;
进一步地,所述预读参数包括预读长度、预读偏移。
进一步地,所述读模式包括顺序读模式、跨步读模式;其中,所述顺序读模式包括前向顺序读、后向顺序读;所述跨步读模式包括前向跨步读、后向跨步读。
进一步地,所述前向顺序读、后向顺序读的判断过程如下:
读请求由二元组R(offset,len)表示时,若R2.offset+R2.len=R1.offset-1,则为前向顺序读;若R2.offset=R1.offset+R1.len,则为后向顺序读;其中,所述offset是指偏移参数、len是指长度参数。
进一步地,前向顺序读对应的预读长度、预读偏移为:
如果R1.prefetch_len>=R2.len,则R2.prefetch_offset=R2.offset-R1.prefetch_len+R2.len,R2.prefetch_len=R2.len;
如果R1.prefetch_len<R2.len,则R2.prefetch_offset=R2.offset,R2.prefetch_len=R2.len;其中,prefetch_len表示预读长度,prefetch_offset表示预读偏移。
进一步地,后向顺序读对应的预读长度、预读偏移为:
如果R1.prefetch_len>=R2.len,则R2.prefetch_offset=R2.offset+R1.prefetch_len,R2.prefetch_len=R2.len;
如果R1.prefetch_len<R2.len,则R2.prefetch_offset=R2.offset+R2.len,R2.prefetch_len=R2.len;其中,prefetch_len表示预读长度,prefetch_offset表示预读偏移。
进一步地,所述前向跨步读、后向跨步读的判断过程如下:
读请求由二元组R(offset,len)表示时,若R2.offset+R2.len+stride=R1.offset-1,则为前向跨步读;若R2.offset=R1.offset+R1.len+stride,则为后向跨步读;其中,所述offset是指偏移参数、len是指长度参数。
进一步地,前向跨步读对应的预读长度、预读偏移为:
如果R1.prefetch_len>=R2.len,则R2.prefetch_offset=R2.offset-R2.len-stride,R2.prefetch_len=R2.len。
如果R1.prefetch_len<R2.len,则R2.prefetch_offset=R2.offset-R2.len-stride,R2.prefetch_len=R2.len;其中,prefetch_len表示预读长度,prefetch_offset表示预读偏移。
进一步地,后向跨步读对应的预读长度、预读偏移为:
如果R1.prefetch_len>=R2.len,则R2.prefetch_offset=R2.offset+R2.len+stride,R2.prefetch_len=R2.len;
如果R1.prefetch_len<R2.len,R2.prefetch_offset=R2.offset+R2.len+stride,R2.prefetch_len=R2.len;其中,prefetch_len表示预读长度,prefetch_offset表示预读偏移。
进一步地,接收读请求后,获取所述读请求对应的读模式及与所述读模式对应的预读参数之前,还包括:初始化用于预读的全局数据结构。
进一步地,若所述读请求无法匹配与读模式对应的读请求序列时,则为所述读请求创建新的读请求序列并添加至读请求序列的排序链表。
进一步地,若所述读请求无法匹配与读模式对应的读请求序列时,则为所述读请求创建新的读请求序列并添加至读请求序列的排序链表后,将所述读请求序列的匹配次数记为1并将新的读请求序列添加到读请求序列排序链表的尾端。
进一步地,若所述读请求无法匹配与读模式对应的读请求序列时,则为所述读请求创建新的读请求序列并添加至读请求序列的排序链表的过程为:
若所述读请求无法匹配与读模式对应的读请求序列时,获取至少三个读请求且所述三个读请求并未和任何读请求序列匹配并满足预设条件时,创建新的跨步读请求序列并添加至读请求序列的排序链表。
其中,所述预设条件为:若为三个读请求即R1(offset,len,prefetch_offset,prefetch_len);R2(offset,len,prefetch_offset,prefetch_len);R3(offset,len,prefetch_offset,prefetch_len);其中,prefetch_len表示预读长度,prefetch_offset表示预读偏移;
则R2.offset-R1.offset-R1.len=R3.offset-R2.offset-R2.len,当R2.offset-R1.offset-R1.len>0时,为后向跨步读,R2.offset-R1.offset-R1.len<0时,为前向跨步读。
上述预设条件成立,则利用R2和R3创建一个新的跨步读请求序列。
步骤502:对所述读模式对应的读请求序列,按照预设更新匹配策略,进行更新匹配;
进一步地,对所述读模式对应的读请求序列,按照预设更新匹配策略,进行更新匹配的过程为:
若为顺序读请求序列,则删除原读请求节点,添加当前读请求节点;对于跨步读请求序列,删除第一个读请求节点,添加当前读请求节点。
步骤503:获取匹配的读请求序列的匹配计数并根据所述读请求序列的新的匹配计数,调整所述读请求序列在读请求序列排序链表中的位置后,按照获取的预读参数进行预读。
图6所示为本发明实施例6的自适应预读装置结构图,包括获取模块、更新匹配模块、排序预读模块;其中,所述获取模块通过所述更新匹配模块与所述排序预读模块相连;
所述获取模块,用于接收读请求后,获取所述读请求对应的读模式及与所述读模式对应的预读参数并将所述读模式、所述预读参数发送至所述更新匹配模块;
所述更新匹配模块,用于对所述读模式对应的读请求序列,按照预设更新匹配策略,进行更新匹配并将匹配结果发送至所述排序预读模块;
所述排序预读模块,用于获取匹配的读请求序列的匹配计数并根据所述读请求序列的新的匹配计数,调整所述读请求序列在读请求序列排序链表中的位置后,按照获取的预读参数进行预读。
图7所示为本发明实施例7的又一自适应预读装置结构图,在图6的基础上,增加了“创建模块”,所述创建模块与所述获取模块相连;
所述创建模块,用于若所述读请求无法匹配与读模式对应的读请求序列时,则为所述读请求创建新的读请求序列并添加至读请求序列的排序链表。
图8所示为本发明实施例8的又一自适应预读装置结构图,在图6的基础上,增加了“初始化模块”,所述初始化模块与所述获取模块相连;
所述初始化模块,用于初始化用于预读的全局数据结构。
通过以下方案:接收读请求后,获取所述读请求对应的读模式及与所述读模式对应的预读参数;对所述读模式对应的读请求序列,按照预设更新匹配策略,进行更新匹配;获取匹配的读请求序列的匹配计数并根据所述读请求序列的新的匹配计数,调整所述读请求序列在读请求序列排序链表中的位置后,按照获取的预读参数进行预读;实现了自适应的统计每种读模式匹配成功的概率,并在运行过程中动态调整,新的读请求优先匹配概率高的读模式,以此减少匹配的搜索次数,提高预读算法的效率。
通过以下方案:所述读模式包括顺序读模式、跨步读模式;其中,所述顺序读模式包括前向顺序读、后向顺序读;所述跨步读模式包括前向跨步读、后向跨步读;有效匹配多种读模式,并灵活适用于不同的应用场景。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种自适应预读方法,其特征在于,包括以下步骤:
接收读请求后,获取所述读请求对应的读模式及与所述读模式对应的预读参数;
对所述读模式对应的读请求序列,按照预设更新匹配策略,进行更新匹配;
获取匹配的读请求序列的匹配计数并根据所述读请求序列的新的匹配计数,调整所述读请求序列在读请求序列排序链表中的位置后,按照获取的预读参数进行预读;
其中,所述读模式包括顺序读模式、跨步读模式;所述顺序读模式包括前向顺序读、后向顺序读;所述跨步读模式包括前向跨步读、后向跨步读。
2.根据权利要求1所述的方法,其特征在于,所述预读参数包括预读长度、预读偏移。
3.根据权利要求2所述的方法,其特征在于,对所述读模式对应的读请求序列,按照预设更新匹配策略,进行更新匹配的过程为:
若为顺序读请求序列,则删除原读请求节点,添加当前读请求节点;对于跨步读请求序列,删除第一个读请求节点,添加当前读请求节点。
4.根据权利要求1所述的方法,其特征在于,若所述读请求无法匹配与读模式对应的读请求序列时,则为所述读请求创建新的读请求序列并添加至读请求序列的排序链表。
5.根据权利要求4所述的方法,其特征在于,若所述读请求无法匹配与读模式对应的读请求序列时,则为所述读请求创建新的读请求序列并添加至读请求序列的排序链表后,还包括:
将所述读请求序列的匹配次数记为1并将新的读请求序列添加到读请求序列排序链表的尾端。
6.根据权利要求1所述的方法,其特征在于,接收读请求后,获取所述读请求对应的读模式及与所述读模式对应的预读参数之前,还包括:初始化用于预读的全局数据结构。
7.一种自适应预读装置,其特征在于,包括获取模块、更新匹配模块、排序预读模块;其中,所述获取模块通过所述更新匹配模块与所述排序预读模块相连;
所述获取模块,用于接收读请求后,获取所述读请求对应的读模式及与所述读模式对应的预读参数并将所述读模式、所述预读参数发送至所述更新匹配模块;
所述更新匹配模块,用于对所述读模式对应的读请求序列,按照预设更新匹配策略,进行更新匹配并将匹配结果发送至所述排序预读模块;
所述排序预读模块,用于获取匹配的读请求序列的匹配计数并根据所述读请求序列的新的匹配计数,调整所述读请求序列在读请求序列排序链表中的位置后,按照获取的预读参数进行预读;
其中,所述读模式包括顺序读模式、跨步读模式;所述顺序读模式包括前向顺序读、后向顺序读;所述跨步读模式包括前向跨步读、后向跨步读。
8.根据权利要求7所述的装置,其特征在于,还包括创建模块;所述创建模块与所述获取模块相连;
所述创建模块,用于若所述读请求无法匹配与读模式对应的读请求序列时,则为所述读请求创建新的读请求序列并添加至读请求序列的排序链表。
9.根据权利要求7所述的装置,其特征在于,还包括初始化模块;其中,所述初始化模块与所述获取模块相连;
所述初始化模块,用于初始化用于预读的全局数据结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510429021.XA CN105094701B (zh) | 2015-07-20 | 2015-07-20 | 一种自适应预读方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510429021.XA CN105094701B (zh) | 2015-07-20 | 2015-07-20 | 一种自适应预读方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105094701A CN105094701A (zh) | 2015-11-25 |
CN105094701B true CN105094701B (zh) | 2018-02-27 |
Family
ID=54575261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510429021.XA Active CN105094701B (zh) | 2015-07-20 | 2015-07-20 | 一种自适应预读方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105094701B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111881096B (zh) * | 2020-07-24 | 2022-06-17 | 北京浪潮数据技术有限公司 | 一种文件读取方法、装置、设备及存储介质 |
CN113377725B (zh) | 2021-08-13 | 2021-11-12 | 苏州浪潮智能科技有限公司 | 一种内核客户端的预读方法、系统及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5410653A (en) * | 1992-06-16 | 1995-04-25 | International Business Machines Corporation | Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length |
US6721870B1 (en) * | 2001-06-12 | 2004-04-13 | Emc Corporation | Prefetch algorithm for short sequences |
CN103250141A (zh) * | 2010-12-01 | 2013-08-14 | 国际商业机器公司 | 联网的客户端-服务器体系结构中的预读处理 |
CN104715048A (zh) * | 2015-03-26 | 2015-06-17 | 浪潮集团有限公司 | 一种文件系统缓存预读取方法 |
-
2015
- 2015-07-20 CN CN201510429021.XA patent/CN105094701B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5410653A (en) * | 1992-06-16 | 1995-04-25 | International Business Machines Corporation | Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length |
US6721870B1 (en) * | 2001-06-12 | 2004-04-13 | Emc Corporation | Prefetch algorithm for short sequences |
CN103250141A (zh) * | 2010-12-01 | 2013-08-14 | 国际商业机器公司 | 联网的客户端-服务器体系结构中的预读处理 |
CN104715048A (zh) * | 2015-03-26 | 2015-06-17 | 浪潮集团有限公司 | 一种文件系统缓存预读取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105094701A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7512747B2 (en) | Method and apparatus for efficiently supporting multiple one-time table access operations in a hierarchical memory setting | |
US20180150364A1 (en) | Cached data replication for cache recovery | |
US9244980B1 (en) | Strategies for pushing out database blocks from cache | |
CN104063330B (zh) | 数据预取方法及装置 | |
US8612689B2 (en) | Stable adaptive replacement cache processing | |
CN101841473B (zh) | Mac地址表更新方法及装置 | |
CN101887398B (zh) | 一种动态提高服务器输入输出吞吐量的方法和系统 | |
CN101221538B (zh) | 实现对缓存中数据快速查找的系统和方法 | |
CN108139872A (zh) | 一种缓存管理方法、缓存控制器以及计算机系统 | |
CN112379849B (zh) | 基于序列可预测的并行深度学习训练数据输入方法和系统 | |
CN105404595B (zh) | 缓存管理方法及装置 | |
CN112667528A (zh) | 一种数据预取的方法及相关设备 | |
CN106569963A (zh) | 缓存方法和装置 | |
CN106484633A (zh) | 一种缓存数据的方法及装置 | |
US9535843B2 (en) | Managed memory cache with application-layer prefetching | |
CN105094701B (zh) | 一种自适应预读方法及装置 | |
US11593268B2 (en) | Method, electronic device and computer program product for managing cache | |
CN1849591A (zh) | 使用高速缓存未命中模式来寻址跨距预测表 | |
US9367454B2 (en) | Address index recovery using hash-based exclusive or | |
CN107888687A (zh) | 一种基于分布式存储系统的代理客户端存储加速方法及系统 | |
US20080059714A1 (en) | System, method and storage medium for prefetching via memory block tags | |
Zhou et al. | Gas: A heterogeneous memory architecture for graph processing | |
CN116955213A (zh) | 一种基于Caffeine优化的缓存方法及装置 | |
CN101853218B (zh) | 用于磁盘阵列的读取方法和系统 | |
CN116560562A (zh) | 一种读、写数据方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180827 Address after: 200436 Room 411, No. three, JIANGCHANG Road, Jingan District, Shanghai, 411 Patentee after: Shanghai wave Cloud Computing Service Co., Ltd. Address before: 100085 floor 1, C 2-1, No. 2, Shang Di Road, Haidian District, Beijing. Patentee before: Electronic information industry Co.,Ltd of the tide (Beijing) |