CN105980988A - Smp环境中在数据库工作代理间动态分配资源和任务的方法和系统 - Google Patents
Smp环境中在数据库工作代理间动态分配资源和任务的方法和系统 Download PDFInfo
- Publication number
- CN105980988A CN105980988A CN201580007345.2A CN201580007345A CN105980988A CN 105980988 A CN105980988 A CN 105980988A CN 201580007345 A CN201580007345 A CN 201580007345A CN 105980988 A CN105980988 A CN 105980988A
- Authority
- CN
- China
- Prior art keywords
- task
- agency
- job agency
- job
- internal memory
- 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
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/2455—Query execution
-
- 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/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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
-
- 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/5011—Pool
-
- 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/504—Resource capping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
在非对称多重处理(symmetric multiprocessing,简称SMP)系统中的工作代理中,动态重新分配任务和/或内存配额,可以大大缓解与数据倾斜相关的时延和低效。例如,当确定空闲工作代理已处理完其原来分配的任务集时,可重新将未完成任务由忙态工作代理至空闲工作代理。或者,可以将部分分配给空闲工作代理的内存配额重新分配给忙态工作代理用于处理剩余任务。一旦空闲工作代理处理完其原分配任务,可以通过释放内存配额至内存池,重新分配所述内存配额,然后将一些或全部所述内存配额重新分配给忙态工作代理。
Description
技术领域
本发明通常涉及处理系统,尤其涉及一种SMP环境中在数据库工作代理间动态分配资源和任务的方法和系统。
背景技术
对称多处理(symmetric multiprocessing,简称SMP)系统的特点是两个或多个使用共享内存资源的工作代理(例如处理器和处理核等)共同进行任务处理。SMP系统通常用于管理大型数据库及执行数据库查询。为执行查询,SMP系统可识别查询将处理的任务,并将不同的任务集分配给不同工作代理进行并行/同步处理。工作代理完成各自任务集所需的时间可能会由于数据倾斜(例如不均衡负荷分布)及其他因素(例如输入/输出(input/output,简称I/O)和CPU共享时间等)而差别较大,这导致资源利用率低和处理时延高,使得数据库性能和吞吐量大幅降低。
发明内容
本发明实施例通过描述一种SMP环境中在数据库工作代理间动态分配资源和任务的方法和系统,基本实现了技术优势。
根据一实施例,提供了一种用于在对称多处理系统(symmetricmultiprocessing,简称SMP)中进行查询的方法。在本示例中,所述方法包括:识别执行查询期间的待处理任务,并将所述任务分配给处理器中的工作代理。所述识别出的任务至少包括第一任务集和第二任务集,所述处理器中的工作代理至少包括第一工作代理和第二工作代理。将所述第一任务集分配给所述第一工作代理,并将所述第二任务集分配给所述第二工作代理。所述方法还包括:在所述第二工作代理处理完所述第二任务集前,确定所述第一工作代理已处理完所述第一任务集;当满足条件时,将所述第二任务集中的至少一些未完成任务重新分配给所述第一工作代理。也提供执行此方法的装置。
根据另一实施例,提供了另一种用于在对称多处理系统(symmetricmultiprocessing,简称SMP)中进行查询的方法。在本示例中,所述方法包括:识别执行查询期间的待处理任务,并将内存配额分配给处理器中的工作代理以处理所述任务。所述识别出的任务至少包括第一任务集和第二任务集,所述处理器中的工作代理至少包括第一工作代理和第二工作代理。将第一内存配额分配给所述第一工作代理,以处理所述第一任务集,并将第二内存配额分配给所述第二工作代理,以处理所述第二任务集。所述方法还包括:在所述第二工作代理处理完所述第二任务集前,确定所述第一工作代理已处理完所述第一任务集;将至少部分所述第一内存配额重新分配给所述第二工作代理。也提供执行此方法的装置。
根据第一方面,本发明涉及SMP系统中多种方法的所附权利要求涉及的执行查询的装置,所述装置包括:识别装置,用于识别执行查询期间的待处理的任务,其中,所述任务至少包括第一任务集和第二任务集,处理器包括多个工作代理,至少包括第一工作代理和第二工作代理;分配装置,用于将所述任务分配给所述多个工作代理进行处理,其中,将所述第一任务集分配给所述第一工作代理,并将所述第二任务集分配给所述第二工作代理;确定装置,用于在所述第二工作代理处理完所述第二任务集前,确定所述第一工作代理已处理完所述第一工作代理;重新分配装置,用于当满足条件时,将所述第二任务集的至少一些未完成任务重新分配给所述第一工作代理。
在执行查询装置的一种可能的实现形式中,也包括计算装置,用于依据下列公式计算待重新分配任务的数量: 其中,代理(i)的剩余任务数量为当所述第一工作代理处理完所述第一任务集时,第i个工作代理还未处理的任务的数量,n为所述处理器中工作代理的总数量。
根据另一方面,本发明涉及SMP系统中多种方法的所附权利要求涉及的执行查询的装置,所述装置包括:识别装置,用于识别执行查询期间的待处理的任务,其中,所述任务至少包括第一任务集和第二任务集,处理器包括多个工作代理,至少包括第一工作代理和第二工作代理;分配装置,用于将内存配额分配给所述多个工作代理以处理所述任务,其中,第一内存配额分配给所述第一工作代理,以处理所述第一任务集,且第二内存配额分配给所述第二工作代理,以处理所述第二任务集;确定装置,用于在所述第二工作代理处理完所述第二任务集前,确定所述第一工作代理已处理完所述第一工作代理;重新分配装置,用于将至少部分所述第一内存配额重新分配给所述第二工作代理。
根据SMP系统中的执行查询装置任一方面的实现方式,执行查询系统还包括接口,用于接收查询;任务分配模块,通信耦合至多个工作代理,所述任务分配模块用于在第二工作代理处理完第二任务集前,确定所述第一工作代理已处理完第一任务集;将至少部分第一内存配额重新分配给所述第二工作代理。
大规模并行处理(massive parallel processing,简称MPP)数据库旨在用于管理和处理大量数据。对称多处理(symmetric multiprocessing,简称SMP)计算机系统包括多个共享大量内存的CPU核,是运行MPP数据库的理想之选。在SMP系统中,处理查询时,数据库服务器进程生成多个执行查询线程,称为工作代理,用于并行执行查询。每个代理在各自的数据分区上运行。由于数据的不均匀分布,数据分区的大小可能不一致,这也可称为数据倾斜情况,导致了工作代理的负载不均衡。与其他代理相比,一些工作代理可能更快完成其任务。此外,即使数据分区的大小相似,由于I/O问题或CPU时间共享等系统因素,工作代理也不能以相同的速度处理工作。工作代理的查询处理速度不一致导致CPU和内存资源的浪费。也可能导致MPP数据库性能降低。应用上述涉及的方法和装置的实施例,可大大节省CPU和内存资源,从而避免MPP数据库性能降低。
通过应用任一上述涉及的方法和装置实施例,可获得更多优势。可在工作代理间动态分配任务和内存。它们致力于I/O等系统问题引起的数据倾斜情况和处理速度不一致情况。任一上述涉及的实施例的方法是轻量级的且可作为单线程实现,可用于多种类型的数据库操作,如聚合、排序及合并/嵌套循环/哈希连接。
附图说明
为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
图1示出了SMP架构图;
图2示出了传统SMP系统的工作流程图;
图3A至3D示出了实施例SMP系统的工作流程图;
图4示出了一种SMP系统中处理查询的实施例方法的流程图;
图5示出了另一种SMP系统中出处理查询的实施例方法的流程图;
图6示出了一种操作SMP系统的实施例方法的流程图;
图7示出了实施例处理设备的框图;
图8示出了一种实施例多核中央处理器(central processing unit,简称CPU)图。
除非另有指示,否则不同图中的对应标号和符号通常指代对应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。
具体实施方式
下文将详细论述公开的实施例的制作和使用。然而,应了解,本发明提供可在各种具体上下文中体现的许多适用的发明性概念。所论述的具体实施例仅仅说明用以实施和使用本发明的具体方式,而不限制本发明的范围。
通常,将数据库预先分配给数据分区,数据分区分配给工作代理来处理。不同数据分区可能包括不同数量的为给定查询需处理的数据,这可能导致将所述查询的不相等数量的任务分配给工作代理(称为数据倾斜)。在本发明中,“任务”与执行查询期间的需要处理(例如扫描、查找等)的数据的统一数量相对应。例如,任务可以定义为执行查询时,需要扫描的固定数量的数据库页面。在数据库查询处理期间,传统的SMP系统静态地将任务和内存配额分配给工作代理,也就意味着每个任务集(和每个内存配额)保持分配给原工作代理,直到所有工作代理处理完其分配的任务,如直到执行完整个查询。因此,传统SMP系统很容易受数据倾斜导致的时延的影响。
本发明的各方面,通过在工作代理间,动态重新分配任务和/或内存配额,降低了数据倾斜导致的时延。在一实施例中,当确定空闲工作代理已处理完其原来分配的任务集时,将至少一些未完成任务从忙态工作代理重新分配至空闲工作代理。在另一实施例中,可以将部分分配给空闲工作代理的内存配额重新分配给忙态工作代理用于处理剩余任务。一旦空闲工作代理处理完其原分配任务,可以通过释放内存配额至内存池,重新分配所述内存配额,然后将一些或全部所述内存配额重新分配给忙态工作代理。在一些实施例中,处理任务和内存配额的动态重分配是由任务分配模块(或任务分配器)进行的。当满足条件时,所述任务分配器可决定重新分配未完成任务。当源于重新分配的效率受益超过重新分配相关的效率损失时,可能满足所述条件。例如,可使用处理资源进行重新分配,且(在一些情况下)所涉及的忙态工作代理可能被中断,例如,可能需要暂时暂停来适应重新分配。在一实施例中,任务分配器用于如果与忙态工作代理相关的未完成任务的数量超过一个阈值,将未完成任务从忙态工作代理分配给空闲工作代理。在另一实施例中,当待重新分配的任务的百分比超过一个阈值时,任务分配器可重新分配未完成任务。如果没有将未完成任务分配给空闲工作代理,则分配模块可将一些或全部空闲工作代理的内存配额重新分配给较忙态工作代理。下面将更加详细讨论这些方面以及其他方面。
图1示出了一种处理查询的SMP架构100。如图所示,所述SMP架构100包括多个工作代理101、102及103、任务分配器105及内存池180,他们通过系统总线106交互。所述工作代理101、102及103可以是任何用于通过访问(例如扫描、搜索等)数据库190的表项处理任务的组件或组件的集合(例如CPU核等)。所述任务分配器105可以是任何用于将任务分配和/或重新分配给所述工作代理101、102及103的组件或组件的集合。在一些实施例中,所述任务分配器105是所述SMP架构100的专用线程。所述内存池180包括所述工作代理101、102及103处理任务所使用的内存资源。在所述工作代理101、102及103中共享访问所述内存池180的内存资源可通过分配内存配额来实现。在本示例中,将内存配额181分配给所述工作代理101,将内存配额182分配给所述工作代理102,将内存配额183分配给所述工作代理103。
传统SMP架构静态地将处理任务和内存配额分配给工作代理。图2示出了传统的SMP系统200,其中,将处理任务集210、220及230静态分配给多个工作代理201、202及203。在本示例中,所述传统SMP系统200用于进行聚合操作,其中,所述工作代理201、202及203扫描处理任务的每个行项目,聚合结果并把聚合后的结果发送到收集功能,所收集功能组合聚合结果并发送至客户端。此外,所述传统SMP系统200将内存配额静态地分配给所述工作代理201、202及203。
将任务/内存配额静态地分配给所述工作代理201、202及203(分别)导致传统SMP系统200极易受到数据倾斜引起的时延的影响。例如,所述工作代理201处理完任务集210花费的时间可能比所述工作代理202和203处理完任务集220和230(分别)的时间更长。在这种情况下,在所述工作代理201处理完任务集210时,所述工作代理202和203(和其静态分配的内存配额)可能保持空闲(例如未使用),从而导致未充分利用资源及降低传统SMP系统200中的效率。
在本发明的各方面中,动态地重新分配未完成任务和/或未使用内存配额,来降低数据倾斜导致的时延。图3A到3D示出了用于将任务从忙态工作代理分配到空闲工作代理的SMP系统300的实施例。如图所示,所述SMP系统300包括多个工作代理301至303以及任务分配模块305。所述工作代理301至303是进行并行处理的模块,而所述分配模块305是用于在工作代理301至303中,重新分配未完成任务和/或空闲内存配额,以避免数据倾斜的模块。在一些实施例中,所述分配模块是专用线程。如图3A所示,一输入的查询被划分为任务集310、320及330,分配给所述工作代理301、302及303(分别)进行处理。任务集310、320及330可能在大小和复杂度上不同。在本示例中,所述任务集310比任务集330和320包含更多的任务。在其他示例中,每个任务集包含相同数量的处理任务,但可能以不同的速率被其分配的工作代理处理。在初始任务分配后,所述工作代理301、302及303开始并行处理其各自的任务集310、320及330。工作代理301、302及303处理完其各自的任务集310、320及330所需时间长度可能因很多因素而不同,包括每个集合的任务数量,及影响所述工作代理各自处理速度的因素,如I/O问题和CPI时间共享等。
如图3B所示,所述工作代理301处理完任务集310前,工作代理302处理完任务集320。值得注意的是,在工作代理302空闲时,工作代理301已处理完完成任务集314,但还未处理完未完成任务集315。在检测到此情况后,当满足某个条件时,如未完成任务的数量超过一个阈值时等,所述任务分配模块305将未完成任务集315中的一些任务重新分配给所述工作代理302。在本示例中(如图3C所示),所述任务分配模块305将未完成任务子集318分配给所述工作代理302,而未完成任务子集316仍然分配给所述工作代理301。重新分配之后(如图3D所示),所述工作代理301处理所述未完成任务子集316,而所述工作代理302处理所述未完成任务子集318。
在上述示例中,所述分配模块305将未完成任务子集318重新分配给工作代理302。然而,在其他示例中,所述分配模块305也可将至少一些未完成任务分配给所述工作代理303,因为所述工作代理303已几乎完成原分配的任务集330。在又一示例中,在所述工作代理302完成其任务后,所述分配模块305可将所述工作代理302的全部或部分内存配额分配给所述工作代理301。
本发明各方面提供了一种在SMP系统中将未完成处理任务重新分配给空闲工作代理的方法。图4示出了一种在SMP系统中处理查询的方法400,可以由一个处理器进行。如图所示,所述方法400从步骤410开始,在该步骤中,所述处理器接收查询。然后,所述方法400进行到步骤420,在该步骤中,所述处理器识别出在执行查询期间需要处理的任务集。这可包括:识别为执行所述查询而需处理的数据分区,并为所述数据分区分配工作代理(或识别为处理识别的分区而预先分配的工作代理)。接下来,所述方法400进行到步骤430,在该步骤中,所述处理器将第一任务集分配给第一工作代理,并将第二任务集分配给第二工作代理。随后,所述方法400进行到步骤440,在该步骤中,在所述第二工作代理处理完所述第二任务集前,所述处理器确定所述第一工作代理已处理完所述第一任务集。接下来,所述方法400进入到步骤450,在该步骤中,所述处理器确定是否满足条件。在一些实施例中,当所述查询(或分配给所述第二工作代理的第二任务集)中未完成任务的数量超过一个阈值时,满足所述条件。在另一示例中,当需重新分配的任务的百分比超过一个阈值时,满足所述条件。如果满足所述条件,则所述方法400进行到步骤460,在该步骤中,所述处理器将第二任务集中的至少一些任务重新分配给所述第一工作代理。如果没有满足所述条件,所述方法400进行到步骤470,在该步骤中,所述处理器使得所述第二工作代理不需要重新平衡任务分配,即可处理完所述第二任务集。
本发明各方面也提供了一种在SMP系统中将空闲或未使用内存配额重新分配给忙态工作代理的方法。图5示出了一种在SMP系统中处理查询的方法500,可以由一个处理器执行。如图所示,所述方法500从步骤510开始,在该步骤中,所述处理器接收查询。接下来,所述方法500进行到步骤520,在该步骤中,所述处理器识别出在执行查询期间需要处理的任务集。然后,所述方法500进行到步骤530,在该步骤中,所述处理器将第一内存配额分配给第一工作代理来处理第一任务集。接下来,所述方法500进行到步骤535,在该步骤中,为处理第一任务集,所述处理器将第一内存配额分配给第一工作代理。然后,所述方法500进行到步骤540,在该步骤中,在所述第二工作代理处理完第二任务集前,所述处理器确定所述第一工作代理已处理完所述第一任务集。接下来,所述方法500进行到步骤550,在该步骤中,所述处理器确定是否已满足条件。当未完成任务的数量或需重新分配的任务的百分比超过一个阈值时,可以满足所述条件。或者,当未完成任务的数量或需重新分配的任务的百分比未能超过一个阈值时,可以满足所述条件。如果满足所述条件,则所述方法500进行到步骤560,在该步骤中,所述处理器将至少部分第一内存配额重新分配给所述第二工作代理。在一些实施例中,通过释放所述第一内存配额到所述SMP系统的内存池来实现,然后将至少部分第一内存配额重新分配给所述第二工作代理。然后,除了原分配的第二内存配额,所述第二工作代理还使用所述重新分配的内存来处理第二任务集的剩余任务。另一方面,如果没有满足所述条件,所述方法500进行到步骤570,在该步骤中,所述处理器使得所述第二工作代理不需要重新平衡,即可处理完所述第二任务集。
本发明各方面中,通过将任务分配模块(或任务分配器)引入到数据库服务器实例进程中,在工作代理中动态分配任务。在SMP环境中,当数据节点示例接收查询时,它启动多个并行处理所述查询工作代理。优化模块(或优化器)可以估计每个代理处理的数据行的数量。工作代理可将其任务登记到任务分配器,并周期性地将其进展报告给所述任务分配器。在一些实例中,工作代理间不均匀的任务分配可能导致一些工作代理比其他工作代理更早地完成其任务集。可对可配置阈值(任务分配阈值)进行定义以确定任务分配。如果忙态代理中的剩余工作大于任务分配阈值,则任务分配器将任务从忙态代理分配给空闲代理。忙态代理可将剩余数据分为小数据块,这些小数据块可以分别处理。
在执行查询期间,代理从系统请求内存,进行查询操作,如哈希表建立操作。代理可得到的内存的数量受可配置配额限制。每个代理将其内存配额注册到任务分配器。执行查询期间,一些工作代理较早完成其工作,在这种情况下,任务分配器可释放这些空闲代理的配额并增加忙态代理的内存配额,来提高系统性能。
一个SMP系统可能有多个CPU核,为了并行处理查询的各部分(例如任务集),在接收到查询后,可运行若干个工作代理。每个代理处理其各自的数据分区。从工作代理收集查询结果并发送给协调器,协调器可将结果返回给客户端。由于数据倾斜现象,与其他代理相比,一些代理需要处理更大的数据分区,并花费更多时间来执行查询。在传统系统中,当一个工作代理完成其任务集时,所述工作代理使用的CPU核和内存配额会变成空闲,从而导致系统资源利用率低。本发明的各方面,通过在工作代理间动态重新分配任务和/或内存配额,解决了这个问题。
在重新平衡期间,可通过任务分配器将未完成任务重新分配给空闲工作代理。在一实施例中,基于仍需所有忙态工作代理处理的剩余数据页面,任务分配器可计算待重新分配任务的总数。可根据下述公式确定: 其中,n是工作代理的数量。
因此,任务分配器可选择一个有最多剩余待处理数据页面的忙态工作代理为候选工作代理。任务分配器可通过下述公式来计算待重新分配任务的百分比为待重新分配任务与该忙态工作代理的分区中数据页面的总数的比值:如果待重新分配任务的百分比大于任务分配阈值,则任务分配器将任务分配给空闲代理。
图6示出了一种在SMP系统中处理查询的方法600。如图所示,所述方法600从步骤610开始,在该步骤中,工作代理将其估计的数据分区大小和内存配额注册到任务分配器。任务代理可将其进展周期性地报告给任务分配器。之后,所述方法600进行到步骤620,在该步骤中,任务分配器确定一个工作代理是否完成其工作。接下来,所述方法600进行到步骤630,在该步骤中,任务分配器确定剩余工作/任务是否超过一个阈值。所述阈值可能与重新分配的损耗(例如进行重新分配所需的处理资源)相对应。如果剩余工作/任务没有超过所述阈值,则所述方法600进行到步骤640,在该步骤中,任务分配器将空闲工作代理的内存配额释放到内存池,可将释放的内存配额重新分配给其他忙态工作代理。如果剩余工作/任务超过所述阈值,则所述方法600进行到步骤650,在该步骤中,任务分配器将更多工作/任务分配给空闲工作代理。这包括将任务从忙态工作代理重新分配给空闲工作代理。
本发明各方面为数据库实例提供了任务分配模块。如果工作代理上的工作进展不平衡,任务分配模块可在工作代理间动态重新平衡执行查询任务和内存分配。数据倾斜或如I/O等其他因素可导致工作进展的不均衡。实施例中的重新分配技术可提高CPI和内存资源的利用率并增加SMP系统的吞吐量。任务分配模块也可用于性能监测目的,使得可观察到执行查询进展。而且实施例的任务分配模块是轻量级的并可作为单线程实现。实施例的重新分配技术可应用于多个数据库操作,如聚合、排序、哈希连接、合并连接及嵌套循环连接等。在聚合的情况下,优化模块可添加最终聚合运算器用于并行和重新平衡。在哈希连接的情况下,可共享建立侧,并可并行处理及重新平衡探测阶段。在嵌套循环连接的情况下,对于内外侧,连接键可以是分区键,且外侧可并行处理并重新平衡。在排序和合并连接操作期间,可使用外部排序。
图7示出可等效于上文所论述的一或多个设备的处理设备700的实施例的框图。所述处理设备700可以包括多核处理器704、存储器706以及多个接口710至714,其设置如图7所示(或者可以与图7不同)。所述多核处理器704可以是任何能够执行计算和/或其它处理相关任务的器件,所述存储器706可以是任何能够为所述多核处理器704存储程序和/或指令的器件。所述接口710至714可以是任何让所述处理设备700与外部设备通信的器件或器件的集合。
图8显示多核CPU系统的框图,该处理系统可以用来实现本文公开的方法。实施例的多核CPU系统可利用所有所示的组件或所述组件的仅一子集,且系统之间的集成程度可能不同。此外,多核CPU系统可以包括组件的多个实例,如多个处理核、存储器、发射器、接收器等。所述多核CPU可以包括配备一个或多个输入/输出设备,如扬声器、麦克风、鼠标、触摸屏、按键、键盘、打印机、显示器等的多个处理核。所述处理单元可以包括中央处理器(central processing unit,简称CPU)、存储器、大容量存储器设备、视频适配器以及连接至总线的I/O接口。
总线可以是任意类型的若干总线架构中的一个或多个,包括存储总线或存储控制器、外设总线、视频总线等等。CPU可包括任意类型的电子数据处理器。存储器可包括任何类型的系统存储器,例如静态随机存取存储器(static random access memory,简称SRAM)、动态随机存取存储器(dynamic random access memory,简称DRAM)、同步DRAM(synchronous dynamic random access memory,简称SDRAM)、只读存储器(read-onlymemory,简称ROM)或其组合等等。在实施例中,所述存储器可包括在开机时使用的ROM以及在执行程序时使用的存储程序和数据的DRAM。
大容量存储器设备可包括任何类型的存储器设备,其用于存储数据、程序和其它信息,并使这些数据、程序和其它信息通过总线访问。大容量存储器设备可包括如下项中的一项或多项:固态磁盘、硬盘驱动器、磁盘驱动器、光盘驱动器等等。
显示卡以及I/O接口提供接口以将外部输入以及输出装置耦合至处理单元上。如所图示,输入以及输出装置的实例包含耦合至显示卡上的显示器以及耦合至I/O接口上的鼠标/键盘/打印机。其它装置可以耦合至处理单元上,并且可以利用额外的或较少的接口卡。例如,可使用如通用串行总线(Universal Serial Bus,简称USB)(未示出)等串行接口将接口提供给打印机。
处理单元还包含一个或多个网络接口,所述网络接口可以包括例如以太网电缆或其类似者等有线链路,和/或用以接入节点或不同网络的无线链路。网络接口允许处理单元经由网络与远程单元通信。举例来说,网络接口可以经由一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一实施例中,所述处理单元与局域网或者广域网耦合以进行数据处理以及与远端设备比如其他处理单元、因特网、远端存储设备等通信。
尽管进行了详细的描述,但应理解,可在不脱离由所附权利要求书界定的本发明的精神和范围的情况下,对本文做出各种改变、替代和更改。此外,本发明的范围不希望限于本文中所描述的特定实施例,所属领域的一般技术人员将从本发明中容易了解到,过程、机器、制造工艺、物质成分、构件、方法或步骤(包括目前存在的或以后将开发的)可执行与本文所述对应实施例大致相同的功能或实现与本文所述对应实施例大致相同的效果。相应地,所附权利要求范围包括这些流程、机器、制造、物质组分、构件、方法,及步骤。
Claims (20)
1.一种用于在对称多处理(symmetric multiprocessing,简称SMP)系统中进行查询的方法,其特征在于,所述方法包括:
处理器识别进行查询期间的待处理的任务,其中,所述任务至少包括第一任务集和第二任务集,所述处理器包括多个工作代理,至少包括第一工作代理和第二工作代理;
将所述任务分配给所述多个工作代理以进行处理,其中将所述第一任务集分配给所述第一工作代理,将所述第二任务集分配给所述第二工作代理;
在所述第二工作代理处理完第二任务集前,确定所述第一工作代理已处理完第一任务集;
当满足条件时,重新将所述第二任务集中的至少一些未完成任务分配给所述第一工作代理。
2.根据权利要求1所述的方法,其特征在于,所述第一代理处理所述重新分配的任务。
3.根据权利要求1所述的方法,其特征在于,当所述第二任务集中的未完成任务的数量超过一个阈值时,满足所述条件,且所述未完成任务的数量与所述第二任务集中的所述第二工作代理还没有处理的任务相对应。
4.根据权利要求1所述的方法,其特征在于,还包括:
计算待重新分配任务的百分比,其中,当所述待重新分配任务的百分比超过一个阈值时,满足所述条件。
5.根据权利要求4所述的方法,其特征在于,计算待重新分配任务的百分比包括:
识别待重新分配任务的数量;
计算所述待重新分配任务的数量与所述查询相关的处理任务的总数的比值;
将所述比值乘100。
6.根据权利要求5所述的方法,其特征在于,识别待重新分配任务的数量包括:
当所述第一工作代理已处理完所述第一任务集,确定所述多个工作代理还没有处理的任务的数量。
7.根据权利要求5所述的方法,其特征在于,识别待重新分配任务的数量包括:
依照以下公式计算待重新分配的任务的数量: 其中,代理(i)的剩余任务为当所述第一工作代理处理完所述第一任务集时,第i个工作代理还没有处理的任务的数量,n为所述处理器中工作代理的总数量。
8.根据权利要求1所述的方法,其特征在于,将第一内存配额分配给所述第一工作代理,以处理所述第一任务集,将第二内存配额分配给所述第二工作代理,以处理所述第二任务集。
9.根据权利要求8所述的方法,其特征在于,还包括:
当所满足所述条件时,释放至少一些所述第一内存配额到内存池。
10.根据权利要求9所述的方法,其特征在于,还包括:
将所述第一内存配额的至少部分重新分配给所述第二工作代理。
11.根据权利要求10所述的方法,其特征在于,所述第二工作代理使用所述第一内存配额的重新分配部分处理所述第二任务集的剩余任务。
12.根据权利要求10所述的方法,其特征在于,所述查询包括聚合操作、排序操作、哈希连接操作、合并连接操作及嵌套循环操作。
13.一种非对称多重处理(symmetric multiprocessing,简称SMP)所使用的处理器,其特征在于,所述处理器包括:
一个接口,用于接收查询,其中所述处理器用于识别执行查询期间的待处理的任务,所述任务至少包括第一任务集和第二任务集;
多个工作代理,至少包括第一工作代理和第二工作代理,其中,所述第一工作代理分配给所述第一任务集,所述第二工作代理分配给所述第二任务集;
任务分配模块,通信耦合至所述多个工作代理,其中所述任务分配模块用于在所述第二工作代理处理完所述第二任务集前,确定所述第一工作代理处理完所述第一任务集;当满足条件时,将至少一些所述第二任务集重新分配给所述第一工作代理。
14.根据权利要求13所述的处理器,其特征在于,所述任务分配模块还用于在所述第一工作代理处理完所述第一任务集后,计算待重新分配任务的百分比,当所述待重新分配任务的百分比超过一个阈值时,满足所述条件。
15.根据权利要求13所述的处理器,其特征在于,所述任务分配模块为多个工作代理中的一个。
16.一种用于在对称多处理(symmetric multiprocessing,简称SMP)系统中进行查询的方法,其特征在于,所述方法包括:
处理器识别进行查询期间的待处理的任务,其中,所述任务至少包括第一任务集和第二任务集,所述处理器包括多个工作代理,至少包括第一工作代理和第二工作代理;
将内存配额分配给所述多个工作代理,以处理所述任务,其中,将第一内存配额分配给所述第一工作代理,以处理所述第一任务集,将第二内存配额分配给所述第二工作代理,以处理所述第二任务集;
在所述第二工作代理处理完第二任务集前,确定所述第一工作代理已处理完第一任务集;
将所述第一内存配额的至少部分重新分配给所述第二工作代理。
17.根据权利要求16所述的方法,其特征在于,所述第二工作代理使用所述第一内存配额的重新分配部分来处理所述第二任务集的剩余任务。
18.根据权利要求16所述的方法,其特征在于,将所述第一内存配额的至少部分重新分配给所述第二工作代理包括:
在所述第一工作代理处理完所述第一任务集后,释放所述第一内存配额至内存池;
从第二工作代理接收内存请求;
为响应所述内存请求,将所述第一内存配额的至少部分重新分配给所述第二工作代理。
19.一种非对称多重处理(symmetric multiprocessing,简称SMP)所使用的处理器,其特征在于,所述处理器包括:
一个接口,用于接收查询,其中所述处理器用于识别执行查询期间的待处理的任务,所述任务至少包括第一任务集和第二任务集;
多个工作代理,至少包括第一工作代理和第二工作代理,其中,分配所述第一工作代理用于通过第一内存配额处理所述第一任务集,分配所述第二工作代理用于通过第二内存配额处理所述第二任务集;
任务分配模块,通信耦合至所述多个工作代理,所述任务分配模块用于:在所述第二工作代理处理完所述第二任务集前,确定所述第一工作代理处理完所述第一任务集;将所述第一内存配额的至少部分重新分配给所述第二工作代理。
20.根据权利要求19所述的处理器,其特征在于,所述任务分配模块为多个工作代理中的一个。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/175,489 US20150227586A1 (en) | 2014-02-07 | 2014-02-07 | Methods and Systems for Dynamically Allocating Resources and Tasks Among Database Work Agents in an SMP Environment |
US14/175,489 | 2014-02-07 | ||
PCT/CN2015/072437 WO2015117565A1 (en) | 2014-02-07 | 2015-02-06 | Methods and systems for dynamically allocating resources and tasks among database work agents in smp environment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105980988A true CN105980988A (zh) | 2016-09-28 |
Family
ID=53775095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580007345.2A Pending CN105980988A (zh) | 2014-02-07 | 2015-02-06 | Smp环境中在数据库工作代理间动态分配资源和任务的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150227586A1 (zh) |
EP (1) | EP3103017A4 (zh) |
CN (1) | CN105980988A (zh) |
WO (1) | WO2015117565A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815839A (zh) * | 2018-12-29 | 2019-05-28 | 深圳云天励飞技术有限公司 | 微服务架构下的徘徊人员识别方法及相关产品 |
CN111930514A (zh) * | 2020-09-14 | 2020-11-13 | 北京英迈琪科技有限公司 | 一种资源优化分配方法及系统 |
CN114040380A (zh) * | 2021-11-08 | 2022-02-11 | 北京百度网讯科技有限公司 | 一种数据下发方法、装置、电子设备、介质及产品 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685015B (zh) * | 2013-12-17 | 2016-08-17 | 清华大学 | 基于构件的可扩展路由器任务分派方法 |
US10162683B2 (en) * | 2014-06-05 | 2018-12-25 | International Business Machines Corporation | Weighted stealing of resources |
US10970285B2 (en) * | 2015-02-26 | 2021-04-06 | Red Hat, Inc. | Grid topology change in a distributed data grid when iterating on the contents of the data grid |
US9977730B2 (en) * | 2015-05-08 | 2018-05-22 | Dell Products, Lp | System and method for optimizing system memory and input/output operations memory |
US11474697B2 (en) * | 2016-05-16 | 2022-10-18 | International Business Machines Corporation | Opportunistic data analytics using memory bandwidth in disaggregated computing systems |
US11275619B2 (en) | 2016-05-16 | 2022-03-15 | International Business Machines Corporation | Opportunistic data analytics using memory bandwidth in disaggregated computing systems |
US10503401B2 (en) * | 2016-05-16 | 2019-12-10 | International Business Machines Corporation | Opportunistic data analytics using memory bandwidth in disaggregated computing systems |
US10223012B2 (en) | 2017-03-02 | 2019-03-05 | International Business Machines Corporation | Processing of a set of pending operations for a switchover from a first storage resource to a second storage resource |
WO2019164582A1 (en) * | 2018-02-21 | 2019-08-29 | Rubrik, Inc. | Distributed semaphore with adjustable chunk sizes |
US11216315B2 (en) | 2018-02-21 | 2022-01-04 | Rubrik, Inc. | Distributed semaphore with a different keys to reduce contention for dynamic reservation of disk space |
US10423465B2 (en) | 2018-02-21 | 2019-09-24 | Rubrik, Inc. | Distributed semaphore with adjustable chunk sizes |
CN108681482B (zh) * | 2018-05-16 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 基于图数据的任务调度方法和装置 |
GB2570991B (en) * | 2018-12-14 | 2020-04-22 | Lendinvest Ltd | Instruction allocation and processing system and method |
US11841833B2 (en) * | 2022-01-19 | 2023-12-12 | Kyndryl, Inc. | File reorganization |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1331817A (zh) * | 1998-11-25 | 2002-01-16 | 电脑联合想象公司 | 用于并发数据库管理系统表操作的方法和设备 |
CN1219258C (zh) * | 2000-06-20 | 2005-09-14 | 国际商业机器公司 | 用于协调执行的并行软件的高性能无阻塞并行存储管理器 |
CN1786919A (zh) * | 2004-12-07 | 2006-06-14 | 国际商业机器公司 | 用于在逻辑分区数据处理系统中管理资源的方法和设备 |
CN1841330A (zh) * | 2005-03-29 | 2006-10-04 | 国际商业机器公司 | 用于管理多节点smp系统的方法和系统 |
CN101464813A (zh) * | 2007-12-19 | 2009-06-24 | 国际商业机器公司 | 用于多核处理器上的自动工作量分配的系统和方法 |
CN102027452A (zh) * | 2008-05-16 | 2011-04-20 | 微软公司 | 调度器中的调度集合 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658449B1 (en) * | 2000-02-17 | 2003-12-02 | International Business Machines Corporation | Apparatus and method for periodic load balancing in a multiple run queue system |
US20020023117A1 (en) * | 2000-05-31 | 2002-02-21 | James Bernardin | Redundancy-based methods, apparatus and articles-of-manufacture for providing improved quality-of-service in an always-live distributed computing environment |
JP2004171234A (ja) * | 2002-11-19 | 2004-06-17 | Toshiba Corp | マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム |
US7452351B2 (en) * | 2004-04-16 | 2008-11-18 | Kyphon Sarl | Spinal diagnostic methods and apparatus |
US7730456B2 (en) * | 2004-05-19 | 2010-06-01 | Sony Computer Entertainment Inc. | Methods and apparatus for handling processing errors in a multi-processing system |
KR101287702B1 (ko) * | 2005-06-30 | 2013-07-24 | 엘지디스플레이 주식회사 | 반사투과형 액정 표시 장치 및 그 제조 방법 |
JP2007034392A (ja) * | 2005-07-22 | 2007-02-08 | Nec Electronics Corp | 情報処理装置及びデータ処理方法 |
NZ550563A (en) * | 2006-10-16 | 2009-01-31 | Agres Ltd | Improvements in spray freeze drying |
US8035091B2 (en) * | 2007-05-11 | 2011-10-11 | Microsemi Corporation | Passive outdoor millimeter wave illuminator |
US20120013711A1 (en) * | 2009-04-08 | 2012-01-19 | Stergen Hi-Tech Ltd. | Method and system for creating three-dimensional viewable video from a single video stream |
-
2014
- 2014-02-07 US US14/175,489 patent/US20150227586A1/en not_active Abandoned
-
2015
- 2015-02-06 CN CN201580007345.2A patent/CN105980988A/zh active Pending
- 2015-02-06 WO PCT/CN2015/072437 patent/WO2015117565A1/en active Application Filing
- 2015-02-06 EP EP15745858.9A patent/EP3103017A4/en not_active Ceased
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1331817A (zh) * | 1998-11-25 | 2002-01-16 | 电脑联合想象公司 | 用于并发数据库管理系统表操作的方法和设备 |
CN1219258C (zh) * | 2000-06-20 | 2005-09-14 | 国际商业机器公司 | 用于协调执行的并行软件的高性能无阻塞并行存储管理器 |
CN1786919A (zh) * | 2004-12-07 | 2006-06-14 | 国际商业机器公司 | 用于在逻辑分区数据处理系统中管理资源的方法和设备 |
CN1841330A (zh) * | 2005-03-29 | 2006-10-04 | 国际商业机器公司 | 用于管理多节点smp系统的方法和系统 |
CN101464813A (zh) * | 2007-12-19 | 2009-06-24 | 国际商业机器公司 | 用于多核处理器上的自动工作量分配的系统和方法 |
CN102027452A (zh) * | 2008-05-16 | 2011-04-20 | 微软公司 | 调度器中的调度集合 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815839A (zh) * | 2018-12-29 | 2019-05-28 | 深圳云天励飞技术有限公司 | 微服务架构下的徘徊人员识别方法及相关产品 |
CN109815839B (zh) * | 2018-12-29 | 2021-10-08 | 深圳云天励飞技术有限公司 | 微服务架构下的徘徊人员识别方法及相关产品 |
CN111930514A (zh) * | 2020-09-14 | 2020-11-13 | 北京英迈琪科技有限公司 | 一种资源优化分配方法及系统 |
CN114040380A (zh) * | 2021-11-08 | 2022-02-11 | 北京百度网讯科技有限公司 | 一种数据下发方法、装置、电子设备、介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
WO2015117565A1 (en) | 2015-08-13 |
EP3103017A4 (en) | 2017-02-22 |
US20150227586A1 (en) | 2015-08-13 |
EP3103017A1 (en) | 2016-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105980988A (zh) | Smp环境中在数据库工作代理间动态分配资源和任务的方法和系统 | |
CN110168516B (zh) | 用于大规模并行处理的动态计算节点分组方法及系统 | |
CN104391918B (zh) | 基于对等部署的分布式数据库查询优先级管理的实现方法 | |
US8726290B2 (en) | System and/or method for balancing allocation of data among reduce processes by reallocation | |
US6826753B1 (en) | Managing parallel execution of work granules according to their affinity | |
CN106095590B (zh) | 一种基于线程池的任务分配方法及装置 | |
CN105045871B (zh) | 数据聚合查询方法及装置 | |
TWI547817B (zh) | 叢集運算架構的資源規劃方法、系統及裝置 | |
CN107710200A (zh) | 用于并行化smp数据库中的基于散列的运算符的系统和方法 | |
CN107291536B (zh) | 一种云计算环境下应用任务流调度方法 | |
US9813490B2 (en) | Scheduled network communication for efficient re-partitioning of data | |
CN102279730A (zh) | 一种并行的数据处理方法、装置和并行的数据处理系统 | |
CN105874426B (zh) | 一种系统调用命令的批处理方法及装置 | |
KR20090065133A (ko) | 분산 병렬 처리 시스템에서 태스크 스레드 그룹별 태스크분배 장치, 방법 및 처리 방법 | |
CN105046443A (zh) | 一种业务工单分配方法及系统 | |
US20060206489A1 (en) | System and method for optimally configuring software systems for a NUMA platform | |
CN111324435A (zh) | 分布式任务调度及注册方法、设备和分布式任务调度系统 | |
CN106131227A (zh) | 负载平衡方法、元数据服务器系统及负载平衡系统 | |
CN106250233B (zh) | MapReduce性能优化系统及优化方法 | |
JP2014191594A (ja) | 分散処理システム | |
CN110058940A (zh) | 一种多线程环境下的数据处理方法及装置 | |
US6549931B1 (en) | Distributing workload between resources used to access data | |
CN104871153A (zh) | 用于灵活的分布式大规模并行处理(mpp)数据库的系统和方法 | |
CN109032769A (zh) | 一种基于容器的持续集成ci任务处理方法及装置 | |
CN101625628B (zh) | 一种实现逻辑盘卷管理映射定制的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160928 |
|
RJ01 | Rejection of invention patent application after publication |