CN115114012A - 一种任务分配方法、装置、电子设备及存储介质 - Google Patents
一种任务分配方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115114012A CN115114012A CN202110926517.3A CN202110926517A CN115114012A CN 115114012 A CN115114012 A CN 115114012A CN 202110926517 A CN202110926517 A CN 202110926517A CN 115114012 A CN115114012 A CN 115114012A
- Authority
- CN
- China
- Prior art keywords
- node
- computing
- physical elements
- determining
- computing node
- 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.)
- Granted
Links
Images
Classifications
-
- 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/5044—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 hardware capabilities
-
- 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
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据处理技术领域,尤其涉及云技术领域,公开了一种任务分配方法、装置、电子设备及存储介质,该方法为:响应于触发的数据处理请求,关联的各个性能权重,再获取本地存储的代价评估信息,确定各类物理元件的常规属性值与相应的参考属性值之间的差异值,并基于获得的各个差异值与对应的性能权重,分别确定所述各个计算节点的任务量比例预估值,并按照任务量比例预估值进行任务的分配。这样,基于节点集群中各个计算节点关联的物理元件的性能差异,以及节点集群中各个计算节点的处理能力范围,能够为各个计算节点分配适量的待处理任务,充分发挥出各个计算节点的处理能力,使得能够快速完成对数据库中数据的查找和修改。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及云技术领域,公开了一种任务分配方法、装置、电子设备及存储介质。
背景技术
为了适应信息社会的发展,满足对于数据库的存储功能和查询功能要求的提高,存储功能和计算功能分离的分布式数据库架构应运而生。目前,分布式数据库架构中包括两部分,分别为用于接收查询请求,并解析生成查询计划的计算节点,以及用于存储用户数据的存储节点。同时,分布式数据库架构中将数据字典统一存储于指定位置,数据字典中包括与存储的数据相关的元数据、与查询代价估计相关的计算节点的元数据等等。
然而,现有技术下的分布式数据库架构中,在进行代价估计时,沿用了单机数据库的代价估计方式,以一个计算节点的机器性能估计全局各个计算节点的机器性能,为各个计算节点均分查询任务,进而造成了计算节点不能发挥全部计算性能或者造成计算节点过载的问题,极大的影响了对于数据的查询效率。
发明内容
本申请实施例提供一种任务分配方法、装置、电子设备及存储介质,用以解决由于数据字典统一存储造成的无法为各个计算节点分配适量的处理任务的问题。
第一方面,本申请实施例提供了一种任务分配方法,应用于分布式数据库架构下节点集群中的一个计算节点,所述节点集群中包括计算节点和存储节点,所述方法包括:
响应于目标对象触发的数据处理请求,获取关联的各类物理元件各自对应所述数据处理请求的性能权重;
获取本地存储的代价评估信息,其中,所述代价评估信息中包括用于确定所述节点集群中各个节点各自关联的,各类物理元件的常规属性值的数据字典内容,并包括用于确定所述各类物理元件的参考属性值的数据字典内容;
根据所述代价评估信息,确定所述节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,并基于获得的各个差异值与对应的性能权重,分别确定所述各个计算节点的任务量比例预估值;
获得所述数据处理请求对应的待处理任务集合,并基于获得的各个任务量比例预估值,分别为所述各个计算节点分配相应的待处理任务。
可选的,确定所述节点集群中的参考节点,包括:
若确定未接收到用于指示参考节点的命令语句,则获取预存的配置信息,并根据所述配置信息中存储的参考节点信息,确定参考节点;
若确定接收到用于指示参考节点的命令语句,则执行所述命令语句,并根据所述命令语句中指示的节点信息,确定参考节点。
第二方面,提出一种任务分配装置,所述装置包括:
响应单元,用于响应于目标对象触发的数据处理请求,获取关联的各类物理元件各自对应所述数据处理请求的性能权重;
获取单元,用于获取本地存储的代价评估信息,其中,所述代价评估信息中包括用于确定所述节点集群中各个节点各自关联的,各类物理元件的常规属性值的数据字典内容,并包括用于确定所述各类物理元件的参考属性值的数据字典内容;
确定单元,用于根据所述代价评估信息,确定所述节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,并基于获得的各个差异值与对应的性能权重,分别确定所述各个计算节点的任务量比例预估值;
分配单元,用于获得所述数据处理请求对应的待处理任务集合,并基于获得的各个任务量比例预估值,分别为所述各个计算节点分配相应的待处理任务。
可选的,响应于对代价评估信息的修改指示,对所述代价评估信息进行修改时,所述装置进一步包括修改单元,所述修改单元用于执行以下任一项或组合:
响应于第一节点发送的,针对所述第一节点关联的数据字典内容的修改指示,将所述代价评估信息中对应的数据字典内容进行修改,并保存修改后的代价评估信息,所述第一节点为所述节点集群中的任一节点;
响应于所述节点集群中新增节点发送的,能够确定新增节点关联的各类物理元件的常规属性值的数据字典内容,并在所述代价估计信息中,增加新增节点关联的数据字典内容;
响应于所述节点集群中待删除节点发送的,删除所述待删除节点关联的数据字典内容的指示信息,并在所述代价估计信息中删除对应的数据字典内容;
响应于所述节点集群中管理节点发送的,所述节点集群中指定节点关联的修改后的数据字典内容,将代价估计信息中与所述指定节点关联的数据字典内容,替换为所述修改后的数据字典内容,其中,所述管理节点用于对所述节点集群中的各个节点进行管理,并响应于所述节点集群中节点发送的数据字典内容修改指示,生成对应的修改后的数据字典内容。
可选的,所述获取关联的各类物理元件各自对应所述数据处理请求的性能权重时,所述响应单元执行以下任一项操作:
确定未接收到用于指示性能权重的命令语句时,获取预存的配置信息,并将所述配置信息中存储的所述各类物理元件各自的预设性能权重,作为所述各类物理元件各自对应所述数据处理请求的性能权重;
确定接收到用于指示性能权重的命令语句时,执行所述命令语句,并将所述命令语句中指示的各类物理元件各自的性能权重,作为所述各类物理元件各自对应所述数据处理请求的性能权重;
解析所述数据处理请求对应的目标事务类型,并将所述各类物理元件各自对应所述目标事务类型的性能权重,作为所述各类物理元件各自对应所述数据处理请求的性能权重。
可选的,所述解析所述数据处理请求对应的目标事务类型时,所述响应单元用于:
解析所述数据处理请求,获得所述数据处理请求中包括的目标语句关键字集合,并提取事务性能处理委员会基准模型TPC-C关联的第一语句关键字集合,以及提取TPC-H关联的第二语句关键字集合,其中,对应所述第一语句关键字集合设置有第一事务类型,以及对应所述第二语句关键字集合设置有第二事务类型;
将所述目标语句关键字集合,分别与所述第一语句关键字集合和第二语句关键字集合进行内容匹配,得到对应的匹配结果;
若基于匹配结果,确定存在与所述目标语句关键字集合匹配成功的语句关键字集合,则将对应所述语句关键字集合设置的事务类型作为所述数据处理请求对应的目标事务类型。
可选的,所述将所述目标语句关键字集合,分别与所述第一语句关键字集合和第二语句关键字集合进行内容匹配,得到对应的匹配结果时,所述响应单元用于:
将所述目标语句关键字集合中包括的各个目标语句关键字进行匹配,分别与所述第一语句关键字集合和第二语句关键字集合中包括的各个语句关键字进行匹配,得到所述目标语句关键字集合与所述第一语句关键字集合的第一匹配结果,以及得到所述目标语句关键字集合与所述第二语句关键字集合的第二匹配结果;
所述基于匹配结果,确定存在与所述目标语句关键字集合匹配成功的语句关键字集合时,所述响应单元用于:
若确定所述第一匹配结果和所述第二匹配结果取值不同,则可判定存在与所述目标语句关键字集合配成功的关键字集合,以及将所述第一匹配结果和第二匹配结果中,取值较大的匹配结果对应的语句关键字集合,作为与所述目标语句关键字集合匹配成功的语句关键字集合。
可选的,所述响应单元还用于:
若基于匹配结果,确定不存在与所述目标语句关键字集合匹配成功的语句关键字集合,则将预先设置的默认事务类型作为所述数据处理请求对应的目标事务类型。
可选的,所述将所述各类物理元件各自对应所述目标事务类型的性能权重,作为所述各类物理元件各自对应所述数据处理请求的性能权重时,所述响应单元用于:
将预先设置的所述各类物理元件各自对应所述目标事务类型的初始性能权重,作为所述各类物理元件各自对应所述数据处理请求的性能权重;或者,
获取预先设置的所述各类物理元件各自对应所述目标事务类型的初始性能权重,并解析所述数据处理请求针对的目标表数据,确定所述目标表数据中数据的数量级,以及根据所述数量级,调整指定类型的物理元件对应的初始性能权重,并将调整后的所述各类物理元件各自对应的性能权重,作为所述各类物理元件各自对应所述数据处理请求的性能权重。
可选的,所述根据所述代价评估信息,确定所述节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值时,所述确定单元用于:
通过所述代价评估信息,获取所述各个计算节点各自关联的,各类物理元件的常规属性值,以及获取所述各类物理元件各自对应的参考属性值;
针对所述节点集群中每一个计算节点的每一类物理元件,分别将物理元件的常规属性值与相应的参考属性值的比值,作为所述物理元件对应的差异值。
可选的,所述通过所述代价评估信息,获取所述各个计算节点各自关联的,各类物理元件的常规属性值,以及获取所述各类物理元件各自对应的参考属性值时,所述确定单元执行以下任一项的操作:
根据所述代价评估信息,确定所述节点集群中的参考节点和参考节点的地址信息,并确定所述节点集群中各个其他计算节点的地址信息,以及基于参考节点的地址信息、各个其他计算节点的地址信息和预设的数据接口,获取所述参考节点关联的各类物理元件的参考属性值,并获取所述各个计算节点各自关联的各类物理元件的常规属性值,所述参考节点为在所述节点集群中预先指定的一个节点;
根据所述代价评估信息,确定针对各类物理元件分别配置的参考属性值,并确定所述节点集群中各个其他计算节点的地址信息,以及基于所述各个其他计算节点的地址信息和预设的数据接口,获取所述各个计算节点各自关联的各类物理元件的常规属性值;
根据所述代价评估信息,确定所述节点集群中的参考节点,并确定所述参考节点关联的各类物理元件的参考属性值,以及确定所述节点集群中各个其他计算节点各自关联的,各类物理元件的常规属性值,其中,所述各个其他计算节点各自关联的各类物理元件的常规属性值,是由对应的计算节点预先上报的,所述参考节点为在所述节点集群中预先指定的一个节点。
可选的,所述根据所述代价评估信息,确定所述节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值时,所述确定单元用于:
根据所述代价评估信息,确定各类物理元件各自对应的参考属性值,并针对自身关联的每一类物理元件,分别执行以下操作:将物理元件的常规属性值和对应的物理元件的参考属性值的比值,作为对应的物理元件关联的差异值,其中,所述参考属性值为参考节点所关联的物理元件的常规属性值,所述参考节点为在所述节点集群中预先指定的一个节点;
根据所述代价估计信息,分别确定所述节点集群中各个其他计算节点各自关联的各类物理元件,各自对应的差异值,其中,获取的各个差异值是由相应的计算节点预先上报的。
可选的,确定所述节点集群中的参考节点时,所述确定单元用于:
若确定未接收到用于指示参考节点的命令语句,则获取预存的配置信息,并根据所述配置信息中存储的参考节点信息,确定参考节点;
若确定接收到用于指示参考节点的命令语句,则执行所述命令语句,并根据所述命令语句中指示的节点信息,确定参考节点。
可选的,所述基于获得的各个差异值与对应的性能权重,分别确定所述各个计算节点的任务量比例预估值时,所述确定单元用于:
针对节点集群中的每一个计算节点,分别执行以下操作:获取一个计算节点关联的各类物理元件各自对应的差异值,并获取所述各类物理元件各自对应的性能权重,以及将各类物理元件各自对应的差异值,按照对应的性能权重进行加权处理,得到所述一个计算节点的任务量信息;
确定所述节点集群中各个计算节点各自对应的任务量信息,并将每个计算节点的任务量信息,在所述各个计算节点对应的任务量总信息中所占的比例,作为相应的计算节点的任务量比例预估值。
可选的,分别确定所述各个计算节点各自能够执行的任务量比例之后,所述规划所述数据处理请求对应的处理任务集合之前,所述确定单元进一步用于:
确定所述节点集群中的存储节点参与进行任务处理时,重新获取关联的各类物理元件各自对应所述数据处理请求的性能权重;
根据所述代价评估信息,确定所述节点集群中各个存储节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,并基于获得的各个差异值与对应的性能权重,分别确定所述各个存储节点的任务量比例预估值;
所述获得所述数据处理请求对应的待处理任务集合,并基于获得的各个任务量比例预估值,分别为所述各个计算节点分配相应的待处理任务时,所述分配单元用于:
获得所述数据处理请求对应的待处理任务集合,确定由所述各个计算节点进行处理的第一待处理任务子集,并确定由所述各个存储节点进行处理的第二待处理任务子集;
按照各个计算节点对应的任务量比例评估值,在所述第一处理任务子集中分别为所述各个计算节点分配相应的待处理任务;
按照所述各个存储节点各自对应的任务量比例评估值,在所述第二待处理任务子集中分别为所述各个存储节点分配相应的待处理任务。
第三方面,提出一种电子设备,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行上述任一任务分配方法的步骤。
第四方面,提出一种计算机可读存储介质,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行上述任一任务分配方法的步骤。
本申请有益效果如下:
本申请实施例提供了一种任务分配方法、装置、电子设备及存储介质。在本申请实施例中,响应于目标对象触发的数据处理请求,获取关联的各类物理元件各自对应所述数据处理请求的性能权重,再获取本地存储的代价评估信息,其中,所述代价评估信息中包括用于确定所述节点集群中各个节点各自关联的,各类物理元件的常规属性值的数据字典内容,并包括用于确定所述各类物理元件的参考属性值的数据字典内容,然后根据所述代价评估信息,确定所述节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,并基于获得的各个差异值与对应的性能权重,分别确定所述各个计算节点的任务量比例预估值,再获得所述数据处理请求对应的待处理任务集合,并基于获得的各个任务量比例预估值,分别为所述各个计算节点分配相应的待处理任务。这样,节点集群中的任意一个计算节点,在接收到数据处理请求时,都能够基于节点集群中各个计算节点关联的物理元件的性能差异,以及节点集群中各个计算节点的处理能力范围,为各个计算节点分配适量的待处理任务,能够提高计算节点代价估计的准确性,充分发挥出各个计算节点的处理能力,避免出现节点过载的情况,提高了节点集群中各个计算节点的处理效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请实施例中应用场景示意图;
图1b为本申请实施例中分片的一种可能的架构示意图;
图1c为本申请实施例中分片的一种可能的架构示意图;
图1d为本申请实施例中TDSQL架构下的应用示意图;
图2a本申请实施例中任务分配流程示意图;
图2b为本申请实施例中计算节点确定数据处理请求对应的目标事务类型的流程示意图;
图2c为本申请实施例中确定目标事务类型对应的各类性能权重的过程示意图;
图2d为本申请实施例中确定物理元件对应的差异值的流程示意图;
图2e为本申请实施例中确定任务量比例预估值的流程示意图;
图2f为本申请实施例中AST树示意图;
图3为本申请实施例提供的一种任务分配装置的逻辑结构示意图;
图4为应用本申请实施例的一种电子设备的一个硬件组成结构示意图;
图5为本申请实施例中的一个计算装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够在除了这里图示或描述的那些以外的顺序实施。
以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
代价估计:也称代价评估,是指数据库系统依据数据字典中记录的相关参数,估计某个操作可能消耗的代价。
数据字典(Data dictionary):是记录数据库元数据和应用程序元数据的目录,能够接受访问并提供相应的信息,如,数据字典中可能记录有与数据库表结构相关的信息,使得基于数据字典能够完成表结构的解析,数据字典中还可能记录有数据对应的索引信息。本申请实施例中,将数据字典拆分为与代价评估相关的数据字典内容和与代价评估无关的数据字典内容,其中,与代价评估相关的数据字典内容统称为代价评估信息,而与代价估计无关的数据字典内容,即与数据分布相关的数据字典内容,可以沿用相关技术下数据字典的存储方式进行存储。
元数据:又称元信息,是指数据字典中存储的数据对象。
分布式数据库:指数据是分布式存储的数据库架构,其中,存算分离的架构属于分布式数据库架构的一种。本申请实施例中,将分布式数据库中包括的各个节点,组合构建对应的节点集群,节点集群中至少包括计算节点和存储节点,计算节点无状态且不持久化存储任何数据,只存储代价评估信息,存储节点实现数据的存储,并能够根据处理需要执行部分计算任务。
代价评估信息:本申请实施例中,可以包括用于确定分布式数据库架构下节点集群中,各个节点各自关联的各类物理元件的常规属性值的数据字典内容、用于确定与各类物理元件的参考属性值的数据字典内容、与所在的计算节点的处理引擎或设备类型相关,用于调优的系统表,以及与安装的数据库软件相关的参数。
参考节点:是指预先指定的一个节点,确定为参考节点的节点可以是节点集群中的存储节点,或者,可以是节点集群中的计算节点,或者,可以是不归属于节点集群中的一个节点。参考节点可以理解为一个比较的基准,用于为其他节点关联的各类物理元件的常规属性值提供衡量基准,通过比较各个节点与参考节点的各类物理元件的基准属性值的差异,能够直观的呈现各个节点之间物理元件的差异。
参考属性值:本申请实施例中,可以将参考节点关联的各类物理元件的常规属性值确定为参考属性值,或者,可以不选定参考节点,而直接针对各类物理元件分别指定对应的参考属性值,其中,物理元件的常规属性值可以理解为对应的物理元件的真实属性值。
物理元件:本申请实施例中,各类物理元件指代的是能够评价节点性能的元件,至少包括中央处理器(central processing unit,CPU)元件、内存元件,以及输入输出(InputOutput,IO)元件,其中,常规属性值用于评价物理元件的真实性能,对于物理元件CPU来说,CPU的常规属性值指代CPU的核数,对于内存元件来说,内存元件的常规属性值可以指代内存的大小,对于IO元件来说,IO元件的常规属性值可以指代磁盘的硬盘驱动器(Hard DiskDrive,HDD)的读写性能,或者,固态硬盘(Solid State Disk,SSD)的读写性能,指标以每秒的输入输出量(Input/Output Per Second,IOPS)计。
差异值:是指节点集群中各个节点将自身关联的各类物理元件的常规属性值,与对应类型的物理元件的参考属性值进行比较后,得到的比较结果,也可以理解为,是基于各类物理元件各自对应的参考属性值,对节点关联的各类物理元件的常规属性值进行评价后,得到的评价结果。
本申请涉及云技术(Cloud technology)领域,其中,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
本申请实施例中的分布式数据库(Database),可以是基于云技术构建的,分布式数据库中的计算节点可以采用云计算的处理方式进行处理,分布式数据库中的存储节点可以采用云存储的处理方式进行处理。
数据库简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(Database Management System,DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、即可扩展标记语言(Extensible MarkupLanguage,XML);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如结构化查询语言(Structured Query Language,SQL)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
下面对本申请实施例的设计思想进行简要介绍:
相关技术下,在存算分离的分布式数据库中,数据的存储节点和计算节点是分离的,存储节点和计算节点可能不在同一台电子设备上,甚至可能不在同一个国家。由于整个分布式数据库并不会感知某一个计算节点相关的元数据的改变,所以按照传统的单机数据库存储数据字典的方式,将数据字典存储在本地是不可行的。再者,由于实际中每个计算节点的机器性能并不相同,也就是说,不同计算节点关联的各类物理元件的常规属性值存在差异,对于单个计算节点而言,在依据全局设定的数据字典信息进行代价估计时,若沿用单机数据库的代价估计方式,以一个计算节点关联的各类物理元件性能,估计全局各个计算节点各自关联的各类物理元件性能,为各个计算节点均分查询任务,这对性能不一致的计算节点而言显然是不够公平的,物理元件性能较差的节点可能因为不合适的代价估计而超负荷运行,物理元件性能较好的节点又可能因为长期没有负载而不能发挥全部计算性能,这种状况对于分布式数据库整体而言显然是不合适的。
有鉴于此,本申请提出一种任务分配方法、装置、电子设备及存储介质。考虑到分布式数据库中各个节点的CPU、IO、内存等物理元件的性能都不一致,至少将用于确定节点集群中各个节点各自关联的各类物理元件的常规属性值的数据字典内容,并将用于确定各类物理元件的参考属性值的数据字典内容,作为代价评估信息,并将代价评估信息存储在各个计算节点上。使得节点集群中的任意一个计算节点,在接收到数据处理请求时,都能够基于节点集群中各个计算节点关联的物理元件的性能差异,以及节点集群中各个计算节点的处理能力范围,为各个计算节点分配适量的待处理任务,能够提高计算节点代价估计的准确性,充分发挥出各个计算节点的处理能力,避免出现节点过载的情况,提高了节点集群中各个计算节点的处理效率,使得能够快速完成对数据库中数据的查找和修改。
如图1a所示,其为本申请实施例中应用场景示意图。该应用场景示意图中至少包括三类设备,分别为数据请求端设备110、分布式数据库架构下的n个计算节点,分别为计算节点1201-120n,以及m个存储节点,分别为存储节点1301-130n,可通过数据请求端设备110发起数据处理请求。数据请求端设备110与任一计算节点120x之间可以通过通信网络进行通信,任一计算节点120x与任一存储节点130y之间也可以通过通信网络进行通信。
在本申请实施例中,数据请求端设备110可以是用户使用的电子设备,该电子设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此。各数据请求端设备110可以通过通信网络与任一计算节点120x进行通信,在一种可选的实施方式中,通信网络可以是有线网络或无线网络,因此,数据请求端设备110与任一计算节点120x可通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做具体限制。
计算节点120x,可以是无状态的独立的物理服务器,不持久化存储任务数据,仅存储代价评估信息,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。还可以是能够承担处理功能的其他设备,如接收数据处理请求的网关设备,其中,不同计算节点对应的设备的性能可能不同。
存储节点130y,可以是能够存储数据和日志的独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器,也可以是能够提供数据存储功能的其他电子设备,其中,不同存储节点对应的设备的性能可能不同。
需要说明的是,本申请实施例中,考虑到存储节点中存储的内容的安全性,可以采用分片(set)的方式进行数据存储。
例如,参阅图1b所示,其为本申请实施例中分片的一种可能的架构示意图,当一个分片(set)中具有一主多备的架构时,具体如图1b所示,以一主两备的set为例,则对于set1,存在对应的3个存储设备以实现功能,本申请实施例中,可以选择性的只将一个set中的主存储设备,作为对应的一个存储节点。
又例如,参阅图1c所示,其为本申请实施例中分片的一种可能的架构示意图,在依据选定的目标数据的取值范围进行分片存储的情况下,不同分片中的区域(region)可以互为主备关系,一个set对应一个存储设备,且一个set对应一个存储节点。
需要说明的是,本申请提出的技术方案,可以应用于所有存储与计算分离的数据库产品中,如分布式金融数据库(Tencent Distributed MySQL,TDSQL)。参阅图1d所示,其为本申请实施例中TDSQL架构下的应用示意图,在图1b所示意的应用场景中,一个网关对应一个计算节点,一个SET对应一个存储节点。
针对每个SET,可以理解为,将一张表上的全部数据,按照指定的主键的哈希值(hash)或范围(range),打散到每个SET中,每个SET水平切分了逻辑大表,这样每个SET上的数据独立与其他SET没有关系。如果跨SET(跨节点)进行数据的交互,则需要通过双向的系统接口(XA)/两阶段提交协议(The two-phase commit protocol,2PC)技术进行支持,才能保证写操作时数据的原子性和一致性。TDSQL基于XA/2PC实现了写操作时数据的原子性和一致性。
本申请实施例中,包括用于确定节点集群中各个节点各自关联的各类物理元件的常规属性值的数据字典内容,以及用于确定各类物理元件的参考属性值的数据字典内容等内容在内的代价评估信息,分别存储在各个计算节点上,同时,计算节点能够接收存储节点上报的信息,并在本地存储的代价评估信息中,记录存储节点相关的数据字典内容。再者,计算节点能够在自身的物理元件性能发生改变时,对代价评估信息中的相关内容进行调整,并能够在节点集群中其他节点的物理元件性能发生变化时,适应性的调整代价评估信息中记录的内容,并进行标准化存储,其中,存储的代价评估信息中的内容,需要根据节点集群中各个节点本身的性能的变化进行手动配置或自动调整。
另外,考虑到每个计算节点都需要执行对数据的处理操作,因而都需要参考与数据分布相关的数据字典,故与数据分布相关的数据字典内容可以沿用相关技术下数据字典的存储方式,进行集中式存储,以便各个计算节点的共用。
借助于本申请提出的任务分配方法,通过将组成代价评估信息的数据字典内容,以及与数据分步相关的数据字典内容,进行分开存储,使得节点集群中的每个计算节点,都能够根据存储的代价评估信息,确定节点集群中各个节点关联的各类物理元件的性能,进而结合各类物理元件对应数据处理请求的性能权重,以及各个计算节点的各类物理元件的性能,确定各个计算节点所能够承担的任务量比例,使得在考量了计算节点关联的物理元件性能的前提下,在节点集群中各个计算节点的处理能力范围下,为各个计算节点确定出适量的待处理任务,能够提高计算节点代价估计的准确性,充分发挥出各个计算节点的处理能力,避免出现节点过载或者空载的情况,提高了节点集群中各个计算节点的处理效率。
在一种可能的应用场景中,为了便于降低通信时延,可以在各个地区部署计算节点120x和存储节点130y,或为了负载均衡,可以由不同的计算节点120x分别去服务各个数据请求端设备110。多个计算节点1201-120n、多个存储节点1301-130m,以及计算节点120x和存储节点130y之间,可以通过区块链实现数据的共享,多个计算节点1201-120n相当于多个服务器组成的数据共享系统。例如一个计算节点1201位于地点a,与数据请求端设备110之间进行通信连接,一个计算节点1202位于地点b,与其他数据请求端设备110之间通信连接。
对于数据共享系统中的每个计算节点120x,以及每个存储节点130y,均具有与各自对应的节点标识,数据共享系统中的每个计算节点120x,以及每个存储节点130y均可以存储有数据共享系统中其他计算节点和存储节点的节点标识,以便后续根据计算节点或存储节点的节点标识,将生成的区块广播至数据共享系统中的其他计算节点或存储节点。每个计算节点或存储节点中可维护一个如下表所示的节点标识列表,将计算节点或存储节点的名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为网络之间互联的协议(InternetProtocol,IP)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
表1
服务器名称 | 节点标识 |
节点1 | 119.115.151.174 |
节点2 | 118.116.189.145 |
... | ... |
节点N | 119.124.789.258 |
下面结合附图,对本申请实施例中实现任务分配的具体过程进行说明。
下面首先对本申请实施例中,计算节点上存储的代价评估信息中可能包括的内容进行说明:
本申请实施例中,为了使得节点集群中的各个计算节点能够基于本地存储的代价评估信息,分别确定节点集群中各个节点各自能够承担的任务量比例,计算节点预先接收配置信息,并基于配置信息确定代价评估信息中包括的内容,其中,配置信息中预先定义了代价评估信息中包括的关键数据结构,关键数据结构形如以下所示:
1、配置信息中定义了存储有计算节点本身的基本信息的信息表,其中,信息表中至少定义了如下内容:
TABLE LOCAL_INFO{//定义了记录有计算节点本身的信息的表名称
Server_id INT, //用于指示INT类型的计算节点的身份标识信息ID
Location VARCHAR(30),//用于指示可变长字符串VARCHAR类型,且最大存储30个字符的信息表的位置信息
Is_standard_server BOOL//用于指示计算节点本身是否为参考节点
}
2、配置信息中定义了用于存储有计算节点本身关联的,各类物理元件的真实性能的性能表,其中,性能表中至少定义了如下内容:
TABLE LOCAL_PERFORMANCE{//定义了存储有计算节点的物理元件信息的表名称
Server_id INT, //用于指示INT类型的计算节点的ID
CPU_Cores INT, //用于指示INT类型的CPU元件的常规属性值(核数)
Memory INT, //用于指示INT类型的内存的常规属性值(内存大小)
IOPS INT //用于指示INT类型的IO的常规属性值(以IOPS衡量)
}
3、配置信息中定义了存储有计算节点本身关联的各类物理元件的常规属性值,与各类物理元件的参考属性值之间的差异值的标准性能评价表,其中,标准性能评价表中至少定义了以下内容:
TABLE LOCAL_PERFORMANCE_STANDARD{//定义了标准性能评价表的名称
Server_id INT, //用于指示INT类型的计算节点的身份标识信息
CPU_Cores_point INT,//用于指示INT类型的计算节点的CPU核数与对应的参考核数之间的差异值
Memory_point INT,//用于指示INT类型的计算节点的内存大小与对应的参考内存大小之间的差异值
IOPS_point INT//用于指示INT类型的计算节点的IOPS与对应的参考IOPS之间的差异值
}
4、配置信息中定义了存储有计算节点所在的节点集群中,包括的各个节点的IP地址信息的集群通信表,使得计算节点能够与节点集群中的各个其他节点进行通信,其中,集群通信表中对应一个节点的通信信息,至少定义了以下内容:
TABLE CLUSTER_COMMUNICATION_INFO{//定义了集群通信表的名称Server_idINT,//用于指示INT类型的节点ID
Server_type ENUM,//用于指示枚举类型的节点ID对应的节点的身份,用于确定节点ID对应的节点是计算节点还是存储节点
Server_ip VARCHAR(30),//用于指示可变长字符串VARCHAR类型,且最大存储30个字符的,节点ID对应的节点的IP地址信息
}
需要说明的是,本申请实施例中,代价评估信息中包括的内容可以根据实际情况配置,如,计算节点在基于代价评估信息确定各个节点各自对应的任务量比例预估值时,配置信息中可以包括上述1-4中示意的表内容,使得计算节点在需要获取数据进行任务量比例评估值的计算时,可以基于上述4中定义的集群通信表,从节点集群中的各个其他节点处获取信息;又如,代价评估信息中,可以预先接收节点集群中各个节点上报的信息,针对各个节点分别建立上述2中定义的性能表,或者,针对各个节点分别建立如上述3中定义的标准性能评价表,使得在进行任务量比例评估值的计算时,无需从节点集群中的各个其他节点处获取信息,此时,对于计算节点的配置信息,需要在上述1-4中表内容的基础上,额外增加关于建立各个其他节点对应的性能表的相关定义,或者,配置信息中需要额外增加关于建立各个其他节点对应的标准性能评价表的相关定义。
本申请实施例中,对应于应用层面上定义的关键数据结构,为了实现计算节点能够与节点集群中的其他节点进行通信,获取其他节点的信息,数据库管理人员相应的进行了代码层面的设计,具体定义了各类函数接口和通用结构,定义的通用结构具体如下:
需要说明的是,本申请实施例中对关键数据结构、函数接口、通用结构的相关定义,仅是示意性的说明,具体的定义内容需要根据实际的处理需要进行灵活调整。
定义的用于描述一个节点关联的节点信息的通用结构如下:
sturct server_info{
uint32 id; //用于指示节点在归属的节点集群中的全局ID
const char*place; //用于指示部署节点对应的设备的机房位置信息
const char*ip; //用于指示节点的IP地址
uint64 core_num; //用于指示节点中CPU的核数
uint64 memory; //用于指示节点中内存大小
uint64 iops; //用于指示节点的IO性能
}Server_Info //用于表示该结构体的别名
定义的用于描述一个节点关联的基准信息的通用结构如下:
struct stabdard_info{
double cpu; //用于指示节点本身的CPU核数和CPU核数参考值之间的差异值
double memory;//用于指示节点本身的内存和内存参考值之间的差异值
double io; //用于指示节点本身IO性能和IO性能参考值之间的差异值
}Standard_Info
本申请实施例中,定义的各类函数接口具体如下:
a)Bool check_is_standard_server(const char*ip)
输入的参数:节点对应的设备的IP地址
得到的返回值:布尔变量
作用:确定当前节点是否为参考节点,如果是参考节点就不需要再确定节点关联的基准信息。
b)Satndard_Info*get_standard_info(const char*ip)
输入的参数:参考节点对应的设备的IP地址
得到的返回值:描述参考节点对应的参考信息的结构体指针
作用:如果当前的节点不是参考节点,需要向节点集群中的参考节点发送请求,获取参考节点关联的各类物理元件的参考属性值,物理元件包括CPU/内存/IO等。
c)Server_Info*get_server_info(const char*ip)
输入的参数:待查节点对应的设备的IP地址信息(待查节点为节点集群中的除当前节点外的一个其他节点)
得到的返回值:描述待查节点的节点信息的结构体指针
作用:查询待查节点的节点信息,包括位置信息与全局ID等。
d)Uint64 get_cpu_info(const char*ip)
输入的参数:待查节点对应的设备的IP地址
得到的返回值:待查节点对应的设备的CPU物理核数
作用:获取待查节点对应的设备的CPU信息,主要是核数信息。
e)Uint64 get_mem_info(const char*ip)
输入的参数:待查节点对应的设备的IP地址
得到的返回值:待查节点对应的设备的内存大小
作用:获取待查节点对应的设备的内存信息。
f)Uint64 get_io_info(const char*ip)
输入的参数:待查节点对应的设备的IP地址
得到的返回值:待查节点对应的设备的IO性能
作用:获取待查节点对应的设备的IO性能信息。
g)Float evaluate_server(const char*ip)
输入的参数:参考节点对应的设备的IP地址
得到的返回值:浮点型
作用:依据本机的各项性能指标,与集群中的参考节点对应的设备进行比较,以此确定本机在集群中的评价得分(即物理元件对应的差异值)。
进一步的,本申请实施例中,为实现本申请提出的任务分配方法,计算节点接收的配置信息中,还可以包括预先定义的关键参数,其中,定义的关键参数用于指示对应不同类型的数据处理请求,分别预设的各类物理元件各自对应的性能权重,定义的关键参数至少包括以下内容:
1)CPU_COST_RATE
CPU_COST_RATE是一个可配置参数,用于指示对应CPU元件设置的性能权重,本申请实施例中,表征某个数据处理请求对于CPU性能的依赖比例。
2)MEM_COST_RATE
MEM_COST_RATE是一个可配置参数,用于指示对应内存元件设置的性能权重,本申请实施例中,表征某个数据处理请求对于内存大小的依赖比例。
3)IO_COST_RATE
IO_COST_RATE是一个可配置参数,用于指示对应IO元件设置的性能权重,表征某个数据处理请求对于IO性能的依赖比例。
本申请实施例中,定义的上述三个关键参数,满足关系以下关系:CPU_COST_RATE+MEM_COST_RATE+IO_COST_RATE=100%,上述定义的三个关键参数,可以在配置信息中给定初始值,也可以在实际处理过程中,根据命令语句的指示,重新获得三个关键参数的取值,还可以通过对数据处理请求进行解析后,得到数据处理请求对应的事务类型,并基于事务类型,确定对应的关键参数取值,其中,关键参数取值的确定将在后续的流程中进行详细说明,在此将不再赘述。
需要说明的是,在基于解析确定的事务类型,确定数据处理请求对应的三个关键参数取值时,本申请实施例中,还可以定义可配置参数TRX_TENDENCTY_CPU,用于直接指示数据处理请求对应的事务类型,如,假设可能的事务类型为计算密集型和查询密集型,则可以在配置信息中,将参数TRX_TENDENCTY_CPU预先配置为ON状态,以使在无法直接通过解析语句关键字确定事务类型时,将数据处理请求对应的事务类型指定为计算密集型,或者,可以将TRX_TENDENCTY_CPU配置为OFF状态,使得数据处理请求对应的事务类型默认被指定为查询密集型。
这样,基于定义的各类配置信息,能够实现在节点集群中的各个计算节点上,存储代价评估信息,为实际的任务分配过程提供了计算依据。
需要说明的是,本申请实施例中,考虑到相关技术下基于磁盘的单机数据库的通用模型中用于评价节点性能的参数,将CPU、内存、IO作为评价节点性能的关键因素,进而实现对各个节点的任务分配。
具体的,考虑到对于计算节点而言,由于计算节点不存储除代价评估信息外的内容,故计算节点对IO性能的要求近乎可以忽略,IO性能可以不参与计算节点的性能评价。相关技术下数据库代价估计模型的基本公式为:
总代价=启动代价+IO代价+CPU代价;即COST=S+P+W*T
其中,P为计划运行的时访问的页数,反映了IO花费,T为访问的元组数,反映了CPU花费,W为权重因子,表明IO到CPU的相关性。
需要说明的是,由于存储层是以页面为单位,数据以页面的形式被读入内存,每个页面上可能有多条元组,访问元组,需要解析元组结构,才能把元组上的字段读出,这消耗的是CPU。而磁盘IO受以下因素影响:所选取用于实现查询的特定的逻辑操作符;中间关系的大小;用于实现逻辑操作符的物理操作符相似操作的排序,例如连接顺序的选择;物理操作符之间的参数传递。
相关技术下,上述影响因素需要基于数据库的统计模型(如MySQL的直方图)确定,通过上述公式也能明显看出来IO密集型计算也会导致解析元组信息使用的CPU资源上升,但是在申请实施例中,我们忽略这种必然的CPU资源消耗,只考虑纯计算产生的CPU消耗。
进而对应的,在本申请一些可能的实现方式中,本申请实施例可以对节点集群中的节点进行性能评价,确定各个节点能够承担的任务量比例评估值:
首先需要确定各类物理元件的参考属性值,并将参考属性值作为评价节点的基准值。
具体的,可以直接给出参考属性值或者在一个节点集群中随机选出一个参考节点,并将参考节点关联的各类常规属性值作为参考属性值。
例如Server1基础配置为40核CPU,64G内存,100Mb/s的IO,那么集群中一个与Server1相同配置的节点的CPU/内存/IO差异值就分别为1/1/1。
进而确定数据处理请求对应的事务类型。
一般数据库的事务可分为计算密集型和查询密集型,根据事务类型的不同,分配计算节点和存储节点的算力也会有所不同。具体的,在本申请下述的具体实现过程中将会具体描述针对各类型节点配置的性能权重。
再针对节点进行计算任务分配。
根据各个节点的性能和不同事务类型对性能的性能权重进行加权计算,确定各个参与查询的计算节点和存储节点分配到的任务量信息。进而根据计算得到的任务量信息,将数据处理请求对应的计算需求按比例划分到各个节点,从而生成最优查询方案。
参阅图2a所示,其为本申请实施例中任务分配流程示意图,下面对计算节点执行任务分配的过程进行说明:
需要说明的是,本申请实施例中的任务分配方法,应用于分布式数据库架构下节点集群中的一个计算节点,节点集群中至少包括计算节点和存储节点。在进行任务分配时,可以根据实际的处理需要,只针对节点集群中的计算节点进行任务分配,将节点集群中的全部计算节点作为任务分配的对象,或者,可以基于处理需要,在存储节点具有一定处理能力的情况下,分发一部分任务至存储节点,使得同时将全部计算节点和全部存储节点作为任务分配的对象,共同承担待处理任务。以下的描述中,将先以针对节点集群中的各个计算节点进行待处理任务分配为例,对任务分配的过程进行说明:
步骤201:计算节点响应于目标对象触发的数据处理请求,获取关联的各类物理元件各自对应数据处理请求的性能权重。
计算节点可以响应于本地的目标对象触发的数据处理请求,或者,响应于远程的目标对象触发的数据处理请求,获取自身关联的各类物理元件各自对应数据处理请求的性能权重,其中,数据处理请求可以是增、删、改、查中任一类型的请求。
需要说明的是,本申请实施例中,对于节点集群中的同类型节点来说,各类物理元件各自对应数据处理请求的性能权重是相同的,换言之,各类物理元件各自的性能权重表征的是数据处理请求,对于同类型的节点的各类物理元件的需求比例。本申请实施中,计算节点获取关联的各类物理元件各自对应数据处理请求的性能权重时,可以采用以下任意一种方式确定:
方式一、计算节点确定未接收到用于指示性能权重的命令语句时,获取预存的配置信息,并将配置信息中存储的各类物理元件各自的预设性能权重,作为各类物理元件各自对应数据处理请求的性能权重。
具体的,计算节点在未接收到用于指示性能权重的命令语句时,根据预先接收并存储的配置信息,确定针对各类物理元件分别设置的预设性能权重,并将各类物理元件各自对应的预设性能权重,作为各类物理元件各自对应数据处理请求的性能权重,其中,各类物理元件中至少包括CPU元件、内存元件,以及IO元件,配置信息中可以根据实际配置需要,存储与数据处理请求对应的各类物理元件的预设性能权重,且对应不同数据处理请求配置的各个预设性能权重取值不同,或者,配置信息中可以不区分数据处理请求的类型,仅配置各类物理元件各自对应的预设性能权重。
例如,假设配置信息中针对CPU元件设置的预设性能权重为20%,针对内存元件设置的预设性能权重为60%,针对IO元件设置的预设性能权重为20%,则各类物理元件对应数据处理请求的性能权重为,CPU元件20%,内存元件60%,以及IO元件20%。
方式二、计算节点确定接收到用于指示性能权重的命令语句时,执行命令语句,并将命令语句中指示的各类物理元件各自的性能权重,作为各类物理元件各自对应数据处理请求的性能权重。
具体的,计算节点确定接收到用于指示各类物理元件的性能权重的命令语句时,执行命令语句,并将命令语句中指示的各类物理元件各自的性能权重,确定为各类物理元件各自对应数据处理请求的性能权重。
本申请实施例中,计算节点接收到命令语句时,则不再基于配置信息中设置的各类物理元件的预设性能权重进行处理,换言之,计算节点接收的命令语句和预先接收的配置信息之间具有优先级的先后顺序,若接收到命令语句,则不再使用配置信息中设置的各类物理元件的预设性能权重,并直接将命令语句中指示的内容作为各类物理元件各自对应数据处理请求的性能权重。
方式三、计算节点解析数据处理请求对应的目标事务类型,并将各类物理元件各自对应目标事务类型的性能权重,作为各类物理元件各自对应数据处理请求的性能权重。
本申请实施例中,计算节点可以对接收的数据处理请求进行解析,确定数据处理请求对应的目标事务类型,进而将各类物理元件各自对应目标事务类型的性能权重,作为各类物理元件各自对应数据处理请求的性能权重,也就是说,在这种确定各类物理元件各自对应的性能权重的方式下,需要针对各类可能的事务类型,预先设置各类物理元件对应事务类型的性能权重。
本申请一些可能的实施例中,可以直接基于数据处理请求中的关键字,确定数据处理请求对应的目标事务类型。需要说明的是,当数据处理请求对应的是增、删、改操作时,考虑到增、删、改操作无需进行过多的计算,故可以将增、删、改类数据处理请求对应的事务类型,统一确定为查询密集型。
例如,假设数据处理请求为“select*from t1;”,考虑到查询密集型的事务类型通常伴随全表扫描等操作,则基于数据处理请求中的关键字“select*”,可以判定该数据处理请求对应的目标事务类型为查询密集型。
又如,假设数据处理请求为“select avg(a)from t1;”,考虑到计算密集型的事务类型通常伴随着各种聚合函数,则基于avg等聚合函数关键字,可以判定该数据处理请求对应的目标事务类型为计算密集型。
本申请另一些可能的实施例中,在确定数据处理请求对应的目标事务类型时,可以对数据处理请求进行解析,并基于解析得到的目标语句关键字集合,确定对应的目标事务类型,以及将各类物理元件各自对应目标事务类型的性能权重,确定为各类物理元件各自对应数据处理请求的性能权重。
参阅附图2b所示,其为本申请实施例中计算节点确定数据处理请求对应的目标事务类型的流程示意图,下面结合附图2b,对确定目标事务类型的过程进行说明:
步骤2011:计算节点解析数据处理请求,获得数据处理请求中包括的目标语句关键字集合,并提取TPC-C关联的第一语句关键字集合,以及提取TPC-H关联的第二语句关键字集合。
具体的,计算节点对接收的数据处理请求进行解析后,得到数据处理请求中包括的目标语句关键字集合,并采用基准(benchmark)定义的事务性能处理委员会基准模型(Transaction Processing Council,TPC),TPC-C和TPC-H,进行处理,计算节点提取TPC-C关联的第一语句关键字集合,以及提取TPC-H关联的第二语句关键字集合,其中,对应第一语句关键字集合设置有第一事务类型,以及对应第二语句关键字集合设置有第二事务类型。
需要说明的是,基于benchmark可以将数据处理请求对应的事务类型,划分为在线事务处理(Online transaction processing,OLTP)型事务和在线分析处理(Onlineanalytical processing,OLAP)型事务,本专利中将OLTP型事务划分为查询密集型事务,将OLAP型事务划分为计算密集型事务。对应这两类事务的benchmark分别为TPC-C和TPC-H,其中,OLAP型事务对应TPC-H,OLTP型事务对应TPC-C,这两类benchmark的语句都是有规律的。TPC-C关联的第一语句关键字集合中,包括的查询语句为简单的点查,范围查询,增删改等普通查询对应的语句关键字,而TPC-H关联的第二语句关键字集合中,包括的大量的分组、排序、聚集、子查询、连接等查询操作对应的语句关键字。
这样,通过解析数据处理请求获取对应的目标语句关键字集合,以及通过抽取不同处理方式各自关联的语句关键字集合,相当于以目标语句关键字集合中的内容描述数据处理请求,并通过抽取的语句关键字集合中的内容描述对应的事务类型,建立能够描述事务类型包括的操作的语句关键字集合,为后续确定数据处理请求对应的目标事务类型的过程提供了依据。
步骤2012:计算节点将目标语句关键字集合,分别与第一语句关键字集合和第二语句关键字集合进行内容匹配,得到对应的匹配结果。
计算节点解析数据处理请求,得到对应的目标语句关键字集合后,分别将目标语句关键字集合中的各个目标语句关键字,与第一语句关键字集合和第二语句关键字集合中包括的语句关键字进行内容匹配,得到匹配结果。
具体的,计算节点可以将目标语句关键字集合中包括的各个目标语句关键字进行匹配,分别与第一语句关键字集合和第二语句关键字集合中包括的各个语句关键字进行匹配,得到目标语句关键字集合与第一语句关键字集合的第一匹配结果,以及得到目标语句关键字集合与第二语句关键字集合的第二匹配结果。
需要说明的是,第一匹配结果可以指代目标语句关键字集合中的目标语句关键字,与第一语句关键字集合中的各个第一语句关键字之间,匹配成功的目标语句关键字数目,或者,第一匹配结果也可以指代匹配成功的目标语句关键字数目,占目标语句关键字集合中的目标语句关键字总数的比例。同理,第二匹配对应的也可以指代匹配成功的目标语句关键字数目,或者,指代匹配成功的目标语句关键字数目,占目标语句关键字集合中的目标语句关键字总数的比例。
例如,假设目标语句关键字集合中包括10个目标语句关键字,其中,4个目标语句关键字与第一语句关键字集合匹配成功,6个目标语句关键字与第二语句关键字集合匹配成功,则当第一匹配结果表征的是匹配成功的数目占总数目的比例时,得到的第一匹配结果为40%,同理,得到的第二匹配结果为60%。
这样,通过比较目标语句关键字集合中的各个目标语句关键字,与语句关键字集合中包括的各个语句关键字的匹配情况,能够确定对应的匹配结果,使得将数据处理请求与事务类型的匹配,具化为目标语句关键字集合中的内容,与事务类型对应的语句关键字集合中的内容进行匹配,相当于简化了事务类型的确定过程。
步骤2013:计算节点基于匹配结果,确定目标事务类型。
计算节点确定目标语句关键字集合与第一语句关键字集合和第二语句关键字集合之间的匹配结果后,按照匹配结果,可以分为以下两种情况确定目标事务类型。
情况1、计算节点基于匹配结果,确定存在匹配成功的语句关键字集合。
计算节点若基于匹配结果,确定存在与目标语句关键字集合匹配成功的语句关键字集合,则将对应语句关键字集合设置的事务类型作为数据处理请求对应的目标事务类型,其中,语句关键字集合指代第一语句关键字集合和第二语句关键字集合。
具体的,本申请实施例中,计算节点确定目标语句关键字集合与第一语句关键字集合之间的第一匹配结果,以及确定目标语句关键字集合与第二语句关键字集合之间的第二匹配结果之后,若确定第一匹配结果和第二匹配结果取值不同,则可判定存在与目标语句关键字集合配成功的关键字集合。进而将第一匹配结果和第二匹配结果中,取值较大的匹配结果对应的语句关键字集合,作为与目标语句关键字集合匹配成功的语句关键字集合,并将匹配成功的语句关键字集合对应的事务类型,确定为目标事务类型。
例如,假设对应第一语句关键字集合,设置的事务类型为查询密集型,对应第二语句关键字集合,设置的事务类型为计算密集型,假设通过比较目标语句关键字集合,与第一语句关键字集合和第二语句关键字集合的匹配情况,确定得到第一匹配结果为40%,第二匹配结果为60%。那么,可以将第二语句关键字集合对应的计算密集型,作为数据处理请求对应的目标事务类型。
情况2、计算节点基于匹配结果,确定不存在匹配成功的语句关键字集合。
计算节点若基于匹配结果,确定不存在与目标语句关键字集合匹配成功的语句关键字集合,则将预先设置的默认事务类型作为数据处理请求对应的目标事务类型。
具体的,计算节点确定目标语句关键字集合与第一语句关键字集合之间的第一匹配结果,以及确定目标语句关键字集合与第二语句关键字集合之间的第二匹配结果之后,若确定第一匹配结果和第二匹配结果取值相同,则可判定不存在与目标语句关键字集合配成功的关键字集合。进而可以获取预先设置的默认事务类型,如,计算密集型,并将默认事务类型作为数据处理请求对应的目标事务类型,其中,默认事物类型可以根据配置信息中参数TRX_TENDENCTY_CPU的状态确定。
这样,确定目标语句关键字集合,分别与第一语句关键字集合和第二语句关键字集合之间的匹配结果后,能够将与目标语句关键字集合中匹配较多内容语句关键字集合,确定为匹配成功的语句关键字集合,为目标事务类型的确定提供了依据。
进一步的,计算节点确定数据处理请求对应的目标事务类型后,将各类物理元件各自对应目标事务类型的性能权重,作为各类物理元件各自对应数据处理请求的性能权重。
具体的,计算节点在确定各类物理元件对应目标事务类型的性能权重时,可以采用以下任意一项的方式确定:
方式A、计算节点将预先设置的各类物理元件各自对应目标事务类型的初始性能权重,作为各类物理元件各自对应数据处理请求的性能权重。
本申请实施例中,计算节点可以针对每类事务类型,预先分别存储各类物理元件各自对应的初始性能权重,进而在确定数据处理请求对应的目标事务类型后,直接将各类物理元件各自对应目标事务类型的初始性能权重,作为各类物理元件各自对应数据处理请求的性能权重。
这样,通过保存针对各类事务类型预设的,各类物理元件各自的初始性能权重,使得在确定目标事务类型后,能够直接确定各类物理元件各自对应目标事务类型的性能权重,一定程度上加快了任务分配流程的处理过程。
方式B、计算节点获取预先设置的各类物理元件各自对应目标事务类型的初始性能权重,并解析数据处理请求针对的目标表数据,确定目标表数据中数据的数量级,以及根据数量级,调整指定类型的物理元件对应的初始性能权重,并将调整后的各类物理元件各自对应的性能权重,作为各类物理元件各自对应数据处理请求的性能权重。
计算节点在确定数据处理请求对应的目标事务类型后,可以在方式A中各类物理元件各自对应的初始性能权重的基础上,结合数据处理请求针对的目标表数据,以及目标表数据中数据的数量级,对各个初始性能权重的取值进行调整,得到调整后各类物理元件各自对应的性能权重,其中,目标数据表是根据数据处理请求中携带的表信息确定的,如,假设数据处理请求为“select*from t1;”,则目标数据表为表t1。
本申请实施例中,需要在保持各类物理元件各自对应的性能权重的总值不变的情况下,基于目标数据表的数量级,调整各个性能权重的取值。计算节点可以针对不同的数量级范围,分别设置性能权重的调整幅度,在保持各类物理元件各自对应的性能权重均不低于设置的最小门限值的情况下,实现对不同物理元件对应的性能权重的调整。
具体的,对于计算密集型的事物类型,考虑到对于计算密集型的事务类型来说,对于物理元件的性能需求主要在于CPU元件和内存元件,而对于IO元件的需求很小,可以适应性的设置为:目标数据表的数量级处于不同的数量级范围内,则将CPU元件初始性能权重的取值,提高数量级范围对应的幅度值,并将IO元件的初始性能权重减小一定幅度,但要保证减小后的IO元件的性能权重,高于预设的第一门限值,若在调整的过程中,确定将IO元件的性能权重调节至第一门限值时,依然无法满足数量级对应的幅度调整需求,则继续通过下调内存元件对应的性能权重,以实现提高CPU元件的性能权重,直至CPU元件的性能权重符合数量级对应的调整需求为止,或者,直至内存元件的性能权重的取值被调整为第一门限值为止,其中第一门限值的取值根据实际的处理需要进行灵活配置,在此不做过多限制,第一门限值的取值可以为0。
同理,考虑到对于查询密集型的事务类型来说,对于物理元件的性能需求主要在于IO元件,故可以根据目标表数据中数据的数量级,可以通过先后调整内存元件和CPU元件的性能权重的取值,以实现提高IO元件的性能权重取值。
需要说明的是,预先可以针对内存元件的性能权重设置对应的第一门限值,用以限定内存元件的性能权重能够取得的最小值,并针对CPU元件的性能权重设置对应的第二门限值,用以限定CPU元件的性能权重能够取得的最小值,以及针对IO元件的性能权重设置对应的第三门限值,用以限定IO元件的性能权重能够取得的最小值,其中,第一门限值、第二门限值,以及第三门限值的取值可以根据实际需要进行适应性配置,第一门限值、第二门限值,以及第三门限值的取值可以相同。
例如,假设数据处理请求对应的目标事务类型为计算密集型,且数据处理请求对应的目标数据表中数据量的估计值为2.6万,第一门限值、第二门限值,以及第三门限值的取值均为10%,当前CPU元件的初始性能权重为60%,内存元件的初始性能权重为20%,IO元件的初始性能权重为20%,预先设置调整规则为:数量级在1万以内,则可以不对各个性能权重的取值进行调整,当确定数量级为1万-2万时,将CPU元件对应的性能权重增加2%,数量级为2万-3万,将CPU元件对应的性能权重增加4%…,则将CPU元件对应的性能权重的取值增加调4%后,得到CPU元件调整后的性能权重为64%,内存元件的性能权重为20%,IO元件的性能权重为18%。
又例如,参阅图2c所示,其为本申请实施例中确定目标事务类型对应的各类性能权重的过程示意图,图2c中将物理元件CPU对应的性能权重表示为:CPU_COST_RATE;将物理元件内存对应的性能权重表示为:MEM_COST_RATE;将物理元件IO对应的性能权重表示为:IO_COST_RATE。具体的,计算节点接收到结构化查询语言(Structured Query Language,SQL)的数据处理请求后,对接收的SQL请求进行解析,得到SQL语句对应的目标语句关键字集合和SQL语句对应的目标数据表,进而采用上述步骤2011-2012所示意的处理方式,确定SQL语句对应的目标事务类型,再获取目标事务关联的各类物理元件的初始性能权重,以及根据目标数据表中数据的数量级,对各个初始性能权重进行调整,得到调整后的各类物理元件各自的性能权重。
这样,借助于对数据处理请求的解析,得到数据处理请求对应的目标数据表后,能够基于目标数据表中数据的数量级,对各类物理元件各自的性能权重进行调整,使得对应数据处理请求得到的性能权重能够适应于目标数据表中数据的数量级,以保证后续更好的完成基于目标数据表的处理任务。
步骤202:计算节点获取本地存储的代价评估信息。
计算节点获取本地存储的代价评估信息,其中,代价评估信息中包括用于确定节点集群中各个节点各自关联的,各类物理元件的常规属性值的数据字典内容,并包括用于确定各类物理元件的参考属性值的数据字典内容。
需要说明的是,本申请实施例中,数据字典采用分布式存储的方式,存储在节点集群中,其中,用于确定节点集群中各个节点各自关联的,各类物理元件的常规属性值的数据字典内容,以及用于确定各类物理元件的参考属性值的数据字典内容,分别存储在节点集群中的各个计算节点的本地,而与数据分布相关的数据字典内容,则可以沿用相关技术下的存储方式,统一存储在指定位置。为方便描述,本步骤以下的描述中,将以节点关联的数据字典内容,指代用于获取节点关联的各类物理元件的常规属性值的数据字典内容;以节点关联的物理元件信息,指代节点关联的各类物理元件各自的常规属性值。
本申请一些可能的实施例中,代价评估信息中存储的各个节点关联的数据字典内容,具体包括各个节点的IP地址信息,而不包含各个节点各自关联的物理元件信息,这就使得当后续需要基于节点关联的物理元件信息,以及各类物理元件的参考属性值,执行任务分配操作时,需要基于各个节点的IP地址,从各个节点处获取对应的内容;本申请另一些可能的实施例中,代价评估信息中可能直接存储有节点集群中,各个节点各自关联的物理元件信息,以及存储有物理元件的参考属性值,那么,计算节点仅需维护代价评估信息,就可在后续的任务分配流程中,直接基于代价评估信息确定各个节点各自关联的物理元件信息。
这样,计算节点借助于本地存储的代价评估信息,能够获得节点集群中各个节点各自关联的,各类物理元件的常规属性值,也就是各类物理元件的真实属性值,计算节点能够掌握各个节点的真实物理性能,为后续针对各个计算节点进行任务分配提供了依据。
需要说明的是,为了保证能够获取节点集群中各个节点各自关联的准确的物理元件信息,计算节点需要对代价评估信息中保存的内容进行维护,以保证能够获得各个节点各自关联的物理元件信息。
本申请实施例中,计算节点可以响应于对代价评估信息的修改指示,对保存的代价评估信息进行修改,其中,按照代价评估信息的修改指示被触发的不同方式,存在以下任意一项或组合的代价评估信息修改方式:
响应方式一、计算节点响应于第一节点发送的,针对第一节点关联的数据字典内容的修改指示,将代价评估信息中对应的数据字典内容进行修改,并保存修改后的代价评估信息。
计算节点可以响应于第一节点发送的,针对关联的数据字典内容的修改指示,将代价评估信息中对应的数据字典内容进行修改,并保存修改后的代价评估信息,其中,第一节点为节点集群中的任一节点。
具体的,计算节点可以接收归属的节点集群中第一节点发送的消息,并在确定第一节点发送了针对其关联的数据字典内容的修改指示时,对代价评估信息中对应的数据字典内容进行修改并保存。
特殊地,计算节点自身关联的数据字典内容发生变化时,则同样需要根据发生变化的内容,对代价评估信息中对应的内容进行适应性调整,并采用主动广播或者被动发送的方式,向节点集群中的各个其他计算节点发送数据字典内容的修改指示。
需要说明的是,在不同的应用场景下,第一节点发送的数据字典内容的修改指示中,用于修改的内容可能不同。
例如,在第一节点对应的设备的IP地址发生变化时,第一节点发送数据字典内容的修改指示,用于指示计算节点修改第一节点关联的数据字典内容中记录的IP地址信息,而在第一节点关联的物理元件信息发生变化时,则不触发对于数据字典内容的修改指示。
又例如,在第一节点对应的设备的IP地址发生变化,或者,在第一节点关联的物理元件信息发生变化时,第一节点发送数据字典内容的修改指示,用于指示计算节点修改第一节点关联的数据字典内容中,发生变化的内容。
响应方式二、计算节点响应于节点集群中新增节点发送的,能够确定新增节点关联的各类物理元件的常规属性值的数据字典内容,并在代价估计信息中,增加新增节点关联的数据字典内容。
具体的,当计算节点归属的节点集群中,加入有新增节点时,计算节点接收新增节点广播的信息,并针对新增节点,在代价评估信息中存储新增节点关联的数据字典内容,其中,节点集群中新加入的存储节点和新加入的计算节点,统称为新增节点。
响应方式三、计算节点响应于节点集群中待删除节点发送的,删除待删除节点关联的数据字典内容的指示信息,并在代价估计信息中删除对应的数据字典内容。
具体的,当计算节点归属的节点集群中,存在将被移除的节点,即待删除节点时,响应于待删除节点发送的,用于删除该待删除节点关联的数据字典内容的指示信息,将代价估计信息中与该待删除节点对应的数据字典内容进行删除。
这样,由于分布式数据库架构中的计算节点是无状态的,故计算节点的增删不会对统一存储的与数据分布相关的数据字典内容造成影响,同时,不影响节点集群的整体功能,也不会对其他任何节点的正常工作造成影响。
响应方式四、计算节点响应于节点集群中管理节点发送的,节点集群中指定节点关联的修改后的数据字典内容,将代价估计信息中与指定节点关联的数据字典内容,替换为修改后的数据字典内容。
在响应方式四的实现过程中,可以预先在节点集群中指定一个节点,作为管理节点,如,指定任意一个计算节点作为管理节点。进而不论节点集群中的节点发生了怎样的变化,计算节点都只需与管理节点进行通信,借助于管理节点获取各个节点关联的数据字典内容。
具体的,计算节点能够接收管理节点发送的,节点集群中指定节点关联的修改后的数据字典内容,进而计算节点基于管理节点发送的内容,对代价估计信息中与指定节点关联的数据字典内容进行修改。
需要说明的是,本申请实施例中,管理节点用于对节点集群中的各个节点进行管理,并响应于节点集群中节点发送的数据字典内容修改指示,生成对应的修改后的数据字典内容。管理节点能够接收关联的物理元件信息发生变化的节点发送的信息,将接收的信息直接转发至计算节点,或者,管理节点可以将接收的信息处理为代价估计信息中的内容格式后,将处理后的信息发送至计算节点。
这样,借助于响应方式一至响应方式四中提出的,对代价评估信息进行修改的情况可知,不同于相关技术下对节点性能的变化感知不及时,计算节点保存的代价评估信息根据各个节点性能或者其他信息的变化,进行适应性的调整,也就使得代价评估信息中始终保存能够获取各个节点各自关联的物理元件信息的准确数据字典内容,这可以明显提高计算节点代价估计的准确性,保证后续进行任务分配时能够充分发挥所有节点的计算能力。
步骤203:计算节点根据代价评估信息,确定节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,并基于获得的各个差异值与对应的性能权重,分别确定各个计算节点的任务量比例预估值。
具体的,计算节点根据本地存储的代价评估信息,确定节点集群中各个计算节点各自关联的各类物理元件的常规属性值,再获取各类物理元件各自对应的参考属性值,进而确定各类物理元件的常规属性值相对于对应的参考属性值的差异值,其中,确定的差异值用于对节点集群中对应的节点的性能进行评价。
参阅图2d所示,其为本申请实施例中确定物理元件对应的差异值的流程示意图,下面结合附图2d,对确定各类物理元件的常规属性值与对应的参考属性值之间的差异值的过程,进行说明:
步骤2031:计算节点通过代价评估信息,获取各个计算节点各自关联的,各类物理元件的常规属性值,以及获取各类物理元件各自对应的参考属性值。
具体的,计算节点可以采用以下任意一项的获取方式,获取各个计算节点各自关联的各类物理元件的常规属性值,以及获取各类物理元件各自对应的参考属性值:
获取方式一、计算节点根据代价评估信息,确定参考节点和各个其他计算节点的地址信息,并基于获得的各个地址信息,分别获取各个其他节点各自关联的各类物理元件的常规属性值。
具体的,计算节点根据代价评估信息,确定节点集群中的参考节点和参考节点的地址信息,并确定节点集群中各个其他计算节点的地址信息,以及基于参考节点的地址信息、各个其他计算节点的地址信息和预设的数据接口,获取参考节点关联的各类物理元件的参考属性值,并获取各个计算节点各自关联的各类物理元件的常规属性值。其中,预设的数据接口指代预先定义的数据接口,对应上述说明中定义的各类函数接口。
需要说明的是,参考节点可以是预先在节点集群中指定的一个节点,参考节点可以是预先指定的一个存储节点,或者,是预先指定的一个计算节点,参考节点关联的各类物理元件各自的常规属性值,即为对应的各类物理元件的参考属性值。
获取方式二、计算节点根据代价评估信息,确定针对各类物理元件分别配置的参考属性值,并基于节点集群中各个其他计算节点的地址信息,获取各个计算节点各自关联的各类物理元件的常规属性值。
具体的,计算节点根据代价评估信息,确定针对各类物理元件分别配置的参考属性值,并确定节点集群中各个其他计算节点的地址信息,以及基于各个其他计算节点的地址信息和预设的数据接口,获取各个计算节点各自关联的各类物理元件的常规属性值,其中,预设的数据接口指代预先定义的数据接口,对应上述说明中定义的各类函数接口。
也就是说,在获取方式二对应的获取物理元件常规属性值和参考属性值的实现方式中,预先针对各类物理元件分别配置对应的参考属性值,其中,参考属性值的取值根据实际处理需要而配置,本申请在此不做过多限定。
获取方式三、计算节点根据代价评估信息,直接确定各类物理元件各自对应的参考属性值,以及直接确定各个其他计算节点各自关联的各类物理元件的常规属性值。
具体的,计算节点确定节点集群中的参考节点,并确定参考节点关联的各类物理元件的参考属性值,以及确定节点集群中各个其他计算节点各自关联的,各类物理元件的常规属性值,其中,各个其他计算节点各自关联的各类物理元件的常规属性值,是由对应的计算节点预先上报的,参考节点为在节点集群中预先指定的一个节点。
也就是说,在获取方式三限定的实现方式中,由于代价评估信息中直接存储有各个节点各自关联的各类物理元件的常规属性值,故可以直接确定各类物理元件各自对应的参考属性值。
这样,基于获取方式一至三所限制的获取方式,能够在代价评估信息中存储不同信息的情况下,分别获取各类物理元件的常规属性值和参考属性值,灵活的适应于代价评估信息存储的信息内容。
步骤2032:计算节点针对节点集群中每一个计算节点的每一类物理元件,分别将物理元件的常规属性值与相应的参考属性值的比值,作为物理元件对应的差异值。
计算节点确定节点集群中各个计算节点各自关联的各类物理元件的常规属性值,以及确定各类物理元件各自对应的参考属性值之后,针对各个计算节点各自关联的各类物理元件,分别确定对应的差异值,以下以节点集群中的任一计算节点,计算节点X为例,对确定计算节点X关联的各类物理元件各自对应的差异值的过程进行说明:
计算节点针对计算节点X关联的每一类物理元件,分别确定物理元件的常规属性值与对应的参考属性值之间的比值,并将确定的比值作为该物理元件对应的差异值,其中,差异值表征节点的物理元件的常规属性值相比于对应的参考属性值的差异程度。
例如,假设直接给定的CPU元件的参考属性值为40核,内存元件的参考属性值为64G,IO元件的参考属性值为100Mb/s,那么,假设节点集群中的计算节点X,关联的各类物理元件的常规属性值分别为,CPU元件:80核;内存元件:128G;IO元件:150Mb/s。那么,对于计算节点X来说,CPU元件的差异值为:80/40=2;内存元件的差异值为:128/64=2;IO元件的差异值为:150/100=1.5。
这样,通过确定各个计算节点的物理元件性能,与对应的物理元件的参考性能的差异值,相当于以物理元件的参考属性值作为评价标准,确定各个计算节点的物理元件的常规属性值,相对于对应的参考属性值的评价结果,进而能够确定各个计算节点之间的性能差异,为后续针对性的进行任务分配提供依据。
特殊的,本申请可能的实施例中,当代价评估信息中存储有各个其他计算节点各自关联的各类物理元件的差异值的情况下,计算节点可以根据代价评估信息,确定各类物理元件各自对应的参考属性值,并针对自身关联的每一类物理元件,分别执行以下操作:将物理元件的常规属性值和对应的物理元件的参考属性值的比值,作为对应的物理元件关联的差异值,其中,参考属性值为参考节点所关联的物理元件的常规属性值,参考节点为在节点集群中预先指定的一个节点。进而直接根据代价估计信息,分别确定节点集群中各个其他计算节点各自关联的各类物理元件,各自对应的差异值,其中,获取的各个差异值是由相应的计算节点预先上报的,参考属性值的确定方式与步骤2031所限定的确定方式相同,在此不再赘述。
这样,在代价评估信息中预先存储有各类物理元件对应的差异值的情况下,能够直接获取各个其他计算节点各自关联的各类物理元件的差异值,而无需计算差异值,一定程度上提高了任务分配过程的处理速度。
需要说明的是,本申请实施例中,各类物理元件各自对应的参考属性值的确定,可以是确定参考节点后确定的,即,将参考节点关联的各类物理元件各自的常规属性值,确定为各类物理元件各自的参考属性值。
本申请的一些可能实施例中,计算节点若确定未接收到用于指示参考节点的命令语句,则获取预存的配置信息,并根据配置信息中存储的参考节点信息,确定参考节点。
需要说明的是,配置信息中存储的参考节点信息,通常指代节点集群中性能最差的设备对应的节点,其中,用于对节点对应的设备的性能进行评价的指标,包括但不限于CPU、IO,或者内存等。
本申请另一些可能的实施例中,计算节点若确定接收到用于指示参考节点的命令语句时,执行命令语句,并根据命令语句中指示的节点信息,确定参考节点。
需要说明的是,指示参考节点的命令语句可以是数据库管理人员完成命令编写后发送的,或者,可以是按照预先设置的参考节点确定规则,确定出参考节点后,由参考节点发送的,其中,在节点集群中各个节点的性能差异不大的情况下,确定预先设置的参考节点的规则可以是:将节点集群中最先启动的节点确定为参考节点。
进一步的,计算节点基于获得的各个计算节点各自关联的差异值,以及各个物理元件各自对应的性能权重,分别确定各个计算节点的任务量比例预估值。参阅附图2e所示,其为本申请实施例中确定任务量比例预估值的流程示意图,下面结合附图2e,对确定任务量比例预估值的过程进行说明:
步骤2033:计算节点针对节点集群中的每一个计算节点,分别执行以下操作:获取一个计算节点关联的各类物理元件各自对应的差异值,并获取各类物理元件各自对应的性能权重,以及将各类物理元件各自对应的差异值,按照对应的性能权重进行加权处理,得到一个计算节点的任务量信息。
计算节点根据节点集群中各个计算节点的性能,以及各类物理元件各自对应数据处理请求的性能权重,进行加权计算,得到各个计算节点能够分配得到的任务量信息。
下面以确定节点集群中的任一计算节点:计算节点X的任务量信息为例,对确定计算节点的任务量信息的过程进行说明:
确定计算节点X关联的各类物理元件各自的常规属性值,各自相对于对应的参考属性值的差异值,并确定计算节点X关联的各类物理元件各自对应数据处理请求的性能权重,以及将差异值和对应的性能权重进行加权计算,得到计算节点X对应的任务量信息。
具体的,针对计算节点X关联的每一类物理元件,分别采用对应的性能权重,对差异值进行加权,得到各类物理元件对应的加权结果和,作为计算节点X对应的任务量信息。
计算任务量信息的公式,形如如下所示:
其中,Ri表示节点集群中的任一个计算节点:计算节点x对应的任务量信息,CPUi表示计算节点x关联的CPU元件的常规属性值,CPUs表示CPU元件对应的参考属性值,MEMi表示计算节点x关联的内存元件的常规属性值,MEMs表示内存元件对应的参考属性值,IOi表示计算节点x关联的IO元件的常规属性值,IOs表示IO元件对应的参考属性值,CPU_COST_RATE表示CPU元件对应的性能权重,MEM_COST_RATE表示内存元件对应的性能权重,IO_COST_RATE表示IO元件对应的性能权重,CPU_COST_RATE、MEM_COST_RATE,以及IO_COST_RATE的相加和为1。
步骤2034:计算节点确定节点集群中各个计算节点各自对应的任务量信息,并将每个计算节点的任务量信息,在各个计算节点对应的任务量总信息中所占的比例,作为相应的计算节点的任务量比例预估值。
具体的,计算节点确定节点集群中各个计算节点各自对应的任务量信息后,将每个计算节点的任务量信息,在各个计算节点对应的任务量总信息中的占比,作为相应的计算节点的任务量比例预估值。
本申请实施例中,用于计算任务量比例预估值的公式,形如如下所示:
其中,Wi表征节点集群中任一个计算节点:计算节点X的任务量比例预估值,Ri表征计算节点X的任务量信息,1-n表示节点集群中计算节点的编号,n表征节点集群中计算节点的数目为n个,Rn表征编号为n的计算节点的任务量信息。
这样,基于计算节点关联各类物理元件的差异值,以及各类物理元件对应数据处理请求的性能权重,能够确定每个计算节点能够承担的任务量信息,此时,由于不同性能的节点能够承担的任务量信息不同,节点关联的各类物理元件各自的差异值均取值较大,则说明对应的节点性能越好,因而在计算得到的任务量信息相对较大,进而在基于确定的任务量信息,确定各个计算节点能够承担的任务量比例时,必然存在性能较好的计算节点承担更多的任务量比例的情况,因而能够充分发挥各个计算节点的计算能力,提高数据库查询性能,进而后续能够进行准确的计算代价估计。
需要说明的是,本申请实施例中,若确定节点集群中的存储节点也参与任务处理,则需要针对节点集群中的各个存储节点,分别确定各个存储节点承担的任务量比例。
具体的,计算节点确定节点集群中的存储节点参与进行任务处理时,重新获取关联的各类物理元件各自对应数据处理请求的性能权重,进而根据代价评估信息,确定节点集群中各个存储节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,并基于获得的各个差异值与对应的性能权重,分别确定各个存储节点的任务量比例预估值,其中,确定各个存储节点对应的任务量比例预估值的计算过程,与上述确定各个计算节点各自对应的任务量比例预估值的过程相同,在此不再赘述。
这样,可以通过实际的配置需要,选择任务分配的对象,并依据节点的性能,为各个节点分配适宜的任务量比例,进而提高数据库的计算性能。
步骤204:计算节点获得数据处理请求对应的待处理任务集合,并基于获得的各个任务量比例预估值,分别为各个计算节点分配相应的待处理任务。
具体的,在仅针对节点集群中的各个计算节点进行任务分配的情况下,计算节点确定各个计算节点各自对应的任务量比例预估值后,或者,计算节点在确定各个计算节点给对应的任务量比例预估值之前,计算节点对接收的数据处理语句进行解析,获得数据处理请求对应的待处理任务集合,进而基于获得的各个任务量比例预估值,分别为各个计算节点分配相应的待处理任务。
例如,假设节点集群中存在两个计算节点,计算节点接收SQL请求后,通过对SQL请求进行解析,得到了语法分析树(abstract syntax code,AST),得到的AST可以理解为对应SQL的逻辑计划,AST对于数据库而言是可识别执行的,进而在得到AST之后,进行待处理任务的分配,比如接收的SQL语句用于进行全表扫描,且统计SQL请求对应的表数据中数据量是10000,针对两个计算节点确定的任务量预估值分别为60%和40%,则实际在进行任务分配时,可以将AST拆分为查询数据序号(<6000)的6000条数据的数据查询任务,以及数据序号(>=6001)的4000条数据的数据查询任务,进而将拆分的AST配置给相应的计算节点之后,得到查询结果,再选择性的由一个计算节点汇总返回。
又例如,参阅图2f所示,其为本申请实施例中AST树示意图,假设接收的数据处理请求形如:“select username,ismale from userinfo where age>20and level>5and 1=1”,那么对此数据处理请求进行解析后,可以得到图2f所示意的抽象结构树,进而针对预先对应各个计算节点确定的任务量比例预估值,为各个计算节点分配待处理的任务。
本申请实施例中,当采用存储节点执行部分任务时,则计算节点获得数据处理请求对应的待处理任务集合,确定由各个计算节点进行处理的第一待处理任务子集,并确定由各个存储节点进行处理的第二待处理任务子集,进而按照各个计算节点对应的任务量比例评估值,在第一处理任务子集中分别为各个计算节点分配相应的待处理任务,再按照各个存储节点各自对应的任务量比例评估值,在第二待处理任务子集中分别为各个存储节点分配相应的待处理任务。
也就是说,当部分处理内容下推至存储节点时,可以选择性的,将待处理任务集合拆分为需要计算节点处理的第一待处理任务子集,以及得到需要存储节点处理的第二待处理任务子集,进而能够基于确定的待处理任务子集,实现对各个计算节点和存储节点的任务分配。
这样,通过按照各个节点的性能,确定各个节点能够承担任务量的预估比例,可以明显提高计算节点代价估计的准确性,并能够充分发挥各个节点的计算能力,提升数据库查询性能。
下面结合一个具体的示例,在节点集群中的计算节点和存储节点均参与任务处理的前提下,对确定节点集群中各个节点承担的任务量比例预估值的过程进行说明:
假设目前数据库的节点集群中包括5个节点,具体为2个计算节点,3个存储节点,基本配置信息如表2所示:
表2
节点类型 | 节点名 | CPU | 内存 | IOPS |
计算 | C1 | 80核 | 128G | / |
计算 | C2 | 40核 | 64G | / |
存储 | S1 | 80核 | 128G | 150Mb/s |
存储 | S2 | 60核 | 64G | 100Mb/s |
存储 | S3 | 40核 | 32G | 50Mb/s |
假设,在节点集群中确定了各类物理元件各自对应的参考属性信息为:40核CPU,64G内存,100Mb/s的IO性能。节点集群中的计算节点接收到了两个不同类型的数据处理请求,分别为计算密集型事务T1和查询密集型事务T2,则在节点集群中执行数据处理请求时,制定查询计划的过程如下:
对于事务类型为计算密集型的数据处理请求T1,分别计预估各个节点承担的任务量预估比例的过程如下:
计算节点:考虑到查询操作对于内存资源的需求相对较小,故对应计算密集型的数据类型,可配置内存元件对应的性能权重为20%,将CPU元件对应的性能权重配置为80%,在确定查询计划之前,计算节点C1和计算节点C2将会互相通知自身关联的各类物理元件的常规属性值,进而进行计算,确定计算节点C1承担的任务量信息为:(80/40)*80%+(128/64)*20%=2,计算节点C2承担的任务量信息为:(40/40)*80%+(64/64)*20%=1,故在此次查询过程中,计算节点C1应承担66.7%的计算量,计算节点C2应承担33.3%的计算量。
存储节点:如果考虑有计算下推的情况,还需要给出存储节点参与计算的分配,假设内存元件和IO元件对应的性能权重均为10%权重,CPU元件对应的性能权重为80%。则同理计算各个存储节点承担的任务量信息如下:存储节点S1承担的任务量信息为:(80/40)*80%+(128/64)*10%+(150/100)*10%=1.95,存储节点S2承担的任务量信息为:(60/40)*80%+(64/64)*10%+(100/100)*10%=1.4,存储节点S3承担的任务量信息为:(40/40)*80%+(32/64)*10%+(50/100)*10%=0.9,综上存储节点S1需要承担46%的计算任务,存储节点S2需要承担33%的计算任务,存储节点S3需要承担21%的计算任务。
进而,每个计算节点的优化器可以基于以上信息选出最优查询计划。此时得出的查询计划综合了全局信息,是真正意义上的最优计划。
对于查询密集型的数据处理请求T2,对于计算节点而言,在一些实施例中可能没有读本地存储的硬件IO,只有网络IO,而网络IO影响因素复杂,我们可以暂不考虑,计算节点经过协商之后可以各自承担50%的任务量。而由于存储节点性能直接影响查询密集型的查询,我们可以针对CPU元件,配置10%的性能权重,针对内存元件配置40%的性能权重,以及为IO配置50%的性能权重,计算过程与上述相同,在此将不再赘述,最终得到的存储节点S1、存储节点S2,以及存储节点S3承担的预估任务量比例分别为:52%,31%,17%。
综上,由于本申请采用了分布式存储数据字典内容的存储方式,同时后续能够根据节点集群中各个节点的自身性能来让计算节点选择最优查询计划,使得节点集群中的各个节点均能够充分发挥处理性能,使得请求的查询操作能在最短的时间内完成。
参阅图3所示,其为本申请实施例提供的一种任务分配装置的逻辑结构示意图,任务分配装置300可以包括:
响应单元301,用于响应于目标对象触发的数据处理请求,获取关联的各类物理元件各自对应数据处理请求的性能权重;
获取单元302,用于获取本地存储的代价评估信息,其中,代价评估信息中包括用于确定节点集群中各个节点各自关联的,各类物理元件的常规属性值的数据字典内容,并包括用于确定各类物理元件的参考属性值的数据字典内容;
确定单元303,用于根据代价评估信息,确定节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,并基于获得的各个差异值与对应的性能权重,分别确定各个计算节点的任务量比例预估值;
分配单元304,用于获得数据处理请求对应的待处理任务集合,并基于获得的各个任务量比例预估值,分别为各个计算节点分配相应的待处理任务。
可选的,响应于对代价评估信息的修改指示,对代价评估信息进行修改时,装置进一步包括修改单元305,修改单元305用于执行以下任一项或组合:
响应于第一节点发送的,针对第一节点关联的数据字典内容的修改指示,将代价评估信息中对应的数据字典内容进行修改,并保存修改后的代价评估信息,第一节点为节点集群中的任一节点;
响应于节点集群中新增节点发送的,能够确定新增节点关联的各类物理元件的常规属性值的数据字典内容,并在代价估计信息中,增加新增节点关联的数据字典内容;
响应于节点集群中待删除节点发送的,删除待删除节点关联的数据字典内容的指示信息,并在代价估计信息中删除对应的数据字典内容;
响应于节点集群中管理节点发送的,节点集群中指定节点关联的修改后的数据字典内容,将代价估计信息中与指定节点关联的数据字典内容,替换为修改后的数据字典内容,其中,管理节点用于对节点集群中的各个节点进行管理,并响应于节点集群中节点发送的数据字典内容修改指示,生成对应的修改后的数据字典内容。
可选的,获取关联的各类物理元件各自对应数据处理请求的性能权重时,响应单元301执行以下任一项操作:
确定未接收到用于指示性能权重的命令语句时,获取预存的配置信息,并将配置信息中存储的各类物理元件各自的预设性能权重,作为各类物理元件各自对应数据处理请求的性能权重;
确定接收到用于指示性能权重的命令语句时,执行命令语句,并将命令语句中指示的各类物理元件各自的性能权重,作为各类物理元件各自对应数据处理请求的性能权重;
解析数据处理请求对应的目标事务类型,并将各类物理元件各自对应目标事务类型的性能权重,作为各类物理元件各自对应数据处理请求的性能权重。
可选的,解析数据处理请求对应的目标事务类型时,响应单元301用于:
解析数据处理请求,获得数据处理请求中包括的目标语句关键字集合,并提取事务性能处理委员会基准模型TPC-C关联的第一语句关键字集合,以及提取TPC-H关联的第二语句关键字集合,其中,对应第一语句关键字集合设置有第一事务类型,以及对应第二语句关键字集合设置有第二事务类型;
将目标语句关键字集合,分别与第一语句关键字集合和第二语句关键字集合进行内容匹配,得到对应的匹配结果;
若基于匹配结果,确定存在与目标语句关键字集合匹配成功的语句关键字集合,则将对应语句关键字集合设置的事务类型作为数据处理请求对应的目标事务类型。
可选的,将目标语句关键字集合,分别与第一语句关键字集合和第二语句关键字集合进行内容匹配,得到对应的匹配结果时,响应单元301用于:
将目标语句关键字集合中包括的各个目标语句关键字进行匹配,分别与第一语句关键字集合和第二语句关键字集合中包括的各个语句关键字进行匹配,得到目标语句关键字集合与第一语句关键字集合的第一匹配结果,以及得到目标语句关键字集合与第二语句关键字集合的第二匹配结果;
基于匹配结果,确定存在与目标语句关键字集合匹配成功的语句关键字集合时,响应单元301用于:
若确定第一匹配结果和第二匹配结果取值不同,则可判定存在与目标语句关键字集合配成功的关键字集合,以及将第一匹配结果和第二匹配结果中,取值较大的匹配结果对应的语句关键字集合,作为与目标语句关键字集合匹配成功的语句关键字集合。
可选的,响应单元301还用于:
若基于匹配结果,确定不存在与目标语句关键字集合匹配成功的语句关键字集合,则将预先设置的默认事务类型作为数据处理请求对应的目标事务类型。
可选的,将各类物理元件各自对应目标事务类型的性能权重,作为各类物理元件各自对应数据处理请求的性能权重时,响应单元301用于:
将预先设置的各类物理元件各自对应目标事务类型的初始性能权重,作为各类物理元件各自对应数据处理请求的性能权重;或者,
获取预先设置的各类物理元件各自对应目标事务类型的初始性能权重,并解析数据处理请求针对的目标表数据,确定目标表数据中数据的数量级,以及根据数量级,调整指定类型的物理元件对应的初始性能权重,并将调整后的各类物理元件各自对应的性能权重,作为各类物理元件各自对应数据处理请求的性能权重。
可选的,根据代价评估信息,确定节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值时,确定单元303用于:
通过代价评估信息,获取各个计算节点各自关联的,各类物理元件的常规属性值,以及获取各类物理元件各自对应的参考属性值;
针对节点集群中每一个计算节点的每一类物理元件,分别将物理元件的常规属性值与相应的参考属性值的比值,作为物理元件对应的差异值。
可选的,通过代价评估信息,获取各个计算节点各自关联的,各类物理元件的常规属性值,以及获取各类物理元件各自对应的参考属性值时,确定单元303执行以下任一项的操作:
根据代价评估信息,确定节点集群中的参考节点和参考节点的地址信息,并确定节点集群中各个其他计算节点的地址信息,以及基于参考节点的地址信息、各个其他计算节点的地址信息和预设的数据接口,获取参考节点关联的各类物理元件的参考属性值,并获取各个计算节点各自关联的各类物理元件的常规属性值,参考节点为在节点集群中预先指定的一个节点;
根据代价评估信息,确定针对各类物理元件分别配置的参考属性值,并确定节点集群中各个其他计算节点的地址信息,以及基于各个其他计算节点的地址信息和预设的数据接口,获取各个计算节点各自关联的各类物理元件的常规属性值;
根据代价评估信息,确定节点集群中的参考节点,并确定参考节点关联的各类物理元件的参考属性值,以及确定节点集群中各个其他计算节点各自关联的,各类物理元件的常规属性值,其中,各个其他计算节点各自关联的各类物理元件的常规属性值,是由对应的计算节点预先上报的,参考节点为在节点集群中预先指定的一个节点。
可选的,根据代价评估信息,确定节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值时,确定单元303用于:
根据代价评估信息,确定各类物理元件各自对应的参考属性值,并针对自身关联的每一类物理元件,分别执行以下操作:将物理元件的常规属性值和对应的物理元件的参考属性值的比值,作为对应的物理元件关联的差异值,其中,参考属性值为参考节点所关联的物理元件的常规属性值,参考节点为在节点集群中预先指定的一个节点;
根据代价估计信息,分别确定节点集群中各个其他计算节点各自关联的各类物理元件,各自对应的差异值,其中,获取的各个差异值是由相应的计算节点预先上报的。
可选的,确定节点集群中的参考节点时,确定单元303用于:
若确定未接收到用于指示参考节点的命令语句,则获取预存的配置信息,并根据配置信息中存储的参考节点信息,确定参考节点;
若确定接收到用于指示参考节点的命令语句,则执行命令语句,并根据命令语句中指示的节点信息,确定参考节点。
可选的,基于获得的各个差异值与对应的性能权重,分别确定各个计算节点的任务量比例预估值时,确定单元303用于:
针对节点集群中的每一个计算节点,分别执行以下操作:获取一个计算节点关联的各类物理元件各自对应的差异值,并获取各类物理元件各自对应的性能权重,以及将各类物理元件各自对应的差异值,按照对应的性能权重进行加权处理,得到一个计算节点的任务量信息;
确定节点集群中各个计算节点各自对应的任务量信息,并将每个计算节点的任务量信息,在各个计算节点对应的任务量总信息中所占的比例,作为相应的计算节点的任务量比例预估值。
可选的,分别确定各个计算节点各自能够执行的任务量比例之后,规划数据处理请求对应的处理任务集合之前,确定单元303进一步用于:
确定节点集群中的存储节点参与进行任务处理时,重新获取关联的各类物理元件各自对应数据处理请求的性能权重;
根据代价评估信息,确定节点集群中各个存储节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,并基于获得的各个差异值与对应的性能权重,分别确定各个存储节点的任务量比例预估值;
获得数据处理请求对应的待处理任务集合,并基于获得的各个任务量比例预估值,分别为各个计算节点分配相应的待处理任务时,分配单元304用于:
获得数据处理请求对应的待处理任务集合,确定由各个计算节点进行处理的第一待处理任务子集,并确定由各个存储节点进行处理的第二待处理任务子集;
按照各个计算节点对应的任务量比例评估值,在第一处理任务子集中分别为各个计算节点分配相应的待处理任务;
按照各个存储节点各自对应的任务量比例评估值,在第二待处理任务子集中分别为各个存储节点分配相应的待处理任务。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
所属技术领域的技术人员能够理解,本申请的每个方面可以实现为系统、方法或程序产品。因此,本申请的每个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,本申请实施例还提供一种电子设备,参阅图4所示,其为本申请实施例的一种电子设备的一个硬件组成结构示意图,电子设备400可以至少包括至少一个处理器401、以及至少一个存储器402。其中,存储器402存储有程序代码,当程序代码被处理器401执行时,使得处理器401执行本说明书上述描述的根据本申请各种示例性实施方式的页面显示方法中的步骤,例如,处理器401可以执行如图2a中所示的步骤。
在一些可能的实施方式中,本申请实施例还提供一种计算装置,可以至少包括至少一个处理单元、以及至少一个存储单元。其中,存储单元存储有程序代码,当程序代码被处理单元执行时,使得处理单元执行本说明书上述描述的根据本申请各种示例性实施方式的数据页面显示中的步骤,例如,处理器401可以执行如图2a中所示的步骤。
下面参照图5来描述根据本申请的这种实施方式的计算装置500。图5的计算装置500仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5,其为本申请实施例中的一个计算装置的结构示意图。计算装置500以通用计算装置的形式表现。计算装置500以通用计算装置的形式表现。计算装置500的组件可以包括但不限于:上述至少一个处理单元501、上述至少一个存储单元502、连接不同系统组件(包括存储单元502和处理单元501)的总线503。
总线503表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元502可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)5021和/或高速缓存存储单元5022,还可以进一步包括只读存储器(ROM)5023。
存储单元502还可以包括具有一组(至少一个)程序模块5024的程序/实用工具5025,这样的程序模块5024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置500也可以与一个或多个外部设备504(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置500交互的设备通信,和/或与使得该计算装置500能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口505进行。并且,计算装置500还可以通过网络适配器506与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器506通过总线503与用于计算装置500的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的页面显示方法的每个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的页面显示方法中的步骤,例如,计算机设备可以图2a中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种任务分配方法,其特征在于,应用于分布式数据库架构下节点集群中的一个计算节点,所述节点集群中包括计算节点和存储节点,所述方法包括:
响应于目标对象触发的数据处理请求,获取关联的各类物理元件各自对应所述数据处理请求的性能权重;
获取本地存储的代价评估信息,其中,所述代价评估信息中包括用于确定所述节点集群中各个节点各自关联的,各类物理元件的常规属性值的数据字典内容,并包括用于确定所述各类物理元件的参考属性值的数据字典内容;
根据所述代价评估信息,确定所述节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,并基于获得的各个差异值与对应的性能权重,分别确定所述各个计算节点的任务量比例预估值;
获得所述数据处理请求对应的待处理任务集合,并基于获得的各个任务量比例预估值,分别为所述各个计算节点分配相应的待处理任务。
2.如权利要求1任一项所述的方法,其特征在于,响应于对代价评估信息的修改指示,对所述代价评估信息进行修改,包括以下任一项或组合:
响应于第一节点发送的,针对所述第一节点关联的数据字典内容的修改指示,将所述代价评估信息中对应的数据字典内容进行修改,并保存修改后的代价评估信息,所述第一节点为所述节点集群中的任一节点;
响应于所述节点集群中新增节点发送的,能够确定新增节点关联的各类物理元件的常规属性值的数据字典内容,并在所述代价估计信息中,增加新增节点关联的数据字典内容;
响应于所述节点集群中待删除节点发送的,删除所述待删除节点关联的数据字典内容的指示信息,并在所述代价估计信息中删除对应的数据字典内容;
响应于所述节点集群中管理节点发送的,所述节点集群中指定节点关联的修改后的数据字典内容,将代价估计信息中与所述指定节点关联的数据字典内容,替换为所述修改后的数据字典内容,其中,所述管理节点用于对所述节点集群中的各个节点进行管理,并响应于所述节点集群中节点发送的数据字典内容修改指示,生成对应的修改后的数据字典内容。
3.如权利要求1所述的方法,其特征在于,所述获取关联的各类物理元件各自对应所述数据处理请求的性能权重,包括以下任一项:
确定未接收到用于指示性能权重的命令语句时,获取预存的配置信息,并将所述配置信息中存储的所述各类物理元件各自的预设性能权重,作为所述各类物理元件各自对应所述数据处理请求的性能权重;
确定接收到用于指示性能权重的命令语句时,执行所述命令语句,并将所述命令语句中指示的各类物理元件各自的性能权重,作为所述各类物理元件各自对应所述数据处理请求的性能权重;
解析所述数据处理请求对应的目标事务类型,并将所述各类物理元件各自对应所述目标事务类型的性能权重,作为所述各类物理元件各自对应所述数据处理请求的性能权重。
4.如权利要求3所述的方法,其特征在于,所述解析所述数据处理请求对应的目标事务类型,包括:
解析所述数据处理请求,获得所述数据处理请求中包括的目标语句关键字集合,并提取事务性能处理委员会基准模型TPC-C关联的第一语句关键字集合,以及提取TPC-H关联的第二语句关键字集合,其中,对应所述第一语句关键字集合设置有第一事务类型,以及对应所述第二语句关键字集合设置有第二事务类型;
将所述目标语句关键字集合,分别与所述第一语句关键字集合和第二语句关键字集合进行内容匹配,得到对应的匹配结果;
若基于匹配结果,确定存在与所述目标语句关键字集合匹配成功的语句关键字集合,则将对应所述语句关键字集合设置的事务类型作为所述数据处理请求对应的目标事务类型。
5.如权利要求4所述的方法,其特征在于,所述将所述目标语句关键字集合,分别与所述第一语句关键字集合和第二语句关键字集合进行内容匹配,得到对应的匹配结果,包括:
将所述目标语句关键字集合中包括的各个目标语句关键字进行匹配,分别与所述第一语句关键字集合和第二语句关键字集合中包括的各个语句关键字进行匹配,得到所述目标语句关键字集合与所述第一语句关键字集合的第一匹配结果,以及得到所述目标语句关键字集合与所述第二语句关键字集合的第二匹配结果;
所述基于匹配结果,确定存在与所述目标语句关键字集合匹配成功的语句关键字集合,包括:
若确定所述第一匹配结果和所述第二匹配结果取值不同,则可判定存在与所述目标语句关键字集合配成功的关键字集合,以及将所述第一匹配结果和第二匹配结果中,取值较大的匹配结果对应的语句关键字集合,作为与所述目标语句关键字集合匹配成功的语句关键字集合。
6.如权利要求4所述的方法,其特征在于,还包括:
若基于匹配结果,确定不存在与所述目标语句关键字集合匹配成功的语句关键字集合,则将预先设置的默认事务类型作为所述数据处理请求对应的目标事务类型。
7.如权利要求3-6任一项所述的方法,其特征在于,所述将所述各类物理元件各自对应所述目标事务类型的性能权重,作为所述各类物理元件各自对应所述数据处理请求的性能权重,包括:
将预先设置的所述各类物理元件各自对应所述目标事务类型的初始性能权重,作为所述各类物理元件各自对应所述数据处理请求的性能权重;或者,
获取预先设置的所述各类物理元件各自对应所述目标事务类型的初始性能权重,并解析所述数据处理请求针对的目标表数据,确定所述目标表数据中数据的数量级,以及根据所述数量级,调整指定类型的物理元件对应的初始性能权重,并将调整后的所述各类物理元件各自对应的性能权重,作为所述各类物理元件各自对应所述数据处理请求的性能权重。
8.如权利要求1-6任一项所述的方法,其特征在于,所述根据所述代价评估信息,确定所述节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,包括:
通过所述代价评估信息,获取所述各个计算节点各自关联的,各类物理元件的常规属性值,以及获取所述各类物理元件各自对应的参考属性值;
针对所述节点集群中每一个计算节点的每一类物理元件,分别将物理元件的常规属性值与相应的参考属性值的比值,作为所述物理元件对应的差异值。
9.如权利要求8任一项所述的方法,其特征在于,所述通过所述代价评估信息,获取所述各个计算节点各自关联的,各类物理元件的常规属性值,以及获取所述各类物理元件各自对应的参考属性值,包括以下任一项:
根据所述代价评估信息,确定所述节点集群中的参考节点和参考节点的地址信息,并确定所述节点集群中各个其他计算节点的地址信息,以及基于参考节点的地址信息、各个其他计算节点的地址信息和预设的数据接口,获取所述参考节点关联的各类物理元件的参考属性值,并获取所述各个计算节点各自关联的各类物理元件的常规属性值,所述参考节点为在所述节点集群中预先指定的一个节点;
根据所述代价评估信息,确定针对各类物理元件分别配置的参考属性值,并确定所述节点集群中各个其他计算节点的地址信息,以及基于所述各个其他计算节点的地址信息和预设的数据接口,获取所述各个计算节点各自关联的各类物理元件的常规属性值;
根据所述代价评估信息,确定所述节点集群中的参考节点,并确定所述参考节点关联的各类物理元件的参考属性值,以及确定所述节点集群中各个其他计算节点各自关联的,各类物理元件的常规属性值,其中,所述各个其他计算节点各自关联的各类物理元件的常规属性值,是由对应的计算节点预先上报的,所述参考节点为在所述节点集群中预先指定的一个节点。
10.如权利要求1-6任一项所述的方法,其特征在于,所述根据所述代价评估信息,确定所述节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,包括:
根据所述代价评估信息,确定各类物理元件各自对应的参考属性值,并针对自身关联的每一类物理元件,分别执行以下操作:将物理元件的常规属性值和对应的物理元件的参考属性值的比值,作为对应的物理元件关联的差异值,其中,所述参考属性值为参考节点所关联的物理元件的常规属性值,所述参考节点为在所述节点集群中预先指定的一个节点;
根据所述代价估计信息,分别确定所述节点集群中各个其他计算节点各自关联的各类物理元件,各自对应的差异值,其中,获取的各个差异值是由相应的计算节点预先上报的。
11.如权利要求1-6任一项所述的方法,其特征在于,所述基于获得的各个差异值与对应的性能权重,分别确定所述各个计算节点的任务量比例预估值,包括:
针对节点集群中的每一个计算节点,分别执行以下操作:获取一个计算节点关联的各类物理元件各自对应的差异值,并获取所述各类物理元件各自对应的性能权重,以及将各类物理元件各自对应的差异值,按照对应的性能权重进行加权处理,得到所述一个计算节点的任务量信息;
确定所述节点集群中各个计算节点各自对应的任务量信息,并将每个计算节点的任务量信息,在所述各个计算节点对应的任务量总信息中所占的比例,作为相应的计算节点的任务量比例预估值。
12.如权利要求1-6任一项所述的方法,其特征在于,分别确定所述各个计算节点各自能够执行的任务量比例之后,所述规划所述数据处理请求对应的处理任务集合之前,进一步包括:
确定所述节点集群中的存储节点参与进行任务处理时,重新获取关联的各类物理元件各自对应所述数据处理请求的性能权重;
根据所述代价评估信息,确定所述节点集群中各个存储节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,并基于获得的各个差异值与对应的性能权重,分别确定所述各个存储节点的任务量比例预估值;
所述获得所述数据处理请求对应的待处理任务集合,并基于获得的各个任务量比例预估值,分别为所述各个计算节点分配相应的待处理任务,包括:
获得所述数据处理请求对应的待处理任务集合,确定由所述各个计算节点进行处理的第一待处理任务子集,并确定由所述各个存储节点进行处理的第二待处理任务子集;
按照各个计算节点对应的任务量比例评估值,在所述第一处理任务子集中分别为所述各个计算节点分配相应的待处理任务;
按照所述各个存储节点各自对应的任务量比例评估值,在所述第二待处理任务子集中分别为所述各个存储节点分配相应的待处理任务。
13.一种任务分配装置,其特征在于,所述装置包括:
响应单元,用于响应于目标对象触发的数据处理请求,获取关联的各类物理元件各自对应所述数据处理请求的性能权重;
获取单元,用于获取本地存储的代价评估信息,其中,所述代价评估信息中包括用于确定所述节点集群中各个节点各自关联的,各类物理元件的常规属性值的数据字典内容,并包括用于确定所述各类物理元件的参考属性值的数据字典内容;
确定单元,用于根据所述代价评估信息,确定所述节点集群中各个计算节点各自关联的各类物理元件的常规属性值与相应的参考属性值之间的差异值,并基于获得的各个差异值与对应的性能权重,分别确定所述各个计算节点的任务量比例预估值;
分配单元,用于获得所述数据处理请求对应的待处理任务集合,并基于获得的各个任务量比例预估值,分别为所述各个计算节点分配相应的待处理任务。
14.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1~12中任一所述方法的步骤。
15.一种计算机可读存储介质,其特征在于,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1~12中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110926517.3A CN115114012B (zh) | 2021-08-12 | 2021-08-12 | 一种任务分配方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110926517.3A CN115114012B (zh) | 2021-08-12 | 2021-08-12 | 一种任务分配方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115114012A true CN115114012A (zh) | 2022-09-27 |
CN115114012B CN115114012B (zh) | 2023-04-21 |
Family
ID=83325026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110926517.3A Active CN115114012B (zh) | 2021-08-12 | 2021-08-12 | 一种任务分配方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115114012B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317658A (zh) * | 2014-10-17 | 2015-01-28 | 华中科技大学 | 一种基于MapReduce的负载自适应任务调度方法 |
WO2016082693A1 (zh) * | 2014-11-24 | 2016-06-02 | 阿里巴巴集团控股有限公司 | 一种用于在集群中调度计算任务的方法与设备 |
US20170269944A1 (en) * | 2016-03-21 | 2017-09-21 | Cisco Technology, Inc. | Method for optimizing performance of computationally intensive applications |
CN108920272A (zh) * | 2018-06-08 | 2018-11-30 | 中国平安人寿保险股份有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN109743392A (zh) * | 2019-01-07 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 一种负载均衡方法、装置、电子设备及存储介质 |
CN110716808A (zh) * | 2019-10-15 | 2020-01-21 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置、计算机设备和存储介质 |
CN110866167A (zh) * | 2019-11-14 | 2020-03-06 | 北京知道创宇信息技术股份有限公司 | 任务分配方法、装置、服务器和存储介质 |
CN111258729A (zh) * | 2020-01-10 | 2020-06-09 | 深圳前海环融联易信息科技服务有限公司 | 基于Redis的任务分配方法、装置、计算机设备及存储介质 |
CN111522641A (zh) * | 2020-04-21 | 2020-08-11 | 北京嘀嘀无限科技发展有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN111698303A (zh) * | 2020-05-29 | 2020-09-22 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN112051771A (zh) * | 2020-09-01 | 2020-12-08 | 北京视界云天科技有限公司 | 多云数据采集方法、装置、计算机设备和存储介质 |
-
2021
- 2021-08-12 CN CN202110926517.3A patent/CN115114012B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317658A (zh) * | 2014-10-17 | 2015-01-28 | 华中科技大学 | 一种基于MapReduce的负载自适应任务调度方法 |
WO2016082693A1 (zh) * | 2014-11-24 | 2016-06-02 | 阿里巴巴集团控股有限公司 | 一种用于在集群中调度计算任务的方法与设备 |
US20170269944A1 (en) * | 2016-03-21 | 2017-09-21 | Cisco Technology, Inc. | Method for optimizing performance of computationally intensive applications |
CN108920272A (zh) * | 2018-06-08 | 2018-11-30 | 中国平安人寿保险股份有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN109743392A (zh) * | 2019-01-07 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 一种负载均衡方法、装置、电子设备及存储介质 |
CN110716808A (zh) * | 2019-10-15 | 2020-01-21 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置、计算机设备和存储介质 |
CN110866167A (zh) * | 2019-11-14 | 2020-03-06 | 北京知道创宇信息技术股份有限公司 | 任务分配方法、装置、服务器和存储介质 |
CN111258729A (zh) * | 2020-01-10 | 2020-06-09 | 深圳前海环融联易信息科技服务有限公司 | 基于Redis的任务分配方法、装置、计算机设备及存储介质 |
CN111522641A (zh) * | 2020-04-21 | 2020-08-11 | 北京嘀嘀无限科技发展有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN111698303A (zh) * | 2020-05-29 | 2020-09-22 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN112051771A (zh) * | 2020-09-01 | 2020-12-08 | 北京视界云天科技有限公司 | 多云数据采集方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115114012B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018177060A1 (zh) | 查询优化方法及相关装置 | |
US8949222B2 (en) | Changing the compression level of query plans | |
KR101365464B1 (ko) | 데이터베이스 미들웨어를 이용한 데이터 관리 시스템 및 방법 | |
US20070226177A1 (en) | Evaluating a current partitioning of a database | |
CN110147407B (zh) | 一种数据处理方法、装置及数据库管理服务器 | |
US9930113B2 (en) | Data retrieval via a telecommunication network | |
CN111581234B (zh) | Rac多节点数据库查询方法、装置及系统 | |
US10466936B2 (en) | Scalable, multi-dimensional search for optimal configuration | |
TW201820175A (zh) | 資料庫轉換伺服器及其資料庫轉換方法 | |
US11550762B2 (en) | Implementation of data access metrics for automated physical database design | |
CN111339171A (zh) | 数据查询的方法、装置及设备 | |
CN105683941A (zh) | 调节企业数据仓库资源使用 | |
CN107636655B (zh) | 实时提供数据即服务(DaaS)的系统和方法 | |
CA3131330A1 (en) | Database aggregation query method, device and system | |
WO2023103338A1 (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN114860764A (zh) | 分布式数据库查询的优化方法、系统及电子设备 | |
CN108932258A (zh) | 数据索引处理方法及装置 | |
US20140122530A1 (en) | Declarative partitioning for data collection queries | |
Suganya et al. | Efficient fragmentation and allocation in distributed databases | |
CN115114012B (zh) | 一种任务分配方法、装置、电子设备及存储介质 | |
Kumar et al. | Cache based query optimization approach in distributed database | |
CN114064729A (zh) | 一种数据检索方法、装置、设备及存储介质 | |
EP2990960A1 (en) | Data retrieval via a telecommunication network | |
WO2021143199A1 (zh) | 日志查询方法、装置、计算机设备和存储介质 | |
US11947537B1 (en) | Automatic index management for a non-relational database |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |