存储器端存储请求管理的制作方法

xiaoxiao2020-7-22  9

专利名称:存储器端存储请求管理的制作方法
技术领域
本发明涉及存储请求管理,且更具体而言,涉及I/O请求的存储器端管理。
背景技术
数据库系统的主要作用是解释数据对象的高级抽象声明,且操纵和搜索这些对象。理想地,这些声明和操纵通过数据库系统被有效地解释为发送给简单的、线性寻址的、 封闭的、持续的存储装置的I/O请求。通常,数据库系统必须为多个应用执行这种解释。这些应用可以使用跨越不同用户和方案安全级别的多个数据库、应用类型、数据库会话类型以及I/O请求的优先权和类别。在很多情形中,I/O请求被发送到存储系统的顺序影响着系统的效率。例如,当小的高优先级I/O请求和大的低优先级I/O请求都需要被发送到存储系统时,在小的高优先级I/O请求之前发送大的低优先级I/O请求对于数据库服务器而言就不是高效的。已经开发了各种技术来确保I/O请求以智能方式发送到存储系统。例如,此处通过引用包括在此的名为“Management Of Shared Storage I/OResources”的美国专利申请 No. 11/716,364描述了用于在数据库服务器中将I/O请求排队且以智能方式将这些请求发布到存储系统的技术。然而,使得数据库服务器以智能方式发布I/O请求并不确保存储系统优化处理I/O请求。具体而言,存储系统典型地以先进先出(FIFO)为基础处理I/O请求。就这方面而言,存储系统从FIFO处理偏离,所述偏离涉及1/0请求的重新排序以改善磁盘效率。在I/ 0请求之后执行这种重新排序,而没有任何目的。因此,当多个数据库服务器向相同的存储系统(或者存储系统内的相同存储装置)发送用于多个数据库的1/0请求时,存储系统可能在处理较高优先级1/0之前终止处理较低优先级1/0请求,即使每个独立数据库服务器以最优的序列独立向存储系统发送其1/0请求。多种类型的工作负荷和数据库通常共享存储器。遗憾的是,在共享存储器上运行多种类型的工作负荷和数据库通常导致应用和混合工作负荷之间的性能和响应时间问题。 例如,对一个产品数据仓库进行大规模并行查询会影响对另一产品数据仓库的关键查询的性能。而且,数据仓库上的数据负荷会影响也运行在相同数据仓库上的关键查询的性能。通过过度供应存储系统可以减轻这些问题,但是这消除了共享存储器的成本节省益处。还可以在非峰值时间调度非关键任务,但是这种手工的处理是费力的。当数据库具有行为不协调的不同管理员时,这变得不可能。本部分中描述的方法是应当追求的方法,但是不必是原先考虑到或追求的方法。 因此,除非明确声明,不应当假设本部分中描述的任意方法限定仅包括在本部分中的现有技术。


