CN116391175A - 自动缩放用于企业级大数据工作负载的查询引擎 - Google Patents
自动缩放用于企业级大数据工作负载的查询引擎 Download PDFInfo
- Publication number
- CN116391175A CN116391175A CN202180070753.8A CN202180070753A CN116391175A CN 116391175 A CN116391175 A CN 116391175A CN 202180070753 A CN202180070753 A CN 202180070753A CN 116391175 A CN116391175 A CN 116391175A
- Authority
- CN
- China
- Prior art keywords
- worker nodes
- query
- queries
- service
- processors
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/505—Clust
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种用于自动缩放查询引擎的方法、计算机程序产品和系统。该方法包括一个或多个处理器监视查询引擎处的查询流量。该方法还包括一个或多个处理器基于查询的复杂度水平通过多个服务类别对查询进行分类。该方法还包括一个或多个处理器将每个服务类别的查询流量与允许并发处理的服务类别的查询的最大数量的并发阈值进行比较。该方法还包括一个或多个处理器指示自动缩放工作者节点群集,以基于在定义的时间段内查询流量相对于定义的放大阈值和定义的缩小阈值的比较,改变群集中可用的多个工作者节点。
Description
背景技术
本发明总体上涉及查询引擎领域,并且更具体地涉及自动缩放查询引擎。
现代云技术为数据分析提供了很大的机会。计算和存储分离的趋势意味着计算引擎可相对于工作负载需要来缩放。例如,由所有领先的云提供者提供的云对象存储具有以具有真实弹性缩放和非常高程度的耐久性和可靠性的大规模存储结构化和非结构化数据两者的灵活性。将计算与存储分离,其中计算运行在诸如(Kubernetes是Linux基金会的商标)的容器化技术中,意味着可以根据工作负载需求快速地水平放大或缩小集群。
查询引擎技术,诸如(Hadoop是Apache软件基金会的商标)上的结构化查询语言(SQL)引擎或对象存储技术,具有直接引用外部存储装置中的数据并提供使用现有复杂SQL和商业智能工具来分析其所处的数据的能力的能力。另外,该技术提供放大或缩小SQL引擎计算节点的数量的能力,以满足跨竞争工作负载的业务的变化需求。
现代大规模并行处理(MPP)SQL引擎通常包括头节点和多个“n”个工作者节点(其中,n可以在几百或者甚至几千个节点中)的集群。在这种弹性范例中已经显现的重要挑战是以有序方式缩放大数据SQL引擎群集的能力,使得该群集对改变工作负载模式有响应但不过于敏感。基于简单的基于主机的度量(诸如中央处理单元(CPU)或存储器使用)来缩放SQL引擎以响应变化的复杂工作负载可能是有问题的。例如,CPU使用可能是不可预测的,并且甚至对于单个复杂SQL查询的执行也可能非常快速地变化,这取决于当前在进行查询的哪个阶段。以此简单方式缩放群集可导致颠簸,其中工作者节点的数量由于CPU度量不可预测性而不规则地波动。颠簸的结果可能对总体群集稳定性具有不利影响,并且在极端情况下致使自动缩放不可用。
另一挑战是当缩小集群时以迅速的方式排空活动查询的工作者节点而不中断任何进行中查询的能力。例如,一个或两个长时间运行的查询可在任何给定的时间在工作者节点上进行。一旦查询片段已经在给定工作者上开始,查询片段就被绑定到该工作者并且不能被移动到另一工作者。SQL查询访问计划在性质上是复杂的,涉及涉及诸如散列接合、嵌套循环接合、排序操作等操作的多个阶段。当复杂的查询被分配给可用的工作者节点时,每个工作者参与查询执行并不纯粹由磁盘输入/输出(IO)来门控。换言之,将正在从存储装置读取的数据块转移至另一工作者并不消除工作者参与查询的剩余部分,因为工作者可能参与集群范围的洗牌或散列接合流式操作。
发明内容
本发明的各个方面公开一种用于自动缩放查询引擎的方法、计算机程序产品和系统。该方法包括一个或多个处理器监视查询引擎处的查询流量。该方法还包括一个或多个处理器基于查询的复杂度水平通过多个服务类别来对查询流量的查询进行分类。该方法还包括一个或多个处理器将每个服务类别的查询流量与允许并发处理的服务类别的最大数量的查询的并发阈值进行比较。所述方法还包括一个或多个处理器指示自动缩放工作者节点群集,以基于在定义的时间段内相对于定义的放大阈值和定义的缩小阈值的查询流量的比较,改变群集中可用的工作者节点的工作者节点的数量。自动缩放将多个工作者节点添加到或者删除到处理查询引擎的查询的工作者节点群集。
因此,本发明的实施例可提供工作者节点群集可响应于变化的复杂度的工作负载需要而放大或缩小的优点。
在另一实施例中,定义的放大阈值和定义的缩小阈值各自可以是查询流量中的查询数量与并发阈值相比的定义的阈值比率。这可以确定与服务类别的容量相比的该类别的工作流。
在另一实施例中,所述方法可包括一个或多个处理器基于在给定时间跨所有服务类别的查询流量的比较的聚合来评估待添加或删除的工作者节点的数量。评估待添加或删除的工作者节点的数量可以包括:对于违背了定义的放大阈值或定义的缩小阈值的每个服务类别,使待添加或删除的工作者节点的数量基于分配给服务类别的工作者节点的当前比例以及基于比较的所需容量的增加或减少。
在另一实施例中,该方法可以包括一个或多个处理器基于自动缩放之后集群中的工作者节点的新数量来调整一个或多个服务类别的并发阈值。这在缩放发生之后自动更新阈值。对于放大,查询流量可以由于针对服务类别达到并发阈值而通过在针对每个服务类别的队列中等待的排队查询来确定;并且当在针对服务类别的队列中等待的查询的数量与针对服务类别的并发阈值相比的比率大于针对定义的时间段的定义的比率时,定义的放大阈值可以被违背。对于缩小,可以通过针对每个服务类别的当前活动的查询来确定查询流量;并且当针对服务类别的活动查询的数量与针对服务类别的并发阈值相比的比率小于针对定义的时间段的定义的比率时,定义的缩小阈值可以被违背。
在另外的实施例中,所述方法可包括一个或多个处理器提供多个节点组,每个节点组包括集群中的可用工作者节点的子集。针对查询的期望持续时间来配置节点组。该方法还可以包括一个或多个处理器将查询的服务类别映射到节点组,以便将服务类别的查询分配给所映射的节点组的工作者节点。通过删除多个工作者节点的自动缩放可包括根据节点组选择多个工作者节点用于在删除之前排空,其中工作者节点选自配置用于最低可能预期持续时间的查询的节点组。
本发明的另一方面公开了一种用于自动缩放查询引擎的方法、计算机程序产品和系统。该方法包括一个或多个处理器基于服务类别(该服务类别基于查询复杂度的相应水平)来对查询流量的查询进行分类。该方法还包括一个或多个处理器通过基于查询引擎处的查询流量将多个工作者节点加入或删除至集群中可用的工作者节点来自动缩放工作者节点。该方法还包括提供多个节点组的一个或多个处理器,每个节点组包括集群中的可用工作者节点的子集,其中,节点组被配置用于预期持续时间的查询。该方法还包括一个或多个处理器根据服务类别和节点组之间的亲和性将查询的每个服务类别映射到节点组。此外,通过删除多个工作者节点的自动缩放还包括一个或多个处理器,所述一个或多个处理器根据节点组选择多个工作者节点用于在删除之前排空,其中工作者节点选自配置用于最低可能预期持续时间的查询的节点组。
因而,本发明的实施例可以通过删除不忙于长时间运行的查询的节点来提供最小化缩小集群对进行中查询的影响的优点。
在另一实施例中,该方法可以包括一个或多个处理器对节点组进行排序,其中首先排空用于较低预期持续时间的查询的节点组。此外,根据工作者节点的自动缩放,节点组是动态的和调整的。
在另外的实施例中,该方法可以包括一个或多个处理器将每个服务类别的活动查询形式的查询流量与要被并行处理的服务类别的查询的最大数量的并发阈值进行比较。所述方法还包括一个或多个处理器通过基于所述比较违背定义的缩小阈值而将多个工作者节点从所述群集中可用的工作者节点中删除来自动缩放,其中所述违背在定义的时间段内被保持。
附图说明
在说明书的结论部分中特别指出并明确要求保护被视为本发明的主题。
现在将参考以下附图,仅通过示例的方式来描述本发明的优选实施例。
图1是根据本发明的实施例可以在其中实现本发明的系统的示例实施例的示意图。
图2是根据本发明的实施例的方法的示例实施例的流程图。
图3是根据本发明的实施例的放大方法的示例实施例的流程图。
图4是根据本发明的实施例的缩小方法的示例实施例的流程图。
图5A是根据本发明的实施例的示例实施例的示意图。
图5B是根据本发明的实施例的示例实施例的示意图。
图5C是根据本发明的实施例的示例实施例的示意图。
图6是根据本发明的实施例的系统的示例实施例的框图。
图7是根据本发明的实施例的其中可以实现本发明的计算机系统或云服务器的实施例的框图。
图8是根据本发明的实施例的其中可以实现本发明的云计算环境的示意图。
图9是根据本发明的实施例的其中可以实现本发明的云计算环境的抽象模型层的图。
应当理解,为了说明的简单和清晰,图中所示的元素不一定按比例绘制。例如,为了清楚起见,一些元素的大小可能相对于其他元素被放大。进一步,在认为合适的情况下,附图标记可在附图中重复以指示对应或类似的特征。
具体实施方式
所描述的系统和方法被提供用于为企业级大数据工作负载自动缩放查询引擎。自动缩放包括通过将多个工作者节点添加到处理查询引擎的查询的工作者节点群集来进行放大,或者通过删除多个工作者节点来进行缩小。
本发明的实施例可操作用于以排队查询和活动查询的形式监视查询引擎处的查询流量,其中查询基于查询的复杂度水平被分类为服务类别。将每个服务类别的查询流量与允许并发处理的服务类别的查询的最大数量的并发阈值进行比较,这确定是否违背了需要放大或缩小工作者节点的数量以适应查询流量的阈值。
本发明的实施例然后可指示群集的自动缩放,以基于违背定义的放大阈值或定义的缩小阈值的比较,将多个工作者节点添加到群集中可用的工作者节点或从群集中可用的工作者节点删除多个工作者节点,其中违背保持定义的时间段。基于根据查询的服务类别将查询分布到工作者节点来执行查询引擎中的多个工作者节点的缩放,并且基于对每个查询服务类别的需求来实例化查询引擎或从查询引擎删除节点。
此外,在缩小操作期间,本发明的实施例认识到首先选择具有最低成本复杂度组别的工作者节点组删除的工作者节点的需要,以便确保迅速完成缩小操作而不会对运行中或运行查询产生任何影响。
所描述的方法和系统的另一实施例提供多个节点组,每个节点组包括集群中的可用工作者节点的子集,其中,根据预期持续时间的查询配置节点组。查询的每个服务类别被映射到节点组,以便提供服务类别和节点组之间的亲和性。当需要通过缩小进行自动缩放时,本发明的实施例可在删除工作者节点之前排空工作者节点。因此,根据节点组,在删除之前选择工作者节点用于排空,其中,从针对最低可能预期持续时间的查询而配置的节点组中选择工作者节点。
除了扩展或收缩查询引擎中的计算容量的基本机制,本发明的实施例认识到需要适应查询引擎的基于成本的优化器所确定的查询的复杂度。通过确定查询复杂度,然后,将查询分配给变化复杂度捆绑的一组服务类别,群集可以以及时且有序的方式扩展。对于收缩操作,本发明的实施例认识到首先需要从具有最低成本复杂度组别的工作者组中选择用于删除的工作者以确保迅速和有序地删除候选工作者的需要。在不同实施例中,如由队列长度和响应时间所确定的,可以触发自动放大和缩小操作。
本发明的实施例可以响应于变化的复杂度的主导终端用户工作负载需要来执行缩放。本发明的进一步实施例可以通过基于成本配置文件将查询映射到工作者节点组,并且然后首先选择用于从与最低成本查询(并且因此运行时)相关联的工作者节点组删除的工作者,来响应于基于工作负载的成本分段配置文件的终端用户查询,实现弹性和自动缩放。
利用这些新能力,查询引擎可操作以响应于从复杂且准确的基于成本的优化器和工作量管理组件获得的整体工作负载需要的可靠预测而以迅速和有序的方式自动缩放。
参见图1,框图101示出了根据本发明的实施例的用于企业级大数据工作负载的查询引擎100的示例实施例。
现代大规模并行处理(MPP)查询引擎(例如,查询引擎100)(诸如SQL引擎)通常包括头节点110和多个“n”个工作者节点150(其中,n可在几百或者甚至几千个节点中)的集群。工作者节点150基本上映射到在主机(虚拟机或裸金属)上调度的容器,其中通常在每个主机上放置一个或多达几个工作者节点。当查询被提交至引擎100时,查询被调度为在可用的工作者节点150上运行,其中,每个工作者节点150运行也称为编译查询的运行时段的片段。在一些实现方式中,节点列表被称为“动态节点组”。列表不是静态的,因为列表将取决于在提交查询时存在于集群中的工作者节点150的数量而变化,并且如果已经明确排除了任何工作者节点(例如,当在主机上检测到硬件故障时)。
头节点110可在物理或虚拟机上运行,并且可包括至少一个处理器111、硬件模块或用于执行所描述的组件的功能的电路,这些组件可以是在至少一个处理器上执行的软件单元。可以提供运行并行处理线程的多个处理器,从而使能并行处理组件的功能中的一些或全部。存储器112可以被配置为向至少一个处理器111提供计算机指令113,以执行组件的功能。
查询引擎100可以包括负责选择最佳查询访问计划的查询优化器组件114,并且可以包括用于提供查询的相关联的运行时成本估计的查询成本分析组件115。在示例实施例中,成本是理论上的测量单位(称为成本单位(timeron)),但实际上,成本表示完成查询所需的运行时持续时间和总体群集资源的组合。
结合查询优化器组件114,查询引擎100也可以以工作负载管理(WLM)组件120为特征,以监视和控制在集群上执行的语句,以便有效利用集群资源,确保集群不被过度利用或未被充分利用。在高级别,可以执行一定数量的并发查询,以便不使集群资源过度饱和。当超过阈值时,进入工作被排队(例如,被描绘为队列141、队列142和队列143),直到一些较早的查询已经完成。
WLM组件120可以包括服务类别映射组件121,该服务类别映射组件121基于相应的成本和其他属性(例如,用户和群组,映射到被称为WLM服务类别的逻辑概念)将查询映射。WLM组件120可以基于优化器组件114计算的运行时成本,将查询分割成表示不同复杂度组别的服务类别。可以基于监视集群的周期来校准组别以理解跨不同成本配置文件的查询的相对资源使用。
例如,具有小于150000的成本单位成本的查询可以被认为是“不重要的(Trivial)”,150001和一百万之间的成本单位成本的查询是“简单的”,一百万和六百万之间的成本单位成本的查询是“中等的”,以及成本单位成本大于六百万的查询是“复杂的”。因此,当查询被提交给查询引擎100时,基于由优化器组件114估计的成本,查询被映射到不重要的服务类别、简单服务类别、中等服务类别和复杂服务类别。
基于从校准阶段收集的信息,查询引擎管理员可以在WLM组件120的并发阈值设置和调整组件122处为可以在这些服务类别的每一个中运行的并发查询的数量设置阈值。在示例实施例中,为每个组别设置的阈值通常被选择为使得对于服务类别(例如,对于简单、中等和复杂查询)的总体资源使用是相等的。例如,在给定的集群上,过程可以转换成复杂组别中的两个查询、中等组别中的五个查询和简单组别中的十个查询的并发阈值。不重要的查询可被认为具有非常少的资源需求,使得查询不被管理。一旦达到服务类别的并发阈值,则在用于相关联的服务类别的先进先出(FIFO)队列(即,队列141-143)中管理后续查询。因而,管理员可确保每个服务类别可用的足够资源,这可操作以通过避免资源过度承诺而导致对稳定性的不利影响(诸如交换)的情况来保护集群的整体稳定性。
所描述的方法和系统扩展查询引擎100的功能以提供自动缩放器组件130,所述自动缩放器组件130响应于服务类别的查询流量而驱动多个工作者节点150的放大或缩小操作。当考虑放大时,查询流量是队列长度,并且当考虑缩小时,查询流量是当前活动查询的数量。将查询流量与每个服务类别同时处理的队列的最大数量进行比较。本发明的实施例可以监视(队列141-143的)队列长度并且基于在指定时间段上的服务类别的队列长度与该服务类别的并发阈值的比较来设置用于自动放大的阈值。本发明的进一步实施例可以监视查询的有效数量并且基于在指定时间段上针对服务类别的有效查询的数量与针对该服务类别的并发阈值的比较来为自动缩小设置阈值。
所描述的方法和系统还引入具有多个动态节点组的能力,每个动态节点组包括指定为总可用工作者节点150的百分比的集群中的可用工作者节点150的子集,其中工作负载服务类别映射到动态节点组,以便在服务类别与节点组之间提供某种亲和性。
参见图2,流程图示出了根据本发明的实施例的方法200,所述方法200是由查询引擎100执行的所述方法的方面的示例实施例。在不同实施例中,查询引擎100(在图1中的框图101中描绘)可执行方法200的过程。此外,方法200的方法可涉及在该方法中使用的一些参数的初始预处理配置。
在步骤201中,方法200基于查询的复杂度来配置用于查询的服务类别。在实施例中,查询引擎100可以利用基于成本的优化器组件基于查询需要的运行时持续时间和集群资源的组合来计算查询的运行时成本。查询引擎100可以基于运行时成本将查询分段或分类为表示不同复杂度组别的服务类别,其中,基于监视集群的周期来校准组别。在步骤202中,方法200将针对每个服务类别的并发阈值设置为群集允许并发地处理的服务类别的查询的最大数量。
在步骤203中,方法200配置服务类别放大阈值和缩小阈值。在各个实施例中,方法200可以将定义的放大阈值和定义的缩小阈值分别配置为查询流量中的查询数量与并发阈值相比的定义的阈值比率。当确定是否需要放大或缩小时,查询流量可以不同。在所描述的实施例中,通过服务类别的当前排队的查询,为了放大的目的,测量查询流量,并且通过当前活动的查询,为了缩小的目的,测量查询流量。
在步骤204中,方法200可配置动态节点组,每个动态节点组包括集群中的可用工作者节点的子集,并且被配置用于预期持续时间的查询。例如,方法200可以为短查询、平均持续时间查询和长持续时间查询配置动态节点组。查询的服务类别被映射到节点组,以便将服务类别的查询分配给所映射的节点组的工作者节点。
一旦参数已经被初始配置,方法200在查询引擎100的操作期间被执行,以监视每个服务类别的查询流量(在步骤205)。为了自动缩小查询引擎100中活动的多个工作者节点,在步骤205中,方法200可以以每个服务类别的活动查询的形式监视查询流量。为了自动放大在查询引擎100中活动的多个工作者节点,方法200可通过服务类别以排队查询的形式监视查询流量。
在步骤206中,方法200将每个服务类别的查询流量与该服务类别的并发阈值进行比较。然后,在步骤207中,方法200确定该比较是否违背定义的缩小阈值或定义的放大阈值。当在针对服务类别的队列中等待的查询的数量与针对服务类别的并发阈值相比的比率大于定义的比率达定义的时间段时,违背定义的放大阈值。在针对服务类别的多个活动查询与针对服务类别的并发阈值相比的比率小于针对定义的时间段的定义的比率时,违背定义的缩小阈值。
在步骤208中,方法200可评估需要跨所有服务类别添加或删除的节点的数量。在示例实施例中,方法200可以通过聚合服务类别来执行步骤208,其中,通过基于分配给服务类别的工作者节点的当前比例以及基于比较的所需容量的增加或减少,来违背为每个服务类别添加或删除的工作者节点的数量,从而违背了定义的放大阈值或定义的缩小阈值。
如果需要缩小,则方法200可按照定义的动态节点组的顺序选择用于排空的工作者节点(步骤209)。例如,方法200可以选择处理成本较低的查询的节点,以使得可以更有效地排空节点。在示例实施例中,方法200可执行排空过程,而不影响或中断在这些工作者节点上运行的现有查询。方法200可首先从分配了较短时间运行的查询的节点组中选择用于在缩小期间删除的候选节点,然后接下来从分配了中等持续时间和复杂度查询的节点组中选择用于删除的候选节点,并且最后仅从节点组中选择用于长时间运行的查询作为最后的手段。因此,候选节点将快速排空活动查询,这确保工作者节点可被释放以对终端用户快速和透明地完成缩小操作。
当完成所需数量的工作者节点的排空时,如果需要缩小,那么方法200可自动缩放以添加或删除所需数量的工作者节点(步骤210)。在放大和缩小两个场景中,方法200可以基于放大或缩小的工作者节点的数量来调整服务类别并发阈值(在步骤211中)。然后,方法200可以将调整反馈到并发阈值设置(在步骤202中)以用于查询引擎100的进一步监视和自动缩放。在放大和缩小两种情况下,方法200可基于放大或缩小的工作者节点的数量来调整动态节点组(在步骤212中)。然后,方法200可反馈对动态节点组配置的调整(在步骤204中),以用于查询引擎100的进一步监视和自动缩放。
参见图3,流程图示出了根据本发明的实施例的方法300,方法300是自动放大查询引擎100中的节点集群的方法的示例实施例。在不同实施例中,查询引擎100(描绘在图1中的框图101中)可执行方法300的过程。
在步骤301中,方法300开始,然后在步骤302中,方法300监视查询引擎100的集群中的排队查询。然后,在方法300的过程310中,对于每个服务类别,方法300以持续的并行方式执行步骤311-312的过程。在步骤311中,该方法检查服务类别的排队查询。响应于确定(在步骤312中)与服务类别的并发阈值相比较的排队查询的比率大于针对大于定义的响应时间的排队时间的阈值比率,然后(在步骤313中)方法300评估用于添加到服务类别的增量节点的数量。
进一步,在步骤303中,方法300评估要跨类别添加的增量节点的总数。然后,方法300放大集群以添加增量数量的工作者节点(在步骤304中)。在步骤305中,方法300调整配置的服务类别并发阈值以适应新的工作者节点。此外,方法200还可以为服务类别调整动态节点组(在步骤306中)。方法300随后循环到步骤302,以监视在放大的集群中排队的查询。
参见图4,流程图示出了根据本发明的实施例的自动缩小查询引擎100中的节点集群的方法的示例实施例的方法400。在不同实施例中,查询引擎100(描绘在图1中的框图101中)可执行方法400的过程。
在步骤401中,方法400开始,然后在步骤402中,方法400监视查询引擎100的集群的节点中的活动查询。然后,在方法400的过程410中,对于每个服务类别,方法400以正在进行的并行方式执行步骤411-413。在步骤411中,方法400检查对服务类别的活动查询。响应于确定活动查询与并发阈值的比率在大于定义的低活动时间的时间内小于阈值比率(在步骤412中),然后(在步骤413中)方法400针对服务类别评估要删除的增量节点的数量。
进一步,在步骤403中,方法400评估跨类别删除的增量节点的总数。在不同实施例中,在删除节点之前,节点需要被排空。方法400包括按照属于服务类别的定义的动态节点组的顺序选择排空哪些工作者节点(步骤404)。一旦完成所需数量的节点的排空,那么方法400可缩小群集以删除增量数量的工作者节点(步骤405)。
在步骤406中,方法400可调整配置的服务类别活动百分比阈值,以适应删除的工作者节点。此外,在步骤407中,方法400还可以调整用于服务类别的动态节点组。方法400然后循环到步骤402,以监视缩小的集群中的排队查询。
图5A描绘了根据本发明的实施例的示意图500,以示出所描述的方法的示例实施例。图5B描绘了根据本发明的实施例的示意图590,以示出所描述的方法的示例实施例。图5C描绘了根据本发明的实施例的示意图598,以示出所描述的方法的示例实施例。在所描绘的实施例中,图5A示出了放大场景,图5B示出了对服务类别的动态节点组从属关系,图5C示出了缩小场景。
图5A和图5B示出了工作量管理组件120,其接收和处理多个查询(即,查询501、查询502、查询503和查询504)以供工作者节点群集570执行,工作者节点群集570包括节点571、节点572、节点573、节点574、节点575、节点576、节点577、节点578和节点579(即,节点571-579)。在所描绘的示例中,多个服务类别被配置用于查询的不同成本类。在所描绘的实施例中,工作量管理组件120包括不重要的服务类别510、简单服务类别520、中等服务类别530和复杂服务类别540。每个服务类别具有配置的并发阈值作为可以针对每个类进行处理的并发查询的数量。在所描绘的实施例中,用于不重要的查询的并发阈值是无限的511,用于简单查询是十(并发阈值521),用于中等查询是五(并发阈值531),以及用于复杂查询是二(并发阈值541)。
工作量管理组件120包括队列512、522、532、542,用于等待在工作者节点群集570中执行的来自每个服务类别的查询。所描绘的示例还包括节点组映射组件550,其关于图5B被进一步描述。工作者节点群集570可包括多个工作者节点(即,节点571至579)。此外,对于正在跨节点571-579的子组执行的查询的每个服务类别,活动查询560描绘了活动查询的数量(即,不重要的活动查询514、简单活动查询524、中等活动查询534和复杂活动查询544)。
参照图5A,示意图500示出了根据本发明的示例实施例的工作者节点的数量的自动缩放。在示例中,管理员可以配置队列阈值量551,其在该示例中是与每个服务类别的并发阈值相比较的在每个服务类别中排队的查询的百分比数量。在该示例中,集群管理员将百分比变化配置为值50%并且将响应时间配置为五分钟。管理员还可以配置活动阈值量552,在该示例中,该活动阈值量552是与每个服务类别的并发阈值相比较的在每个服务类别中活动的查询的百分比数量。
图5A中示出的示例包括十六个不重要的活动查询514。针对不重要的查询的并发阈值511是无限的,因此并发阈值不驱动节点的放大。此外,图5A描绘了九个简单活动查询524,并且针对简单查询的并发阈值521是十;因此,并发阈值不驱动节点的放大。
在进一步的实施例中,用于中等查询服务类别的并发阈值是五(并发阈值531),并且图5A描绘了五个中等活动查询534的全容量。此外,图5A包括两个排队的中等查询533;然而,两个小于50%的排队的阈值量551,因此这不触发节点的放大。
在另一实施例中,复杂查询服务类别4的并发阈值被设置为并发阈值二(例如,并发阈值541),并且两个复杂活动查询544已经在工作者节点群集570上运行。一个新的复杂查询543被提交至工作者节点群集570并且由工作量管理组件120排队542超过5分钟。因此,自动缩放器组件130将驱动节点的放大以扩展工作者节点群集570。
放大的节点的数量可以基于与队列阈值量551相同的百分比;并且因此可以被计算为集群中处理复杂查询的节点部分的50%。在该实施例中,以三种方式平均划分节点的数量以处理简单、中等和复杂查询,其中不重要的查询在集群中不受限制。在图5A的示例实施例中,示意图500目前包括十五个工作者节点(即,节点571-577),其中五个处理复杂查询。五个节点的50%需要放大,这需要三个额外的节点581、582、583。预放大的群集584被示为节点571-577,放大后的群集585被示为节点571-579和节点581-583。
自动缩放器组件130可基于以下公式计算所需的工作者节点的增量数量:
D=上限(N*(IF(qS*100/tS)>=p THEN qS*100/tS/300ELSE 0ENDIF+IF(q
M*100/tM)>=p THEN qM*100/tM/300ELSE 0ENDIF+IF(qC*100/tC)>=
p THEN qC*100/tC/300ELSE 0ENDIF)
其中:
D是工作者节点的增量数量;
tS是简单查询的数量的并发阈值;
tM是中等查询的数量的并发阈值;
tC是复杂查询的数量的并发阈值;
qS是排队的简单查询的数量;
qM是排队的中等查询的数量;
qC是排队的复杂查询的数量;
N是当前在集群中的工作者节点的数量;以及
p是自动缩放百分比触发器。
要注意的是,除数三百(3x100)基于以下假设:校准阶段在简单、中等和复杂查询的三个组别之间产生集群资源的均等分配。这可以针对不同的分配而改变。
因此,在所描述的情况下,D被计算为:
D=上限(15*(1*100/2/300))=3
因此,群集被三个工作者扩展,以将群集大小从十五个工作者增大到十八个工作者。
用于中等查询服务类别的并发阈值是五(并发阈值531),并且如果中等活动查询534的数量减少到两个,而没有排队的中等查询533并且条件持续五分钟,则自动缩放器组件130将驱动集群大小的相称减少(即,缩小集群以释放所计算数量的工作者节点)。
此外,管理员可以配置一组动态节点组。在该实施例中,对于长时间运行的查询,将第一节点组命名为“长”,其绑定至集群中的第一百分比或节点。第二节点组被命名为“平均”用于平均长度运行查询,其绑定至集群中不同节点的第二百分比。第三节点组被命名为“短”以用于短长度运行查询,其被绑定到集群中的所有节点。管理员然后可以创建服务类别到节点组映射,其将不重要的查询服务类别和简单查询服务类别映射到“短”节点组,将中等服务类别映射到“平均”节点组,并且将复杂服务类别映射到“长”节点组。映射提供服务类别到节点组的联合。
每当自动缩放器组件发起缩小操作时,用于排空的候选节点首先从具有“短”节点组、然后从“平均”节点组并且最后从“长”组(例如,仅作为最后手段)的节点组中选择。因此,可以指定针对排空的相当激进的或短的宽限期,因为在“短”节点组中运行的任何查询将相当短暂并且将迅速排空。随着节点从群集排空和释放,随着新查询被提交给查询引擎,通过动态调整调度查询片段的节点列表来维持节点组分配的指定百分比。
图5B描绘了节点组映射组件550和服务类别到节点组映射595,其提供查询复杂度与某些工作者节点之间的亲和性。除了基于优化器成本将每个查询分配给相应的服务类别并且应用相关联的并发阈值之外,工作量管理组件120还将查询映射595到适当的节点组,这是服务类别查询的查询片段被调度的位置。
在该示例中,不重要的服务类别510和简单服务类别520查询可被映射到用于“短”时间运行查询593的节点组,该节点组包括集群中的所有工作者节点;对于绑定到集群中的35%的工作者节点的“平均”持续时间查询592,可将中等服务类别530复杂度查询映射到节点组;并且复杂服务类别540查询可以被映射到用于“长”时间运行查询591的节点组,该“长”时间运行查询591被绑定到包括35%的工作者节点的不同集合。
响应于发起缩小集群的操作,首先从排他地绑定至短节点组的节点中选择用于驱逐的候选工作者节点。在图5B中描绘的示例配置中,选择是集群中30%的工作者节点594,所述工作者节点594也未绑定至平均值592和长节点组(长时间运行的查询591),这意味着集群可以缩小30%的原始大小,并且仅需要排空短时间运行的查询(基于查询复杂度映射的)。因此,排空应当是快速的,允许节点被快速释放,而对运行查询没有任何影响。如果替代地,集群需要被缩小50%,则来自平均节点组的工作者也将需要被选择,这将引起那些节点的较长的排空持续时间,可能在采取更多规避动作以完成逐出之前需要宽限期。随着群集被缩放,并发阈值也被成比例地调整以反映当前整体计算能力。新并发阈值被应用于任何随后提交的查询。
在图5C中将所有这些放在一起,运行复杂服务类别(复杂活动查询544)的查询的数量现在仅为两个,其小于用于该服务类别的三个的并发阈值541。在运行复杂服务类别的查询(复杂活动查询544)的数量是两个持续五分钟以上的场景中,自动缩放器组件触发缩小操作以将工作者的数量减少所计算的增量数量的三个工作者(即,实际上与图5A中驱动的放大相反)。一旦缩小操作已经完成,复杂查询服务类别的阈值被恢复到二(并发阈值541)。
参见图6,框图示出了根据本发明的实施例的查询引擎100的示例实施例,其中工作管理组件120的其他组件用于指示自动缩放器组件130自动缩放处理查询引擎100的查询的工作者节点群集的工作者节点的数量。工作量管理组件120可以包括以下组件。
查询流量监视组件601监视查询引擎处的查询流量,其中查询基于查询的复杂度水平由服务类别映射组件121分类为多个服务类别。查询流量监视组件601可包括:查询队列监视组件602,用于为等待处理的服务类别监视查询队列,查询队列监视组件可用于放大工作者节点的数量;以及活动查询监视组件603,用于监视正在为服务类别处理的活动查询,活动查询监视组件可用于缩小工作者节点的数量。工作量管理组件120还包括并发阈值设置和调整组件122,用于设置允许并发活动的类的查询的最大数量,并且基于由于自动缩放而改变的工作者节点的数量来调整最大数量。
此外,工作量管理组件120包括并发比较组件604,用于将每个服务类别的查询流量与并发阈值进行比较,以便确定是否违背了服务类别的放大阈值或缩小阈值。并发比较组件604可以包括放大阈值组件605,用于将放大阈值定义为在针对服务类别的队列中等待的查询的数量与针对服务类别的并发阈值相比较的定义的比率达定义的时间段。当比率大于定义的比率达定义的时间段时,放大阈值被违背。并发比较组件604可以包括缩小阈值组件606,所述缩小阈值组件606用于将缩小阈值定义为针对服务类别的活动查询的数量与针对所述服务类别的并发阈值相比针对定义的时间段的定义的比率。当所述比率小于定义的比率达定义的时间段时,所述缩小阈值被违背。
工作量管理组件120还包括增量节点评估组件607,用于基于在给定时间跨所有服务类别的查询流量的比较的聚合来评估待添加或删除的多个工作者节点。增量节点评估组件607,对于其中违背定义的按比例放大阈值或定义的缩小阈值的每个服务类别,基于被分配给服务类别的工作者节点的当前比例以及基于比较的所需容量的增加或减少,将要被添加或删除的工作者节点的数量。查询类别聚合组件608可以组合服务类别的要求。
进一步,工作量管理组件120包括自动缩放指示组件620,其用于基于所述比较违背定义的放大阈值或定义的缩小阈值,指示集群的自动缩放以向或从集群中可用的工作者节点添加或删除多个工作者节点,其中该违背在定义的时间段内被保持。被指示的自动缩放器组件可以是集成组件或者可以是使用定制度量被指示的第三方自动缩放器组件。例如,Kubernetes自动缩放器包括使用定制度量的能力,该定制度量可以基于指令来计算。
工作量管理组件120可包括节点组组件610,用于提供多个节点组,每个节点组包括集群中的可用工作者节点的子集,并且其中节点组被配置用于预期持续时间的查询。工作量管理组件120还可包括服务类别映射组件612,其用于将查询的服务类别映射到节点组,以便将服务类别的查询分配给所映射的节点组的工作者节点。工作量管理组件120可利用节点组组件610和服务类别映射组件612,其中节点排空选择组件613用于在根据节点组进行缩小时选择多个工作者节点用于在删除之前进行排空,其中工作者节点选自配置用于查询的最低可能期望持续时间的节点组。节点排空选择组件613选择用于排空的多个工作者节点的过程可包括将节点组排序,其中首先排空用于较低预期持续时间的查询的节点组。在示例实施例中,节点组组件610根据工作者节点的自动缩放动态地调整节点组。
图7描绘了根据本发明的实施例的图1的查询引擎100的头节点的计算设备的组件的框图。应了解,图7仅提供了一个实现方式的图示且并不暗示关于可实施不同实施例的环境的任何限制。可以对所描绘的环境做出许多修改。
计算设备可以包括一个或多个处理器702、一个或多个计算机可读随机存取存储器(RAM)704、一个或多个计算机可读只读存储器(ROM)706、一个或多个计算机可读存储介质708、设备驱动器712、读/写驱动器或接口714、以及网络适配器或接口716,所有这些都通过通信结构718互连。通信结构718可以用被设计用于在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其他硬件组件之间传递数据和/或控制信息的任何架构来实现。
一个或多个操作系统710和应用程序711(诸如对应于方法200、方法300和方法400的处理步骤的应用)被存储在一个或多个计算机可读存储介质708上,以供一个或多个处理器702经由一个或多个相应的RAM 704(其通常包括高速缓存存储器)来执行。在所示实施例中,根据本发明的实施例,计算机可读存储介质708中的每一个可以是内部硬盘的磁盘存储设备、CD-ROM、DVD、记忆棒、磁带、磁盘、光盘、诸如RAM、ROM、EPROM、闪存的半导体存储设备,或者能够存储计算机程序和数字信息的任何其他计算机可读存储介质。
计算设备还可包括用于从一个或多个便携式计算机可读存储介质726读取和写入一个或多个便携式计算机可读存储介质726的R/W驱动器或接口714。计算设备上的应用程序711可存储在一个或多个便携式计算机可读存储介质726上,经由相应的R/W驱动器或接口714读取并加载到相应的计算机可读存储介质708中。
计算设备还可包括网络适配器或接口716,诸如TCP/IP适配器卡或无线通信适配器。计算设备上的应用程序711可以经由网络(例如,因特网、局域网或其他广域网或无线网络)和网络适配器或接口716从外部计算机或外部存储设备下载到计算设备。程序可以从网络适配器或接口716加载到计算机可读存储介质708中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和边缘服务器。
计算设备还可包括显示屏720、键盘或小键盘722以及计算机鼠标或触摸板724。设备驱动器712与用于成像的显示屏720、键盘或小键盘722、计算机鼠标或触摸板724和/或用于字母数字字符输入和用户选定的压力感测的显示屏720对接。设备驱动器712、R/W驱动器或接口714、以及网络适配器或接口716可以包括存储在计算机可读存储介质708和/或ROM706中的硬件和软件。
云计算
应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现方式不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是服务递送的模型,用于使能方便的按需网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可单方面根据需要自动提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人为交互。
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户端平台或厚客户端平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池化:提供者的计算资源被池化以使用多租户模型服务多个消费者,其中根据需求动态地分配和重新分配不同的物理和虚拟资源。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量的服务:云系统通过在适合于服务类别型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供者支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:使云基础设施对公众或大型行业组可用,并且由出售云服务的组织拥有。
混合云:云基础设施是两个或更多个云(私有、社区或公有)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图8,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图8中所示的计算设备54A-N的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参见图9,示出了由云计算环境50(图8)提供的一组功能抽象层。应当事先理解,图9中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描述,提供以下层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行85提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟课堂教育递送93;数据分析处理94;事务处理95;以及查询处理96。
本发明的计算机程序产品包括一个或多个计算机可读硬件存储设备,其中存储有计算机可读程序代码,所述程序代码可由一个或多个处理器执行以实现本发明的方法。
本发明的计算机系统包括一个或多个处理器、一个或多个存储器、以及一个或多个计算机可读硬件存储设备,所述一个或多个硬件存储设备包含可由所述一个或多个处理器经由所述一个或多个存储器执行的程序代码以实现本发明的方法。
已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的或者限于所公开的实施方式。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
在不脱离本发明的范围的情况下,可以对前述内容进行改进和修改。
在此描述的程序是基于应用在本发明的具体实施例中实施的来识别的。然而,应当理解,本文中的任何特定程序术语仅为了方便而使用,并且因此本发明不应局限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。
本发明可以是任何可能的技术细节集成度的系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可为可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的或者限于所公开的实施方式。在不背离本发明的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。在此所使用的术语被选择来最好地解释实施例的原理、实际应用、或优于市场中所发现的技术的技术改进、或使得本领域普通技术人员能够理解在此所披露的实施例。
Claims (31)
1.一种用于自动缩放查询引擎的方法,所述方法包括:
由一个或多个处理器监视所述查询引擎处的查询流量;
由一个或多个处理器基于查询的复杂度水平通过多个服务类别对所述查询流量的查询进行分类;
由一个或多个处理器将每个服务类别的查询流量与允许并发处理的服务类别的最大数量的查询的并发阈值进行比较;以及
由一个或多个处理器指示工作者节点群集的自动缩放,以基于在定义的时间段内相对于定义的放大阈值和定义的缩小阈值的所述查询流量的所述比较,改变所述群集中可用的所述工作者节点中的多个工作者节点,其中,所述自动缩放将多个工作者节点添加或删除至处理所述查询引擎的查询的工作者节点群集。
2.根据权利要求1所述的方法,其中,所述定义的放大阈值和所述定义的缩小阈值各自是所述查询流量中的多个查询与所述并发阈值相比较的分别定义的阈值比率。
3.根据权利要求1所述的方法,还包括:
由一个或多个处理器基于在给定时间跨所有服务类别的查询流量的比较的聚合来评估要改变的多个工作者节点。
4.根据权利要求3所述的方法,其中,评估要改变的多个工作者节点还包括:
对于所述定义的放大阈值被违背的每个服务类别,由一个或多个处理器基于分配给所述服务类别的工作者节点的当前比例和基于所述比较的所需的容量增加来确定要改变的所述多个工作者节点。
5.根据权利要求3所述的方法,其中,评估要改变的多个工作者节点还包括:
对于所述定义的缩小阈值被违背的每个服务类别,由一个或多个处理器基于分配给所述服务类别的工作者节点的当前比例和基于所述比较的所需的容量减少来确定要改变的多个工作者节点。
6.根据权利要求1所述的方法,还包括:
由一个或多个处理器基于自动缩放之后的所述集群中新数量的工作者节点来调整一个或多个服务类别的所述并发阈值。
7.根据权利要求2所述的方法,还包括:
由一个或多个处理器基于排队的查询确定所述查询流量,所述排队的查询由于对所述服务类别达到所述并发阈值而在每个服务类别的队列中等待;并且
其中,当在服务类别的队列中等待的查询的数量与所述服务类别的所述并发阈值相比的比率大于针对定义的时间段的定义的比率时,所述定义的放大阈值被违背。
8.根据权利要求2所述的方法,还包括:
由一个或多个处理器基于每个服务类别的当前活动查询来确定所述查询流量;并且
其中,当服务类别的活动查询的数量与所述服务类别的所述并发阈值相比的比率小于针对定义的时间段的定义的比率时,所述定义的缩小阈值被违背。
9.根据权利要求1所述的方法,还包括:
由一个或多个处理器提供多个节点组,每个节点组包括所述集群中的可用工作者节点的子集,其中,所述节点组被配置用于预期持续时间的查询;以及
由一个或多个处理器将查询的服务类别映射到节点组,以便将服务类别的查询分配给所映射的节点组的工作者节点。
10.根据权利要求9所述的方法,还包括:
由一个或多个处理器通过根据节点组选择多个工作者节点用于在删除之前排空来自动缩放以删除多个工作者节点,其中,工作者节点是从被配置用于最低可能预期持续时间的查询的节点组中选定的。
11.根据权利要求9所述的方法,其中,所述节点组是动态的,并且根据所述工作者节点的自动缩放进行调整。
12.根据权利要求1所述的方法,包括:
由一个或多个处理器提供多个节点组,每个节点组包括所述集群中的可用工作者节点的子集,其中,所述节点组被配置用于预期持续时间的查询;以及
由一个或多个处理器根据服务类别与节点组之间的亲和性将查询的每个服务类别映射到节点组,其中,通过删除多个工作者节点来自动缩放还包括:
由一个或多个处理器根据具有工作组节点的节点组在删除之前选择多个工作者节点用于排空,其中,所述工作者节点是从被配置用于最低可能预期持续时间的查询的节点组中选定的。
13.根据权利要求12所述的方法,其中,选择多个工作者节点用于排空还包括:
由一个或多个处理器对所述节点组进行排序,其中,较低预期查询持续时间的节点组被首先排空。
14.根据权利要求12所述的方法,其中,所述节点组是动态的,并且根据所述工作者节点的自动缩放进行调整。
15.根据权利要求12所述的方法,还包括:
由一个或多个处理器将每个服务类别的活动查询的形式的查询流量与要被并发处理的所述服务类别的最大数量的查询的并发阈值进行比较;以及
由一个或多个处理器通过基于所述比较违背定义的缩小阈值,从所述集群中可用的工作者节点中删除多个工作者节点来自动缩放,其中,所述违背在定义的时间段内被保持。
16.根据权利要求15所述的方法,其中,在服务类别的活动查询的数量与所述服务类别的所述并发阈值相比的比率小于针对定义的时间段的定义的比率时,所述定义的缩小阈值被违背。
17.一种用于自动缩放查询引擎的方法,所述方法包括:
由一个或多个处理器根据基于相应查询复杂度水平的服务类别对查询流量的查询进行分类;
由一个或多个处理器通过基于查询引擎处的查询流量将多个工作者节点加入或删除至集群中可用的工作者节点来自动缩放工作者节点;
由一个或多个处理器提供多个节点组,每个节点组包括所述集群中的可用工作者节点的子集,其中,所述节点组被配置用于预期持续时间的查询;以及
由一个或多个处理器根据服务类别与节点组之间的亲和性将查询的每个服务类别映射到节点组,其中,通过删除多个工作者节点来自动缩放还包括:
由一个或多个处理器根据具有工作组节点的节点组在删除之前选择多个工作者节点用于排空,其中,所述工作者节点是从被配置用于最低可能预期持续时间的查询的节点组中选定的。
18.根据权利要求17所述的方法,其中,选择多个工作者节点用于排空还包括:
由一个或多个处理器对所述节点组进行排序,其中,较低预期查询持续时间的节点组被首先排空。
19.根据权利要求17所述的方法,其中,所述节点组是动态的,并且根据所述工作者节点的自动缩放进行调整。
20.根据权利要求17所述的方法,还包括:
由一个或多个处理器将每个服务类别的活动查询的形式的查询流量与要被并发处理的所述服务类别的最大数量的查询的并发阈值进行比较;以及
由一个或多个处理器通过基于所述比较违背定义的缩小阈值,从所述集群中可用的工作者节点中删除多个工作者节点来自动缩放,其中,所述违背在定义的时间段内被保持。
21.根据权利要求20所述的方法,其中,在服务类别的活动查询的数量与所述服务类别的所述并发阈值相比的比率小于针对定义的时间段的定义的比率时,所述定义的缩小阈值被违背。
22.一种用于自动缩放查询引擎的计算机系统,所述计算机系统包括:
一个或多个计算机处理器;
一个或多个计算机可读存储介质;以及
程序指令,其存储在所述计算机可读存储介质上用于由所述一个或多个处理器中的至少一个执行,所述程序指令包括:
用于监视所述查询引擎处的查询流量的程序指令;
用于基于查询的复杂度水平通过多个服务类别对所述查询流量的查询进行分类的程序指令;
用于将每个服务类别的查询流量与允许并发处理的服务类别的最大数量的查询的并发阈值进行比较的程序指令;以及
用于指示工作者节点群集的自动缩放以基于在定义的时间段内相对于定义的放大阈值和定义的缩小阈值的所述查询流量的所述比较来改变所述群集中可用的所述工作者节点中的多个工作者节点的程序指令,其中,所述自动缩放将多个工作者节点添加或删除至处理所述查询引擎的查询的工作者节点群集。
23.根据权利要求22所述的计算机系统,其中,所述定义的放大阈值和所述定义的缩小阈值各自是所述查询流量中的多个查询与所述并发阈值相比较的分别定义的阈值比率。
24.根据权利要求22所述的计算机系统,还包括存储在所述计算机可读存储介质上用于由所述一个或多个处理器中的至少一个执行的程序指令,用于:
基于在给定时间跨所有服务类别的查询流量的比较的聚合来评估要改变的多个工作者节点。
25.根据权利要求22所述的计算机系统,还包括存储在所述计算机可读存储介质上的由所述一个或多个处理器中的至少一个执行的程序指令,用于:
基于自动缩放之后的所述集群中新数量的工作者节点来调整一个或多个服务类别的所述并发阈值。
26.一种用于自动缩放查询引擎的计算机系统,所述计算机系统包括:
一个或多个计算机处理器;
一个或多个计算机可读存储介质;以及
存储在所述计算机可读存储介质上用于由所述一个或多个处理器中的至少一个执行的程序指令,所述程序指令包括:
用于由一个或多个处理器基于服务类别对查询流量的查询进行分类的程序指令,所述服务类别基于相应的查询复杂度水平;
用于通过基于查询引擎处的查询流量将多个工作者节点添加或删除至集群中可用的工作者节点来自动缩放工作者节点的程序指令;
用于提供多个节点组的程序指令,每个节点组包括所述集群中的可用工作者节点的子集,其中,所述节点组被配置用于预期持续时间的查询;以及
用于根据服务类别和节点组之间的亲和性将查询的每个服务类别映射到节点组的程序指令;并且其中,通过删除多个工作者节点来自动缩放还包括:
用于根据具有工作组节点的节点组在删除之前选择多个工作者节点用于排空的程序指令,其中,所述工作者节点是从被配置用于最低可能预期持续时间的查询的节点组中选定的。
27.根据权利要求26所述的计算机系统,其中,用于选择多个工作者节点用于排空的所述程序指令还包括用于以下操作的程序指令:
对所述节点组进行排序,其中,较低预期查询持续时间的节点组被首先排空。
28.根据权利要求26所述的计算机系统,其中,所述节点组是动态的,并且根据所述工作者节点的自动缩放进行调整。
29.根据权利要求26所述的计算机系统,还包括存储在所述计算机可读存储介质上用于由所述一个或多个处理器中的至少一个执行的程序指令,用于:
将每个服务类别的活动查询的形式的查询流量与要被并发处理的所述服务类别的最大数量的查询的并发阈值进行比较;以及
通过基于所述比较违背定义的缩小阈值,从所述集群中可用的工作者节点中删除多个工作者节点来自动缩放,其中,所述违背在定义的时间段内被保持。
30.一种用于自动缩放查询引擎的计算机程序产品,所述计算机程序产品包括:
一个或多个计算机可读存储介质和存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令包括:
用于监视所述查询引擎处的查询流量的程序指令;
用于基于查询的复杂度水平通过多个服务类别对所述查询流量的查询进行分类的程序指令;
用于将每个服务类别的查询流量与允许并发处理的服务类别的最大数量的查询的并发阈值进行比较的程序指令;以及
用于指示工作者节点群集的自动缩放以基于在定义的时间段内相对于定义的放大阈值和定义的缩小阈值的所述查询流量的所述比较来改变所述群集中可用的所述工作者节点中的多个工作者节点的程序指令,其中,所述自动缩放将多个工作者节点添加或删除至处理所述查询引擎的查询的工作者节点群集。
31.一种计算机程序,包括程序代码组件,当所述程序在计算机上运行时,所述程序代码组件适于执行根据权利要求1至21中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/078,327 | 2020-10-23 | ||
US17/078,327 US11809424B2 (en) | 2020-10-23 | 2020-10-23 | Auto-scaling a query engine for enterprise-level big data workloads |
PCT/IB2021/059207 WO2022084784A1 (en) | 2020-10-23 | 2021-10-07 | Auto-scaling a query engine for enterprise-level big data workloads |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116391175A true CN116391175A (zh) | 2023-07-04 |
Family
ID=81258457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180070753.8A Pending CN116391175A (zh) | 2020-10-23 | 2021-10-07 | 自动缩放用于企业级大数据工作负载的查询引擎 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11809424B2 (zh) |
JP (1) | JP2023545970A (zh) |
CN (1) | CN116391175A (zh) |
DE (1) | DE112021005586T5 (zh) |
GB (1) | GB2615466A (zh) |
WO (1) | WO2022084784A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11467877B2 (en) * | 2020-01-31 | 2022-10-11 | Salesforce, Inc. | Throttling and limiting thread resources of service computing platform |
US11809424B2 (en) * | 2020-10-23 | 2023-11-07 | International Business Machines Corporation | Auto-scaling a query engine for enterprise-level big data workloads |
US11843548B1 (en) * | 2022-12-09 | 2023-12-12 | Dell Products L.P. | Resource scaling of microservice containers |
CN116775958B (zh) * | 2023-08-21 | 2023-11-21 | 宇文道静 | 信息查询数据处理方法及装置 |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7630986B1 (en) * | 1999-10-27 | 2009-12-08 | Pinpoint, Incorporated | Secure data interchange |
US6946715B2 (en) * | 2003-02-19 | 2005-09-20 | Micron Technology, Inc. | CMOS image sensor and method of fabrication |
US8874477B2 (en) * | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
US8527473B1 (en) * | 2005-10-20 | 2013-09-03 | Teradata Us, Inc. | Identifying database request sources in multi-database systems |
US8555288B2 (en) * | 2006-05-17 | 2013-10-08 | Teradata Us, Inc. | Managing database utilities to improve throughput and concurrency |
CN101344882B (zh) | 2007-07-10 | 2010-06-02 | 中国移动通信集团公司 | 数据查询方法、插入方法及删除方法 |
US8204870B2 (en) * | 2007-08-03 | 2012-06-19 | Sybase, Inc. | Unwired enterprise platform |
US20090327216A1 (en) * | 2008-06-30 | 2009-12-31 | Teradata Us, Inc. | Dynamic run-time optimization using automated system regulation for a parallel query optimizer |
US8775413B2 (en) * | 2008-06-30 | 2014-07-08 | Teradata Us, Inc. | Parallel, in-line, query capture database for real-time logging, monitoring and optimizer feedback |
US8745036B2 (en) * | 2009-07-07 | 2014-06-03 | Teradata Us, Inc. | System, method, and computer-readable medium for enhancing query execution by an optimizer in a database system |
US8352945B2 (en) * | 2009-08-11 | 2013-01-08 | International Business Machines Corporation | System, method, and apparatus for scan-sharing for business intelligence queries in an in-memory database |
US8510273B2 (en) * | 2009-09-02 | 2013-08-13 | Teradata Us, Inc. | System, method, and computer-readable medium to facilitate application of arrival rate qualifications to missed throughput server level goals |
US8756585B2 (en) * | 2009-12-29 | 2014-06-17 | International Business Machines Corporation | Efficient monitoring in a software system |
CN102298580A (zh) * | 2010-06-22 | 2011-12-28 | Sap股份公司 | 使用异步缓冲器的多核查询处理 |
US9495227B2 (en) * | 2012-02-10 | 2016-11-15 | Twilio, Inc. | System and method for managing concurrent events |
JPWO2014016950A1 (ja) | 2012-07-27 | 2016-07-07 | 株式会社日立製作所 | 並列計算機システムおよび並列計算機システムへの処理負荷配置方法 |
US9992269B1 (en) * | 2013-02-25 | 2018-06-05 | EMC IP Holding Company LLC | Distributed complex event processing |
US9817699B2 (en) * | 2013-03-13 | 2017-11-14 | Elasticbox Inc. | Adaptive autoscaling for virtualized applications |
US10740358B2 (en) * | 2013-04-11 | 2020-08-11 | Oracle International Corporation | Knowledge-intensive data processing system |
US9081622B2 (en) * | 2013-05-13 | 2015-07-14 | Vmware, Inc. | Automated scaling of applications in virtual data centers |
US10198292B2 (en) * | 2013-11-27 | 2019-02-05 | Actian Sub Iii, Inc. | Scheduling database queries based on elapsed time of queries |
US9424311B2 (en) | 2014-03-20 | 2016-08-23 | International Business Machines Corporation | Query routing based on complexity class determination |
US20150286725A1 (en) | 2014-04-03 | 2015-10-08 | Zillabyte, Inc. | Systems and/or methods for structuring big data based upon user-submitted data analyzing programs |
US10885565B1 (en) * | 2014-06-20 | 2021-01-05 | Amazon Technologies, Inc. | Network-based data discovery and consumption coordination service |
WO2015197564A1 (en) * | 2014-06-23 | 2015-12-30 | Getclouder Ltd. | Cloud hosting systems featuring scaling and load balancing with containers |
US11474874B2 (en) | 2014-08-14 | 2022-10-18 | Qubole, Inc. | Systems and methods for auto-scaling a big data system |
US10216770B1 (en) * | 2014-10-31 | 2019-02-26 | Amazon Technologies, Inc. | Scaling stateful clusters while maintaining access |
US20180089271A1 (en) | 2015-04-15 | 2018-03-29 | Hewlett Packard Enterprise Development Lp | Database query classification |
US9848041B2 (en) * | 2015-05-01 | 2017-12-19 | Amazon Technologies, Inc. | Automatic scaling of resource instance groups within compute clusters |
US10410155B2 (en) | 2015-05-01 | 2019-09-10 | Microsoft Technology Licensing, Llc | Automatic demand-driven resource scaling for relational database-as-a-service |
US10217053B2 (en) * | 2015-06-23 | 2019-02-26 | International Business Machines Corporation | Provisioning service requests in a computer system |
US10296551B2 (en) * | 2015-09-30 | 2019-05-21 | Juniper Networks, Inc. | Analytics for a distributed network |
US20170147961A1 (en) * | 2015-11-19 | 2017-05-25 | International Business Machines Corporation | Adjustment of change requests |
CN105786992A (zh) | 2016-02-17 | 2016-07-20 | 中国建设银行股份有限公司 | 一种用于联机交易的数据查询方法和装置 |
US10409642B1 (en) * | 2016-11-22 | 2019-09-10 | Amazon Technologies, Inc. | Customer resource monitoring for versatile scaling service scaling policy recommendations |
US20180196867A1 (en) | 2017-01-09 | 2018-07-12 | Alexander WIESMAIER | System, method and computer program product for analytics assignment |
US12118009B2 (en) * | 2017-07-31 | 2024-10-15 | Splunk Inc. | Supporting query languages through distributed execution of query engines |
US11989194B2 (en) * | 2017-07-31 | 2024-05-21 | Splunk Inc. | Addressing memory limits for partition tracking among worker nodes |
CN110321214A (zh) * | 2018-03-29 | 2019-10-11 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置及设备 |
US11010150B2 (en) * | 2018-04-18 | 2021-05-18 | Verizon Media Inc. | System and method for performing device updates |
US20190364109A1 (en) | 2018-05-23 | 2019-11-28 | Microsoft Technology Licensing, Llc | Scale out data storage and query filtering using storage pools |
CN108920552B (zh) | 2018-06-19 | 2022-04-29 | 浙江工业大学 | 一种面向多源大数据流的分布式索引方法 |
US11061896B2 (en) * | 2018-06-19 | 2021-07-13 | Salesforce.Com, Inc. | Maximizing operator parallelism |
US10924398B2 (en) * | 2018-09-25 | 2021-02-16 | Ebay Inc. | Time-series data monitoring with sharded server |
US10841369B2 (en) * | 2018-11-26 | 2020-11-17 | International Business Machines Corporation | Determining allocatable host system resources to remove from a cluster and return to a host service provider |
CN109766175A (zh) | 2018-12-28 | 2019-05-17 | 深圳晶泰科技有限公司 | 面向高性能计算在云上的资源弹性伸缩系统及其调度方法 |
US10956215B2 (en) * | 2019-02-18 | 2021-03-23 | International Business Machines Corporation | Predictive job admission control with feedback |
US12124454B2 (en) * | 2020-08-04 | 2024-10-22 | International Business Machines Corporation | Shadow experiments for serverless multi-tenant cloud services |
US11809424B2 (en) * | 2020-10-23 | 2023-11-07 | International Business Machines Corporation | Auto-scaling a query engine for enterprise-level big data workloads |
-
2020
- 2020-10-23 US US17/078,327 patent/US11809424B2/en active Active
-
2021
- 2021-10-07 GB GB2306511.3A patent/GB2615466A/en active Pending
- 2021-10-07 JP JP2023520122A patent/JP2023545970A/ja active Pending
- 2021-10-07 CN CN202180070753.8A patent/CN116391175A/zh active Pending
- 2021-10-07 DE DE112021005586.0T patent/DE112021005586T5/de active Pending
- 2021-10-07 WO PCT/IB2021/059207 patent/WO2022084784A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
GB202306511D0 (en) | 2023-06-14 |
US11809424B2 (en) | 2023-11-07 |
JP2023545970A (ja) | 2023-11-01 |
GB2615466A (en) | 2023-08-09 |
US20220129460A1 (en) | 2022-04-28 |
DE112021005586T5 (de) | 2023-09-14 |
WO2022084784A1 (en) | 2022-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003492B2 (en) | Virtual machine consolidation | |
US9612878B2 (en) | Resource allocation in job scheduling environment | |
CN116391175A (zh) | 自动缩放用于企业级大数据工作负载的查询引擎 | |
US10721179B2 (en) | Adaptive resource allocation operations based on historical data in a distributed computing environment | |
US10102033B2 (en) | Method and system for performance ticket reduction | |
JP7119082B2 (ja) | 分散コンピューティング環境における自動対角スケーリングためのアプリケーションの優先順位付け | |
US11755926B2 (en) | Prioritization and prediction of jobs using cognitive rules engine | |
CN114174974B (zh) | 微服务的存储分配增强 | |
US20200092395A1 (en) | Overload management of a transaction processing server | |
US10635501B2 (en) | Adaptive scaling of workloads in a distributed computing environment | |
US9921958B2 (en) | Efficiently using memory for java collection objects | |
JP7182836B2 (ja) | 分散コンピューティング環境における作業負荷の自動対角スケーリング | |
US10990519B2 (en) | Multi-tenant cloud elastic garbage collector | |
CN116438519A (zh) | 用于分层计算基础设施的预测自动缩放器 | |
US10956084B2 (en) | Drive utilization in multi-tiered systems with read-intensive flash | |
US10893000B2 (en) | Diagonal scaling of resource allocations and application instances in a distributed computing environment | |
US20180011789A1 (en) | Reducing idle resource usage | |
CN118056187A (zh) | 处理事务请求 | |
US9619153B2 (en) | Increase memory scalability using table-specific memory cleanup | |
US10887250B2 (en) | Reducing resource allocations and application instances in diagonal scaling in a distributed computing environment | |
US20210011848A1 (en) | Data processing for allocating memory to application containers | |
JP2022189807A (ja) | コンピュータ実装方法、システム、コンピュータプログラム(コンテナへのサービスの割り当て) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |