CN102197395B - 存储器端存储请求管理 - Google Patents

存储器端存储请求管理 Download PDF

Info

Publication number
CN102197395B
CN102197395B CN200980142588.1A CN200980142588A CN102197395B CN 102197395 B CN102197395 B CN 102197395B CN 200980142588 A CN200980142588 A CN 200980142588A CN 102197395 B CN102197395 B CN 102197395B
Authority
CN
China
Prior art keywords
request
storage system
ask
strategy
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200980142588.1A
Other languages
English (en)
Other versions
CN102197395A (zh
Inventor
S·K·李
V·C·科拉
A·D·谢
S·查特吉
M·苏赛拉吉
J·R·洛埃扎
A·楚科曼
S·苏布拉玛尼亚姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Priority to CN201510182420.0A priority Critical patent/CN104731981B/zh
Publication of CN102197395A publication Critical patent/CN102197395A/zh
Application granted granted Critical
Publication of CN102197395B publication Critical patent/CN102197395B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24557Efficient disk access during query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供一种用于至少部分地基于I/O请求的一个或多个逻辑特性在存储系统内管理I/O请求被存储系统处理的顺序的技术。逻辑特性例如可以包括,例如:提交I/O请求的用户的身份、提交I/O请求的服务、I/O请求所针对的数据库、I/O请求映射的消费者组的指示、发布该I/O请求的原因、I/O请求的优先级类别等。还提供在存储系统内自动建立调度策略且响应于工作负荷中的变化自动改变调度策略的技术。

Description

存储器端存储请求管理
技术领域
本发明涉及存储请求管理,且更具体而言,涉及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处理偏离,所述偏离涉及I/O请求的重新排序以改善磁盘效率。在I/O请求之后执行这种重新排序,而没有任何目的。因此,当多个数据库服务器向相同的存储系统(或者存储系统内的 相同存储装置)发送用于多个数据库的I/O请求时,存储系统可能在处理较高优先级I/O之前终止处理较低优先级I/O请求,即使每个独立数据库服务器以最优的序列独立向存储系统发送其I/O请求。
多种类型的工作负荷和数据库通常共享存储器。遗憾的是,在共享存储器上运行多种类型的工作负荷和数据库通常导致应用和混合工作负荷之间的性能和响应时间问题。例如,对一个产品数据仓库进行大规模并行查询会影响对另一产品数据仓库的关键查询的性能。而且,数据仓库上的数据负荷会影响也运行在相同数据仓库上的关键查询的性能。通过过度供应存储系统可以减轻这些问题,但是这消除了共享存储器的成本节省益处。还可以在非峰值时间调度非关键任务,但是这种手工的处理是费力的。当数据库具有行为不协调的不同管理员时,这变得不可能。
本部分中描述的方法是应当追求的方法,但是不必是原先考虑到或追求的方法。因此,除非明确声明,不应当假设本部分中描述的任意方法限定仅包括在本部分中的现有技术。
附图说明
在附图中,通过举例的方式而非限制的方式说明本发明,附图中,相似的参考标号表示相似的元件,且其中:
图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/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请求代表的工作的逻辑特性。基于这些逻辑特性、调度策略和选择策略,存储服务器判断何时发布每个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和124可以是通过存储、检索和操作存储在存储装置104和106上分布的数据库上的数据而应答数据库命令的数据库服务器。
在所示实施例中,应用130和132与I/O请求者交互,应用134与I/O请求者122交互,且应用136和138与I/O请求者124交互。在实际的实现中,与I/O请求者并发交互的应用的数目和类型可以变化。
如上所述,I/O请求者120、122和124可以实现某种形式的内部I/O请求调度策略。然而,例如当I/O请求者120和I/O请求者122均提交目标为存储装置104的I/O请求时,这些内部策略不确保智能调度。为了在这种情况下智能地管理I/O请求,向存储服务器102等级策略,且存储服务器102向输入I/O请求应用这些策略。
调度和选择策略
根据一个实施例,在存储服务器102内存在两个单独的策略:调度策略和选择策略。调度策略确定应当何时发布I/O。例如,调度策略可以目标在于保持吞吐量合理地高。在这种情况下,存储服务器102将允许相对大数目的未决I/O。一旦达到此限制,就将对I/O排队。另一示例是目标在于保持延迟合理地低的调度策略。在这种情况下,存储服务器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个1M字节的I/O请求。较高的负荷设置允许向存储系统中的存储装置发布较大容量的I/O,保持存储装置尽可能繁忙。
另一方面,如果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个数据库之间分配负荷:
DB1=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将选择目标为DB1的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的子范围(即,整个范围的80%)。另一方面,DB5将具有20%的选择概率,且因此可以被分配以子范围81-100(即,整个范围的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/O请求,则不处理具有较低优先级逻辑特性值的I/O请求。因而,只要目标为DB1的任意I/O请求悬置,则目标为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/O请求可以分别被分配以比例50、40和10。目标为DB4和DB5的I/O请求可以分配以第二优先级。在第二优先级内,目标为DB4和DB5的I/O请求可以分别被分配以比例70和30。
根据该示例,存储服务器102将根据其相应比例在目标为DB1、DB2和DB3的I/O请求之间分配负荷。只要存在目标为DB1、DB2或DB3的任意悬置I/O请求,则存储服务器102将不处理目标为DB4和DB5的任意I/O请求。如果没有目标为DB1、DB2和DB3的I/O请求,则负荷将基于比例70和30被分别分配在目标为DB4和DB5的I/O请求之间。
数据库选择策略
如上面给出的示例所述,I/O请求所针对的数据库是可以用作策略的基础的一个逻辑特性。用于基于目标数据库特性在I/O请求之间进行选择的策略此处被称为“数据库选择策略”。数据库选择策略包括:
·70%的存储性能容量应被分配给数据仓库财务,且30%的存储性能容量应被分配给数据仓库销售
·产品数据库应具有优于测试和开发数据库的优先级
数据库选择策略可以简单也可以复杂。表1说明三级混合数据库选择策略:
表1
  数据库   1级   2级   3级
  销售产品数据仓库   80%    
  财务产品数据仓库   20%    
  消费者服务备用数据库     100%  
  销售测试数据库       50%
  销售开发数据库       50%
参考表1,它说明用于包括5个数据库的系统的数据库选择策略。在第一优先级,销售产品数据仓库被分配80%的负荷,且财务产品数据仓库被分配20%的负荷。只要这两个1级数据库其中任意一个具有悬置I/O,存储服务器将不发布用于任意其他三个数据库的I/O。仅当没有1级数据库的I/O请求悬置时,目标为消费者服务备用数据库的I/O请求才会由存储服务器添加到输出I/O队列。类似地,仅当没有1级或2级数据库的I/O请求悬置时,负荷才会在目标为销售测试数据库和销售开发数据库的I/O请求之间被50/50分割。
消费者组选择策略
数据库通常具有很多类型的工作负荷。这些工作负荷在其性能需求和它们发布的I/O量方面可以不同。“消费者组”提供一种方式以对包含特定工作负荷的会话进行分组。例如,如果数据库存储用于4个不同应用的数据,则可以创建4个消费者组,每个应用会话一个。类似地,如果数据 仓库具有三种类型的工作负荷,诸如关键查询、正常查询和ETL(提取、转变和装载),则消费者组可以针对每种类型的工作负荷创建消费者组。
因而,I/O请求的“消费者组”是从该I/O请求的一个或多个其他逻辑特性的值得出的该I/O请求的逻辑特性。在一个实施例中,I/O请求所属的消费者组基于映射逻辑特性值到消费者组的“逻辑特性值-消费者组”映射。例如,I/O请求的消费者组可以从以下逻辑特性值其中的一个或多个得出:(1)服务标识符,(2)用户标识符,(3)程序名称,(4)目的标识符,以及(5)关于提交该I/O请求的操作的统计。
参考图2,它是说明根据本发明的一个实施例,逻辑特性值和消费者组之间的映射的框图。在图2所示的映射中,定义了三个消费者组:优先DSS、DSS和维护。根据所述映射,优先DSS消费者组包括服务是“PRIORITY”或者用户名称是“LARRY”的所有I/O请求。DSS消费者组包括用户名称是“DEV”或队列运行超过1小时的所有I/O请求。维护消费者组包括客户端程序名称是“ETL”或者I/O请求的功能是“BACKUP”的所有I/O请求。
当消费者组成员由逻辑特性值-消费者组映射限定时,单个I/O请求可以具有映射到若干不同消费者组的逻辑特性值。例如,I/O请求可以具有“LARRY”的用户标识符、“DEV”的客户端程序标识符以及“BACKUP”的目的标识符。根据一个实施例,逻辑特性值-消费者组映射指示如何解决I/O请求的逻辑特性值映射到多个消费者组的情形。例如,逻辑特性值-消费者组映射可以指示用户名称是最重要的逻辑特性值,然后是服务、程序统计、功能且最后是客户端程序。在这种选择策略下,具有“LARRY”用户标识符、“DEV”的客户端程序标识符以及“BACKUP”目的标识符的I/O请求将被映射到优先DSS消费者组。
逻辑特性值-消费者组映射还可以具有“缺省”消费者组。在一个实施例中,如果没有I/O请求的逻辑特性值映射到任意其他消费者组,则I/O请求被视为属于缺省消费者组。
类似于数据库选择策略,消费者组选择策略可以是基于比例的、基于优先级的或者是混合的。混合消费者组策略在表2中说明:
表2
  消费者组   1级   2级
  优先DSS   80%  
  维护   20%  
  DSS     100%
根据表2所述的混合消费者组策略,映射到优先DSS消费者组的I/O请求被分配以80%的负荷,而映射到维护消费者组的I/O请求被分配以20%的负荷。映射到DSS消费者组的I/O请求仅在没有属于其他两个消费者组其中任意一个的悬置I/O请求时由存储服务器发布。
在一个实施例中,I/O请求者使用逻辑特性值-消费者组映射来确定它们的I/O请求所属的消费者组,且在它们与每个I/O请求一起发送的请求元数据中包括消费者组标识符。在消费者组标识符包括在请求元数据的实施例中,从中得出消费者组的逻辑特性也不需要包括在请求元数据中。
在备选实施例中,I/O请求的消费者组不直接在存储系统从I/O请求者接收的请求元数据中指示。而是,逻辑特性值-消费者组映射被提供到存储系统,且存储系统内的存储服务器基于以下内容确定每个I/O请求的消费者组:(a)请求元数据中反映的逻辑特性值,以及(b)逻辑特性值-消费者组映射。
类别选择策略
根据一个实施例,I/O请求的一个逻辑特性此处被称为I/O请求的“类别”。典型地,I/O请求的类别指示与该I/O请求相关联的工作负荷的类型。例如,类别选择策略可以限定三种类别:关键、有点关键和不关键。
类别选择策略指示用于基于I/O请求候选所属的类别在I/O请求候选中进行选择的策略。类似于数据库选择策略和基于消费者组的策略,类别选择策略可以是基于比例的、基于优先级的或混合的。例如,基于优先级的类别选择策略可以规定,关键I/O请求具有最高优先级,有点关键的I/O请求具有中等优先级,且不关键I/O请求具有低优先级。
策略-阶段分配
如上所述,存储服务器可以按阶段应用选择策略中规定的策略。哪个策略分配给每个阶段的选择本身是可以在选择策略中指示的策略决定。图3是说明策略被分配给三个阶段:阶段1、阶段2和阶段3的选择策略300的框图。尤其是,基于优先级的类别选择策略被分配给了阶段1,混合数据库选择策略被分配给了阶段2且混合消费者组选择策略被分配给了阶段3。
在阶段2的混合数据库选择策略中,第一优先级包括DB1、DB2和DB3,且第二优先级包括DB4和DB5。在第一优先级内,DB1、DB2和DB3分别与分配比例50%、40%和10%相关。在第二优先级内,DB4和DB5均分配以50%的分配比例。
类似地,在阶段3的混合消费者组选择策略内,第一优先级包括消费者组1和消费者组2,且第二优先级包括消费者组3。在第一优先级内,消费者组1和2分别与80%和20%的分配比例相关联。在第二优先级内,消费者组3被分配100%的分配比例。
在一阶段的选择策略之后继续成为候选的悬置I/O请求此后被成为该阶段的“幸存者”。例如,根据图3的选择策略300,如果存在属于类别1的任意悬置I/O,则阶段1的幸存者仅包括属于类别1的悬置I/O请求。
另一方面,如果不存在属于类别1的悬置I/O请求,但是存在属于类别2的至少一个悬置I/O请求,则阶段1的幸存者将仅包括属于类别2的悬置I/O请求。最后,如果没有属于类别1或2的任何悬置I/O请求,则阶段1的幸存者将仅包括属于类别3的悬置I/O请求。
后续阶段的策略仅应用于在先阶段的幸存者。因而,在选择策略300中分配给阶段2的混合数据选择策略仅应用于阶段1的幸存者。类似地,分配给阶段3的混合消费者组选择策略仅应用于阶段2的幸存者。阶段继续被应用,直到所有幸存者属于相同等待队列。等待队列的头部的I/O请求然后被选择以用于执行。
因为阶段按顺序应用,在在先阶段应用的策略比在较后阶段应用的策略对于最终I/O请求选择具有更大的影响。因此,与处理较不重要的逻辑 特性的策略相比,处理更重要逻辑特性的策略一般被分配给较早的阶段。
例如,在各个数据库的用户相信彼此不独占存储系统的负荷的情形中,目标数据库特性变成较不重要的逻辑特性。因此,选择策略可以不具有任何数据库选择策略,或者可以向I/O请求选择处理中的较后阶段分配数据库选择策略。
另一方面,在各个数据库的用户可能试图独占负荷的情形中,目标数据库特性可能是最重要的逻辑特性。在这些情形下,数据库选择策略可以被分配给存储服务器执行的第一阶段,以确保维持数据库之间的协议带宽分配。
逐幸存组策略
在上面给出的示例中,存储服务器在后续阶段中应用的策略与哪个悬置I/O请求幸存于在先的阶段无关。然而,根据一个实施例,在后续阶段中应用的策略可以与幸存于原先阶段的I/O请求组关联。取决于幸存于在先阶段的I/O请求的策略此处被称为逐幸存组策略。
例如,图3的阶段2具有5个可能的结果。具体而言,因为阶段2应用数据库选择策略,图3的阶段2的幸存者将是目标仅为5个数据库之一的I/O请求。在一个实施例中,在图3的阶段3中说明的混合消费者组选择策略可以仅应用于目标为DB1的I/O请求。如果幸存于阶段2的I/O请求是目标为其他数据库之一的I/O请求,阶段3可以有完全不同的策略。
参考图4,它是说明类似于选择策略300的选择策略400的框图,其中存在用于阶段2的可能幸存组其中每一个的不同的阶段3策略。用于目标为一个数据库的I/O请求的阶段3策略可以完全不同于用于目标为另一数据库的I/O请求的阶段3策略。例如,应用于目标为DB1的I/O请求的阶段3策略可以基于三个消费者组,该三个消费者组基于特定逻辑特性值-消费者组映射被确定,而应用于目标为DB2的I/O请求的阶段3策略可以基于五个消费者组,这五个消费者组基于不同的逻辑特性值-消费者组映射被确定。
因为在特定阶段应用的策略可以依赖于在先阶段哪些I/O请求幸存, 所以选择策略可以任意复杂。例如,图5是说明选择策略500其中每一个阶段的可能幸存组之间的关系,以及后续阶段中存储服务器应用的策略的框图。
参考图5,阶段1应用基于类别的选择策略。阶段1产生的可能的幸存组包括:(a)属于类别1的I/O请求,(b)属于类别2的I/O请求,以及(c)属于类别3的I/O请求。在阶段1产生属于类别1的I/O请求的情况中,存储服务器将在阶段2中应用数据库选择策略。在阶段1产生属于类别2的I/O请求的情况中,存储服务器将在阶段2中应用数据库选择策略2。在阶段1产生属于类别3的I/O请求的情况中,存储服务器将在阶段2应用消费者组选择策略1。
数据库选择策略1的可能的幸存组包括(a)目标为DB1的类别1的I/O请求,以及(b)目标为DB2的类别1的I/O请求。在幸存于阶段2的目标为DB1的类别1的I/O请求的情况中,存储服务器将在阶段3应用消费者组选择策略2。在幸存于阶段2的目标为DB2的类别1的I/O请求的情况中,存储服务器将在阶段3中应用消费者组选择策略3。
数据库选择策略2的可能的幸存组包括(a)目标为DB1的类别2的I/O请求,以及(b)目标为DB2的类别2的I/O请求。在目标为DB1的类别2的I/O请求幸存于阶段2的情况中,存储服务器将在阶段3应用消费者组选择策略4。在目标为DB2的类别2的I/O请求幸存于阶段2时,存储服务器将在阶段3中应用消费者组选择策略5。
消费者组选择策略1的可能幸存组包括(a)映射到消费者组1(CG1)的类别3的I/O请求,(b)映射到消费者组2(CG2)的类别3的I/O请求,以及(c)映射到类别组3(CG3)的类别3的I/O请求。在映射到CG1的类别3的I/O请求幸存于阶段2的情况中,存储服务器将在阶段3中应用数据库选择策略3。在映射到CG2的类别3的I/O请求幸存于阶段2的情况中,存储服务器将在阶段3中应用数据库选择策略4。在映射到CG3的类别3的I/O请求幸存于阶段2的情况中,存储服务器将在阶段3中应用数据库选择策略5。
图5仅是在后续阶段应用的策略如何可以基于哪些I/O请求幸存于在 先阶段而不同的一个示例。选择策略中确立的策略关系可以任意复杂。例如,给定某一结果集合,存储服务器可以仅应用三个阶段的策略,而其他结果可能需要5个阶段的策略的应用。
数据库特定消费者组
如图5所示,每个数据库可以具有其自己的消费者组选择策略。而且,用于一个数据库的消费者组选择策略可以基于完全不同的属性-消费者组映射而不是其他数据库采用的逻辑特性值-消费者组映射。例如,在图5中,消费者组选择策略2可以是表2中描述的混合策略,而消费者组选择策略3是基于比例的策略:CG1:90%,CG2:8%,CG3:1%且CG4:1%。
在该示例中,消费者组选择策略根据消费者组的数目不同,且根据策略的结构不同。不同的消费者组策略也根据如何限定消费者组而不同。例如,用于判断I/O请求是否属于优先DSS、维护或DSS的属性-消费者组映射可以完全不同于用于判断I/O请求是否属于CG1、CG2、CG3和CG4的属性-消费者组映射。
根据一个实施例,一旦创建了消费者组,创建策略以指定会话如何映射到消费者组。会话例如可以基于会话属性映射到消费者组。会话属性例如可以包括用户名、会话所使用的以连接到数据库的服务、客户端机器、客户端程序名、客户端用户名等。如果用户针对每个应用创建消费者组且每个应用具有专用服务,则用户可以基于其服务名称创建映射策略。如果用户希望使得一消费者组专用于特定用户集,则用户基于其用户名创建映射策略。如上所述,未明确分配给消费者组的会话可以布置在缺省消费者组中。
创建选择策略
如上所述,选择策略可以包括指定如何在消费者组之间分配I/O资源的策略。在一个实施例中,选择策略包含用于每个消费者组的资源分配,其包含百分比和级别。在一个实施例中,用户可以指定高达8个级别。级别2的消费者组获取不在级别1分配的资源或者不被级别1的消费者组消 耗的资源。类似地,级别3的消费者组仅当一些分配从级别1和级别2剩余时被分配资源。相同的策略应用于级别4至级别8。多个级别不仅提供区分优先级的方式,它们还提供明确指定所有主要和剩余资源要如何使用的方式。用户可以使用百分比、优先级或者二者的组合构建在消费者组之间分配资源的选择策略。
使能和改变选择策略
根据一个实施例,当用户对数据库设置数据库选择策略时,选择策略的描述被自动发送到用于存储数据库的数据的每个存储系统。在一些环境中,多个服务器共享对于相同数据库的访问。在这种环境下,共享特定数据库的访问的集群中的所有数据库服务器被设置为相同的选择策略。当新的存储系统被添加到数据库中或者现有存储系统重启时,当前的数据库选择策略被自动发送到存储系统。选择策略用于管理数据库服务器和单元上的资源。
根据一个实施例,选择策略可以动态地变化。各种类型的事件可以触发选择策略变化。例如,选择策略可以基于每日时间变化以允许在夜晚有效的选择策略与在白天有效的选择策略不同。作为另一示例,选择策略变化可以在周末或者一年的特定时间(诸如财政年度结束时)发生。
等待队列
如上所述,延迟的I/O请求被放置在存储系统100内的等待队列中。这些等待队列以各种方式实现。在一个实施例中,延迟的I/O请求基于它们的“选择组”被排队,其中,每个选择组具有单独的队列。在该上下文中,选择组是被生效的策略视为相同的I/O请求组。例如,假设生效的唯一策略是表2所示出的消费者组策略。该策略确立了三个消费者组:优先DSS、维护和DSS。如果选择策略仅包括这些策略,则存储系统将仅具有三个等待队列,每个队列用于这三个消费者组其中每一个。具有映射到优先DSS的特性值的所有延迟的I/O请求将存储在优先DSS队列中,而不管其他特性如何(诸如它们所针对的数据库)。类似地,映射到维护和DSS 消费者组的所有延迟的I/O请求将被放置到对应于这些消费者组的等待队列中,而不管它们的其他特性值如何。
在更复杂的选择策略中,可以存在明显比消费者组更多的选择组。例如,在图3所示的选择策略300中,类别、目标数据库和消费者组将全都对如何处理I/O请求有影响。因此,每个(类别、目标数据库、消费者组)组合代表可以具有其自己的等待队列的不同选择组。具体而言,(类别1、DB1、消费者组1)将具有一个等待队列,且(类别1、DB1、消费者组2)将具有另一等待队列。因为选择策略300确立了3个类别、5个数据库和3个消费者组。选择组(以及因此等待队列)的总数是3×5×3=45。
选择组的基于阶段的选择
如上所述,当存储服务器选择延迟的I/O请求来处理时,存储服务器阶段地应用选择策略中的策略。每个阶段减小幸存的选择组的数目。当仅一个选择组幸存时,存储服务器选择在对应于该选择组的等待队列的头部的I/O请求。例如,假设实现选择策略300的存储系统变得不饱和且必须选择延迟的I/O请求来处理。还假设仅非空等待队列对应于选择组:(类别2、DB1、消费者组1)、(类别2、DB2、消费者组2)、(类别2、DB2、消费者组3)、(类别3、DB2、消费者组1)以及(类别2、DB4、消费者组3)。
在这些情形下,仅与类别2相关联的那些选择组将幸存于阶段1,因为类别2具有比类别3高的优先级,且没有与类别1相关联的非空选择组。因而,在阶段1之后,幸存选择组将是:(类别2、DB1、消费者组1)、(类别2、DB2、消费者组2)、(类别2、DB2、消费者组3)以及(类别2、DB4、消费者组3)。
在阶段2,存储服务器将判断DB1或DB2其中哪一个在实现其I/O配额方面最大程度滞后。DB4不被考虑,因为策略指示仅在没有目标为DB1、DB2或DB3的延迟的I/O时考虑DB4。假设DB2在实现其I/O配额方面最大程度地滞后,幸存于阶段2的选择组将是:(类别2、DB2、消费者组2)、(类别2、DB2、消费者组3)。
在阶段3,存储服务器将选择消费者组2,因为策略指示仅在没有对应于消费者组1和2的悬置I/O请求时考虑消费者组3。因此,在阶段3之后,唯一剩余的选择组是(类别2、DB2、消费者组2)。因此,存储服务器将选择对应于选择组(类别2、DB2、消费者组2)的等待队列头部的I/O请求。
在上面给出的示例中,在单个非空选择组剩余之前必须应用所有三个阶段。然而,依赖于哪些选择组非空,需要被应用的阶段可以少于所有阶段。例如,考虑非空选择组包括:(类别1、DB5、消费者组3)、(类别2、DB1、消费者组1)、(类别2、DB2、消费者组2)、(类别2、DB2、消费者组3)、(类别3、DB2、消费者组1)和(类别2、DB4、消费者组3)的情形。在该情形下,在选择策略300的阶段1之后,唯一幸存的选择组将是(类别1、DB5、消费者组3),因为它是具有与类别1相关联的悬置I/O请求的唯一非空选择组。因此,在阶段1之后,存储服务器将简单地选择与(类别1、DB5、消费者组3)相关联的队列的头部的I/O请求。
逻辑等待队列
存储服务器放置I/O请求的队列不需要是实际的不同数据结构。具体而言,存储服务器可以简单跟踪(1)每个悬置I/O请求的逻辑特性,以及(2)存储系统接收I/O请求的时间。具有相同逻辑特性的悬置I/O请求属于相同选择组,且因此被视为属于相同逻辑队列,即使没有单独的队列结构用于该选择组。
在使用逻辑等待队列而不是单独队列结构的实施例中,接收I/O请求的时间可用于指示每个逻辑队列的顺序。因此,对于每个选择组,具有最早到达时间的悬置I/O请求被视为位于选择组的逻辑队列的头部。备选地,所有悬置I/O请求可以存储在单个等待队列中。对于每个选择组,最靠近单个等待队列的头部的悬置I/O请求被视为处于该选择组的逻辑等待队列的头部。
硬件概览
根据一个实施例,此处描述的技术通过一个或多个专用目的计算装置实现。专用目的计算装置可以是实现技术的硬布线,或者可以包括诸如永久地编程为实现这些技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)的数字电子装置,或者可以包括编程为依照固件、存储器、其他存储装置或组合中的程序指令实现这些技术的一个或多个通用硬件处理器。这种专用计算装置还可以将定制硬布线逻辑、ASIC、或者FPGA与定制程序组合以实现这些技术。专用计算装置可以是桌面计算机系统、便携式计算机系统、手持式装置、联网装置或者结合硬布线和/或程序逻辑以实现这些技术的任意其他装置。
例如,图6是说明可以实现本发明的实施例的计算机系统600的框图。计算机系统600包括总线602或者用于通信信息的其他通信机制以及与总线602耦合以处理信息的硬件处理器604。硬件处理器604例如可以是通用微处理器。
计算机系统600还包括耦合到总线602以用于存储信息和被处理器604执行的指令的主存储器606,诸如随机存取存储器(RAM)或其他动态存储装置。主存储器606还可用于在处理器604要执行的指令的执行过程中存储临时变量或者其他中间信息。当存储在处理器604可访问的存储介质中时,这些指令使得计算机系统600呈现为定制为是自安指令中指定的操作的专用机器。
计算机系统600还包括耦合到总线602以用于存储处理器604的静态信息和指令的只读存储器(ROM)608或者其他静态存储装置。诸如磁盘和光盘的存储装置610被提供且耦合到总线602以用于存储信息和指令。
计算机系统600可以经由总线602耦合到诸如阴极射线管(CRT)的显示器612以用于向计算机用户显示信息。包括字母数字和其他键的输入装置614耦合到总线602以用于向处理器604传送信息和命令选择。另一类型的用户输入装置是诸如鼠标、跟踪球或者光标方向键的光标控制器616,用于向处理器604传送方向信息和命令选择且用于控制显示器612上的光标移动。该输入装置典型地具有两个轴——第一轴(例如x)和第 二轴(例如y)中的两个自由度,这允许装置指定平面中的位置。
计算机系统600可以使用定制硬布线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑实现此处描述的技术,上述定制硬布线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑与计算机系统组合,导致或编程计算机系统600为专用机器。根据一个实施例,此处的技术由计算机系统600响应于处理器604执行包含在主存储器606内的一个或多个指令的一个或多个序列而实现。这种指令可以从诸如存储装置610的其他存储介质读取到主存储器606。包含在主存储器606中的指令序列的执行导致处理器604执行此处描述的处理步骤。在备选实施例中,硬布线电路可以代替软件指令或者与软件指令组合使用。
当在此使用时,术语“存储介质”表示存储导致机器以特定方式操作的数据和/或指令的任何介质。这种存储介质可以包含非易失性和/或易失性介质。非易失性介质例如包括光或磁盘,诸如存储装置610。易失性介质包括动态存储器,诸如主存储器606。常见形式的存储介质例如包括软盘、柔性盘、硬盘、固态驱动器、磁带或任意其他磁性数据存储介质、CD-ROM、任意其他光学数据存储介质、具有孔图形的任意物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任意其他存储芯片或存储盒。
存储介质不同于传输介质但是可以与传输介质结合使用。传输介质参与在存储介质之间传递信息。例如,传输介质包括同轴线缆、铜线和光纤,包括含有总线602的布线。传输介质还可以具有诸如在无线电波和红外数据通信中产生的声或光波的形式。
各种形式的介质可以参与向处理器604运送一个或多个指令的一个或多个序列以供执行。例如,指令可以初始地承载在远程计算机的磁盘或固态驱动器上。远程计算机可以将指令装载到其动态存储器且使用调制解调器经由电话线发送指令。计算机系统600本地的调制解调器可以在电话线上接收数据且使用红外发射器来将数据转换成红外信号。红外检测器可以接收红外信号中承载的数据且适当的电路可以将数据置于总线602上。总线602运送数据到主存储器606,处理器604从主存储器606检索数据且执行指令。主存储器606接收的指令可选地可以在处理器604执行之前或 之后存储在存储装置610上。
计算机系统600还包括耦合到总线602的通信接口618。通信接口618提供耦合到网络链路620的双路数据通信,该网络链路620连接到局域网622。例如,通信接口618可以是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或者向相应类型的电话线提供数据通信连接的调制解调器。作为另一示例,通信接口618可以是向兼容LAN提供数据通信连接的局域网(LAN)卡。也可以实现无线链路。在任意这种实现方式中,通信接口618发送和接收承载代表各种类型的信息的数字数据流的电学、电磁和光学信号。
网络链路620典型地通过一个或多个网络向其他数据装置提供数据通信。例如,网络链路620可以通过局域网622向主计算机624或者向因特网服务提供商(ISP)626运营的数据装备提供连接。ISP 626进而通过现在常称为“因特网”628的万维网分组数据通信网络提供数据通信服务。局域网622和因特网628均使用承载数字数据流的电学、电磁或光学信号。运送数字数据往来于计算机系统600的通过各个网络的信号以及网络链路620上且通过通信接口618的信号是传输介质的示例形式。
计算机系统600可以通过(多个)网络、网络链路620和通信接口618发送消息和接收包括程序代码的数据。在因特网示例中,服务器630可以通过因特网628、ISP 626、局域网622和通信接口618发射用于应用程序的请求代码。
接收的代码可以被处理器604在其被接收时执行,和/或存储在存储装置610或者其他非易失性存储装置中以用于稍后执行。
在上述说明书中,参考在实施方式之间变化的很多特定细节描述了本发明的实施例。因而,本发明为何物且被本发明的申请人所旨的唯一和排他性指示是从本申请以特定形式发布的权利要求集合,其中这些权利要求发布包括任意后续修正。此处明确提出的包含在这种权利要求中的任意限定将支配权利要求中使用的这些术语的意义。因此,无限制地,权利要求中没有明确陈述的元件、属性、特征、优点或特性应以任意方式限制这种权利要求的范围。因此,说明书和附图被认为是说明性而非限制意义。

Claims (77)

1.一种用于管理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请求的类别,其中所述类别指示与I/O请求相关联的工作负荷的类型;
程序名称;以及
关于提交I/O请求的操作的统计。
2.根据权利要求1所述的方法,还包含:
所述存储系统接收一个或多个选择策略;以及
所述存储服务器使用在一个或多个选择策略其中每一个中指示的策略选择该多个I/O请求其中哪一个被选择处理。
3.根据权利要求2所述的方法,其中所述存储服务器在多个阶段中应用所述策略。
4.根据权利要求3所述的方法,其中:
该存储系统存储用于多个数据库的数据;以及
先于所述多个阶段中所有其他阶段的一个特定阶段包括用于基于I/O请求所针对的数据库在所述I/O请求之间进行选择的策略。
5.根据权利要求3所述的方法,其中:
该存储系统存储用于多个数据库的数据;以及
跟随在所述多个阶段中至少一个其他阶段之后的特定阶段包括用于基于I/O请求所针对的数据库在所述I/O请求之间进行选择的策略。
6.根据权利要求3所述的方法,其中:
具有相似逻辑特性的I/O请求属于一选择组;
所述多个I/O请求对应于多个选择组;
存储服务器在所述多个阶段中的稍后阶段中应用的策略至少部分地基于哪些选择组幸存于一个或多个在先阶段。
7.根据权利要求2所述的方法,其中所述策略包括一个或多个基于比例的策略。
8.根据权利要求7所述的方法,其中所述策略还包括一个或多个基于优先级的策略。
9.根据权利要求2所述的方法,其中所述策略包括一个或多个混合策略。
10.根据权利要求3所述的方法,其中该多个阶段中至少一个阶段与混合策略相关联。
11.根据权利要求1所述的方法,其中:
多个消费者组在逻辑特性值-消费者组映射中被指定;以及
该一个或多个逻辑特性包括特定I/O请求所属的消费者组。
12.根据权利要求11所述的方法,还包含:
存储系统接收逻辑特性值-消费者组映射;以及
存储服务器基于特定I/O请求的请求元数据和逻辑特性值-消费者组映射确定特定I/O请求所属的消费者组。
13.根据权利要求11所述的方法,还包含:
存储系统接收用于所述特定I/O请求的请求元数据;
其中该请求元数据包括消费者组标识符;以及
存储服务器至少部分地基于消费者组标识符的值选择特定I/O请求。
14.根据权利要求1所述的方法,还包含在存储服务器处从提交I/O请求的I/O请求者接收与该I/O请求相关联的一个或多个逻辑特性的值。
15.根据权利要求1所述的方法,还包含:
在存储系统处,从提交第一I/O请求的第一I/O请求者接收与第一I/O请求相关联的一个或多个逻辑特性的第一值;和
在存储系统处,从提交第二I/O请求的第二I/O请求者接收与第二I/O请求相关联的一个或多个逻辑特性的第二值;并且
其中存储服务器至少部分地基于所述第一值和第二值确定第一I/O请求和第二I/O请求其中哪一个先被处理。
16.根据权利要求15所述的方法,其中第一I/O请求者是第一数据库服务器且第二I/O请求者是第二数据库服务器。
17.根据权利要求1所述的方法,其中所述一个或多个逻辑特性包括存储在存储系统中的多个数据库其中哪个数据库是所述I/O请求所针对的数据库。
18.根据权利要求1所述的方法,其中所述一个或多个逻辑特性包括哪些用户负责请求产生了所述I/O请求的操作。
19.根据权利要求1所述的方法,其中所述一个或多个逻辑特性包括I/O请求的类别,其中所述类别指示与所述I/O请求相关联的工作负荷的类型。
20.根据权利要求2所述的方法,还包含:
存储系统至少部分地基于来自一个或多个选择策略的信息确定负荷设置;以及
存储系统基于所述负荷设置确定何时处理I/O请求。
21.根据权利要求1所述的方法,还包含:
存储系统基于伴随所述I/O请求的请求元数据确定与存储系统接收的I/O请求相关联的逻辑特性;
存储系统至少部分地基于与存储系统接收的I/O请求相关联的逻辑特性确定负荷设置;以及
存储系统基于所述负荷设置确定何时处理I/O请求。
22.根据权利要求21所述的方法,其中确定逻辑特性和确定负荷设置的步骤周期性地重复以基于正在如何使用存储系统而动态地改变负荷。
23.根据权利要求1所述的方法,其中所述一个或多个逻辑特性是服务标识符。
24.根据权利要求1所述的方法,其中所述一个或多个逻辑特性是目的标识符。
25.一种用于管理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请求的操作的统计。
26.根据权利要求25所述的方法,其中I/O请求者是数据库服务器,且该方法还包含该数据库服务器向存储系统发送选择策略,该选择策略指示在选择处理哪个I/O请求时要应用的存储服务器的策略。
27.根据权利要求25所述的方法,其中所述存储系统存储用于多个数据库的数据,且策略包括数据库选择策略。
28.根据权利要求25所述的方法,其中所述一个或多个逻辑特性包括存储在存储系统中的多个数据库其中哪个数据库是所述I/O请求所针对的数据库。
29.根据权利要求25所述的方法,其中所述一个或多个逻辑特性包括I/O请求的类别,其中所述类别指示与所述I/O请求相关联的工作负荷的类型。
30.根据权利要求25所述的方法,其中所述一个或多个逻辑特性是用户标识符。
31.根据权利要求25所述的方法,其中所述一个或多个逻辑特性是服务标识符。
32.根据权利要求25所述的方法,其中所述一个或多个逻辑特性是目的标识符。
33.一种用于管理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请求的操作的统计。
34.根据权利要求33所述的方法,还包含:
存储系统接收元数据,该元数据指示存储系统接收的I/O请求的一个或多个逻辑特性;以及
存储系统基于所述元数据确定与I/O请求相关联的工作负荷。
35.根据权利要求33所述的方法,还包含:
存储系统接收用于选择发布哪个悬置I/O请求的一个或多个选择策略;以及
存储系统基于一个或多个选择策略确定与I/O请求相关联的工作负荷。
36.根据权利要求33所述的方法,还包含响应于事件将调度策略从第一调度策略改变为第二调度策略,其中该第一和第二调度策略指定不同目标负荷。
37.根据权利要求36所述的方法,其中所述事件是在与特定工作负荷相关联的I/O请求的相对频率中的检测到的变化。
38.一种用于管理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请求时,所述存储系统还被配置为至少部分地基于与特定I/O请求相关联的逻辑特性,从排队的I/O请求中选择特定I/O请求来处理。
39.根据权利要求38所述的系统,其中所述存储系统进一步被配置为基于应用于所述逻辑特性的一个或多个基于比例的或基于优先级的策略选择所述特定I/O请求。
40.根据权利要求38所述的系统,其中所述逻辑特性包括指示以下中的一项或多项的数据:所述I/O请求映射的消费者组的指示、或所述I/O请求的优先级类别。
41.一种用于管理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请求的类别,其中所述类别指示与I/O请求相关联的工作负荷的类型;
程序名称;以及
关于提交I/O请求的操作的统计。
42.根据权利要求41所述的系统,还包含:
用于接收一个或多个选择策略的装置;以及
用于使用在一个或多个选择策略其中每一个中指示的策略选择该多个I/O请求其中哪个来处理的装置。
43.根据权利要求42所述的系统,其中所述策略在多个阶段中应用。
44.根据权利要求43所述的系统,其中:
该存储系统存储用于多个数据库的数据;以及
先于多个阶段中所有其他阶段的一个特定阶段包括用于基于I/O请求所针对的数据库在所述I/O请求之间进行选择的策略。
45.根据权利要求43所述的系统,其中:
该存储系统存储用于多个数据库的数据;以及
跟随在所述多个阶段中至少一个其他阶段之后的特定阶段包括用于基于I/O请求所针对的数据库在所述I/O请求之间进行选择的策略。
46.根据权利要求43所述的系统,其中:
具有相似逻辑特性的I/O请求属于一选择组;
所述多个I/O请求对应于多个选择组;
在多个阶段中的稍后阶段中应用的策略至少部分地基于哪些选择组幸存于一个或多个在先阶段。
47.根据权利要求42所述的系统,其中所述策略包括一个或多个基于比例的策略。
48.根据权利要求47所述的系统,其中所述策略还包括一个或多个基于优先级的策略。
49.根据权利要求42所述的系统,其中所述策略包括一个或多个混合策略。
50.根据权利要求43所述的系统,该多个阶段中至少一个阶段与混合策略相关联。
51.根据权利要求41所述的系统,其中:
多个消费者组在逻辑特性值-消费者组映射中被指定;以及
该一个或多个逻辑特性包括特定I/O请求所属的消费者组。
52.根据权利要求51所述的系统,还包含:
存储系统接收逻辑特性值-消费者组映射;以及
用于基于特定I/O请求的请求元数据和逻辑特性值-消费者组映射确定特定I/O请求所属的消费者组的装置。
53.根据权利要求51所述的系统,还包含:
存储系统接收用于所述特定I/O请求的请求元数据;
其中该请求元数据包括消费者组标识符;以及
用于至少部分地基于消费者组标识符的值选择特定I/O请求的装置。
54.根据权利要求41所述的系统,还包含用于在存储服务器处从提交I/O请求的I/O请求者接收与该I/O请求相关联的一个或多个逻辑特性的值的装置。
55.根据权利要求41所述的系统,还包含:
用于在存储系统处,从提交第一I/O请求的第一I/O请求者接收与第一I/O请求相关联的一个或多个逻辑特性的第一值的装置;和
用于在存储系统处,从提交第二I/O请求的第二I/O请求者接收与第二I/O请求相关联的一个或多个逻辑特性的第二值的装置;并且
其中存储服务器至少部分地基于所述第一值和第二值确定第一I/O请求和第二I/O请求其中哪一个先被处理。
56.根据权利要求55所述的系统,其中第一I/O请求者是第一数据库服务器且第二I/O请求者是第二数据库服务器。
57.根据权利要求41所述的系统,其中所述一个或多个逻辑特性包括存储在存储系统中的多个数据库其中哪个数据库是所述I/O请求所针对的数据库。
58.根据权利要求41所述的系统,其中所述一个或多个逻辑特性是用户标识符。
59.根据权利要求41所述的系统,其中所述一个或多个逻辑特性包括I/O请求的类别,其中所述类别指示与所述I/O请求相关联的工作负荷的类型。
60.根据权利要求42所述的系统,其中:
所述存储系统至少部分地基于来自一个或多个选择策略的信息确定负荷设置;以及
所述存储系统基于所述负荷设置确定何时处理I/O请求。
61.根据权利要求41所述的系统,其中:
所述存储系统基于伴随所述I/O请求的请求元数据确定与存储系统接收的I/O请求相关联的逻辑特性;
所述存储系统至少部分地基于与所述存储系统接收的I/O请求相关联的逻辑特性确定负荷设置;以及
所述存储系统基于所述负荷设置确定何时处理I/O请求。
62.根据权利要求61所述的系统,其中确定逻辑特性和确定负荷设置的步骤周期性地重复以基于正在如何使用存储系统而动态地改变负荷。
63.根据权利要求41所述的系统,其中所述一个或多个逻辑特性是服务标识符。
64.根据权利要求41所述的系统,其中所述一个或多个逻辑特性是目的标识符。
65.一种用于管理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请求的操作的统计。
66.根据权利要求65所述的系统,还包含用于向存储系统发送选择策略的装置,该选择策略指示在选择处理哪个I/O请求时要应用的存储服务器的策略。
67.根据权利要求65所述的系统,其中所述存储系统存储用于多个数据库的数据,且策略包括数据库选择策略。
68.根据权利要求65所述的系统,其中所述一个或多个逻辑特性包括存储在存储系统中的多个数据库其中哪个数据库是所述I/O请求所针对的数据库。
69.根据权利要求65所述的系统,其中所述一个或多个逻辑特性包括I/O请求的类别,其中所述类别指示与所述I/O请求相关联的工作负荷的类型。
70.根据权利要求65所述的系统,其中所述一个或多个逻辑特性是用户标识符。
71.根据权利要求65所述的系统,其中所述一个或多个逻辑特性是服务标识符。
72.根据权利要求65所述的系统,其中所述一个或多个逻辑特性是目的标识符。
73.一种用于管理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请求的操作的统计。
74.根据权利要求73所述的系统,还包含:
用于接收元数据的装置,该元数据指示存储系统接收的I/O请求的一个或多个逻辑特性;以及
用于基于所述元数据确定与I/O请求相关联的工作负荷的装置。
75.根据权利要求73所述的系统,还包含:
用于接收用于选择发布哪个悬置I/O请求的一个或多个选择策略的装置;以及
用于基于所述一个或多个选择策略确定与I/O请求相关联的工作负荷的装置。
76.根据权利要求73所述的系统,还包含用于响应于事件将调度策略从第一调度策略改变为第二调度策略的装置,其中该第一和第二调度策略指定不同目标负荷。
77.根据权利要求76所述的系统,其中所述事件是在I/O请求被与特定工作负荷相关联的相对频率中的检测到的变化。
CN200980142588.1A 2008-09-19 2009-09-18 存储器端存储请求管理 Active CN102197395B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510182420.0A CN104731981B (zh) 2008-09-19 2009-09-18 存储器端存储请求管理

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US19266808P 2008-09-19 2008-09-19
US61/192,668 2008-09-19
US9987208P 2008-09-24 2008-09-24
US61/099,872 2008-09-24
PCT/US2009/057590 WO2010033877A1 (en) 2008-09-19 2009-09-18 Storage-side storage request management

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201510182420.0A Division CN104731981B (zh) 2008-09-19 2009-09-18 存储器端存储请求管理

Publications (2)

Publication Number Publication Date
CN102197395A CN102197395A (zh) 2011-09-21
CN102197395B true CN102197395B (zh) 2015-05-20

Family

ID=41323504

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201510182420.0A Active CN104731981B (zh) 2008-09-19 2009-09-18 存储器端存储请求管理
CN200980142596.6A Active CN102203773B (zh) 2008-09-19 2009-09-18 在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接
CN200980142588.1A Active CN102197395B (zh) 2008-09-19 2009-09-18 存储器端存储请求管理

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201510182420.0A Active CN104731981B (zh) 2008-09-19 2009-09-18 存储器端存储请求管理
CN200980142596.6A Active CN102203773B (zh) 2008-09-19 2009-09-18 在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接

Country Status (5)

Country Link
US (5) US8825678B2 (zh)
EP (3) EP2350879A1 (zh)
JP (3) JP5484470B2 (zh)
CN (3) CN104731981B (zh)
WO (2) WO2010033834A1 (zh)

Families Citing this family (184)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262490B2 (en) 2004-08-12 2016-02-16 Oracle International Corporation Adaptively routing transactions to servers
US8892780B2 (en) 2007-03-08 2014-11-18 Oracle International Corporation Management of shared storage I/O resources
US10750023B2 (en) 2008-01-28 2020-08-18 Afiniti Europe Technologies Limited Techniques for hybrid behavioral pairing in a contact center system
EP2350879A1 (en) 2008-09-19 2011-08-03 Oracle International Corporation Hash join using collaborative parallel filtering in intelligent storage with offloaded bloom filters
US10430338B2 (en) 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US8868831B2 (en) 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
US9772798B2 (en) * 2008-09-19 2017-09-26 Oracle International Corporation Method and system for implementing workload management by monitoring disk utilizations
US8612998B2 (en) 2010-09-23 2013-12-17 Intel Corporation Coordinating device and application break events for platform power saving
US8204892B2 (en) * 2009-10-26 2012-06-19 Oracle International Corporation Performance boost for sort operations
US8893146B2 (en) * 2009-11-13 2014-11-18 Hewlett-Packard Development Company, L.P. Method and system of an I/O stack for controlling flows of workload specific I/O requests
EP2544279A4 (en) * 2010-03-04 2015-01-07 Jx Nippon Mining & Metals Corp POSITIVE ELECTRODE ACTIVE MATERIAL FOR LITHIUM-ION BATTERY, POSITIVE ELECTRODE FOR LITHIUM-ION BATTERY, AND LITHIUM-ION BATTERY
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US8560558B2 (en) * 2010-04-28 2013-10-15 Fujitsu Limited Computer product, search apparatus, management apparatus, search method, and management method
US9558247B2 (en) 2010-08-31 2017-01-31 Samsung Electronics Co., Ltd. Storage device and stream filtering method thereof
US20120054420A1 (en) * 2010-08-31 2012-03-01 Jeonguk Kang Storage device and stream filtering method thereof
US8589625B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
CN103299295A (zh) * 2010-12-20 2013-09-11 瑞典爱立信有限公司 对等网络中的搜索
US10311105B2 (en) * 2010-12-28 2019-06-04 Microsoft Technology Licensing, Llc Filtering queried data on data stores
CN102591668B (zh) * 2011-01-05 2015-04-08 阿里巴巴集团控股有限公司 对弹性计算云系统升级的装置、方法及系统
US9667713B2 (en) * 2011-03-21 2017-05-30 Apple Inc. Apparatus and method for managing peer-to-peer connections between different service providers
US10380269B2 (en) * 2011-06-07 2019-08-13 Entit Software Llc Sideways information passing
CN102214236B (zh) * 2011-06-30 2013-10-23 北京新媒传信科技有限公司 一种海量数据处理方法和系统
US8554976B2 (en) * 2011-07-08 2013-10-08 Plx Technology, Inc. Single pipe non-blocking architecture
US9658892B2 (en) 2011-08-31 2017-05-23 International Business Machines Corporation Management of storage cluster performance with hybrid workloads
US8949367B2 (en) * 2011-10-31 2015-02-03 Oracle International Corporation Cooperative storage management
CN103218032B (zh) 2011-11-29 2017-07-14 英特尔公司 利用相对能量损益平衡时间的功率管理
US8762396B2 (en) * 2011-12-22 2014-06-24 Sap Ag Dynamic, hierarchical bloom filters for network data routing
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
WO2013101037A1 (en) * 2011-12-29 2013-07-04 Intel Corporation System and method for providing differentiated storage service in a database
CN103188297B (zh) * 2011-12-29 2016-05-18 北大方正集团有限公司 一种消息存储和获取方法及系统
CN102609446B (zh) * 2012-01-05 2013-12-25 厦门市美亚柏科信息股份有限公司 一种分布式Bloom过滤系统及其使用方法
US8805850B2 (en) * 2012-05-23 2014-08-12 International Business Machines Corporation Hardware-accelerated relational joins
JP5936465B2 (ja) * 2012-07-04 2016-06-22 三菱電機株式会社 複数データベース自動検索装置
US10834184B2 (en) * 2012-07-05 2020-11-10 Nokia Corporation Sending a sensor node a request for sensor data that identifies another node to process the data
US9047129B2 (en) * 2012-07-23 2015-06-02 Adobe Systems Incorporated Systems and methods for load balancing of time-based tasks in a distributed computing system
US8838535B2 (en) * 2012-10-05 2014-09-16 Oracle International Corporation Providing services across systems that manage distributed replicas
US9465826B2 (en) * 2012-11-27 2016-10-11 Hewlett Packard Enterprise Development Lp Estimating unique entry counts using a counting bloom filter
US9141532B2 (en) * 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
US9292571B1 (en) * 2013-01-18 2016-03-22 Microstrategy Incorporated Joining database tables
US9892026B2 (en) 2013-02-01 2018-02-13 Ab Initio Technology Llc Data records selection
US8972337B1 (en) 2013-02-21 2015-03-03 Amazon Technologies, Inc. Efficient query processing in columnar databases using bloom filters
US20140250440A1 (en) * 2013-03-01 2014-09-04 Adaptive Computing Enterprises, Inc. System and method for managing storage input/output for a compute environment
KR102052964B1 (ko) 2013-03-12 2019-12-06 삼성전자 주식회사 컴퓨팅 스케줄링 방법 및 시스템
US10489365B2 (en) 2013-03-14 2019-11-26 Oracle International Corporation Predicate offload of large objects
US10152500B2 (en) 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US10642837B2 (en) 2013-03-15 2020-05-05 Oracle International Corporation Relocating derived cache during data rebalance to maintain application performance
US10296462B2 (en) 2013-03-15 2019-05-21 Oracle International Corporation Method to accelerate queries using dynamically generated alternate data formats in flash cache
US10528590B2 (en) 2014-09-26 2020-01-07 Oracle International Corporation Optimizing a query with extrema function using in-memory data summaries on the storage server
US8706798B1 (en) 2013-06-28 2014-04-22 Pepperdata, Inc. Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system
WO2014209395A1 (en) * 2013-06-28 2014-12-31 Intel Corporation Adaptive interrupt coalescing for energy efficient mobile platforms
US9779137B2 (en) * 2013-07-09 2017-10-03 Logicblox Inc. Salient sampling for query size estimation
US10229161B2 (en) 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
US9898490B2 (en) * 2013-09-20 2018-02-20 Oracle International Corporation Systems and methods for supporting multiple database server versions on a database machine
US9798655B2 (en) 2013-09-20 2017-10-24 Oracle International Corporation Managing a cache on storage devices supporting compression
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
US10515231B2 (en) * 2013-11-08 2019-12-24 Symcor Inc. Method of obfuscating relationships between data in database tables
US9219671B2 (en) * 2013-12-06 2015-12-22 Dell Products L.P. Pro-active MPIO based rate limiting to avoid iSCSI network congestion/incast for clustered storage systems
WO2015084407A1 (en) * 2013-12-06 2015-06-11 Hewlett-Packard Development Company, L.P. Transitive local predicates across multiple joins
CN105830063B (zh) * 2013-12-18 2020-12-15 亚马逊科技公司 协调卷组中的小卷
US9436405B2 (en) * 2013-12-23 2016-09-06 Oracle International Corporation Complex partitioning of storage library resources
US11487732B2 (en) * 2014-01-16 2022-11-01 Ab Initio Technology Llc Database key identification
US9740714B2 (en) 2014-02-06 2017-08-22 International Business Machines Corporation Multilevel filters for cache-efficient access
US10545917B2 (en) 2014-02-19 2020-01-28 Snowflake Inc. Multi-range and runtime pruning
US10325032B2 (en) 2014-02-19 2019-06-18 Snowflake Inc. Resource provisioning systems and methods
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9454574B2 (en) 2014-03-28 2016-09-27 Sybase, Inc. Bloom filter costing estimation
US10936595B2 (en) * 2014-04-03 2021-03-02 Sybase, Inc. Deferring and/or eliminating decompressing database data
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9940356B2 (en) * 2014-07-31 2018-04-10 International Business Machines Corporation Efficient join-filters for parallel processing
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
CN104468701B (zh) * 2014-10-17 2017-10-13 中国人民解放军国防科学技术大学 一种用于异构存储集群系统的i/o服务质量维护方法
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US10366068B2 (en) 2014-12-18 2019-07-30 International Business Machines Corporation Optimization of metadata via lossy compression
CA2876466C (en) 2014-12-29 2022-07-05 Ibm Canada Limited - Ibm Canada Limitee Scan optimization using bloom filter synopsis
CN104504114B (zh) * 2014-12-30 2018-05-04 杭州华为数字技术有限公司 基于多哈希表的关系操作优化方法、装置和系统
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9563511B1 (en) * 2015-03-19 2017-02-07 EMC IP Holding Company LLC Performing input/output operations on a set of storage devices based on scalable input/output credits
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9842148B2 (en) 2015-05-05 2017-12-12 Oracle International Corporation Method for failure-resilient data placement in a distributed query processing system
US9922081B2 (en) * 2015-06-11 2018-03-20 Microsoft Technology Licensing, Llc Bidirectional cross-filtering in analysis service systems
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US20180248684A1 (en) * 2015-08-18 2018-08-30 Nokia Solutions And Networks Oy Method and system for database queries
CN105893225A (zh) * 2015-08-25 2016-08-24 乐视网信息技术(北京)股份有限公司 一种错误自动处理方法及装置
US10248694B2 (en) * 2015-08-31 2019-04-02 International Business Machines Corporation Bloom filter utilization for join processing
CN106528287B (zh) * 2015-09-09 2019-10-29 阿里巴巴集团控股有限公司 计算机系统资源分配方法和装置
US10430408B2 (en) 2015-09-24 2019-10-01 International Business Machines Corporation Technology to reduce cost of concatenation for hash array
US10726016B2 (en) 2015-10-15 2020-07-28 Oracle International Corporation In-memory column-level multi-versioned global dictionary for in-memory databases
US10678791B2 (en) * 2015-10-15 2020-06-09 Oracle International Corporation Using shared dictionaries on join columns to improve performance of joins in relational databases
US10678788B2 (en) 2015-10-22 2020-06-09 Oracle International Corporation Columnar caching in tiered storage
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US9600525B1 (en) * 2015-11-25 2017-03-21 International Business Machines Corporation Method for joining tables using a limited amount of memory
CN105893241A (zh) * 2015-12-07 2016-08-24 乐视网信息技术(北京)股份有限公司 测试数据的更新方法和装置
US9372892B1 (en) 2015-12-28 2016-06-21 International Business Machines Corporation Bloom filter construction method for use in a table join operation portion of processing a query to a distributed database
CN105893227A (zh) * 2015-12-29 2016-08-24 乐视网信息技术(北京)股份有限公司 数据处理方法及装置
CN105677903A (zh) * 2016-02-05 2016-06-15 华为技术有限公司 获取数据的方法和装置、计算机设备
US10157193B2 (en) * 2016-03-03 2018-12-18 International Business Machines Corporation Switching between a non-partitioned hash join and a partitioned hash join based on an amount of available memory
CN105868071A (zh) * 2016-03-23 2016-08-17 乐视网信息技术(北京)股份有限公司 监测数据的处理方法及装置
EP3373218A1 (en) * 2016-04-18 2018-09-12 Afiniti Europe Technologies Limited Techniques for benchmarking pairing strategies in a contact center system
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10649991B2 (en) 2016-04-26 2020-05-12 International Business Machines Corporation Pruning of columns in synopsis tables
US10318514B2 (en) * 2016-05-04 2019-06-11 International Business Machines Corporation Reorganizing a data table to improve analytical database performance
CN106095683B (zh) * 2016-06-15 2019-09-17 广东小天才科技有限公司 一种测试移动终端电流的系统及方法
US10019456B2 (en) 2016-06-29 2018-07-10 Microsoft Technology Licensing, Llc Recovering free space in nonvolatile storage with a computer storage system supporting shared objects
US10437780B2 (en) 2016-07-14 2019-10-08 Snowflake Inc. Data pruning based on metadata
US11126503B2 (en) 2016-08-10 2021-09-21 International Business Machines Corporation Pre-filtering of join execution over multi-column range summaries and other synopses
CN106250565B (zh) * 2016-08-30 2019-05-07 福建天晴数码有限公司 基于分片关系型数据库的查询方法和系统
CN107784030B (zh) 2016-08-31 2020-04-28 华为技术有限公司 一种处理连接查询的方法及装置
US10503654B2 (en) 2016-09-01 2019-12-10 Intel Corporation Selective caching of erasure coded fragments in a distributed storage system
US10133667B2 (en) 2016-09-06 2018-11-20 Orcle International Corporation Efficient data storage and retrieval using a heterogeneous main memory
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10853364B2 (en) * 2016-09-28 2020-12-01 Microsoft Technology Licensing, Llc Direct table association in in-memory databases
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
CN106970930B (zh) * 2016-10-10 2021-01-05 创新先进技术有限公司 消息发送确定方法及装置、数据表创建方法及装置
US10891291B2 (en) 2016-10-31 2021-01-12 Oracle International Corporation Facilitating operations on pluggable databases using separate logical timestamp services
US10331573B2 (en) 2016-11-04 2019-06-25 Oracle International Corporation Detection of avoidable cache thrashing for OLTP and DW workloads
CN106776248A (zh) * 2016-11-11 2017-05-31 乐视控股(北京)有限公司 一种数据处理的方法和装置
CN106776199A (zh) * 2016-11-11 2017-05-31 乐视控股(北京)有限公司 一种数据处理的方法和装置
CN106776019B (zh) * 2016-12-01 2019-11-19 成都华为技术有限公司 一种用户读写请求的调度方法及装置
US11475006B2 (en) 2016-12-02 2022-10-18 Oracle International Corporation Query and change propagation scheduling for heterogeneous database systems
US11093494B2 (en) * 2016-12-06 2021-08-17 Microsoft Technology Licensing, Llc Joining tables by leveraging transformations
US10803122B2 (en) * 2017-04-11 2020-10-13 International Business Machines Corporation Labeled graph isomorphism allowing for false positive
US10601938B2 (en) 2017-04-12 2020-03-24 Microsoft Technology Licensing, Llc Organizationally programmable intranet push notifications
CN107239380A (zh) * 2017-05-10 2017-10-10 杭州铭师堂教育科技发展有限公司 一种基于zabbix的消息队列监控方法
US10503412B2 (en) * 2017-05-24 2019-12-10 Western Digital Technologies, Inc. Priority-based internal data movement
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database
US11630832B2 (en) * 2017-06-07 2023-04-18 Sap Se Dynamic admission control for database requests
US10592123B1 (en) 2017-07-13 2020-03-17 EMC IP Holding Company LLC Policy driven IO scheduler to improve write IO performance in hybrid storage systems
US10509739B1 (en) * 2017-07-13 2019-12-17 EMC IP Holding Company LLC Optimized read IO for mix read/write scenario by chunking write IOs
US10599340B1 (en) 2017-07-13 2020-03-24 EMC IP Holding LLC Policy driven IO scheduler to improve read IO performance in hybrid storage systems
US10489348B2 (en) * 2017-07-17 2019-11-26 Alteryx, Inc. Performing hash joins using parallel processing
CN107368596A (zh) * 2017-07-26 2017-11-21 郑州云海信息技术有限公司 一种布隆过滤器查询集合元素的方法及装置
US10719446B2 (en) 2017-08-31 2020-07-21 Oracle International Corporation Directly mapped buffer cache on non-volatile memory
US20190095448A1 (en) * 2017-09-22 2019-03-28 Microsoft Technology Licensing, Llc System of mobile notification delivery utilizing bloom filters
US11652776B2 (en) * 2017-09-25 2023-05-16 Microsoft Technology Licensing, Llc System of mobile notification delivery utilizing bloom filters
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
US10956335B2 (en) 2017-09-29 2021-03-23 Oracle International Corporation Non-volatile cache access using RDMA
US11954117B2 (en) 2017-09-29 2024-04-09 Oracle International Corporation Routing requests in shared-storage database systems
US10732836B2 (en) 2017-09-29 2020-08-04 Oracle International Corporation Remote one-sided persistent writes
US11010387B2 (en) 2017-10-06 2021-05-18 Microsoft Technology Licensing, Llc Join operation and interface for wildcards
US10558364B2 (en) 2017-10-16 2020-02-11 Alteryx, Inc. Memory allocation in a data analytics system
US10552452B2 (en) 2017-10-16 2020-02-04 Alteryx, Inc. Asynchronously processing sequential data blocks
US11615083B1 (en) * 2017-11-22 2023-03-28 Amazon Technologies, Inc. Storage level parallel query processing
US10613896B2 (en) * 2017-12-18 2020-04-07 International Business Machines Corporation Prioritizing I/O operations
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
CN108509148B (zh) * 2018-02-07 2021-08-06 新华三技术有限公司 一种i/o请求处理方法以及装置
US10642840B1 (en) 2018-03-07 2020-05-05 Amazon Technologies, Inc. Filtered hash table generation for performing hash joins
US10628063B2 (en) 2018-08-24 2020-04-21 Advanced Micro Devices, Inc. Implementing scalable memory allocation using identifiers that return a succinct pointer representation
CN109271408B (zh) * 2018-08-31 2020-07-28 阿里巴巴集团控股有限公司 一种分布式数据连接处理方法、装置、设备及存储介质
GB2579071B (en) * 2018-11-19 2022-03-02 Canon Kk Method and apparatus for processing requests for thumbnail images in a video surveillance system
US11625398B1 (en) 2018-12-12 2023-04-11 Teradata Us, Inc. Join cardinality estimation using machine learning and graph kernels
US10970393B1 (en) * 2018-12-18 2021-04-06 Altiris, Inc. Probabilistic set membership using bloom filters
US11157478B2 (en) 2018-12-28 2021-10-26 Oracle International Corporation Technique of comprehensively support autonomous JSON document object (AJD) cloud service
US11316664B2 (en) 2019-04-05 2022-04-26 Bank Of America Corporation System for characterization and tracking of electronic data in a networked environment using cohesive information units
US10990596B2 (en) 2019-06-14 2021-04-27 Oracle International Corporation Non-disruptive referencing of special purpose operators for database management systems
US11200234B2 (en) 2019-06-14 2021-12-14 Oracle International Corporation Non-disruptive dynamic ad-hoc database catalog services
US11860869B1 (en) 2019-06-28 2024-01-02 Amazon Technologies, Inc. Performing queries to a consistent view of a data set across query engine types
US11455305B1 (en) 2019-06-28 2022-09-27 Amazon Technologies, Inc. Selecting alternate portions of a query plan for processing partial results generated separate from a query engine
US11403367B2 (en) 2019-09-12 2022-08-02 Oracle International Corporation Techniques for solving the spherical point-in-polygon problem
US11423001B2 (en) 2019-09-13 2022-08-23 Oracle International Corporation Technique of efficiently, comprehensively and autonomously support native JSON datatype in RDBMS for both OLTP and OLAP
US11126401B2 (en) 2019-09-18 2021-09-21 Bank Of America Corporation Pluggable sorting for distributed databases
US11016978B2 (en) 2019-09-18 2021-05-25 Bank Of America Corporation Joiner for distributed databases
US11514066B2 (en) * 2019-11-08 2022-11-29 Servicenow, Inc. System and methods for querying and updating databases
CN112948370B (zh) * 2019-11-26 2023-04-11 上海哔哩哔哩科技有限公司 数据分类方法、装置以及计算机设备
US11308090B2 (en) 2019-12-26 2022-04-19 Snowflake Inc. Pruning index to support semi-structured data types
US11567939B2 (en) 2019-12-26 2023-01-31 Snowflake Inc. Lazy reassembling of semi-structured data
US11372860B2 (en) * 2019-12-26 2022-06-28 Snowflake Inc. Processing techniques for queries where predicate values are unknown until runtime
US10769150B1 (en) 2019-12-26 2020-09-08 Snowflake Inc. Pruning indexes to enhance database query processing
CN113127475A (zh) * 2019-12-30 2021-07-16 中国移动通信集团四川有限公司 一种数据处理方法、系统及装置
US11835152B2 (en) * 2020-01-17 2023-12-05 Fisher Controls International Llc Method and system for executing online tests of valve seating integrity for control valves
US10877967B1 (en) * 2020-03-13 2020-12-29 Snowflake Inc. System and method for disjunctive joins
US11550949B2 (en) * 2020-07-21 2023-01-10 Constella Intelligence, Inc. Secure exchange of password presence data
US12001427B2 (en) 2020-12-28 2024-06-04 Samsung Electronics Co., Ltd. Systems, methods, and devices for acceleration of merge join operations
CN112905575A (zh) * 2020-12-30 2021-06-04 创盛视联数码科技(北京)有限公司 数据采集的方法、系统、存储介质及电子设备
CN113311728B (zh) * 2021-05-25 2022-08-30 南京国电南自维美德自动化有限公司 一种仿真模型与控制器通信的方法和系统
US11516307B1 (en) * 2021-08-09 2022-11-29 Servicenow, Inc. Support for multi-type users in a single-type computing system
US11445045B1 (en) * 2021-12-21 2022-09-13 Akamai Technologies, Inc. Systems and methods for preventing the caching of rarely requested objects
US20240078237A1 (en) * 2022-09-07 2024-03-07 Google Llc Database Join Operations With Early Filtering
US11880369B1 (en) 2022-11-21 2024-01-23 Snowflake Inc. Pruning data based on state of top K operator
CN116248699B (zh) * 2023-03-14 2024-01-02 安超云软件有限公司 多副本场景下的数据读取方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044367A (en) * 1996-08-02 2000-03-28 Hewlett-Packard Company Distributed I/O store

Family Cites Families (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4425615A (en) * 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks
JP2753228B2 (ja) * 1987-04-30 1998-05-18 株式会社日立製作所 データ処理装置
EP0389151A3 (en) * 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US5551018A (en) 1993-02-02 1996-08-27 Borland International, Inc. Method of storing national language support text by presorting followed by insertion sorting
US5487164A (en) * 1993-09-14 1996-01-23 International Business Machines Corporation Distribution-based replacement selection sorting system
US5765034A (en) * 1995-10-20 1998-06-09 International Business Machines Corporation Fencing system for standard interfaces for storage devices
US5848408A (en) 1997-02-28 1998-12-08 Oracle Corporation Method for executing star queries
US5987453A (en) 1997-04-07 1999-11-16 Informix Software, Inc. Method and apparatus for performing a join query in a database system
US6128621A (en) 1997-10-31 2000-10-03 Oracle Corporation Apparatus and method for pickling data
US5999943A (en) 1997-10-31 1999-12-07 Oracle Corporation Lob locators
US7756986B2 (en) * 1998-06-30 2010-07-13 Emc Corporation Method and apparatus for providing data management for a storage system coupled to a network
US6427187B2 (en) * 1998-07-31 2002-07-30 Cache Flow, Inc. Multiple cache communication
JP3623697B2 (ja) 1999-07-29 2005-02-23 富士通株式会社 ディスク・タイムシェアリング装置及び方法
US6665684B2 (en) 1999-09-27 2003-12-16 Oracle International Corporation Partition pruning with composite partitioning
US6728823B1 (en) * 2000-02-18 2004-04-27 Hewlett-Packard Development Company, L.P. Cache connection with bypassing feature
KR100372582B1 (ko) * 2000-02-23 2003-02-17 가부시키가이샤 히타치세이사쿠쇼 데이터처리방법 및 시스템 및 그 처리프로그램을 기록한계산기판독이 가능한 기록매체
US20030046396A1 (en) * 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
US6618729B1 (en) 2000-04-20 2003-09-09 Ncr Corporation Optimization of a star join operation using a bitmap index structure
US7069324B1 (en) * 2000-06-30 2006-06-27 Cisco Technology, Inc. Methods and apparatus slow-starting a web cache system
US7024425B2 (en) 2000-09-07 2006-04-04 Oracle International Corporation Method and apparatus for flexible storage and uniform manipulation of XML data in a relational database system
US6526483B1 (en) 2000-09-20 2003-02-25 Broadcom Corporation Page open hint in transactions
US6745297B2 (en) * 2000-10-06 2004-06-01 Broadcom Corporation Cache coherent protocol in which exclusive and modified data is transferred to requesting agent from snooping agent
US7237027B1 (en) * 2000-11-10 2007-06-26 Agami Systems, Inc. Scalable storage system
US6961728B2 (en) * 2000-11-28 2005-11-01 Centerboard, Inc. System and methods for highly distributed wide-area data management of a network of data sources through a database interface
JP2002244898A (ja) * 2001-02-19 2002-08-30 Hitachi Ltd データベース管理プログラム及びデータベースシステム
JP3987295B2 (ja) 2001-03-19 2007-10-03 株式会社東芝 処理最適化方法、コンピュータ、及び記憶装置
US6820218B1 (en) * 2001-09-04 2004-11-16 Microsoft Corporation Persistent stateful component-based applications via automatic recovery
US7047253B1 (en) 2001-09-28 2006-05-16 Oracle Interntional Corporation Mechanisms for storing content and properties of hierarchically organized resources
AU2002334721B2 (en) 2001-09-28 2008-10-23 Oracle International Corporation An index structure to access hierarchical data in a relational database system
JP4162184B2 (ja) * 2001-11-14 2008-10-08 株式会社日立製作所 データベース管理システムの実行情報を取得する手段を有する記憶装置
US8549048B2 (en) 2001-12-19 2013-10-01 Emc Corporation Workflow database for scalable storage service
US6886077B2 (en) * 2001-12-21 2005-04-26 International Business Machines Corporation Context-sensitive caching
US6957222B1 (en) 2001-12-31 2005-10-18 Ncr Corporation Optimizing an outer join operation using a bitmap index structure
US6957210B1 (en) * 2001-12-31 2005-10-18 Ncr Corporation Optimizing an exclusion join operation using a bitmap index structure
US7092954B1 (en) * 2001-12-31 2006-08-15 Ncr Corporation Optimizing an equi-join operation using a bitmap index structure
US7420987B1 (en) 2002-01-17 2008-09-02 Juniper Networks, Inc. Arbiter for multiple mutually exclusive vectors
AU2003213113A1 (en) 2002-02-21 2003-09-09 Precise Software Solutions, Inc. System and method for analyzing input/output activity on local attached storage
US6801905B2 (en) 2002-03-06 2004-10-05 Sybase, Inc. Database system providing methodology for property enforcement
US7689623B1 (en) 2002-04-08 2010-03-30 Syncsort Incorporated Method for performing an external (disk-based) sort of a large data file which takes advantage of “presorted” data already present in the input
US7228354B2 (en) * 2002-06-28 2007-06-05 International Business Machines Corporation Method for improving performance in a computer storage system by regulating resource requests from clients
JP3977698B2 (ja) 2002-07-05 2007-09-19 株式会社日立製作所 記憶制御装置、記憶制御装置の制御方法、及びプログラム
US7461147B1 (en) * 2002-08-26 2008-12-02 Netapp. Inc. Node selection within a network based on policy
US7370068B1 (en) * 2002-09-04 2008-05-06 Teradata Us, Inc. Sorting of records with duplicate removal in a database system
US7051161B2 (en) 2002-09-17 2006-05-23 Nokia Corporation Memory admission control based on object size or request frequency
US7203691B2 (en) * 2002-09-27 2007-04-10 Ncr Corp. System and method for retrieving information from a database
US7120645B2 (en) 2002-09-27 2006-10-10 Oracle International Corporation Techniques for rewriting XML queries directed to relational database constructs
US6922754B2 (en) * 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
JP4318914B2 (ja) * 2002-12-26 2009-08-26 富士通株式会社 ストレージシステム及びその動的負荷管理方法
JP4322068B2 (ja) * 2003-03-07 2009-08-26 富士通株式会社 ストレージシステム及びそのデイスク負荷バランス制御方法
US7103603B2 (en) * 2003-03-28 2006-09-05 International Business Machines Corporation Method, apparatus, and system for improved duplicate record processing in a sort utility
US7895191B2 (en) * 2003-04-09 2011-02-22 International Business Machines Corporation Improving performance of database queries
US20040230753A1 (en) 2003-05-16 2004-11-18 International Business Machines Corporation Methods and apparatus for providing service differentiation in a shared storage environment
US7159076B2 (en) * 2003-06-24 2007-01-02 Research In Motion Limited Cache operation with non-cache memory
DE60330955D1 (de) * 2003-07-08 2010-03-04 Sap Ag Verfahren und Computersystem zur Abfrageverarbeitung
US7444515B2 (en) * 2003-08-14 2008-10-28 Washington University Method and apparatus for detecting predefined signatures in packet payload using Bloom filters
US7042716B2 (en) * 2003-08-25 2006-05-09 Simon John Edward Shearman Ergonomic pull-out computer housing
US7251650B2 (en) 2003-08-25 2007-07-31 International Business Machines Corporation Method, system, and article of manufacture for processing updates to insert operations
US7478100B2 (en) 2003-09-05 2009-01-13 Oracle International Corporation Method and mechanism for efficient storage and query of XML documents based on paths
US7558850B2 (en) 2003-09-15 2009-07-07 International Business Machines Corporation Method for managing input/output (I/O) performance between host systems and storage volumes
CA2543746C (en) * 2003-10-27 2018-01-16 Archivas, Inc. Policy-based management of a redundant array of independent nodes
JP2005165852A (ja) * 2003-12-04 2005-06-23 Hitachi Ltd ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法
US7769802B2 (en) 2003-12-04 2010-08-03 Microsoft Corporation Systems and methods that employ correlated synchronous-on-asynchronous processing
US7421562B2 (en) * 2004-03-01 2008-09-02 Sybase, Inc. Database system providing methodology for extended memory support
US7165144B2 (en) * 2004-03-19 2007-01-16 Intel Corporation Managing input/output (I/O) requests in a cache memory system
US7366735B2 (en) 2004-04-09 2008-04-29 Oracle International Corporation Efficient extraction of XML content stored in a LOB
US7320061B2 (en) 2004-05-10 2008-01-15 Oracle International Corporation Storage optimization for VARRAY columns
US7340651B2 (en) * 2004-05-28 2008-03-04 International Business Machines Corporation System and method for maintaining functionality during component failures
US8078607B2 (en) * 2006-03-30 2011-12-13 Google Inc. Generating website profiles based on queries from webistes and user activities on the search results
US20060064405A1 (en) * 2004-09-21 2006-03-23 Xiaoye Jiang Hybrid client-server protocol for fast writes to a file
US7373554B2 (en) * 2004-09-24 2008-05-13 Oracle International Corporation Techniques for automatic software error diagnostics and correction
WO2006037613A2 (en) * 2004-10-04 2006-04-13 Clearpace Software Limited Method and system for implementing an enhanced database
US20060224451A1 (en) * 2004-10-18 2006-10-05 Xcelerator Loyalty Group, Inc. Incentive program
US7454420B2 (en) 2004-11-08 2008-11-18 Sas Institute Inc. Data sorting method and system
US7734582B2 (en) * 2004-11-16 2010-06-08 International Business Machines Corporation Apparatus, system, and method for cache synchronization
US8126870B2 (en) 2005-03-28 2012-02-28 Sybase, Inc. System and methodology for parallel query optimization using semantic-based partitioning
US7512625B2 (en) * 2005-04-01 2009-03-31 International Business Machines Corporation Method, system and program for joining source table rows with target table rows
JP2006285811A (ja) * 2005-04-04 2006-10-19 Hitachi Ltd ストレージシステム及びデータ処理方法
JP2006318014A (ja) * 2005-05-10 2006-11-24 Mitsubishi Electric Corp プラント運転履歴データ管理装置
US7603660B2 (en) * 2005-06-01 2009-10-13 Microsoft Corporation Code coverage test selection
US20060294049A1 (en) * 2005-06-27 2006-12-28 Microsoft Corporation Back-off mechanism for search
US20070067575A1 (en) * 2005-09-20 2007-03-22 Morris John M Method of managing cache memory based on data temperature
US7636767B2 (en) * 2005-11-29 2009-12-22 Cisco Technology, Inc. Method and apparatus for reducing network traffic over low bandwidth links
US7327547B1 (en) * 2006-01-20 2008-02-05 Epstein Barry M Circuit element and use thereof
US7698597B2 (en) * 2006-02-28 2010-04-13 International Business Machines Corporation Method of isolating erroneous software program components
US7506119B2 (en) * 2006-05-04 2009-03-17 International Business Machines Corporation Complier assisted victim cache bypassing
US8555288B2 (en) * 2006-05-17 2013-10-08 Teradata Us, Inc. Managing database utilities to improve throughput and concurrency
US8909871B2 (en) * 2006-08-03 2014-12-09 International Business Machines Corporation Data processing system and method for reducing cache pollution by write stream memory access patterns
US7739470B1 (en) 2006-10-20 2010-06-15 Emc Corporation Limit algorithm using queue depth to control application performance
US8683139B2 (en) 2006-10-31 2014-03-25 Hewlett-Packard Development Company, L.P. Cache and method for cache bypass functionality
US7797468B2 (en) * 2006-10-31 2010-09-14 Hewlett-Packard Development Company Method and system for achieving fair command processing in storage systems that implement command-associated priority queuing
US7849073B2 (en) * 2006-12-18 2010-12-07 Ianywhere Solutions, Inc. Load balancing for complex database query plans
US20080155229A1 (en) * 2006-12-21 2008-06-26 Kevin Scott Beyer System and method for generating a cache-aware bloom filter
US8706687B2 (en) * 2007-01-24 2014-04-22 Hewlett-Packard Development Company, L.P. Log driven storage controller with network persistent memory
US8868504B2 (en) * 2007-03-07 2014-10-21 Oracle International Corporation Database system with active standby and nodes
US8892780B2 (en) * 2007-03-08 2014-11-18 Oracle International Corporation Management of shared storage I/O resources
US8099565B2 (en) * 2007-03-27 2012-01-17 The Board Of Regents Of The University Of Texas System Methods and devices for determining quality of services of storage systems
US7761425B1 (en) * 2007-03-29 2010-07-20 Symantec Corporation Low-overhead means of performing data backup
US7882304B2 (en) * 2007-04-27 2011-02-01 Netapp, Inc. System and method for efficient updates of sequential block storage
US7698272B2 (en) * 2007-08-30 2010-04-13 International Business Machines Corporation Apparatus, system, and method for deterministic file allocations for parallel operations
CN100531102C (zh) 2007-11-02 2009-08-19 华为技术有限公司 路由表调整方法、路由查询方法和装置及路由表存储装置
CN101425039A (zh) * 2007-11-02 2009-05-06 鹏智科技(深圳)有限公司 控制存储装置文件拷贝的电子设备及方法
US7890504B2 (en) 2007-12-19 2011-02-15 Netapp, Inc. Using the LUN type for storage allocation
JP4973560B2 (ja) * 2008-03-26 2012-07-11 富士通株式会社 サーバおよび接続先サーバ切替制御方法
US20100017556A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporationm U.S.A. Non-volatile memory storage system with two-stage controller architecture
US8868831B2 (en) 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
AU2010276462B1 (en) * 2010-12-27 2012-01-12 Limelight Networks, Inc. Partial object caching
EP2350879A1 (en) * 2008-09-19 2011-08-03 Oracle International Corporation Hash join using collaborative parallel filtering in intelligent storage with offloaded bloom filters
US10430338B2 (en) 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US8244984B1 (en) * 2008-12-08 2012-08-14 Nvidia Corporation System and method for cleaning dirty data in an intermediate cache using a data class dependent eviction policy
US20100191717A1 (en) 2009-01-28 2010-07-29 Goetz Graefe Optimization of query processing with top operations
JP4659888B2 (ja) * 2009-02-13 2011-03-30 株式会社日立製作所 データベース処理システム、計算機及びデータベース処理方法
US8103822B2 (en) 2009-04-26 2012-01-24 Sandisk Il Ltd. Method and apparatus for implementing a caching policy for non-volatile memory
US8281185B2 (en) * 2009-06-30 2012-10-02 Oracle America, Inc. Advice-based feedback for transactional execution
US8966033B2 (en) 2009-08-17 2015-02-24 At&T Intellectual Property I, L.P. Integrated proximity routing for content distribution
US9274950B2 (en) 2009-08-26 2016-03-01 Hewlett Packard Enterprise Development Lp Data restructuring in multi-level memory hierarchies
US8204892B2 (en) * 2009-10-26 2012-06-19 Oracle International Corporation Performance boost for sort operations
US8560598B2 (en) 2009-12-22 2013-10-15 At&T Intellectual Property I, L.P. Integrated adaptive anycast for content distribution
US8898324B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Data access management in a hybrid memory server
US9507880B2 (en) 2010-06-30 2016-11-29 Oracle International Corporation Regular expression optimizer
US8458511B2 (en) 2010-09-17 2013-06-04 Oracle International Corporation Fault isolation using code paths
US8938644B2 (en) * 2010-12-03 2015-01-20 Teradata Us, Inc. Query execution plan revision for error recovery
US9112935B2 (en) 2012-03-05 2015-08-18 Microsoft Technology Licensing, Llc Manipulating binary large objects
US10489365B2 (en) 2013-03-14 2019-11-26 Oracle International Corporation Predicate offload of large objects

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044367A (en) * 1996-08-02 2000-03-28 Hewlett-Packard Company Distributed I/O store

Also Published As

Publication number Publication date
CN104731981B (zh) 2018-03-20
US20100082648A1 (en) 2010-04-01
JP2014142940A (ja) 2014-08-07
US8521923B2 (en) 2013-08-27
JP5484470B2 (ja) 2014-05-07
EP2350875A1 (en) 2011-08-03
EP2546765B1 (en) 2018-05-09
JP6100712B2 (ja) 2017-03-22
US20130339636A1 (en) 2013-12-19
EP2350879A1 (en) 2011-08-03
US8145806B2 (en) 2012-03-27
WO2010033834A1 (en) 2010-03-25
JP2012503257A (ja) 2012-02-02
CN102203773B (zh) 2014-03-19
CN102203773A (zh) 2011-09-28
CN102197395A (zh) 2011-09-21
JP2012503256A (ja) 2012-02-02
US8825678B2 (en) 2014-09-02
US8874807B2 (en) 2014-10-28
EP2546765A3 (en) 2015-11-11
US20120173774A1 (en) 2012-07-05
US9336275B2 (en) 2016-05-10
WO2010033877A1 (en) 2010-03-25
US20140337314A1 (en) 2014-11-13
CN104731981A (zh) 2015-06-24
EP2546765A2 (en) 2013-01-16
JP5484471B2 (ja) 2014-05-07
US20100077107A1 (en) 2010-03-25

Similar Documents

Publication Publication Date Title
CN102197395B (zh) 存储器端存储请求管理
CN103426072B (zh) 一种高并发竞争库存的订单处理系统及其处理方法
AU657877B1 (en) Availability processor and method
US8527323B2 (en) Method and system for load balancing a forecast system by selecting a synchronous or asynchronous process to determine a sales forecast
CN109658027A (zh) 一种订单任务的处理方法、装置、服务器和介质
US8671134B2 (en) Method and system for data distribution in high performance computing cluster
US5819083A (en) Minimal sufficient buffer space for data redistribution in a parallel database system
US8443366B1 (en) Techniques for establishing a parallel processing framework for a multi-tenant on-demand database system
CN104040485A (zh) Paas分层调度和自动缩放
US8776067B1 (en) Techniques for utilizing computational resources in a multi-tenant on-demand database system
CN110147974A (zh) 分布式仓库间库存共享方法及装置
CN110383764A (zh) 无服务器系统中使用历史数据处理事件的系统和方法
CN110058940B (zh) 一种多线程环境下的数据处理方法及装置
US20170220957A1 (en) Restaurant reservation and table management system and method
CN103294548A (zh) 一种基于分布式文件系统的io请求调度方法和系统
CN110119405B (zh) 分布式并行数据库资源管理方法
CN111260288B (zh) 订单管理方法、装置、介质及电子设备
CN102081624A (zh) 一种数据查询的方法及查询服务器
US20200133732A1 (en) Coordinating main memory access of a plurality of sets of threads
CN108022070B (zh) 一种混合装卸车辆协同调度运输方法
CN113222490A (zh) 一种库存分配方法和装置
CN116629495A (zh) 用于输出信息的方法和装置
US20230137673A1 (en) Systems and methods for dynamically scaling remote resources
CN101529860A (zh) 包括网络中几个节点的改进的基于计算机的系统
US7725902B2 (en) Finer grained point-to-point event propagation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant