分布式计算机系统中的资源的选择的制作方法

文档序号:6356901阅读:126来源:国知局
专利名称:分布式计算机系统中的资源的选择的制作方法
技术领域
本发明涉及分布式计算机系统,特别是涉及通过分布式计算机系统的组处理器(constituent processor)进行系统资源的选择。
背景技术
分布式计算机系统包括大量处理器,每个处理器均有其自身的本机存储器。所有这些处理器共享一公用存储器。公用存储器包括几个队列,队列中列出了用于等待执行的多个处理任务的指令。当处理器空闲时,其选择这些队列中的一个并执行在队列之前等待的处理任务。
在选择队列时,处理器试图使每一队列中的每一处理任务的等待时间最短。由于等待时间部分地取决于队列长度,因此对处理器而言,在选择队列前知道在每一队列中有多少任务在等待是有用的。
在一分布式计算机系统中,几个其他的处理器不断从队列中增加和删除处理任务。这使得每个队列的长度的变化不可预知。结果,为了使处理器知道队列的长度,必须花时间轮询队列。然而,在完成一处理任务的基础上,如果每个处理器要轮询每一队列,与选择队列相关联的普通费用将是令人不可接受的高。
分布式计算机系统偶尔与其他分布式计算机系统通信。像那样做,发送处理器从源分布式计算机系统发送一信息至目标分布式计算机系统上的组处理器之中的一个。这样做的先决条件是从目标系统的组处理器之中接收处理器的选择。
更合适地,发送处理器选择目标系统上最不忙的那个处理器作为接收处理器。然而,发送处理器面临一个类似于上述的选择队列时所面临的问题。除了轮询目标系统中的每个处理器外,没有别的简单且可靠的机械可用于识别哪个处理器最不繁忙。
发明概述选择接收处理器和选择队列的问题是在资源的随机参数基础上选择资源所存在的最普遍问题的一些例子。胜于试图确定每一资源随机参数的确定值,本发明方法使用每一可用资源随机参数的当前、或现在的值的评估而随机选择资源。
一种从多个资源中选择一个资源的方法,包括在资源的随机参数基础上为该资源确定一分值,并随后确定对应于该资源的间隔。间隔长度的选择取决于对于该资源的分值。接着,一随机数被产生,如果随机数落在为该资源确定的间隔的范围内则选择该资源。随机数可以、但不是必须均一地分布在与多个资源关联的所有间隔组中。
该方法因而具有旋转具有与备选资源一样多的狭槽的轮盘轮的性质,每个狭槽的长度依赖于与该狭槽关联的资源的随机参数的值。这就确保具有合意的随机参数值的资源最可能被选择,但所有资源均有一定被选择的概率。
在本发明的第一实施例中,资源被选择去作为一队列,且资源的随机参数是队列的队列长度。在本发明的第二实施例中,资源是一处理器,且随机参数是该处理器的工作量。
在两个例子中,方法包括从多个可用于选择的资源中为每个资源确定一分值。这包括评估该资源随机参数的现在的值,典型地是在其随机参数先前测量值基础上进行。在本发明的一个方面,先前测量值是正被讨论的资源的随机参数的最后一次(last-known)值或最近测量值。
与特定资源关联的间隔的长度取决于与该资源关联的分值。在本发明的一个实施例中,长度取决于为该资源标准化了的分值。为一资源确定的分值可以通过评测在多个资源中分配给每个资源的分值的和并以分值的和标准化分配给资源的分值而得以标准化。
本方法还包括一定时更新测量值的可选步骤,其基于随机参数的当前值的估计。在本发明的一个实例中,已被选择的资源还被询问以确定对于该资源的随机参数的当前值。该当前值即成为该资源随机参数的新的最近一次值。
本发明的这些及其他特征在下面的详细描述和附图中是很显然的。其中附图简要说明

