一种在高速缓存中预读的方法和装置的制造方法

文档序号:9547125阅读:412来源:国知局
一种在高速缓存中预读的方法和装置的制造方法
【技术领域】
[0001]本申请涉及计算机技术领域,更具体地,涉及一种在高速缓存中预读的方法和装置。
【背景技术】
[0002]预读是指文件系统为应用程序一次读出比预期更多的文件内容并缓存在高速缓存(CACHE)中,这样下一次读请求到来时直接从CACHE读取即可。当然,这个细节对应用程序透明,运行应用程序可能唯一感觉就是下次读取的速度会更快。
[0003]目前CACHE预读一般是基于逻辑(LV)卷的,当LV卷上的10流是顺序的时候,才会进行预读,这样前端业务10指令下来时,就不需要去访问磁盘,而是直接从CACHE获取数据返回,这样性能会有很大的提高。
[0004]但在流媒体的应用,同一个LV卷里,同时读写多个文件,进而导致整个LV卷有多个顺序的10流。由于多个顺序的10流组合后得到的10流不是顺序的,则无法预读,而需要从磁盘读取数据,降低性能。
[0005]另外,考虑到在流媒体的应用中,使用快放等非顺序播放操作,下发的10流是有规律的,并非常规的顺序10流,因而不能进行预读。

【发明内容】

