读优先高速缓存系统和方法

文档序号:6399451阅读:215来源:国知局
专利名称:读优先高速缓存系统和方法
技术领域
本发明一般地涉及数据存储磁盘驱动器。
背景技术
许多当前存储子系统具有由许多分开的磁盘驱动器后备(back up)的高速缓存控制器。到达存储子系统的写请求通常被高速缓存,并且完成状态立即返回。读请求首先从存储子系统高速缓冲存储器服务,并且仅当高速缓冲存储器取数失败时,该请求过滤到被管理的一个或多个磁盘驱动器。存储子系统的性能依赖于在可能的最短时间内读数据请求的完成和写数据请求的接受。修改包含在这种存储子系统中的磁盘驱动器的排队动作可以改进其性能。
大部分磁盘驱动器队列排序算法试图通过使用称作“最短访问时间优先”(SATF)算法用具有最少等待时间的最短查找时间排序它们队列中的所有命令,来使吞吐量达到最大。但是,如由本发明所认识到的,提交给磁盘驱动器的写请求固有地与读请求不同,因为使用存储子系统高速缓冲存储器,写请求的接受已经被满足,并且大部分对磁盘驱动器的写命令实际上是由存储子系统在内部产生以释放高速缓冲存储器资源的维护请求。另一方面,读请求是时间紧要的,因为它们属于存储子系统高速缓冲存储器取数失败,并且系统性能依赖于在可能的最短时间内满足这些请求。
尽管如此,虽然写请求没有读请求对于存储子系统性能那么重要,但是写请求的良好吞吐量仍然是希望的,以便保持存储子系统接受新的写请求的能力。已经做了上面批判的研究,解决方案在这里提供。

发明内容
一种用于服务读请求和写请求的磁盘驱动器使用这样的逻辑,包括确定至少一些写请求的预期访问时间(EAT,expected access time),以及给至少一些写请求的EAT加上处罚时间(penalty period)来提供修改的EAT。该逻辑也包括按照基于它们可能的修改EAT的顺序来满足读和写请求。
如果希望的话,单个预先确定的处罚时间可以用于所有写请求。可选地,第一处罚时间可以用于第一写请求,而第二处罚时间可以用于第二写请求。写请求的处罚时间可以基于高速缓冲存储器自由空间、写请求的类型和/或磁盘驱动器的性能来建立。无论如何,在优选实施方案中,逻辑可以确定读请求的EAT,并且一个或多个写请求的修改EAT小于读请求的EAT,使得写请求在读请求之前被满足。
在另一方面,用于数据存储子系统的磁盘驱动器包括至少一个存储磁盘和至少一个数据高速缓冲存储器。磁盘驱动器当可能时使用其高速缓冲存储器来满足读请求和写请求,否则使用磁盘来满足这些请求。磁盘驱动器包括用于确定至少需要磁盘访问的请求的预期访问时间(EAT)的装置,以及用于修改写请求的EAT的装置。
在又一个方面,计算机程序存储设备包含可由数字处理器执行的指令。这些指令包括准备至少部分基于处罚来延迟写请求的满足。


