CN115934748A - 一种基于分布式SQL的开关分发与metrics采集汇总系统及方法 - Google Patents
一种基于分布式SQL的开关分发与metrics采集汇总系统及方法 Download PDFInfo
- Publication number
- CN115934748A CN115934748A CN202211390765.1A CN202211390765A CN115934748A CN 115934748 A CN115934748 A CN 115934748A CN 202211390765 A CN202211390765 A CN 202211390765A CN 115934748 A CN115934748 A CN 115934748A
- Authority
- CN
- China
- Prior art keywords
- node
- execution
- sql
- distributed
- gateway 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000008569 process Effects 0.000 claims abstract description 11
- 230000006399 behavior Effects 0.000 claims description 20
- 238000009825 accumulation Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于分布式SQL的开关分发与metrics采集汇总系统及方法,属于分布式数据库领域,本发明包括:1)分布式SQL开关分发模块;2)分布式SQL的metrics采集汇总模块。当分布式SQL执行时,执行过程中采集的metrics分布在各个执行节点上,需对各个执行节点上的metrics进行汇总,汇总到Gateway节点。保证了分布式SQL行为数据采集的正确性,降低了Gateway节点的等待时间。
Description
技术领域
本发明涉及分布式数据库、行为数据(metrics)采集领域,尤其涉及一种实用性强,基于分布式SQL的开关分发与metrics采集汇总系统及方法。
背景技术
随着互联网技术不断发展,数据量不断增加,集中式数据库架构使得数据库成为整个系统的瓶颈,已经越来越不适应海量数据对计算能力的巨大需求。分布式数据库,因其可以动态增加存储节点,因而可以实现“高扩展性”;因其可以在不同节点响应客户端的读/写请求,能对海量数据进行随机读/写,因而具有“高并发性”;对数据冗余备份的容错机制,保证了分布式数据库服务的“高度可用性”。为了极大的节省网络资源,并提升数据处理效率,分布式数据库引入了分布式SQL,实现了在多个节点上对SQL操作进行分布式处理。
分布式SQL的引入可以提高SQL查询性能,但存在着诸多亟待解决的问题。现有的分布式数据库metrics采集由全局参数进行控制,仅单一全局开关不能灵活控制采集数据的粒度,无法满足用户对指定应用或用户行为数据采集的需求。为灵活控制采集数据的粒度,引入多种开关进行控制,分布式执行时,需将当前SQL采集开关状态分发到各个执行节点,执行节点根据开关状态确定采集粒度。现有采集的数据指标主要集中在集群和节点检测以及日志监控上,相应地应用负载、编译执行等方面的行为数据采集不够全面,无法满足自治SQL优化项目希望基于应用负载/语句执行角度分析、理解和调优数据库的需求。
发明内容
为了解决以上技术问题,本发明提供了一种基于分布式SQL的开关分发与metrics采集汇总系统。
本发明的技术方案是:
一种基于分布式SQL的开关分发与metrics采集汇总系统,包括如下两个模块:
1)分布式SQL开关分发模块,用于在分布式SQL执行过程中,将Gateway节点的SQL采集开关状态分发到各个执行节点,执行节点同步Gateway节点的SQL采集开关状态;
2)分布式SQL的metrics采集汇总模块,用于在分布式SQL执行过程中,采集的metrics分布在各个执行节点上,需对各个执行节点上的metrics进行汇总,汇总到Gateway节点。
进一步的,
分布式SQL开关分发模块工作内容包括如下步骤:
1)通过Flow setup从Gateway节点发送到要执行的节点;
2)执行节点获取当前开关的属性,将其放到内存中;为后续执行节点采集行为数据提供判断;
3)执行节点通过gossip协议,将开关状态同步到集群中的其他节点。
其中,
在分布式SQL执行过程中,会在Gateway节点(与客户端进行交互的节点)生成SQL语句的物理计划;生成的物理计划中包含具体执行的算子数组,将各个算子串联起来的数据;分布式数据库会根据数据的分布将物理计划切分,封装成Flow结构并发送到节点上进行分布式执行。
Flow的发送是通过setupFlowRequest来进行发送,执行结束后会返回到Gateway节点。
进一步的,
分布式SQL的metrics采集汇总模块包括如下步骤:
1)执行节点获取当前开关的属性,判断是否进行采集行为数据;如果采集,则执行步骤2)和步骤3),否则不进行采集;
2)执行节点初始化DistributeMetrics结构体,将Gateway Node、current Node以及采集的数据赋值给DistributeMetrics结构体;在执行节点的所有算子执行协程执行完毕后,通过复用RowReciever发送到Gateway节点;
3)Gateway节点收到执行节点发送来的DistributeMetrics结构体进行运算(如累加,求最大),落盘到workload cache中。
此外,本发明还提供了一种针对分布式SQL的开关状态分发与metrics采集汇总方法,用户通过Gateway节点配置开关状态,当该用户的SQL为分布式SQL,需将开关状态分发到该SQL各个执行节点,执行节点根据开关状态进行metrics采集,各个节点该SQL的metrics采集完成后需汇总到Gateway节点,以此实现分布式SQL的metrics采集的正确性。
进一步的,
分布式SQL开关分发包括如下步骤:
1)通过Flow setup从Gateway节点发送到要执行的节点;
2)执行节点获取当前开关的属性,将其放到内存中;为后续执行节点采集行为数据提供判断;
3)执行节点通过gossip协议,将开关状态同步到集群中的其他节点。
其中,
在分布式SQL执行过程中,会在Gateway节点(与客户端进行交互的节点)生成SQL语句的物理计划;生成的物理计划中包含具体执行的算子数组,将各个算子串联起来的数据;分布式数据库会根据数据的分布将物理计划切分,封装成Flow结构并发送到节点上进行分布式执行。
Flow的发送是通过setupFlowRequest来进行发送,执行结束后会返回到Gateway节点。
进一步的,
分布式SQL的metrics采集汇总包括如下步骤:
1)执行节点获取当前开关的属性,判断是否进行采集行为数据;如果采集,则执行步骤2)和步骤3),否则不进行采集;
2)执行节点初始化DistributeMetrics结构体,将Gateway Node、current Node以及采集的数据赋值给DistributeMetrics结构体;在执行节点的所有算子执行协程执行完毕后,通过复用RowReciever发送到Gateway节点;
3)Gateway节点收到执行节点发送来的DistributeMetrics结构体进行运算(如累加,求最大),落盘到workload cache中。
本发明的有益效果是
1、保证了开关状态在各个节点的一致性。通过增加setupFlowRequest请求中的开关状态和使用Gossip协议同步开关状态到集群中的其他节点,保证了开关状态在各个节点的一致性。确保了行为数据的采集不受各个节点开关状态不一致的影响。
2、确保分布式SQL行为数据采集的正确性。分布式SQL执行过程中,有些行为数据需要经过汇总得到,比如说:Total Goroutine count、Total cpu time、Total networktime、Data read、Total contention等。通过本文提出的分布式行为数据汇总方案。对分布式SQL在其他节点执行的行为数据进行采集并汇总到Gateway节点,保证了分布式SQL行为数据采集的正确性。
3、开关分发较高的容错性。客户端更新开关的状态,首先会改变setupFlowRequest请求中开关的属性,同时通过Gossip协议同步到集群中的其他节点。当Gateway出现故障,这时候已经通过Gossip协议同步到其他的节点,其他节点的配置文件中保存了该节点的开关状态信息。客户端连接其他节点,也可以从配置文件中读出开关的状态,发送setupFlowRequest时可以带上从该节点读出的开关的状态。
4、复用了RowReceiver,降低了Gateway节点等待时间。RowReceiver是Flow中两个组件的交互接口抽象。其有一个Push方法,用于向接收方推送数据和元数据。当某一节点的Flow执行完毕,可以调用Push方法将DistributeMetrics结构体推送到Gateway节点,无需新建Grpc通信,降低了Gateway节点的等待时间。
附图说明
图1是本发明的工作流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种针对分布式SQL的开关状态分发与分布式行为数据采集汇总系统,其具体实现内容如下:
1、开关状态分发模块。在分布式SQL执行过程中,会在Gateway节点(与客户端进行交互的节点)生成SQL语句的物理计划。生成的物理计划中包含具体执行的算子数组,将各个算子串联起来的streams等数据。为了分布式执行,分布式数据库会根据数据的分布将物理计划切分,封装成Flow结构并发送到多个节点上进行分布式执行。Flow的发送是通过setupFlowRequest来进行发送,执行结束后会返回到Gateway节点。
a、通过Flow setup从Gateway节点发送到要执行的节点。在Gateway Node向Executor Node分别发送setupFlowRequest时增加当前开关相关的属性。执行节点获取当前开关的属性,将其放到内存中。在执行节点执行Flow中的算子之前,获取相关开关的属性,判断是否进行采集行为数据。该方法确保了开关的强一致性。
b、通过gossip协议,同步到集群中的其他节点。因为对于不同客户端其Gateway节点可能不同,用户在集群中执行配置更新命令,命令以协议的形式同步到集群中的所有节点。当用户重新连接客户端的时候,会获得相应的开关的参数。
c、Gossip协议是弱一致性算法,用户在Gateway节点执行了更改开关状态语句,并执行了相关SQL语句。如果语句为分布式SQL语句,只采用Gossip协议来同步开关状态,执行节点和Gateway节点的状态有可能会不一致,从而导致采集数据的不正确性。为此引入了增加FlowRequest结构体相应开关属性的方法。当Gateway将Flow发送到执行节点,执行节点先获取Flow中开关属性,根据属性来确定采集的粒度。
2、分布式数据汇总模块。
a、每个节点上定义了一个DistributeMetrics的结构体。该结构体中的属性为在多个节点上执行的行为数据,以及该SQL的Gateway Node节点,以及采集点所在的Node等相关属性。结构体大体如下:
b、当Flow传到执行节点,需要对上述定义的Gateway Node,current Node相关属性进行赋值。执行过程中执行节点会对数据进行采集,采集的数据会保存到DistributeMetrics结构体中,当执行节点所有的算子执行协程执行完毕后.通过复用RowReciever发送到Gateway节点。
c、Gateway节点收到执行节点发送来的DistributeMetrics结构体进行运算(如累加,求最大),落盘到workload cache中。
d、整体流程图见图1,DistributeMetrics的两个主要方法,sendToGateway方法其作用是当flow执行完毕,通过grpc发送到Gateway节点;aggregatorDisMetrics方法其作用是将其他节点的分布式执行行为数据进行运算(累加,求最值)汇总到workload cache中。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种基于分布式SQL的开关分发与metrics采集汇总系统,其特征在于,
包括如下两个模块:
1)分布式SQL开关分发模块,用于在分布式SQL执行过程中,将Gateway节点的SQL采集开关状态分发到各个执行节点,执行节点同步Gateway节点的SQL采集开关状态;
2)分布式SQL的metrics采集汇总模块,用于在分布式SQL执行过程中,采集的metrics分布在各个执行节点上,需对各个执行节点上的metrics进行汇总,汇总到Gateway节点。
2.根据权利要求1所述的系统,其特征在于,
分布式SQL开关分发模块工作内容包括如下步骤:
1)通过Flow setup从Gateway节点发送到要执行的节点;
2)执行节点获取当前开关的属性,将其放到内存中;为后续执行节点采集行为数据提供判断;
3)执行节点通过gossip协议,将开关状态同步到集群中的其他节点。
3.根据权利要求2所述的系统,其特征在于,
在分布式SQL执行过程中,会在Gateway节点(与客户端进行交互的节点)生成SQL语句的物理计划;生成的物理计划中包含具体执行的算子数组,将各个算子串联起来的数据;分布式数据库会根据数据的分布将物理计划切分,封装成Flow结构并发送到节点上进行分布式执行。
4.根据权利要求3所述的系统,其特征在于,
Flow的发送是通过setupFlowRequest来进行发送,执行结束后会返回到Gateway节点。
5.根据权利要求2所述的系统,其特征在于,
分布式SQL的metrics采集汇总模块包括如下步骤:
1)执行节点获取当前开关的属性,判断是否进行采集行为数据;如果采集,则执行步骤2)和步骤3),否则不进行采集;
2)执行节点初始化DistributeMetrics结构体,将Gateway Node、current Node以及采集的数据赋值给DistributeMetrics结构体;在执行节点的所有算子执行协程执行完毕后,通过复用RowReciever发送到Gateway节点;
3)Gateway节点收到执行节点发送来的DistributeMetrics结构体进行运算(如累加,求最大),落盘到workload cache中。
6.一种基于分布式SQL的开关分发与metrics采集汇总方法,其特征在于,
用户通过Gateway节点配置开关状态,当该用户的SQL为分布式SQL,需将开关状态分发到该SQL各个执行节点,执行节点根据开关状态进行metrics采集,各个节点该SQL的metrics采集完成后需汇总到Gateway节点,以此实现分布式SQL的metrics采集的正确性。
7.根据权利要求6所述的方法,其特征在于,
分布式SQL开关分发包括如下步骤:
1)通过Flow setup从Gateway节点发送到要执行的节点;
2)执行节点获取当前开关的属性,将其放到内存中;为后续执行节点采集行为数据提供判断;
3)执行节点通过gossip协议,将开关状态同步到集群中的其他节点。
8.根据权利要求7所述的方法,其特征在于,
在分布式SQL执行过程中,会在Gateway节点(与客户端进行交互的节点)生成SQL语句的物理计划;生成的物理计划中包含具体执行的算子数组,将各个算子串联起来的数据;分布式数据库会根据数据的分布将物理计划切分,封装成Flow结构并发送到节点上进行分布式执行。
9.根据权利要求8所述的方法,其特征在于,
Flow的发送是通过setupFlowRequest来进行发送,执行结束后会返回到Gateway节点。
10.根据权利要求7所述的方法,其特征在于,
分布式SQL的metrics采集汇总包括如下步骤:
1)执行节点获取当前开关的属性,判断是否进行采集行为数据;如果采集,则执行步骤2)和步骤3),否则不进行采集;
2)执行节点初始化DistributeMetrics结构体,将Gateway Node、current Node以及采集的数据赋值给DistributeMetrics结构体;在执行节点的所有算子执行协程执行完毕后,通过复用RowReciever发送到Gateway节点;
3)Gateway节点收到执行节点发送来的DistributeMetrics结构体进行运算(如累加,求最大),落盘到workload cache中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211390765.1A CN115934748A (zh) | 2022-11-07 | 2022-11-07 | 一种基于分布式SQL的开关分发与metrics采集汇总系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211390765.1A CN115934748A (zh) | 2022-11-07 | 2022-11-07 | 一种基于分布式SQL的开关分发与metrics采集汇总系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934748A true CN115934748A (zh) | 2023-04-07 |
Family
ID=86551500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211390765.1A Pending CN115934748A (zh) | 2022-11-07 | 2022-11-07 | 一种基于分布式SQL的开关分发与metrics采集汇总系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934748A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116644086A (zh) * | 2023-05-24 | 2023-08-25 | 上海沄熹科技有限公司 | 一种基于SST的Insert SQL语句实现方法 |
-
2022
- 2022-11-07 CN CN202211390765.1A patent/CN115934748A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116644086A (zh) * | 2023-05-24 | 2023-08-25 | 上海沄熹科技有限公司 | 一种基于SST的Insert SQL语句实现方法 |
CN116644086B (zh) * | 2023-05-24 | 2024-02-20 | 上海沄熹科技有限公司 | 一种基于SST的Insert SQL语句实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209726B (zh) | 分布式数据库集群系统、数据同步方法及存储介质 | |
US20200242129A1 (en) | System and method to improve data synchronization and integration of heterogeneous databases distributed across enterprise and cloud using bi-directional transactional bus of asynchronous change data system | |
CN107679192B (zh) | 多集群协同数据处理方法、系统、存储介质及设备 | |
US10929428B1 (en) | Adaptive database replication for database copies | |
CN111327681A (zh) | 一种基于Kubernetes的云计算数据平台构建方法 | |
EP1330907B1 (en) | Method and apparatus for real-time parallel delivery of segments of a large payload file | |
CN111949633B (zh) | 一种基于并行流处理的ict系统运行日志分析方法 | |
CN102855284A (zh) | 一种集群存储系统的数据管理方法及系统 | |
CN102413172B (zh) | 一种基于集群技术的并行数据共享装置方法和装置 | |
CN109639773B (zh) | 一种动态构建的分布式数据集群控制系统及其方法 | |
CN112199427A (zh) | 一种数据处理方法和系统 | |
CN107343021A (zh) | 国网云中应用的一种基于大数据的日志管理系统 | |
CN108629016B (zh) | 支持实时流计算面向大数据数据库控制系统、计算机程序 | |
US20180052858A1 (en) | Methods and procedures for timestamp-based indexing of items in real-time storage | |
CN115934748A (zh) | 一种基于分布式SQL的开关分发与metrics采集汇总系统及方法 | |
CN116777182A (zh) | 半导体晶圆制造执行任务派工方法 | |
Cao et al. | Polardb-x: An elastic distributed relational database for cloud-native applications | |
CN117056303B (zh) | 适用于军事行动大数据的数据存储方法及装置 | |
CN107566341B (zh) | 一种基于联邦分布式文件存储系统的数据持久化存储方法及系统 | |
CN114925075B (zh) | 一种多源时空监测信息实时动态融合方法 | |
CN113254511B (zh) | 一种分布式向量检索系统及方法 | |
CN114003580A (zh) | 一种运用于分布式调度系统的数据库构建方法及装置 | |
KR100492167B1 (ko) | 비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법 | |
Zhang et al. | Big data storage technology suitable for the operation and maintenance of new generation power grid dispatching control system operation | |
CN112434010A (zh) | 一种用电信息采集系统主站数据库的交互方法 |
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 |