[0006]本发明实施例提出一种在高速缓存中预读的方法,能够在流媒体应用中实现预读,进而提尚预读的效率。
[0007]本发明实施例还提出一种在高速缓存中预读的装置,能够在流媒体应用中实现预读,进而提高预读的效率。
[0008]本发明实施例的技术方案如下:
[0009]—种在高速缓存中预读的方法,所述方法包括:
[0010]高速缓存CACHE接收到的第一 10流可以与已经存在的顺序10流第二 10流形成连续的顺序10流第三10流,则第一 10流加入第二 10流,然后按照第三10流的长度和CACHE块的剩余容量顺序预读;
[0011]第一 10流与第二 10流无法形成连续的顺序10流,确定第一 10流与第二 10流的规律后,第一 10流加入第二 10流形成第四10流,然后按照所述规律和CACHE块的剩余容量依序预读。
[0012]所述按照第三10流的长度和CACHE块的剩余容量顺序预读包括:
[0013]按照第三10流的长度和CACHE块的剩余容量确定在CACHE块中可以预读的10流数目N;
[0014]在第三10流后顺序预读N个10流。
[0015]所述按照所述规律和CACHE块的剩余容量依序预读包括:
[0016]按照所述规律确定与第四10流顺序的10流,依照CACHE块的剩余容量确定在CACHE块中可以预读的10流数目Μ ;
[0017]在第四10流后依序预读Μ个10流。
[0018]所述方法进一步包括:
[0019]第一 10流已经存在于第二 10流中,则按照第二 10流的长度和CACHE块的剩余容量确定在CACHE块中可以预读的10流数目K ;
[0020]在第二 10流后顺序读取K个10流。
[0021]所述方法进一步包括:
[0022]第一 10流与第二 10流无法形成连续的顺序10流,且无法确定第一 10流与第二10流之间的规律,创建新的顺序10流第五10流,第一 10流加入第五10流;
[0023]按照第五10流的长度和CACHE块的剩余容量确定在CACHE块中可以预读的10流数目L;
[0024]在第五10流后顺序读取L个10流。
[0025]—种在高速缓存中预读的装置,所述装置包括:
[0026]判断模块,用于判断高速缓存CACHE接收到的第一 10流可以与已经存在的顺序10流第二 10流形成连续的顺序10流第三10流;第一 10流与第二 10流无法形成连续的顺序10流,确定第一 10流与第二 10流的规律;
[0027]控制模块,第一 10流可以与第二 10流形成第三10流时,将第一 10流加入第二 10流,然后按照第三10流的长度和CACHE块的剩余容量顺序预读;确定第一 10流与第二 10流的规律后,第一 10流加入第二 10流形成第四10流,然后按照所述规律和CACHE块的剩余容量依序预读。
[0028]所述控制模块进一步用于,按照第三10流的长度和CACHE块的剩余容量确定在CACHE块中可以预读的10流数目N ;在第三10流后顺序预读N个10流。
[0029]所述控制模块进一步用于,按照所述规律确定与第四10流顺序的10流,依照CACHE块的剩余容量确定在CACHE块中可以预读的10流数目Μ ;在第四10流后依序预读Μ个10流。
[0030]所述判断模块进一步用于,判断第一 10流已经存在于第二 10流中;
[0031]所述控制模块进一步用于,第一 10流已经存在于第二 10流时,按照第二 10流的长度和CACHE块的剩余容量确定在CACHE块中可以预读的10流数目K ;在第二 10流后顺序读取K个10流。
[0032]所述判断模块进一步用于,第一 10流与第二 10流无法形成连续的顺序10流,且无法确定第一 10流与第二 10流之间的规律,创建新的顺序10流第五10流,第一 10流加入第五10流;
[0033]所述控制模块进一步用于,按照第五10流的长度和CACHE块的剩余容量确定在CACHE块中可以预读的10流数目L ;在第五10流后顺序读取L个10流。
[0034]从上述技术方案中可以看出,在本发明实施例中CACHE接收到的第一 10流可以与已经存在的顺序10流第二 10流形成连续的顺序10流第三10流,则第一 10流加入第二 10流,然后按照第三10流的长度和CACHE块的剩余容量顺序预读;第一 10流与第二 10流无法形成连续的顺序10流,确定第一 10流与第二 10流的规律后,第一 10流加入第二 10流形成第四10流,然后按照所述规律和CACHE块的剩余容量依序预读。这样,无论第一 10流与第二 10流是否可以形成顺序10流,均可以在CACHE块中实现预读,进而能够在流媒体应用中实现预读,提高了预读的效率。
【附图说明】
[0035]图1为在高速缓存中预读的方法流程示意图;
[0036]图2为高速缓存中预读的装置结构示意图。
【具体实施方式】
[0037]为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0038]在本发明实施例中,第一 10流与第二 10流连续可以凑成连续的10流,然后根据CACHE块的剩余容量顺序预读;第一 10流与第二 10流不连续,但其之间有规律,第一 10流与第二 10流形成第四10流,然后根据CACHE块的剩余容量依序预读。在CACHE中将多个10流尽量凑成多个顺序的10流,这样能够在流媒体应用中实现预读,以提高预读的效率。
[0039]参见附图1为在高速缓存中预读的方法流程示意图,具体包括以下步骤:
[0040]101、判断第一 10流是否已存在于第二 10流中。
[0041]CACHE接收到一个新10流,称之为第一 10流。首先需要判断第一 10流是否已存在于第二 10流中,若第一 10流存在于第二 10流中,执行步骤102 ;如果第一 10流未存在于第二 10流中,执行步骤103。
[0042]102、第一 10流加入第二 10流中,预读10流。
[0043]第一 10流存在于第二 10流中,则说明第二 10流的长度大于第一 10流的长度。首先,确定CACHE块的剩余容量,依据第二 10流的长度可以判断在CACHE块的剩余资源中可以存储的10流数目K。在第二 10流后按照顺序读取K个10流,以供预读。
[0044]103、判断第一 10流与第二 10流形成连续的顺序10。
[0045]第一 10流与第二 10流可以形成连续的顺序10流,则执行步骤104 ;第一 10流与第二 10流不能形成连续的顺序10流,则执行步骤105。
[0046]104、第一 10流加入第二 10流,预读10流。
[0047]第一 10流与第二 10流可以形成连续的顺序10流,则说明第一 10流与第二 10流是可以顺序连接的。第一 10流与第二 10流形成连续的顺序10流即第三10流,显然第三10流的长度大于第一 10流的长度,也大于第二 10流的长度。
[0048]首先,确定CACHE块的剩余容量,依据第三10流的长度可以判断在CACHE块的剩余资源中可以存储的10流数目N
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1