一种在数据存储系统中预取数据的方法

文档序号:6381714阅读:309来源:国知局
专利名称:一种在数据存储系统中预取数据的方法
技术领域
本发明涉及计算机存储系统性能的改进技术,具体来说是涉及一种在数据存储系统中预取数据的方法。
背景技术
在改善存储系统性能的研究中,磁盘阵列技术(RAID)是解决计算机外存I/O瓶颈问题的有效方法之一。而在众多用于提高磁盘阵列性能的方法当中,Cache技术则是一个普遍使用的重要方法。由于空间局部性好的Cache预读算法能够有效提高Cache读命中率,所以针对Cache预读算法的研究已有不少。
目前已经采用或提出的Cache预读算法有顺序预读算法、整磁道预读算法和TIP方法。而这些预读算法的侧重点都在于如何预取,而对于预取的策略问题却较少涉及或未详细分析。
IBM的专利6272590提出如下预取策略如果当前读请求数据所在逻辑分条单元(N)相邻的分条单元(N-1)在Cache中命中或部分命中,则预取分条单元(N)到Cache中;否则不进行预取;在满足前述的前提下,如果该请求所在物理分条单元M相邻的物理分条单元(M-1)在Cache中命中或部分命中,则预取分条单元(M)和分条单元(M+1)到Cache中。
通过例子来说明Cache是如何针对主机读请求按照上述策略进行预取的。如图1所示,为磁盘数据分布示意图。其中,有两个分条分别标识0和1,每个分条上有两个数据分条单元,0~15扇区为一个分条单元,其余类推。
图2为读请求及相应的预取结果示意图,具体为最初Cache为空,主机读请求为0~7扇区,此时Cache未找到与读请求逻辑地址相邻的分条单元,因此不做任何预取,只取0~7扇区,而未将分条单元90取满。主机读请求为16~23扇区,即逻辑分条单元92时,由于Cache中有逻辑相邻分条单元90,因此Cache将该分条单元92预取满。而在主机读请求为32~39扇区,即逻辑分条单元94时,由于Cache中有逻辑相邻分条单元92并且有物理相邻分条单元90,因此Cache将该分条单元94预取满,且预取相邻的物理分条单元98。
显然,上述现有专利技术属于顺序预读算法的一种,其是通过判断读请求的连续性,减少连续请求需要的预取数。由于该专利技术对主机读请求的类型判断只有顺序和非顺序的区别,因此无法对每种读请求采用更精确的预取策略。且该专利技术中针对主机读请求数据都预读整个分条单元,写入Cache,从而导致随机读请求污染Cache的程度比较高。