本发明的细节,关于其结构和操作,可以参考附图来最好地理解,其中相似的参考数字指的是相似部分,并且其中图1本系统的示意图;以及图2是每当新的命令被选来执行时可由磁盘驱动控制器执行的逻辑的流程图。
具体实施例方式
首先参考图1,用于满足由软件应用12(为了清楚仅单个应用12被显示)产生的读请求和写请求的系统被显示,总体上表示为10。系统10包括存储子系统14,后者又包括存储控制器16,存储控制器16访问固态高速缓冲存储器18和多个磁盘驱动器20来执行读请求和写请求。虽然为了清楚仅一个高速缓冲存储器18和一个磁盘驱动器20被显示,但是如果希望的话子系统14一般地将包括多个磁盘驱动器。每个磁盘驱动器20包括磁盘驱动控制器20a、多个数据存储磁盘20b以及固态高速缓冲存储器20c,并且按照下面由图2中所示的逻辑定义的顺序来满足从存储控制器16接受的读请求和写请求。
如这里所认识的,存储控制器16当可能时从高速缓冲存储器18来满足读请求,否则访问磁盘驱动器20。同样地,存储控制器16通过将写数据存储到高速缓冲存储器18中来满足写请求,并且在随后某个时间,作为维护操作将写数据转移到其磁盘驱动器20的一个中。由于这个原因,从应用12的观点来看,与完成写请求相比,满足需要磁盘驱动器20访问的读请求一般地是影响系统性能的更重要的任务,从应用的观点来看,写请求当数据最初写入到高速缓冲存储器18中时完成。存储控制器16试图保留尽可能多的读请求和写请求在其磁盘驱动器中,并且允许每个磁盘驱动器通过局部安排执行的顺序来使性能达到最优。每个磁盘驱动器20保持从存储控制器16接受的读和写请求的一个任务集,并且安排它们执行。因此,本发明认为虽然实现读请求一般地比完成写请求更重要,但是写请求必须在高活动性期间完成,即使某些读请求因此而被延迟。
在具有上面的认识后,注意力转到图2。在块22开始,从未完成命令的当前集选择命令。在块24,命令的预期访问时间(EAT)使用例如查找时间、等待时间以及成功地完成该命令的概率来常规地确定。
进行到判定菱形26,确定命令是否为写命令。如果是,逻辑移动到块30,并给检验中的写命令的EAT加上时间处罚来提供修改的EAT。处罚通常是正的,即修改的EAT将比原来的EAT长,但是在某些情况下(例如,当活动性高和高速缓冲存储器18自由空间低时),处罚可以是负的,以便保证写命令被完成从而高速缓冲存储器空间被释放。
在一种实施方案中,处罚可以是单个预先确定的处罚时间,其用于所有写请求。在其它实施方案中,处罚可以动态改变或相反,使得第一处罚时间可以用于第一写请求,而第二、不同的处罚时间可以用于第二写请求。例如,如果写请求已经很长时间没有被选择,特别是在高活动性的环境下,那么写请求的处罚时间可以相对短或者甚至是负的。另一方面,如果新命令到达磁盘驱动器的速率较低,那么处罚可以相对较长。此外,处罚可以基于写请求的类型来建立。并且,如果由例如响应时间度量的磁盘驱动器20的性能相对差,那么处罚可以动态地建立为较长,而当磁盘驱动器20的性能在可接受范围内或高于可接受阈值时,处罚较短。
从块30,或从判定菱形26得到否定的结果,逻辑移动到判定菱形32,其中确定当前EAT(其可能在块30被修改)是否比当前“最好”(即最短)EAT短。如果是,检验中的命令在块34被指定为“当前最好”。在判定菱形36,确定任务集里是否还存在EAT要计算的命令。如果有,逻辑回路返回到块22。否则,当EAT已经对任务集里的所有命令而计算时,逻辑通过执行当前“最好”命令而在块38结束。然后,逻辑重复在块22开始,在仍然在任务集里的那些命令和已经到达的任何新命令中选择下一个命令,假定在块38选择的命令是新的起点。
虽然在这里详细显示和描述的具体的读优先高速缓存系统和方法完全能够达到本发明的上述目的,但是应当理解,它是本发明的目前优选实施方案,因此代表由本发明广阔考虑的主题,本发明的范围完全包括对于本领域技术人员将是显然的其它实施方案,因此本发明的范围仅由附加的权利要求书限定,其中提到单数的元素并不仅指“一个且仅一个”除非明确地如此陈述,而是指“一个或多个”。对本领域技术人员已知或者随后变得已知的上述优选实施方案的元素的所有结构和功能等价物特意在此引入作为参考,并且包括在权利要求书。而且,设备或方法不必要满足本发明设法解决的每个问题,因为将在权利要求书中包括。此外,在本公开内容中的任何元素、组件或方法步骤并不是专有的,而不管元素、组件或方法步骤是否清楚地在权利要求书中叙述。在这里任何声明的元素并不在35 U.S.C.‘112第六节的条款下解释,除非该元素清楚地使用词组“用于...的装置”来叙述,或者在方法权利要求的情况下,元素叙述为“步骤”而不是“动作”。在这里缺少明确定义的情况下给出权利要求项,其具有不与本说明书和文件历史相矛盾的所有常规和习惯的意思。
权利要求
1.一种用于服务读请求和写请求的磁盘驱动控制器,包括用于执行下述方法动作的逻辑单元,所述方法动作包括确定至少一些写请求的预期访问时间(EAT);给至少一些写请求的EAT加上处罚时间来提供修改的EAT;以及按至少部分基于它们的修改EAT的顺序来满足读请求和写请求。
2.根据权利要求1的控制器,其中单个预先确定的处罚时间用于所有写请求。
3.根据权利要求1的控制器,其中至少第一处罚时间用于第一写请求,而第二处罚时间用于第二写请求。
4.根据权利要求3的控制器,其中写请求的处罚时间至少部分地基于下面至少一种来建立高速缓冲存储器自由空间、写请求的类型、写请求的传送长度、磁盘驱动器的性能。
5.根据权利要求1的控制器,其中控制器访问高速缓冲存储器和磁盘。
6.根据权利要求1的控制器,其中由逻辑单元执行的方法动作包括确定至少一些读请求的EAT,其中至少第一写请求的至少一个修改EAT小于至少第一读请求的至少一个EAT,从而第一写请求在第一读请求之前被满足。
7.一种数据存储系统,包括至少一个存储磁盘;至少一个数据高速缓冲存储器;以及至少一个磁盘驱动控制器,当可能时使用高速缓冲存储器来满足读请求和写请求,否则使用磁盘来满足这些请求,该控制器包括用于确定至少需要磁盘驱动器访问的请求的预期访问时间(EAT)的单元;以及用于修改写请求的EAT的单元。
8.根据权利要求7的系统,其中用于修改的单元给至少一些写请求的EAT加上处罚时间来提供修改的EAT,写请求至少部分基于它们的修改EAT来满足。
9.根据权利要求8的系统,其中单个预先确定的处罚时间用于所有写请求。
10.根据权利要求8的系统,其中至少第一处罚时间用于第一写请求,而第二处罚时间用于第二写请求。
11.根据权利要求10的系统,其中写请求的处罚时间至少部分基于现有的高速缓冲存储器自由空间来建立。
12.根据权利要求10的系统,其中写请求的处罚时间至少部分基于写请求的类型来建立。
13.根据权利要求10的系统,其中写请求的处罚时间至少部分基于磁盘驱动器的响应时间来建立。
14.根据权利要求10的系统,其中写请求的处罚时间至少部分基于写请求的传送长度来建立。
15.根据权利要求7的系统,其中用于修改的单元确定至少一些读请求的EAT,其中至少第一写请求的至少一个修改EAT小于至少第一读请求的至少一个EAT,从而第一写请求在第一读请求之前被满足。
16.一种包含可由数字处理器执行的指令的计算机程序存储设备,所述指令实施的方法动作包括至少部分基于处罚来相对于读请求来延迟写请求的满足。
17.根据权利要求16的设备,其中由指令实施的延迟动作包括确定至少一些写请求的预期访问时间(EAT);以及给至少一些写请求的EAT加上处罚时间来提供修改的EAT。
18.根据权利要求17的设备,其中单个预先确定的处罚时间用于所有写请求。
19.根据权利要求17的设备,其中至少第一处罚时间用于第一写请求,而第二处罚时间用于第二写请求。
20.根据权利要求19的设备,其中写请求的处罚时间至少部分基于下面至少一种来建立当前工作队列的长度、写请求的类型、磁盘驱动器的性能。
21.各个权利要求17的设备,其中由指令实施的方法动作包括确定至少一些读请求的EAT,其中至少第一写请求的至少一个修改EAT小于至少第一读请求的至少一个EAT,从而第一写请求在第一读请求之前被满足。
全文摘要
对磁盘驱动器的写请求的预期访问时间(EAT)基本上是写请求的预计服务时间的度量。由高速缓存存储控制器产生的对磁盘驱动器的写请求基本上是用来清理高速缓冲存储器的维护功能。磁盘驱动器用处罚来修改写命令的EAT,使得需要磁盘访问的读请求优先地满足。处罚可以是常量或者可以基于一个或多个因素来建立,并且如果需要清理充满需要降级到磁盘的写请求的高速缓冲存储器时,甚至可以是负的。
文档编号G06F12/08GK1550993SQ20041003481
公开日2004年12月1日 申请日期2004年4月14日 优先权日2003年4月16日
发明者詹姆斯·R·西普曼, 詹姆斯 R 西普曼 申请人:日立环球储存科技荷兰有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1