在附图中,通过举例的方式而非限制的方式说明本发明,附图中,相似的参考标号表示相似的元件,且其中图1是配置成从多个I/O请求者接收I/O请求且智能地排列I/O请求的存储服务器的框图;图2是说明根据本发明的实施例,各个请求元数据值如何可以映射到消费者组的框图;图3是根据本发明的实施例的三阶段选择策略的框图;图4是说明根据本发明的实施例的逐幸存组策略的框图;图5是说明根据本发明的实施例的逐幸存组策略的两个阶段的框图;以及图6是可以实现本发明的实施例的计算装置的框图。
具体实施例方式下面的描述中,用于解释目的,涉及各种特定细节以提供本发明的透彻的理解。然而,很明显,本发明可以不使用这些特定细节实践。在其他情形中,以框图形式示出了已知结构和装置以避免不必要地模糊本发明。概览此处描述了用于至少部分地基于I/O请求的一个或多个逻辑特性在存储系统内管理I/O请求被存储系统处理的序列的技术。逻辑特性例如可以包括提交I/O请求的用户的身份、提交I/O请求的服务、I/O请求所针对的数据库、I/O请求映射的消费者组的指示、发布该I/O请求的原因、I/O请求的优先级类别等。这种逻辑特性基本不同于I/O请求的物理特性,I/O请求的物理特性诸如是I/O请求所针对的数据的存储位置以及该I/O请求指定的I/O操作中涉及的数据量。代替或除了在向存储系统发布I/O请求的I/O请求者内执行的任意管理,可以采用此处描述的内存储(in-Storage)I/0管理技术。当在此使用时,“I/O请求者”表示向存储系统发布I/O请求的任意实体。I/O请求者例如可以是响应于从数据库应用接收的数据库命令发布I/O请求的数据库服务器。然而,此处描述的技术不限于任意特定类型的I/O 请求者。因为存储系统处理引导到存储系统内的存储装置的所有I/O请求,存储系统比I/ 0请求者更好地用于做出关于如何调度已经引导到这些存储装置的I/O请求的智能调度判断。例如,存储系统能够判断目标为特定存储装置的高优先级I/O请求应在目标为相同存储装置的低优先级I/O请求之前被处理,即使两个请求来自不同I/O请求者且目标为两个不同的数据库。包含在存储系统内用于管理I/O请求的逻辑此处被称为存储系统的“存储服务器”。存储服务器可以通过在作为存储系统的一部分的处理器上执行的软件、通过硬布线逻辑、或者通过软件和硬件的任意组合实现。存储服务器接收了但仍未被发布的I/O请求(例如,已添加到存储系统的输出队列)此处被称为“悬置I/O请求”。已发布到存储装置但是仍未完成的I/O请求此处被称为“未决I/O请求”。与I/O请求相关的工作的逻辑特性通常对于存储系统并不可用。因此,在一个实施例中,I/O请求的逻辑特性以“请求元数据”的方式从其他实体被传递到存储系统。例如, 在一个实施例中,I/O请求者向存储服务器提供请求元数据以及I/O请求。如上面所解释,请求元数据指定关于I/O请求代表的工作的逻辑特性。基于这些逻辑特性、调度策略和选择策略,存储服务器判断何时发布每个I/O请求。如下面更详细描述,存储服务器可以立即发布I/O请求,或者可以将该请求入队以用于延期发布。在一个实施例中,当多于一个I/O请求悬置且调度策略指示I/O请求应被发布时, 由一个或多个选择策略确定哪个悬置I/O请求需要发布。在选择策略中指定的各种策略可以在各个阶段应用。在每个阶段中,被认为是选择候选的悬置I/O请求的数目基于属于该阶段的策略减小。当悬置I/O请求的仅一个非空等待队列保留为候选时,存储服务器选择位于等待队列的头部的I/O请求以供处理。可以在选择策略中指定的策略的示例包括· 70%的存储性能容量应被分配给数据仓库财务,且30%的存储性能容量应被分配给数据仓库销售·产品数据库应具有高于测试和开发数据库的优先级· OLTP工作负荷应具有高于维护工作负荷的优先级示例性系统图1是可以实现此处描述的I/O请求管理技术的系统的框图。参考图1,存储系统 100为若干不同应用130、132、134、136和138使用的数据提供存储。这些应用通过向I/O 请求者120、122和124发送命令而间接利用存储系统100。例如,应用130、132、134、136和 138可以是各种数据库应用,且I/O请求者120、122和IM可以是通过存储、检索和操作存储在存储装置104和106上分布的数据库上的数据而应答数据库命令的数据库服务器。在所示实施例中,应用130和132与I/O请求者交互,应用134与I/O请求者122 交互,且应用136和138与I/O请求者IM交互。在实际的实现中,与I/O请求者并发交互的应用的数目和类型可以变化。如上所述,I/O请求者120、122和IM可以实现某种形式的内部I/O请求调度策略。然而,例如当I/O请求者120和I/O请求者122均提交目标为存储装置104的I/O请求时,这些内部策略不确保智能调度。为了在这种情况下智能地管理I/O请求,向存储服务器102等级策略,且存储服务器102向输入I/O请求应用这些策略。调度和选择策略根据一个实施例,在存储服务器102内存在两个单独的策略调度策略和选择策略。调度策略确定应当何时发布I/O。例如,调度策略可以目标在于保持吞吐量合理地高。 在这种情况下,存储服务器102将允许相对大数目的未决I/O。一旦达到此限制,就将对I/ 0排队。另一示例是目标在于保持延迟合理地低的调度策略。在这种情况下,存储服务器 102将允许相对小数目的未决I/O。在任一情况中,一旦达到该限制,任何新的I/O将排队。 当未决I/O的数目(磁盘上的当前I/O负载)到达某级别时,出现“饱和”。基于调度策略,当存储服务器102决定发布I/O请求时,存储服务器102基于选择策略决定发布哪个I/O。此处描述的技术可以与任意选择策略一起使用。用于解释目的, 此后将描述各种类型的选择策略。然而,此处描述的技术并不依赖于使用的选择策略类型。 典型地,存储服务器102实现的选择策略将例如与要使用存储器的方式相关联。典型地,在存储器被多个数据库共享的情形中,选择策略将包括用于基于I/O请求所针对的数据库拣选I/O请求的策略。如此后更详细描述,用于拣选数据库的策略可以是基于比例的、基于优先级的、二者混合的。另一方面,如果存储器被单一数据库使用,则选择策略可以包括基于与I/O请求相关的工作负荷拣选I/O请求的策略。基于工作负荷的选择策略也可以是基于比例的、基于优先级的、二者混合的。最后,如果存储器被多个数据库共享且这些数据库中具有多个工作负荷,则选择策略可以涉及两阶段计划,其中计划的第一阶段选择数据库,且计划的第二阶段选择该数据库中的工作负荷。根据一个实施例,此处描述的技术以及调度策略和选择策略独立地应用于存储系统中的每个存储装置。因而,如果在存储系统中存在12个磁盘,则对于每个盘指定负荷设置、队列等。逐盘负荷设置、队列和策略是有用的,因为尽管所有盘都被相同的存储系统管理,但每个盘彼此独立地工作。调度策略如上所述,存储服务器102向存储系统发布I/O请求,直到存储系统到达目标的优化负荷。当在此使用时,术语“负荷”表示未决的、未完成I/O请求的总成本。各个I/O请求的成本由I/O请求将利用存储系统资源的时间量决定。因此,读取较少数据量的I/O请求具有远低于读取较大数据量的I/O请求的成本,因为它占用磁盘I/O资源更短的时间量。根据一个实施例,通过校准存储系统预先判断I/O请求的成本。一旦到达目标负荷,存储系统使得所有后续I/O请求排队。当已经完成足够的I/O请求使得存储系统处于其目标负荷之下时,存储服务器使用选择策略来选择足够的I/O请求以将存储系统带回其目标负荷。目标负荷的设置决定了存储系统的性能特性。如果目标负荷低,则I/O请求的延迟低。当目标负荷增加时,则存储器的吞吐量将增加,导致更好的I/O吞吐量。这是因为存储系统在较高负荷更有效率地工作。然而,由于增加的负载,I/O请求的延迟将减小。目标负荷的大小此后被称为“负荷设置”。调度策略实现的负荷设置可以以很多不同方式建立。例如,负荷设置可以被硬编码在针对大多数人应工作良好的水平。备选地,负荷设置可由存储器管理员设置,该管理员指定存储系统是否应当针对延迟、吞吐量优化或者在两者之间的折中进行优化。作为另一示例,负荷设置可以由存储服务器通过查看每个工作负荷而自动确定。使用元数据和其他工作负荷特性,存储服务器可以确定工作负荷是否更应针对延迟或吞吐量而被优化。存储服务器可以使用选择策略来加权每个工作负荷的优先权以确定整体负载设置。例如,高优先级数据库的优先权将比较低优先级数据库的优先权更多地加权。在负荷设置由存储服务器自动确定的系统中,存储系统可以基于如在登记的(多个)选择策略和/或请求元数据中反映的存储系统的使用特性选择调度策略。因而,如果存储系统接收的I/O请求主要用于倾向于吞吐量加强的数据仓库操作,则存储系统可以选择具有较高负荷设置的调度策略。例如,存储系统可以配置成允许存储系统的输出I/O队列在任意给定时刻包括高达8个IM字节的I/O请求。较高的负荷设置允许向存储系统中的存储装置发布较大容量的1/0,保持存储装置尽可能繁忙。另一方面,如果I/O请求的主要目的是用于OLTP工作负荷,则可以选择具有较低负荷设置的调度策略,以优化延迟而不是吞吐量。因为较低的负荷设置,I/O请求将关联(tie up)存储装置较短的时间期。因为存储装置被关联较低时间期,存储装置将更多地可用于处理新到达的高优先级I/O请求。因而,执行产生这些高优先级I/O请求的操作的用户将体验较小的存储系统延迟。根据一个实施例,存储系统基于向存储系统登记的选择策略和/或伴随着请求的请求元数据确定整体工作负荷的特性。例如,选择策略可以指示正使用存储系统的应用是数据仓库应用。备选地,选择策略可以不指示应用的类型,但是与I/O请求一同接收的请求元数据可以指示大部分I/O请求来自数据仓库应用。即使当选择策略指示使用存储系统的工作负荷的属性时,存储服务器可以使用请求元数据来确定每个工作负荷实际使用多少存储器。例如,选择策略可以指示存储系统被两个OLTP应用和两个仓库应用使用。单独基于该信息,可能不清楚最优负荷设置如何。然而,如果存储服务器实际接收的99 %的I/O请求来自于两个OLTP应用,则存储系统可以选择针对OLTP应用优化的负荷设置。根据一个实施例,负荷设置选择处理周期性重复,使得负荷设置可以动态地随着工作负荷改变而改变。例如,在一个实施例中,基于特定时间期(诸如最后5秒)内存储系统已接收的I/O请求做出选择处理。在该时期接收的I/O请求所代表的工作负荷可以明显不同于在先前时期接收的I/O请求代表的工作负荷。负荷设置然后变化为反映最近负荷设置选择操作的结果。因而,在存储服务器主要用于数据仓库股操作的时期,负荷设置将自动针对吞吐量被优化,且在相同的存储系统主要用于OLTP操作的时期,负荷设置将自动针对减小的延迟被优化。请求元数据为了实现选择策略,存储服务器102需要知道关于它接收的I/O请求的信息。例如,如果选择策略基于与I/O请求相关联的工作负荷,则存储服务器102需要知道I/O请求所属的工作负荷。根据一个实施例,存储服务器102实现选择策略所要求的信息作为伴随着请求的“请求元数据”被提供到存储服务器102。将在下文更详细描述伴随I/O请求的元数据以及存储服务器102如何使用元数据来做出关于I/O调度的智能判断。等待队列当存储系统100操作在调度策略指示的容量之下时,存储服务器102将不使I/O 请求排队。具体而言,只要存储系统容量不饱和,存储服务器102接收的I/O请求被立即处理。例如可以通过将I/O请求放置到输出I/O队列中处理I/O请求。然而,只要I/O请求开始使得存储系统100饱和,存储服务器102将通过将接收的I/O请求放置到等待队列中而推迟输入I/O请求的执行。例如,如果产品和测试数据库共享存储系统100,则选择策略可以配置为给予目标为产品数据库的I/O请求以优先级。在这种情况下,只要测试数据库负载将影响产品数据库性能,存储服务器102将调度I/O请求,使得产品数据库I/O性能不受影响。这意味着测试数据库I/O请求将被放置到等待队列中,直到它们可以在不干扰产品数据库I/O性能的条件下被处理。放置延期的I/O请求的等待队列基于伴随I/O请求的请求元数据所指示的逻辑特性。当调度策略指示应当发布附加I/O请求时,存储服务器102基于所登记的选择策略,以及I/O请求所处的等待队列,选择延期的I/O请求来处理。
基于比例的选择策略根据一个实施例,使用存储服务器102登记的选择策略可以包括基于比例的策略、基于优先级的策略以及混合策略。基于比例的策略是基于分配给逻辑特性的比例,在具有不同逻辑特性的请求之间分配负荷的策略。例如,假设将用作基于比例的策略的基础的逻辑特性是I/O请求所针对的数据库(“目标数据库特性”)。进一步假设在存储装置104 和106上存储5个数据库DB1、DB2、DB3、DB4和DB5。基于比例的策略可以指定存储服务器 102应按照以下方式在5个数据库之间分配负荷DBl = 50%, DB2 = 20%, DB3 = 20%, DB4 = 5%且 DB5 = 5%。根据基于比例的策略,存储服务器102以一序列处理悬置I/O请求以确保针对低于其分配比例的数据库的I/O请求在针对高于其分配比例的数据库的I/O请求之前被处理。在一个实施例中,存储服务器102基于分配给各个数据库的比例做出“最大程度滞后(furthest behind)”的确定。例如,假设,当存储服务器102准备选择另一 I/O请求处理时,DB2、DB4和DB5具有悬置I/O请求。在这些情形下,存储服务器102确定DB2、DB4 和DB5其中哪一个在其相应分配中最大程度滞后。用于解释目的,假设DB2已使用22%的负荷,DB4已使用4%且DB5已使用3%的负荷。在这些情形下,存储服务器102将选择目标为DB5的悬置I/O请求。基于比例的策略对于确保较高优先级的实体接收较大量的带宽同时仍确保没有实体完全遗漏是有用的。在上述示例中,DB2—般比DB5更重要,因为DB2已分配了 20%的负荷(而DB5仅被分配了 5% )。然而,因为DB2已经使用了多于其分配的负荷部分,来自 DB5的I/O请求在来自DB2的I/O请求之前被处理。使用概率的基于比例的策略 在上述实施例中,基于比例的策略通过跟踪哪个数据库相对于其负荷分配是“最大程度滞后”来实现。遗憾的是,“最大程度滞后”判断导致跟踪原先发布了 I/O请求的跟踪的开销。为了避免这种开销,存储服务器102可以简单地将基于比例的策略指定的负荷分配视为I/O请求将被选择的“概率”。例如,假设数据库DB1、DB2、DB3、DB4和DB5其中每一个具有至少一个悬置的I/O 请求。在这些条件下,所有数据库将是选择候选。因此,给定数据库被选择的概率将等于数据库被分配的负荷的百分比。具体而言,存储服务器102将选择目标为DBl的I/O请求的概率为50%,存储服务器102将选择目标为DB2的I/O请求的概率为20%,等等。另一方面,如果仅DB2和DB5具有悬置I/O请求,则DB2和DB5将是仅有的选择候选。DB2具有20%的负载分配且DB5具有5%的负载分配。在这些情形下,DB2和DB5的相对负载分配将导致选择目标为DB2的I/O请求的概率为80%且选择目标为DB2的I/O请求的概率为20%。一旦对各种选择候选确定了概率,存储服务器102就基于该概率执行I/O请求选择。基于该概率选择I/O请求的方式涉及向选择候选其中每一个分配范围的子范围,其中被分配给每个选择候选的子范围的大小由选择候选将被选择的概率确定。例如,假设范围为1至100。还假设仅有的I/O请求候选是目标为DB2的I/O请求以及目标为DB5的I/O请求。在这些情形下,DB2将具有80%的选择概率。因此,目标为DB2的I/O请求可以被分配以1-80的子范围(S卩,整个范围的80%)。另一方面,DB5将具有20%的选择概率,且因此可以被分配以子范围81-100( S卩,整个范围的20% )。在每个选择候选被分配以范围内的子范围之后,存储服务器102可以产生该范围内的随机数。随机数落入的子范围决定了存储服务器102选择哪个选择候选。因而,在本示例中,如果随机数落在1至80之间,则选择目标为DB2的I/O请求。另一方面,如果随机数落在81至100之间,则将选择目标为DB5的I/O请求。基于优先级的策略基于优先级的策略是向候选I/O请求的逻辑特性值分配相对重要性的策略。例如,假设要用作基于优先级的策略的基础的逻辑特性是目标数据库特性。在存储用于数据库DB1、DB2、DB3、DB4和DB5的数据的存储系统中,目标数据库特性的可能值是DB1、DB2、 DB3、DB4和DB5。因此,使用目标数据库特性的基于优先级的策略可以指定目标为DB1、DB2、 DB3、DB4和DB5的I/O请求分别具有第一、第二、第三、第四和第五优先级。当使用基于优先级的策略时,只要存在与较高优先级逻辑特性值相关联的悬置I/ 0请求,则不处理具有较低优先级逻辑特性值的I/O请求。因而,只要目标为DBl的任意I/ 0请求悬置,则目标为DB2、DB3、DB4和DB5的I/O请求将不被存储服务器102选择。另一方面,目标为DB5的I/O请求将不被存储服务器102选择,直到没有目标为DB1、DB2、DB3和 DB4中任意一个的悬置I/O请求。基于优先级的策略确保与较低优先级逻辑特性相关联的 I/O请求绝不会不利地影响与较高优先级逻辑特性相关联的I/O请求的性能。混合策略混合策略是结合优先级和比例的策略。具体而言,多个逻辑特性可以分配给每个优先级。在每个优先级内,比例被分配给逻辑特性其中每一个。例如,目标为DB1、DB2、DB3 的I/O请求可以全都被分配以第一优先级。在第一优先级内,目标为DB1、DB2和DB3的I/ 0请求可以分别被分配以比例50、40和10。目标为DB4和DB5的I/O请求可以分配以第二优先级。在第二优先级内,目标为DB4和DB5的I/O请求可以分别被分配以比例70和30。根据该示例,存储服务器102将根据其相应比例在目标为DBl、DB2和DB3的I/O 请求之间分配负荷。只要存在目标为DB1、DB2或DB3的任意悬置I/O请求,则存储服务器 102将不处理目标为DB4和DB5的任意I/O请求。如果没有目标为DBl、DB2和DB3的I/O 请求,则负荷将基于比例70和30被分别分配在目标为DB4和DB5的I/O请求之间。数据库选择策略如上面给出的示例所述,I/O请求所针对的数据库是可以用作策略的基础的一个逻辑特性。用于基于目标数据库特性在I/O请求之间进行选择的策略此处被称为“数据库选择策略”。数据库选择策略包括· 70%的存储性能容量应被分配给数据仓库财务,且30%的存储性能容量应被分配给数据仓库销售·产品数据库应具有优于测试和开发数据库的优先级数据库选择策略可以简单也可以复杂。表1说明三级混合数据库选择策略表 权利要求
1.一种方法,包含当存储系统处于饱和状态时,在存储系统内对该存储系统接收的多个I/O请求进行排队;以及当存储系统准备处理已经在存储系统中排队的悬置I/O请求时,该存储系统内的存储服务器至少部分地基于与特定I/O请求相关联的一个或多个逻辑特性选择特定I/O请求; 响应于存储服务器选择特定I/O请求,处理所述特定I/O请求; 其中该方法由一个或多个专用计算装置实现。
2.根据权利要求1所述的方法,还包含 所述存储系统接收一个或多个选择策略;以及所述存储服务器使用在一个或多个选择策略其中每一个中指示的策略选择该多个I/O 请求其中哪一个被选择处理。
3.根据权利要求2所述的方法,其中存储服务器在多个阶段中应用所述策略。
4.根据权利要求3所述的方法,其中该存储系统存储用于多个数据库的数据;以及先于多个阶段中所有其他阶段的一个特定阶段包括基于I/O请求所针对的数据库在 I/O请求之间进行选择的策略。5.根据权利要求3所述的方法,其中该存储系统存储用于多个数据库的数据;以及跟随在多个阶段中至少一个其他阶段之后的特定阶段包括基于I/O请求所针对的数据库在I/O请求之间进行选择的策略。4.根据权利要求3所述的方法,其中 具有相似逻辑特性的I/O请求属于一选择组; 多个I/O请求对应于多个选择组;存储服务器在多个阶段中的稍后阶段中应用的策略至少部分地基于哪些选择组幸存于一个或多个在先的阶段。
5.根据权利要求2所述的方法,其中所述策略包括一个或多个基于比例的策略。
6.根据权利要求5所述的方法,其中所述策略还包括一个或多个基于优先级的策略。
7.根据权利要求2所述的方法,其中所所述策略包括一个或多个混合策略。
8.根据权利要求3所述的方法,其中该多个阶段中的至少一个阶段与混合策略相关联。
9.根据权利要求1所述的方法,其中多个消费者组在逻辑特性值-消费者组映射中被指定;以及该一个或多个逻辑特性值包括特定I/O请求所属的消费者组。
10.根据权利要求9所述的方法,还包含所述存储系统接收逻辑特性值-消费者组映射;以及所述存储服务器基于特定I/O请求的请求元数据和逻辑特性值-消费者组映射确定特定I/O请求所属的消费者组。
11.根据权利要求9所述的方法,还包含所述存储系统接收用于所述特定I/O请求的请求元数据;其中该请求元数据包括消费者组标识符;以及所述存储服务器至少部分地基于消费者组标识符的值选择特定I/O请求。
12.根据权利要求1所述的方法,还包含在存储服务器从提交I/O请求的I/O请求者接收用于与该I/O请求相关联的一个或多个逻辑特性的值。
13.根据权利要求1所述的方法,还包含在存储系统从提交第一 I/O请求的第一 I/O请求者接收与第一 I/O请求相关的一个或多个逻辑特性的第一值;在存储系统从提交第二 I/O请求的第二 I/O请求者接收与第二 I/O请求相关的一个或多个逻辑特性的第二值;并且其中存储服务器至少部分地基于该第一值和第二值判断第一 I/O请求和第二 I/O请求其中哪一个先被处理。
14.根据权利要求13所述的方法,其中第一I/O请求者是第一数据库服务器且第二 I/ 0请求者是第二数据库服务器。
15.根据权利要求1所述的方法,其中该一个或多个逻辑特性包括存储在存储系统中的多个数据库其中哪个数据库是所述I/O请求所针对的数据库。
16.根据权利要求1所述的方法,其中该一个或多个逻辑特性包括哪些用户负责请求产生了所述I/O请求的操作。
17.根据权利要求1所述的方法,其中该一个或多个逻辑特性包括所述I/O请求代表什么类型的工作负荷。
18.根据权利要求2所述的方法,还包含存储系统至少部分地基于来自一个或多个选择策略的信息确定负荷设置;以及存储系统基于所述负荷设置确定何时处理I/O请求。
19.根据权利要求1所述的方法,还包含存储系统基于伴随I/O请求的请求元数据确定与存储系统接收的I/O请求相关联的逻辑特性;存储系统至少部分地基于与存储系统接收的I/O请求相关联的逻辑特性确定负荷设置;以及存储系统基于负荷设置确定何时处理I/O请求。
20.根据权利要求19所述的方法,其中确定逻辑特性和确定负荷设置的步骤周期性地重复以基于如何使用存储系统而动态地改变负荷。
21.一种方法,包含通过I/O请求者向存储系统提交I/O请求;以及通过I/O请求者向存储系统提交所述I/O请求的一个或多个逻辑特性的值以使得存储系统内的存储服务器基于该一个或多个逻辑特性区分I/O请求的优先级;其中该方法由一个或多个专用计算装置执行。
22.根据权利要求21所述的方法,其中I/O请求者是数据库服务器,且该方法还包含该数据库服务器向存储系统发送选择策略,该选择策略指示在选择哪个I/O请求处理时应用存储服务 器的策略。
23.根据权利要求20所述的方法,其中存储系统存储用于多个数据库的数据,且策略包括数据库选择策略。
24.一种方法,包含存储系统基于与存储系统接收的I/O请求相关的工作负荷自动选择调度策略;以及存储系统基于调度策略确定何时发布悬置I/O请求。
25.根据权利要求M所述的方法,还包含存储系统接收元数据,该元数据指示存储系统接收的I/O请求的一个或多个逻辑特性;以及存储系统基于所述元数据确定与I/O请求相关联的工作负荷。
26.根据权利要求M所述的方法,还包含存储系统接收用于选择发布哪个悬置I/O请求的一个或多个选择策略;以及存储系统基于一个或多个选择策略确定与I/O请求相关联的工作负荷。
27.根据权利要求M所述的方法,还包含响应于事件将调度策略从第一调度策略改变为第二调度策略,其中该第一和第二调度策略指定不同目标负荷。
28.根据权利要求27所述的方法,其中所述事件是可以在与特定工作负荷相关联的I/ 0请求的相对频率中检测到的变化。
29.一种包含指令的计算机可读存储介质,当被一个或多个处理器执行时,所述指令导致当存储系统处于饱和状态时,在存储系统内对该存储系统接收的多个I/O请求进行排队;以及当存储系统准备处理已经在存储系统中排队的悬置I/O请求时,该存储系统内的存储服务器至少部分地基于与特定I/O请求相关的一个或多个逻辑特性选择特定I/O请求; 响应于存储服务器选择特定I/O请求处理特定I/O请求; 其中该计算机可读存储介质由一个或多个专用计算装置执行。
30.根据权利要求四所述的计算机可读存储介质,还包含用于以下目的的指令 存储系统接收一个或多个选择策略;以及存储服务器使用在一个或多个选择策略其中每一个中指示的策略选择该多个I/O请求其中哪一个被选择处理。
31.根据权利要求30所述的计算机可读存储介质,其中存储服务器在多个阶段中应用所述策略。
32.根据权利要求31所述的计算机可读存储介质,其中 该存储系统存储用于多个数据库的数据;以及先于多个阶段所有其他阶段的一个特定阶段包括基于I/O请求所针对的数据库在I/O 请求之间进行选择的策略。
33.根据权利要求31所述的计算机可读存储介质,其中 该存储系统存储用于多个数据库的数据;以及跟随在多个阶段至少一个其他阶段之后的特定阶段包括基于I/O请求所针对的数据库在I/O请求之间进行选择的策略。
34.根据权利要求31所述的计算机可读存储介质,其中 具有相似逻辑特性的I/O请求属于一选择组;多个I/O请求对应于多个选择组;存储服务器在多个阶段的稍后阶段中应用的策略至少部分地基于哪些选择组幸存于一个或多个在先的阶段。33.根据权利要求30所述的计算机可读存储介质,其中所述策略包括一个或多个基于比例的策略。34.根据权利要求33所述的计算机可读存储介质,其中所述策略还包括一个或多个基于优先级的策略。
35.根据权利要求30所述的计算机可读存储介质,其中所所述策略包括一个或多个混合策略。
36.根据权利要求31所述的方法,该多个阶段其中每一个与混合策略相关联。
37.根据权利要求四所述的计算机可读存储介质,其中 多个消费者组在逻辑特性值-消费者组映射中被指定;以及该一个或多个逻辑特性值包括特定I/O请求所属的消费者组。
38.根据权利要求37所述的计算机可读存储介质,还包含用于以下目的的指令 存储系统接收逻辑特性值-消费者组映射;以及存储服务器基于特定I/O请求的请求元数据和逻辑特性值-消费者组映射确定特定I/ 0请求所属的消费者组。
39.根据权利要求37所述的计算机可读存储介质,还包含用于以下目的的指令 存储系统接收所述特定I/O请求的请求元数据;其中该请求元数据包括消费者组标识符;以及存储服务器至少部分地基于消费者组标识符的值选择特定I/O请求。
40.根据权利要求四所述的计算机可读存储介质,还包含用于在存储服务器从提交I/ 0请求的I/O请求者接收与该I/O请求相关联的一个或多个逻辑特性的值的指令。
41.根据权利要求四所述的计算机可读存储介质,还包含用于以下目的的指令在存储系统从提交第一 I/O请求的第一 I/O请求者接收与第一 I/O请求相关联的一个或多个逻辑特性的第一值;在存储系统从提交第二 I/O请求的第二 I/O请求者接收与第二 I/O请求相关联的一个或多个逻辑特性的第二值;并且其中存储服务器至少部分地基于该第一值和第二值确定第一 I/O请求和第二 I/O请求其中哪一个先被处理。
42.根据权利要求41所述的计算机可读存储介质,其中第一I/O请求者是第一数据库服务器且第二 I/O请求者是第二数据库服务器。
43.根据权利要求四所述的计算机可读存储介质,其中该一个或多个逻辑特性包括存储在存储系统中的多个数据库其中哪个数据库是I/O请求的所针对的数据库。
44.根据权利要求四所述的计算机可读存储介质,其中该一个或多个逻辑特性包括哪些用户负责请求产生I/O请求的操作。
45.根据权利要求四所述的计算机可读存储介质,其中该一个或多个逻辑特性包括I/ 0请求代表什么类型的工作负荷。
46.根据权利要求30所述的计算机可读存储介质,还包含用于以下目的的指令存储系统至少部分地基于来自一个或多个选择策略的信息确定负荷设置;以及存储系统基于负荷设置确定何时处理I/O请求。
47.根据权利要求四所述的计算机可读存储介质,还包含用于以下目的的指令 存储系统基于伴随I/O请求的请求元数据确定与存储系统接收的I/O请求相关联的逻辑特性;存储系统至少部分地基于与存储系统接收的I/O请求相关的逻辑特性确定负荷设置;以及存储系统基于负荷设置确定何时处理I/O请求。
48.根据权利要求47所述的方法,其中确定逻辑特性和确定负荷设置的步骤周期性地重复以基于如何使用存储系统而动态地改变负荷。
49.一种包含指令的计算机可读存储介质,当被一个或多个处理器执行时,该指令导致由I/O请求者向存储系统提交I/O请求;以及由I/O请求者向存储系统提交I/O请求的一个或多个逻辑特性的值以使得存储系统内的存储服务器基于该一个或多个逻辑特性区分I/O请求的优先级; 其中该计算机可读存储介质由一个或多个专用计算装置执行。
50.根据权利要求49所述的计算机可读存储介质,其中I/O请求者是数据库服务器,且该计算机可读存储介质还包含该数据库服务器向存储系统发送选择策略,该选择策略指示当选择处理哪个I/O请求时应用存储服务器的策略。
51.根据权利要求48所述的计算机可读存储介质,其中存储系统存储用于多个数据库的数据,且策略包括数据库选择策略。
52.一种包含指令的计算机可读存储介质,当被一个或多个处理器执行时,该指令导致存储系统基于与存储系统接收的I/O请求相关的工作负荷自动选择调度策略;以及存储系统基于调度策略确定何时发布悬置I/O请求。
53.根据权利要求52所述的计算机可读存储介质,还包含用于以下目的的指令存储系统接收元数据,该元数据指示存储系统接收的I/O请求的一个或多个逻辑特性;以及存储系统基于元数据确定与I/O请求相关的工作负荷。
54.根据权利要求52所述的计算机可读存储介质,还包含用于以下目的的指令 存储系统接收用于选择发布哪个悬置I/O请求的一个或多个选择策略;以及存储系统基于一个或多个选择策略确定与I/O请求相关的工作负荷。
55.根据权利要求52所述的计算机可读存储介质,还包含用于响应于事件将调度策略从第一调度策略改变为第二调度策略的指令,其中该第一和第二调度策略指定不同目标负荷。
56.根据权利要求55所述的计算机可读存储介质,其中所述事件是可以在与特定工作负荷相关联的I/O请求的相对频率中检测到的变化。
全文摘要
提供一种用于至少部分地基于I/O请求的一个或多个逻辑特性在存储系统内管理I/O请求被存储系统处理的顺序的技术。逻辑特性例如可以包括,例如提交I/O请求的用户的身份、提交I/O请求的服务、I/O请求所针对的数据库、I/O请求映射的消费者组的指示、发布该I/O请求的原因、I/O请求的优先级类别等。还提供在存储系统内自动建立调度策略且响应于工作负荷中的变化自动改变调度策略的技术。
文档编号G06F17/30GK102197395SQ200980142588
公开日2011年9月21日 申请日期2009年9月18日 优先权日2008年9月19日
发明者A·D·谢, A·楚科曼, J·R·洛埃扎, M·苏赛拉吉, S·K·李, S·查特吉, S·苏布拉玛尼亚姆, V·C·科拉 申请人:甲骨文国际公司

最新回复(0)