发明内容
本发明提出了一种在数据存储系统中预取数据的方法,以解决现有技术中对主机读请求的类型判断不全面、预取精确不够而导致随机读请求污染Cache的程度较高的问题。
为此,本发明提供如下技术方案一种在数据存储系统中预取数据的方法,其是在数据存储系统中将数据存储磁盘中的数据预取到高速缓存,其中,该数据存储磁盘包含有若干个分条,每个分条又包含有若干个分条单元;该高速缓存包含有数据缓存和地址缓存;其中,所述方法包含有以下步骤向所述的数据存储系统读请求数据;确定该读请求的起始地址(LBA)、请求长度(LEN)以及该读请求所涉及的分条单元(N)或分条单元区域(N,N+1......N+m)(m为自然数);判断该读请求数据在数据缓存或地址缓存的命中情况,再进一步判断与该读请求所属的分条单元(N)相邻的分条单元(N-1)在数据缓存或地址缓存的命中情况,以确定是否需要预取数据以及预取那些数据;如果确定该读请求数据为连续数据,则从数据存储磁盘预取包含该读请求的分条单元(N)和与其相邻的分条单元(N+1),或包含该读请求的分条单元区域(N,N+1......N+m)和与其相邻的分条单元(N+m+1),到数据缓存;如果确定该读请求数据为热点数据,则从数据存储磁盘预取包含该读请求的分条单元(N)到数据缓存。
其中,该方法还进一步包含有如果确定该读请求数据为随机数据,则从数据存储磁盘预取该读请求的地址到地址缓存。
所述的预取具体是指从数据存储磁盘中读取数据,并将其写到数据缓存。
其中,如果确定该读请求数据为连续数据,更具体是指如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址对齐,当该读请求在数据缓存部分命中,或者在地址缓存命中,或者在两部分均未命中,则进一步当与该分条单元(N)相邻的分条单元(N-1)在数据缓存全部命中或在地址缓存命中,则从数据存储磁盘读满包含该读请求的分条单元(N)和与其相邻的分条单元(N+1),并写到数据缓存;如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址不对齐,当该读请求在地址缓存命中,则进一步当与该分条单元(N)相邻的分条单元(N-1)在数据缓存全部命中或在地址缓存命中,则从数据存储磁盘读满包含该读请求的分条单元(N)和与其相邻的分条单元(N+1),并写到数据缓存。
如果该读请求数据为连续数据,更具体是指如果该读请求的起始地址(LBA)与该读请求所涉及的分条单元区域(N,N+1......N+m)的起始地址对齐,当与该分条单元区域(N,N+1......N+m)相邻的分条单元(N-1)在数据缓存全部命中或在地址缓存命中,则从数据存储磁盘读满分条单元区域(N,N+1......N+m,N+m+1),并写到数据缓存;如果该读请求的起始地址(LBA)与该读请求所涉及的分条单元区域(N,N+1......N+m)的起始地址不对齐,当该读请求在地址缓存命中,则进一步当与该分条单元区域(N,N+1......N+m)相邻的分条单元(N-1)在数据缓存全部命中或在地址缓存命中,则从数据存储磁盘读满分条单元区域(N,N+1......N+m,N+m+1),并写到数据缓存。
如果确定该读请求数据为热点数据,更具体是指如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址对齐,当该读请求在数据缓存部分命中或在地址缓存命中,则进一步当与该分条单元(N)相邻的分条单元(N-1)在数据缓存部分命中,或在数据缓存或地址缓存均未命中,则从数据存储磁盘读满包含该读请求的分条单元(N),并写到数据缓存;如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址不对齐,则当该读请求在数据缓存部分命中,则从数据存储磁盘读满包含该读请求的分条单元(N),并写到数据缓存;如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址不对齐,当该读请求在地址缓存命中,则进一步当与该分条单元(N)相邻的分条单元(N-1)在数据缓存部分命中,或在数据缓存或地址缓存均未命中,则从数据存储磁盘读满包含该读请求的分条单元(N),并写到数据缓存。
如果确定该读请求数据为随机数据,更具体是指如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址对齐,当该读请求在该数据缓存或地址缓存均未命中,则进一步当与该分条单元(N)相邻的分条单元(N-1)在数据缓存部分命中,或在数据缓存或地址缓存均未命中;则从数据存储磁盘读出该读请求的地址,并写到该地址缓存;如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址不对齐,当该读请求在该数据缓存或地址缓存均未命中,则从数据存储磁盘读出该读请求的地址,并写到该地址缓存。
所述的数据存储系统更具体是指廉价磁盘冗余阵列RAID磁盘系统。
所述的数据缓存采用最近最少使用(LRU)算法进行管理。
所述的地址缓存采用先进先出(FIFO)算法进行管理。
如果确定该读请求数据在数据缓存中全部命中,则不做预取操作。
另外,如果确定该读请求数据是热点非连续数据,则预取分条单元到数据缓存;如果确定该读请求数据是一般连续数据,则预取分条到数据缓存;如果确定该读请求数据是大量连续数据,则预取多个固定分条到数据缓存,如果每次的预取量随着数据连续性的增加而加大,则预取多个分条到数据缓存(Data Cache);如果确定该读请求数据是极大量连续数据,则预取整个磁道到数据缓存。
本发明的主要目的在于提高存储系统中高速缓存Cache的读效率,通过对主机读请求类型的精确判断,根据判断做出相应的预取策略对于连续数据,可以做大量的预取,如若干个分条单元、若干个分条、或整个磁道;对于热点数据,可以做一定的预取,如分条单元或分条;对于非连续非热点的随机数据,为了避免污染高速缓存Cache,可以不写到数据缓存(Data Cache)而只是将其地址写到地址缓存(AddressCache),以便为其他读请求数据的预取处理。本发明通过上述预取策略,最大程度地提高系统的读命中率,同时也大大降低了随机读请求污染存储系统中高速缓存Cache的程度。
下面结合附图和具体实施例来详细描述本发明。


