CN118093644A - 一种基于历史负载和即时负载的openGauss数据库并行优化方法 - Google Patents
一种基于历史负载和即时负载的openGauss数据库并行优化方法 Download PDFInfo
- Publication number
- CN118093644A CN118093644A CN202410226066.6A CN202410226066A CN118093644A CN 118093644 A CN118093644 A CN 118093644A CN 202410226066 A CN202410226066 A CN 202410226066A CN 118093644 A CN118093644 A CN 118093644A
- Authority
- CN
- China
- Prior art keywords
- load
- opengauss
- concurrency
- database
- historical
- 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
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000005457 optimization Methods 0.000 title claims abstract description 25
- 230000015556 catabolic process Effects 0.000 claims abstract description 6
- 238000006731 degradation reaction Methods 0.000 claims abstract description 6
- 238000004458 analytical method Methods 0.000 claims description 11
- 238000010801 machine learning Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000007619 statistical method Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000007405 data analysis Methods 0.000 claims description 2
- 238000003491 array Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- 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
-
- 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)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于历史负载和即时负载的openGauss数据库并行优化方法。本方法包括:分析openGauss数据库的历史负载数据,确定不同时间段的数据库负载水平和并发度需求;预判当前节点的资源负载状况,优化器根据预判结果生成相应的物理执行计划;计算该物理执行计划所需要的工作线程数量,判断当前的procs数组中是否有足够分配的元素;获取当前节点的即时负载状况,若与预判结果相符则进入执行器按照物理执行计划执行查询。本方法通过分析历史负载数据预判当前节点的资源负载状况,动态调整并发度的数量,高负载期降低并发度,减少高负载期使用并行查询带来的性能退化;低负载期提高并发度,增加并行查询的数量提高查询效率。
Description
技术领域
本发明属于数据库并行方法技术领域,尤其涉及一种基于历史负载和即时负载的openGauss数据库并行优化方法。
背景技术
openGauss是一款开源的关系型数据库管理系统,它具有多核高性能、全链路安全性、智能运维等企业级特性。openGauss内核早期源自开源数据库PostgreSQL,融合了华为在数据库领域多年的内核经验,在架构、事务、存储引擎、优化器及ARM架构上进行了适配与优化。但是,在实际使用过程中许多用户发现,openGauss数据库仍存在一定的不足,需要进一步完善。
通常来说,数据库执行的流程包括解析SQL、分析、优化、执行等步骤。图1所示为openGauss数据库的查询执行流程,首先解析器(Parser)解析,然后把查询结果传给分析器(Analyzer)进行语义分析,之后是优化器(Optimizer)根据语义分析生成的查询树生成物理执行计划,最后执行器按照物理执行计划执行查询。
我们知道,openGauss支持SMP并行,即在单个节点上利用多个CPU核心并行执行查询计划,从而提高查询效率。在生成物理执行计划时,根据指定的并发度、查询语句的复杂度和数据量,为每个查询操作符分配一定数量的并行工作线程(worker),并行工作线程之间通过共享内存进行数据交换。在复杂查询场景中,通过SMP并行执行技术实现算子级的并行,能够有效减少查询执行时间,提升查询性能及资源利用率。SMP并行技术的整体思想是对于能够并行的查询算子,将数据分片,启动若干个工作线程分别计算,最后将结果汇总,并返回前端。然而,SMP并行在单节点机器上存在缺点,在资源较为紧张的情况下,反而可能出现性能劣化的情况,这是因为SMP并行在生成物理执行计划时,并不考虑当前节点的资源状况,而是根据固定的参数和公式进行计算,如果当前节点的资源已经被其他进程占用,或者查询语句的数据量较小,那么分配过多的并行工作线程反而会增加资源的竞争和开销,导致查询性能下降,甚至出现报错的情况。报错的主要原因是SMP并行框架在执行物理计划阶段,会逐步启动多个工作线程,每个工作线程需要占用一个procs数组中的元素来记录该线程的相关信息,但在目前的openGauss数据库中,procs数组是数据库启动时通过参数指定的一个定长数组,无法在数据库运行过程中进行动态扩张,于是在高负载的情况下,procs数组中的元素很大可能已经被其他线程所占用,此时SMP并行框架下的高并发度查询就会出现procs数组不足,无法获取到空闲proc的报错,导致查询无法顺利完成。
发明内容
为了克服openGauss数据库的SMP并行方法存在的上述缺陷,本发明提出了一种新的基于历史负载和即时负载的openGauss数据库并行优化方法,本方法在生成物理执行计划时,根据服务器节点的资源状况,动态调整并行工作线程的数量,从而避免了节点资源不足导致的查询性能下降,并解决了数据库进程报错的问题。
术语解释
SMP(Symmetric Multi-Processing):openGauss数据库并行框架名称。
优化器(Optimizer):数据库内部把查询树转为执行计划的组件。
工作线程(worker):查询使用的线程。
并发度(并行度):一个查询可以由指定数量(并发度)的多个worker共同完成。
本发明的整体构思是通过引入并分析历史负载数据获知openGauss数据库的高负载和低负载时间段,根据分析结果预判当前节点的资源负载状况,并据此动态调整并发度的数量,在高负载期降低并发度,减少高峰期使用并行查询带来的性能退化,在低负载期提高并发度,通过并行查询提高查询效率。
具体地,本发明提供了一种基于历史负载和即时负载的openGauss数据库并行优化方法,所述方法通过引入并分析历史负载数据获知openGauss数据库的高负载时间段和低负载时间段,根据前步分析结果预判当前节点的资源负载状况,并据此动态调整并发度的数量,若当前节点处于高负载期,则降低并发度,减少高负载期使用并行查询带来的性能退化;若当前节点处于低负载期,则提高并发度,通过增加并行查询的数量提高查询效率。
进一步地,本发明基于历史负载和即时负载的openGauss数据库并行优化方法,包括下述步骤:
S1.在优化器生成物理执行计划前,引入并分析openGauss数据库的历史负载数据,获知高负载时间段和低负载时间段,并确定不同时间段的数据库负载水平和并发度需求;
S2.根据前步的分析结果,预判当前节点的资源负载状况,优化器根据预判结果生成相应的物理执行计划;
S3.根据前步生成的物理执行计划,计算该物理执行计划所需要的工作线程数量,判断当前的procs数组中是否有足够的元素分配给该物理执行计划所需要的工作线程使用,若procs数组中的元素不足,则降低并发度,并转回到步骤S2;若procs数组中的元素充足则立即占用该procs数组中可用的元素,并进入下步;
S4.获取当前节点的即时负载状况,若与步骤S2中的预判结果相符合,则进入执行器按照物理执行计划执行查询。
进一步地,本发明基于历史负载和即时负载的openGauss数据库并行优化方法步骤S1中还包括:根据openGauss数据库的历史负载数据分析结果以及获知的高负载时间段和低负载时间段,确定不同时间段的并发度阈值。
进一步地,本发明基于历史负载和即时负载的openGauss数据库并行优化方法步骤S1中所述的openGauss数据库的历史负载数据来自openGauss数据库的日志文件或监控数据;针对openGauss数据库的历史负载数据的分析方法采用统计方法或机器学习方法。
进一步地,本发明基于历史负载和即时负载的openGauss数据库并行优化方法步骤S2中所述的优化器根据预判结果生成相应的物理执行计划;包括:若当前节点处于高负载期,优化器生成并发度较低的物理执行计划;若当前节点处于低负载期,优化器生成并发度较高的物理执行计划。并发度较低的执行计划可以减少数据库的资源消耗,避免过度竞争和等待,提高数据库的响应速度;并发度较高的执行计划可以充分利用数据库的资源,提高数据库的吞吐量和效率。
进一步地,本发明基于历史负载和即时负载的openGauss数据库并行优化方法步骤S4中还包括:若当前节点的即时负载状况与步骤S2中的预判结果不符合,则根据当前节点的即时负载状况按照高负载低并发度、低负载高并发度的规则得到一个并发度,并转回到步骤S2。
进一步地,本发明基于历史负载和即时负载的openGauss数据库并行优化方法步骤S4中所述的当前节点的即时负载状况包括下述指标:CPU核心数、内存使用量、磁盘使用量、网络带宽、数据库指标。
进一步地,本发明基于历史负载和即时负载的openGauss数据库并行优化方法中所述的数据库指标包括:连接数、查询数、事务数。
另外,本发明还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现上述的基于历史负载和即时负载的openGauss数据库并行优化方法的步骤。
综上,本发明基于历史负载和即时负载的openGauss数据库并行优化方法具有以下特点:
(1)本发明方法通过引入并分析历史负载数据获知openGauss数据库的高负载和低负载时间段,根据分析结果预判当前节点的资源状况,并据此动态调整并发度的数量,在高负载期降低并发度,减少高峰期使用并行查询带来的性能退化,在低负载期提高并发度,通过并行查询提高查询效率。
(2)本方法基于资源预判实现SMP并行优化,有效避免了生成过多或过少的并行工作线程导致的资源不足或浪费,提高了资源的利用效率。
(3)本方法可根据即时负载状况实时校正和更新查询计划,避免了因为资源不足而导致的查询性能下降或报错,提高了查询的稳定性和可靠性。
(4)本方法中新增了procs数组剩余数量是否足够的判断,完全避免了高并发查询执行报错的情况。
附图说明
为了更清楚地说明背景技术和本发明实施例的技术方案,下面对背景技术和本发明实施例叙述中需要使用的附图作简要介绍,显而易见地,下述附图仅是本发明中记载的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为openGauss数据库的查询执行流程示意图。
图2为本发明方法的实施流程图。
图3为本发明方法的实施架构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例,本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
同时,应理解,本发明的保护范围并不局限于下述特定的具体实施方案;还应当理解,本发明实施例中使用的术语是为了描述特定的具体实施方案,而不是为了限制本发明的保护范围。
实施例:一种基于历史负载和即时负载的openGauss数据库并行优化方法
本方法是一种基于资源预判的SMP并行计划优化方法,主要针对优化器处理步骤的前后阶段分别进行了设计改进,如图2和图3所示,本方法包括以下步骤:
(1)在优化器生成物理执行计划前,根据历史数据分析openGauss数据库的高负载和低负载时间段,并确定不同时间段的并发度阈值(比如公共交通系统使用的数据库,它的高负载与上下班高峰期是精准匹配的,其他系统使用的数据库也有类似的规律,因此这种高峰期是完全可以精准预测的)。历史数据可以是数据库的日志文件、监控数据或者其他来源的数据,可以使用统计方法或者机器学习方法来分析数据的规律和趋势,得到不同时间段的数据库负载水平和并发度需求。在上述分析的基础上,本方法在高负载时间段生成并发度较低的执行计划,在低负载时间段生成并发度较高的执行计划。并发度较低的执行计划可以减少数据库的资源消耗,避免过度竞争和等待,提高数据库的响应速度;并发度较高的执行计划可以充分利用数据库的资源,提高数据库的吞吐量和效率。
(2)根据步骤(1)中给出的并发度,优化器生成物理执行计划。
(3)根据步骤(2)生成的物理执行计划,计算该物理执行计划所需要的工作线程数量。判断procs数组中是否仍然有足够的元素分配给该计划所需要的工作线程使用,若不足则降低并发度,并转回到步骤(2);若充足则立即占用工作线程所需要的procs数组中的元素,并转到步骤(4)。
(4)获取当前节点的即时负载情况,若与预判相符合则转到步骤(5);否则根据即时负载情况得到一个并发度(仍然遵循高负载低并发度,低负载高并发度的原则),并转回到步骤(2)。当前节点的即时负载指标包括CPU核心数、内存使用量、磁盘使用量、网络带宽,以及相关的数据库指标(连接数、查询数、事务数等)。
(5)执行器按照物理执行计划执行查询。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰获得等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均应包含在本发明的权利要求保护范围之内。
Claims (9)
1.一种基于历史负载和即时负载的openGauss数据库并行优化方法,其特征在于,所述方法通过引入并分析历史负载数据获知openGauss数据库的高负载时间段和低负载时间段,根据前步分析结果预判当前节点的资源负载状况,并据此动态调整并发度的数量,若当前节点处于高负载期,则降低并发度,减少高负载期使用并行查询带来的性能退化;若当前节点处于低负载期,则提高并发度,通过增加并行查询的数量提高查询效率。
2.根据权利要求1所述的基于历史负载和即时负载的openGauss数据库并行优化方法,其特征在于,所述方法包括:
S1.在优化器生成物理执行计划前,引入并分析openGauss数据库的历史负载数据,获知高负载时间段和低负载时间段,并确定不同时间段的数据库负载水平和并发度需求;
S2.根据前步的分析结果,预判当前节点的资源负载状况,优化器根据预判结果生成相应的物理执行计划;
S3.根据前步生成的物理执行计划,计算该物理执行计划所需要的工作线程数量,判断当前的procs数组中是否有足够的元素分配给该物理执行计划所需要的工作线程使用,若procs数组中的元素不足,则降低并发度,并转回到步骤S2;若procs数组中的元素充足则立即占用该procs数组中可用的元素,并进入下步;
S4.获取当前节点的即时负载状况,若与步骤S2中的预判结果相符合,则进入执行器按照物理执行计划执行查询。
3.根据权利要求2所述的基于历史负载和即时负载的openGauss数据库并行优化方法,其特征在于,步骤S1中还包括:根据openGauss数据库的历史负载数据分析结果以及获知的高负载时间段和低负载时间段,确定不同时间段的并发度阈值。
4.根据权利要求2所述的基于历史负载和即时负载的openGauss数据库并行优化方法,其特征在于,步骤S1中所述的openGauss数据库的历史负载数据来自openGauss数据库的日志文件或监控数据;针对openGauss数据库的历史负载数据的分析方法采用统计方法或机器学习方法。
5.根据权利要求2所述的基于历史负载和即时负载的openGauss数据库并行优化方法,其特征在于,步骤S2中所述的优化器根据预判结果生成相应的物理执行计划;包括:若当前节点处于高负载期,优化器生成并发度较低的物理执行计划;若当前节点处于低负载期,优化器生成并发度较高的物理执行计划。
6.根据权利要求2所述的基于历史负载和即时负载的openGauss数据库并行优化方法,其特征在于,步骤S4中还包括:若当前节点的即时负载状况与步骤S2中的预判结果不符合,则根据当前节点的即时负载状况按照高负载低并发度、低负载高并发度的规则得到一个并发度,并转回到步骤S2。
7.根据权利要求2所述的基于历史负载和即时负载的openGauss数据库并行优化方法,其特征在于,步骤S4中所述的当前节点的即时负载状况包括下述指标:CPU核心数、内存使用量、磁盘使用量、网络带宽、数据库指标。
8.根据权利要求7所述的基于历史负载和即时负载的openGauss数据库并行优化方法,其特征在于,所述的数据库指标包括:连接数、查询数、事务数。
9.一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现权利要求1-8任一项所述的基于历史负载和即时负载的openGauss数据库并行优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410226066.6A CN118093644A (zh) | 2024-02-29 | 2024-02-29 | 一种基于历史负载和即时负载的openGauss数据库并行优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410226066.6A CN118093644A (zh) | 2024-02-29 | 2024-02-29 | 一种基于历史负载和即时负载的openGauss数据库并行优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118093644A true CN118093644A (zh) | 2024-05-28 |
Family
ID=91149149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410226066.6A Pending CN118093644A (zh) | 2024-02-29 | 2024-02-29 | 一种基于历史负载和即时负载的openGauss数据库并行优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118093644A (zh) |
-
2024
- 2024-02-29 CN CN202410226066.6A patent/CN118093644A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9135299B2 (en) | System, method, and computer-readable medium for automatic index creation to improve the performance of frequently executed queries in a database system | |
US8041708B2 (en) | Optimizing execution of database queries containing user-defined functions | |
US7958159B1 (en) | Performing actions based on monitoring execution of a query | |
US9063982B2 (en) | Dynamically associating different query execution strategies with selective portions of a database table | |
US7743052B2 (en) | Method and apparatus for projecting the effect of maintaining an auxiliary database structure for use in executing database queries | |
US20170083573A1 (en) | Multi-query optimization | |
US7552110B2 (en) | Method for performing a query in a computer system to retrieve data from a database | |
US20070143246A1 (en) | Method and apparatus for analyzing the effect of different execution parameters on the performance of a database query | |
US8135703B2 (en) | Multi-partition query governor in a computer database system | |
US20060074874A1 (en) | Method and apparatus for re-evaluating execution strategy for a database query | |
US20070156736A1 (en) | Method and apparatus for automatically detecting a latent referential integrity relationship between different tables of a database | |
US20070250517A1 (en) | Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries | |
US20240045860A1 (en) | Data query method and system, heterogeneous acceleration platform, and storage medium | |
US20070271218A1 (en) | Statistics collection using path-value pairs for relational databases | |
CN111459698A (zh) | 一种数据库集群故障自愈方法及装置 | |
CN111241059B (zh) | 一种基于数据库的数据库优化方法及装置 | |
CN111522870B (zh) | 数据库访问方法、中间件和可读存储介质 | |
CN113641487B (zh) | 一种大数据平台sql任务执行引擎智能自动切换的方法 | |
CN116756150B (zh) | 一种Mpp数据库大表关联加速方法 | |
CN117851450A (zh) | 一种数据查询方法、系统、装置、计算机设备和存储介质 | |
CN108932258B (zh) | 数据索引处理方法及装置 | |
CN106547860B (zh) | 一种分布式数据库性能故障的定位方法 | |
US11762831B2 (en) | Adaptive sparse indexing in cloud-based data warehouses | |
CN118093644A (zh) | 一种基于历史负载和即时负载的openGauss数据库并行优化方法 | |
US7725461B2 (en) | Management of statistical views in a database system |
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 |