图1所示为一数据存储系统;图2所示为图1的数据存储系统的本机高速缓存存储器及全局存储器的内容;图3为图解队列选择方法的流程图;图4为用于图3所示的队列选择方法的采样间隔;图5所示为图1的数据存储系统与远程数据存储系统通信;图6为图解一用于选择远程适配器(使用其进行通信)的方法的流程图;图7为用于图6所示远程适配器选择方法的采样间隔。
发明详述如图1所示,一用于实现资源选择方法的数据存储系统10包括几个与外部装置接口的适配器12。这些外部装置可以是数据存储装置14,如磁盘驱动器,在这种情况下适配器被称作“磁盘适配器”。外部装置也可是主机16,或由数据存储系统10的用户直接访问的处理系统,在这种情况下适配器被称作“主机适配器”。外部装置还可是用于镜像数据存储系统10中的数据的远程数据存储系统18,在这种情况下适配器被称作“远程适配器”。每一适配器12包括其自己的处理器20及处理器20可用的本机存储器22。
数据存储系统10还包括一所有适配器均可访问的公用存储器24。公用存储器24用作数据的临时存储的集结待命区。公用存储器24的使用减少了与访问大容量存储装置关联的等待时间,从而改善了数据存储系统10的性能。
数据存储系统10中的不同适配器12相互合作以确保从公用存储器24到或从大容量存储装置14、主机16以及镜像站点18的有序数据流。为有效合作,适配器12必须相互通信。该通信通过保持一个或多个队列26在公用存储器24的队列部分28中而得以实现,如图2所示。当适配器32要求一由另一适配器执行的特定任务时,其在队列部分28中的队列26上留下一请求该任务被执行的消息30。扫描队列的适配器34接着可遇到该消息30并执行该任务。
在本说明书的整个其余部分中,留下消息的适配器32以“请求适配器”名称提及,执行消息中指明的任务的适配器34则以“执行适配器”名称提及。当然,应该理解为这些均仅是逻辑名称。在数据存储系统10运行期间,磁盘适配器、主机适配器、或远程适配器中的每个在不同的时间均可担任请求适配器32或执行适配器34的角色。
在数据存储系统10中的某些任务是非常紧急的并必须迅速执行。其他的任务则对时间敏感度低一些。为适应这种情况,数据存储系统10分配不同的优先权给对列26。当请求适配器32具有一要被执行的任务时,其确定任务的优先权并将其放入队列26中,其优先权合乎任务的紧急性。
每一队列26包含变化数量的消息30,该数量被叫作队列长度。队列长度具有零下限,其上限取决于磁盘存储系统10的结构。在正常运行期间,请求适配器32添加新消息至队列26,执行适配器34执行消息中指明的请求并将那些消息从队列26中删除。结果,队列长度是一随时间变化的随机数。
当一执行适配器34变得空闲以执行以处理任务时,其选择一队列26并执行在该队列26中的由最上面的消息36指明的处理任务。执行适配器34选择队列26使得所有队列中的所有未决的消息的等待时间变得最短。在大多数情况下,这就要求执行适配器34选择具有最大队列长度的队列26。
由于队列长度是一随时间变化的随机数,执行适配器34在必须选择一队列26时,不能知道每一队列在此刻的确切长度。即使执行适配器34获得与轮询每个队列26相关的管理费用,其他的适配器12也可能从刚被执行适配器34询问过的队列26添加或删除消息30。这就导致执行适配器对队列长度的估计错误。
为避免执行适配器随时变得空闲要从队列之一执行一请求而不得不轮询每一队列26,执行适配器34在其本机存储器22中缓存一队列长度表38,该表列出在执行适配器34最后执行队列26上未决的请求时每一队列26的长度。队列长度表38中的表条目因而是对于队列26的最近一次队列长度。这些最后一次队列长度在执行适配器34选择队列26时用作队列长度的估计。
执行适配器34无论何时访问队列26以执行请求时,其更新队列长度表38中的队列条目。由于执行适配器34为了执行队列26上未决的请求已经不得不访问队列26,因而有少量与轮询队列26相关的额外管理费用,以获得其队列长度。
执行适配器34还维持一优先权表40,该表列出分配给每一队列26的优先权值。高优先权队列由优先权表40中的大整数表征,较低优先权队列则由优先权表40中的较小的整数表征。
现在参见图3,执行适配器34通过首先分配42一分值给每个队列26而选择一队列26。可通过以分配给队列26的优先权加权每一队列26的队列长度的估计而像那样做。其结果被叫作对于该队列26的“有效队列长度”。执行适配器34接着求和44所有队列26的有效队列长度并确定46一采样间隔48,该间隔具有等于该和的长度,如图4所示。
执行适配器34接着将采样间隔48划分50为与队列26数一样多的队列间隔52。每一队列间隔52具有对应于与其相关的队列26的有效队列长度的长度。在图示实施例中,每一队列间隔52的长度为由采样间隔48的长度标准化了的有效队列长度。此外,每一队列间隔52均与所有其他队列间隔分开,从而采样间隔上的每一点均与一个并仅为一个队列26相关。
一旦队列间隔50被确定,执行适配器34执行54一产生一随机数的随机数程序56(见图2),随机数的值均一分布在采样间隔48的范围内。随机数从而将具有一放于队列间隔52之一中的值,所有队列间隔52一起形成采样间隔48。随机数将在任何特定队列间隔52中的概率取决于对应该队列间隔的队列26的最近一次有效队列长度相对于所有其他队列的最近一次有效队列长度。
执行适配器34接着访问58对应于包含随机数的队列间隔52的队列26并执行60所选择的队列26中由最上面消息36指明的任务。一旦任务完成,执行适配器34从选择的队列26删除62最上面的消息36,并询问64所选择的队列26以获得其队列长度。执行适配器34接下来更新66对应于所选择队列26的队列长度表38中的条目。
通过使用本机缓存的最近一次队列长度以阐明当前有效队列长度的估计,上面描述的队列选择方法避免了为获得当前队列长度而轮询每一队列26。前述的队列选择方法因而可迅速选择一队列26,该队列最可能是最长有效队列长度,但不保证。因为每一队列26均有被选择的可能性,前述的队列选择方法同时避免了忽略任何一队列26。这就确保在具有低有效队列长度的队列上等待的任务在合理等待时期内仍然被执行。这还保证具有低有效队列长度的队列会偶尔被轮询以看其有效队列长度是否已改变。
数据存储系统10可被构置成可保持几个具有同样优先权的队列26。这样的数据存储系统10在负载平衡上可提供比仅具有单一队列的数据存储系统更大的灵活性。因为在这样的系统中,几个适配器可同时执行多个未决的请求。
前述方法还可在所有队列26均具有同样优先权的数据存储系统10中执行。在这样的数据存储系统10中,有效队列长度可被设为等于队列长度,在这种情况下,优先权表40是不必要的,或者优先权表40中的条目可设为互相相等。
前述方法可适应于在资源的随机参数基础上选择任何资源。在上面描述的应用中,资源是队列26,为选择提供基础的随机参数是该队列的长度。在下面的应用中,资源是远程镜像站点18上的远程适配器,为选择提供基础的随机参数是与远程适配器相关的处理工作量。
在两个例子中的区别在于在第一个例子中,最好选择具有高随机参数值的资源;而在第二个例子中,最好选择具有低随机参数值的资源。该区别是因为在第二个例子中,其是使用随机参数的倒数而不是直接使用随机参数。
参见图5,第一数据存储系统68有时与第二数据存储系统70通信。例如,当与第一数据存储系统68关联的主机适配器72向由与第二数据存储系统70关联的磁盘适配器镜像在镜像装置76控制器上的装置74写数据时,在第一数据存储系统68上的远程适配器80与第二数据存储系统70上所选择的远程适配器82建立通信。在第一数据存储系统68上的远程适配器被提及为“发送适配器”80,而在第二数据存储系统70上的远程适配器被提及为“接收适配器”82。每一远程适配器80、82均有其自己的处理器82及本机存储器84。
应该理解为“接收适配器”和“发送适配器”的名称均仅是逻辑名称。例如,第二数据存储系统70可具有镜像在第一数据存储系统68上的装置,在这种情况下,第二数据存储系统70的远程适配器82可用作发送适配器,而第一数据存储系统上的远程适配器80则可用作接收适配器。
在建立通信时,发送适配器80选择一可用接收适配器82。最好,发送适配器80选择最不忙的接收适配器82。然而,由于与接收适配器82通信所相关联的管理费用,发送适配器80轮询每一接收适配器82以确定哪一接收适配器82最不忙是不切实际的。
此外,发送适配器80不能确切知道在其选择接收适配器82时其所依赖的信息是否是准确的。例如,在被发送适配器80轮询和被发送适配器80请求执行一任务之间的短暂间隔中,接收适配器82可能已承担由其他发送适配器80发送的请求。
为避免不得不轮询每一接收适配器82,发送适配器80在其本机存储器84中保持一工作量表86,该表具有表示在发送适配器80最后与接收适配器82进行I/O事项时由每一接收适配器82承载的工作量的信息。与特定接收适配器82相关联的工作量因而是该接收适配器82的最近一次工作量。接收适配器选择方法使用工作量表86中的接收适配器的最近一次工作量来估计在发送适配器80选择接收适配器82时每一计数适配器82的忙碌情况。
发送适配器80更新为每一接收适配器82建立的工作量表88条目中的对应条目,只要其与该接收适配器82进行I/O事项。由于发送适配器80已经为了与适配器82进行I/O事项而不得不与接收适配器82建立通信,这就使得与为获得当前接收适配器82的忙碌程度测量而轮询接收适配器82相关的额外管理费用只有很少一点。响应于发送适配器80的轮询,接收适配器82提供一整数,该整数表示正在同时处理的任务的数量。
参见图6,要与其通信的接收适配器82的选择以发送适配器80分配88一分值给每一接收适配器82为开始。发送适配器80通过以一足够大的整数加权与接收适配器82相关的表条目的倒数而得以那样做,足够大的整数可避免在随后的步骤中进行耗时的浮点运算。所得的分值被称作为该接收适配器82的“倒转工作量”。发送适配器80接下来对所有接收适配器82的倒转工作量进行求和90,并确定92一长度等于该和的采样间隔94,如图7所示。
采样间隔94接着被分为96与接收适配器82的数量一样多的子间隔98。每个子间隔98具有对应于与其关联的接收适配器82的倒转工作量的长度。此外,每一子间隔98均与所有其他子间隔分开,从而采样间隔94上的每一点均与一个并仅为一个接收适配器82相关。
一旦子间隔被确定,发送适配器80执行100一产生一随机数的随机数程序102,随机数的值均一分布在采样间隔94上。随机数从而将具有一放于对应于接收适配器之一的子间隔98中的值。随机数将在对应于特定接收适配器82的子间隔98中的概率取决于该接收适配器82的倒转工作量相对于所有其他接收适配器的倒转工作量。
发送适配器80接着与所选择的接收适配器82建立104通信并发送106消息给所选择的接收适配器,所选择的接收适配器对应于与随机数值相关联的子间隔98。发送适配器80接下来询问108该接收适配器82以获得其工作量的新的估计值并更新110对应于该接收适配器82的工作量表86中的条目。
通过使用本机缓存的最近一次工作量而不是轮询每个接收适配器82以获得当前工作量,发送适配器80可迅速选择一接收适配器82,该接收适配器最可能是最小工作量的适配器,但不保证。因为每一接收适配器82均有被选择的可能性,前述的或然选择方法避免了忽略任何一接收适配器82。这就确保在接收适配器82之间的负载平衡。这还保证曾经被发现忙碌的接收适配器82会偶尔被轮询以看其是否变得相对空闲。
已描述的发明及优选实施例、我们所要求的新东西、以及由专利特许证所保护的内容是
权利要求
1.一种从多个资源选择一资源的方法,所述方法包括在所述资源的随机参数的基础上为所述资源确定一分值;确定对应于所述资源的间隔,所述间隔具有依赖于所述分值的长度;产生一随机数;及如果所述随机数在所述间隔之内则选择所述资源。
2.如权利要求1的方法,进一步包括询问所选择的资源以更新与该所述资源关联的所述随机参数的先前测量值。
3.如权利要求1的方法,其中确定所述分值包括在所述随机参数的先前测量值基础上估计所述随机参数的当前值。
4.如权利要求1的方法,进一步包括选择所述资源为具有不同工作量的处理器。
5.如权利要求4的方法,其中为所述资源确定一分值包括获得所述处理器的当前工作量的估计。
6.如权利要求1的方法,进一步包括选择所述资源为具有不同队列长度的队列,且其中确定所述的分值包括确定所述队列的有效队列长度。
7.如权利要求6的方法,其中确定所述的有效队列长度包括估计所述队列的队列长度并确定所述队列的一优先权,且其中确定所述分值包括以所述优先权加权所述队列长度。
8.一种用于从多个资源选择一资源的、其上具有已编码的软件的计算机可读媒体,所述软件包括用于下述步骤的指令在所述资源的随机参数的基础上为所述资源确定一分值;确定对应于所述资源的间隔,所述间隔具有依赖于所述分值的长度;产生一随机数;及如果所述随机数在所述间隔之内则选择所述资源。
9.如权利要求8的计算机可读媒体,其中资源是具有不同工作量的处理器。
10.如权利要求8的计算机可读媒体,其中资源是具有不同队列长度的队列,且其中确定所述分值包括确定所述队列的有效队列长度。
全文摘要
一种用于从多个资源选择一资源的方法,包括在该资源(44)的随机参数的基础上为该资源确定一分值(42),接着对应于该资源的间隔(46)也被确定并具有依赖于分值(50)的长度。特定资源接下来通过产生一随机数(54)并当随机数落在间隔之内时选择该资源(58)而被选择。
文档编号G06F9/46GK1507594SQ02809378
公开日2004年6月23日 申请日期2002年5月3日 优先权日2001年5月8日
发明者戴维·梅雷, 戴维 梅雷 申请人:伊姆西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1