图1是现有技术中磁盘数据分布示意图;图2是针对图1的磁盘数据的读请求及相应的预取结果示意图;图3是本发明所采用的存储系统体系结构框图;图4是本发明所采用的Cache结构示意图;图5是本发明读处理的各种情形划分示意图。
具体实现方式首先介绍一下本发明的系统架构。本发明存储系统架构是采用通用的系统架构,如图3所示,主机1的读写请求经过光纤通道/SCSI总线到达阵列控制系统2,阵列控制器2对读写请求进行一番处理,再通过光纤通道/SCSI总线交由相应磁盘3处理。其中,阵列控制系统2包括虚线框中的四个模块,其功能简述如下目标器管理模块21负责和主机操作系统及Cache模块的接口,该模块接收来自主机的命令,进行相应的处理和转换后,转发至Cache模块继续处理;Cache管理模块22负责处理数据读写时内存块的管理和调度,如目标器模块发来一个读命令,Cache负责查找是否命中,若命中则直接返回给目标器模块;若没命中,则根据相应的算法给它分配内存块,再把命令交给RAID管理模块来处理;RAID管理模块23负责管理RAID中虚拟盘到物理盘的映射转换和接收及处理来自Cache的任务,负责整个RAID系统的错误处理,包含对各种RAID级别的处理模块;启动器管理模块24负责接收来自RAID管理模块的命令,将其转换为具体的SCSI命令,并通过SCSI总线将其发给某个通道上的某个硬盘,然后由硬盘执行具体的SCSI命令从而完成任务。
本发明所述的高速缓存Cache采用如图4所示的结构。其是分为数据缓存(Data Cache)和地址缓存(Address Cache)。其中,地址Cache仅记录最近访问的地址,采用先进先出(FIFOFirst In First Out)算法进行管理,即当地址缓存(Address Cache)空间超过给定值时,根据FIFO原则进行淘汰;而数据缓存(Data Cache)记录最近访问的地址和数据,采用最近最少使用(LRULeast Recently Used)算法进行管理,即当数据Cache空间超过给定值时,根据LRU原则进行淘汰。
本发明根据Cache中的历史数据来判断主机读请求的类型,其判断标准大体分为两种连续性和热点性。其中,连续数据是指主机请求是连续数据请求,热点数据指的是某段时间内频繁访问的数据。其中,极大量连续数据的大量连续,定义为存在满分条N,N+1...,N+m,m值大于一定值时,认为是大量连续。而对于主机读请求的分类情况以及针对每种情况所采用的预取策略,如图5所示,详细描述如下将主机读请求按照分条单元对齐方式以及读请求涉及的分条单元区域进行分类,如图5所示分为四个类别。确定该读请求的起始地址(LBA)、请求长度(LEN)以及该读请求所属的分条单元(N)或所涉及的分条单元区域(N,N+1......N+m)(m为自然数)。
类别一、对于读请求所属单个分条单元(N),并且该读请求的起始地址(LBA)与该分条单元(N)的起始地址对齐的情况,进一步细化为以下3种情形1、当主机读请求经查找后在数据缓存(Data Cache)全部命中,则直接从数据存储磁盘中将该读请求数据读出,不预取数据。
2、当主机读请求经查找后在数据缓存(Data Cache)部分命中,或在地址缓存(Address Cache)命中,则需进一步判断与该分条单元(N)相邻的分条单元(N-1)是否在数据缓存(Data Cache)或地址缓存(Address Cache)命中,其情况为1)若该分条单元(N-1)在数据缓存(Data Cache)全部命中或在地址缓存(Address Cache)命中,则系统认为该读请求是连续读请求,要进行大量数据的预取,即从数据存储磁盘(M)预取包含该读请求在内的分条单元(N)和与其相邻的分条单元(N+1),并写到数据缓存(DataCache)中,将其数据和对应的地址均记录下来;2)若该分条单元(N-1)在数据缓存(Data Cache)部分命中,或在数据缓存(Data Cache)或地址缓存(Address Cache)均未命中,则系统认为该读请求是热点数据读请求,要进行一定数据的预取,即从数据存储磁盘预取包含该读请求在内的分条单元(N)并写到数据缓存(Data Cache)中,将其数据和对应的地址均记录下来。
3、当主机读请求经查找后在数据缓存(Data Cache)或地址缓存(Address Cache)中均未命中,则需进一步判断与该分条单元(N)相邻的分条单元(N-1)是否在数据缓存(Data Cache)或地址缓存(AddressCache)命中,其情况为1)、若该分条单元(N-1)在数据缓存(Data Cache)全部命中或在地址缓存(Address Cache)命中,则系统认为该读请求是连续读请求,要进行大量数据的预取,即从数据存储磁盘预取包含该读请求在内的分条单元(N)和与其相邻的分条单元(N+1),并写到数据缓存(Data Cache)中,将其数据和对应的地址均记录下来;2)、若该分条单元(N-1)在数据缓存(Data Cache)部分命中,或在数据缓存(Data Cache)或地址缓存(Address Cache)均未命中,则系统认为该读请求是随机数据读请求,只需要从数据存储磁盘读出该读请求的地址,并写到该地址缓存(Address Cache)。
类别二、对于读请求所属单个分条单元(N),并且该读请求的起始地址(LBA)与该分条单元(N)的起始地址不对齐,而是该读请求的起始地址(LBA)在该分条单元(N)之内的情况,进一步细化为以下4种情形1、当主机读请求经查找后在数据缓存(Data Cache)全部命中,则直接从数据存储磁盘中将该读请求数据读出,不再做预取数据的操作。
2、当主机读请求经查找后在数据缓存(Data Cache)部分命中,则系统认为该读请求是热点数据读请求,要进行一定数据的预取,即从数据存储磁盘预取包含该读请求在内的分条单元(N)并写到数据缓存(DataCache)中,将其数据和对应的地址均记录下来。
3、当主机读请求经查找后在地址缓存(Address Cache)命中,则需进一步判断与该分条单元(N)相邻的分条单元(N-1)是否在数据缓存(Data Cache)或地址缓存(Address Cache)命中,如果该分条单元(N-1)在数据缓存(Data Cache)全部命中或在地址缓存(Address Cache)命中,则系统认为该读请求为连续读请求,要进行大量数据的预取,即从数据存储磁盘预取包含该读请求在内的分条单元(N)和与其相邻的分条单元(N+1),并写到数据缓存(Data Cache)中,将其数据和对应的地址均记录下来;否则,系统认为该读请求是热点数据读请求,要进行一定数据的预取,即从数据存储磁盘预取包含该读请求在内的分条单元(N)并写到数据缓存(Data Cache)中,将其数据和对应的地址均记录下来。
4、当主机读请求经查找后在数据缓存(Data Cache)或地址缓存(Address Cache)均未命中,则系统认为该读请求是随机数据读请求,只需要则从数据存储磁盘读出该读请求的地址,并写到该地址缓存(Address Cache)。
类别三、对于读请求涉及分条单元区域(N,N+1......N+m)(m为自然数),并且该读请求的起始地址(LBA)与该分条单元区域(N,N+1......N+m)的起始地址对齐的情况,进一步细化为以下2种情形1、当主机读请求经查找后在数据缓存(Data Cache)全部命中,则直接从数据存储磁盘中将该读请求数据读出,不再做预取数据的操作。
2、当与主机读请求相邻的分条单元(N-1)经查找后在数据缓存(DataCache)全部命中,或在地址缓存(Address Cache)命中,则系统认为该读请求为连续读请求,要进行大量数据的预取,即从数据存储磁盘预取包含该读请求在内的分条单元区域(N,N+1......N+m),同时还要从数据存储磁盘预取分条单元(N+m+1),并写到数据缓存(Data Cache)中,将其数据和对应的地址均记录下来;否则只从数据存储磁盘预取包含该读请求在内的分条单元区域(N,N+1......N+m),并写到数据缓存(DataCache)中,将其数据和对应的地址均记录下来。
类别四、对于读请求涉及分条单元区域(N,N+1......N+m)(m为自然数),并且该读请求的起始地址(LBA)与该分条单元区域(N,N+1......N+m)的起始地址不对齐的情况,进一步细化为以下2种情形1、当主机读请求经查找后在数据缓存(Data Cache)全部命中,则直接从数据存储磁盘中将该读请求数据读出,不再做预取数据的操作。
2、当主机读请求涉及分条单元区域(N,N+1......N+m)之内的分条单元(N)在地址缓存(Address Cache)中命中,若与该分条单元区域(N,N+1......N+m)相邻的分条单元(N-1)经查找后在数据缓存(DataCache)全部命中,或在地址缓存(Address Cache)命中,则系统认为该读请求为连续读请求,要进行大量数据的预取,即从数据存储磁盘预取包含该读请求在内的分条单元区域(N,N+1......N+m),同时还要从数据存储磁盘预取分条单元(N+m+1),并写到数据缓存(Data Cache)中,将其数据和对应的地址均记录下来;否则只从数据存储磁盘预取包含该读请求在内的分条单元区域(N,N+1......N+m),并写到数据缓存(DataCache)中,将其数据和对应的地址均记录下来。
为了简化起见,上述四种情形的处理只是针对读请求的类型进行判断,并根据判断请求类型采用预取分条单元的策略。而在具体实现时,是可以针对不同的读请求类型采用不同的预取策略,下面针对本发明的另一实施例进行简单描述,其中,读请求类型的判断仍然按照前述实施例的方法,只是针对不同的读请求类型采用另一种预取策略,其具体描述为对于随机数据的读请求,不进行预取操作;对于热点非连续数据的读请求,预取分条单元到数据缓存(DataCache);对于一般连续数据的读请求,预取分条到数据缓存(Data Cache);对于大量连续数据的读请求(大量连续定义为存在满分条N,N+1...N+m,m值大于一定值),预取多个固定分条到数据缓存(DataCache);如果每次的预取量随着数据连续性的增加而加大,则预取多个分条到数据缓存(Data Cache);对于极大量连续数据的读请求,预取整个磁道到数据缓存(DataCache)。
本发明通过对主机读请求类型的精确判断,并根据判断做出相应的预取策略对于连续数据,可以做大量的预取,如若干个分条单元、若干个分条、或整个磁道;对于热点数据,可以做一定的预取,如分条单元或分条;对于非连续非热点的随机数据,为了避免污染高速缓存Cache,可以不写到数据缓存(Data Cache)而只是将其地址写到地址缓存(Address Cache),以便为其他读请求数据的预取处理。本发明通过上述预取策略,最大程度地提高系统的读命中率,同时也大大降低了随机读请求污染存储系统中高速缓存Cache的程度。
权利要求
1.一种在数据存储系统中预取数据的方法,其特征在于,所述方法包含有以下步骤向所述的数据存储系统读请求数据;确定该读请求数据的起始地址(LBA)、请求长度(LEN)以及该读请求所涉及的分条单元(N)或分条单元区域(N,N+1……N+m)(m为自然数);判断该读请求数据在数据缓存或地址缓存的命中情况,再进一步判断与该读请求所属的分条单元(N)相邻的分条单元(N-1)在数据缓存或地址缓存的命中情况,以确定是否需要预取数据以及预取那些数据;如果确定该读请求数据为连续数据,则从数据存储磁盘预取包含该读请求的分条单元(N)和与其相邻的分条单元(N+1),或包含该读请求的分条单元区域(N,N+1……N+m)和与其相邻的分条单元(N+m+1),到数据缓存;如果确定该读请求数据为热点数据,则从数据存储磁盘预取包含该读请求的分条单元(N)到数据缓存。
2.如权利要求1所述的一种在数据存储系统中预取数据的方法,其特征在于,该方法还进一步包含有如果确定该读请求数据为随机数据,则从数据存储磁盘预取该读请求的地址到地址缓存。
3.如权利要求1或2所述的一种在数据存储系统中预取数据的方法,其特征在于所述的预取具体是指从数据存储磁盘中读取数据,并将其写到数据缓存。
4.如权利要求1所述的一种在数据存储系统中预取数据的方法,其特征在于,如果确定该读请求数据为连续数据,更具体是指如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址对齐,当该读请求在数据缓存部分命中,或者在地址缓存命中,或者在两部分均未命中,则进一步当与该分条单元(N)相邻的分条单元(N-1)在数据缓存全部命中或在地址缓存命中,则从数据存储磁盘读满包含该读请求的分条单元(N)和与其相邻的分条单元(N+1),并写到数据缓存;如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址不对齐,当该读请求在地址缓存命中,则进一步当与该分条单元(N)相邻的分条单元(N-1)在数据缓存全部命中或在地址缓存命中,则从数据存储磁盘读满包含该读请求的分条单元(N)和与其相邻的分条单元(N+1),并写到数据缓存。
5.如权利要求4所述的一种在数据存储系统中预取数据的方法,其特征在于,如果确定该读请求数据为连续数据,更具体是指如果该读请求的起始地址(LBA)与该读请求所涉及的分条单元区域(N,N+1……N+m)的起始地址对齐,当与该分条单元区域(N,N+1……N+m)相邻的分条单元(N-1)在数据缓存全部命中或在地址缓存命中,则从数据存储磁盘读满分条单元区域(N,N+1……N+m,N+m+1),并写到数据缓存;如果该读请求的起始地址(LBA)与该读请求所涉及的分条单元区域(N,N+1……N+m)的起始地址不对齐,当该读请求在地址缓存命中,则进一步当与该分条单元区域(N,N+1……N+m)相邻的分条单元(N-1)在数据缓存全部命中或在地址缓存命中,则从数据存储磁盘读满分条单元区域(N,N+1……N+m,N+m+1),并写到数据缓存。
6.如权利要求1所述的一种在数据存储系统中预取数据的方法,其特征在于,如果确定该读请求数据为热点数据,更具体是指如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址对齐,当该读请求在数据缓存部分命中或在地址缓存命中,则进一步当与该分条单元(N)相邻的分条单元(N-1)在数据缓存部分命中,或在数据缓存或地址缓存均未命中,则从数据存储磁盘读满包含该读请求的分条单元(N),并写到数据缓存;如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址不对齐,则当该读请求在数据缓存部分命中,则从数据存储磁盘读满包含该读请求的分条单元(N);并写到数据缓存;如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址不对齐,当该读请求在地址缓存命中,则进一步当与该分条单元(N)相邻的分条单元(N-1)在数据缓存部分命中,或在数据缓存或地址缓存均未命中,则从数据存储磁盘读满包含该读请求的分条单元(N),并写到数据缓存。
7.如权利要求2所述的一种在数据存储系统中预取数据的方法,其特征在于,如果确定该读请求数据为随机数据,更具体是指如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址对齐,当该读请求在该数据缓存或地址缓存均未命中,则进一步当与该分条单元(N)相邻的分条单元(N-1)在数据缓存部分命中,或在数据缓存或地址缓存均未命中;则从数据存储磁盘读出该读请求的地址,并写到该地址缓存;如果该读请求的起始地址(LBA)与该读请求所在的分条单元(N)的起始地址不对齐,当该读请求在该数据缓存或地址缓存均未命中,则从数据存储磁盘读出该读请求的地址,并写到该地址缓存。
8.如权利要求4或5或6或7所述的一种在数据存储系统中预取数据的方法,其特征在于如果确定该读请求数据在数据缓存中全部命中,则不做预取操作。
9.如权利要求1所述的一种在数据存储系统中预取数据的方法,其特征在于,该方法还包含有如果确定该读请求数据是热点非连续数据,则预取分条单元到数据缓存;如果确定该读请求数据是连续数据,则预取分条到数据缓存;如果确定该读请求数据是大量连续数据,则预取多个固定分条到数据缓存,如果每次的预取量随着数据连续性的增加而加大,则预取多个分条到数据缓存(Data Cache);如果确定该读请求数据是极大量连续数据,则预取整个磁道到数据缓存。
10.如权利要求1所述的一种在数据存储系统中预取数据的方法,其特征在于所述的数据存储系统更具体是指廉价磁盘冗余阵列RAID磁盘系统。
11.如权利要求1所述的一种在数据存储系统中预取数据的方法,其特征在于所述的数据缓存采用最近最少使用(LRU)算法进行管理。
12.如权利要求1所述的一种在数据存储系统中预取数据的方法,其特征在于所述的地址缓存采用先进先出(FIFO)算法进行管理。
全文摘要
本发明涉及一种在数据存储系统中预取数据的方法,通过对主机读请求类型的精确判断,并做出相应的预取策略对于连续数据,可以做大量的预取,如若干个分条单元、若干个分条、或整个磁道;对于热点数据,可以做一定的预取,如分条单元或分条;对于非连续非热点的随机数据,为了避免污染高速缓存,可以不写到数据缓存而只是将其地址写到地址缓存,以便为其他读请求数据的预取处理。本发明通过上述预取策略,最大程度地提高系统的读命中率,同时也大大降低了随机读请求污染存储系统中高速缓存的程度。
文档编号G06F12/08GK1652091SQ200410004118
公开日2005年8月10日 申请日期2004年2月7日 优先权日2004年2月7日
发明者黄玉环, 张粤, 张国彬, 陈绍元 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1