揭秘TDSQL-A分布式执行框架:解放OLAP关联分析查询性能瓶颈

本文详细介绍了TDSQL-A分布式执行框架的设计与优化,针对复杂的OLAP关联分析查询,揭示了原有的分布式执行框架问题,并提出新的执行框架,通过查询计划分片、异步执行流程控制和子查询优化策略,解决数据重分布导致的性能瓶颈,提升查询效率。此外,还探讨了异步执行流程控制的自适应特点,包括灵活的进程协调、资源管理和事务一致性保证。
摘要由CSDN通过智能技术生成

在“国产数据库硬核技术沙龙-TDSQL-A技术揭秘”系列分享中,5位腾讯云技术大咖分别从整体技术架构、列式存储及相关执行优化、集群数据交互总线、分布式执行框架设计及优化策略、以及向量化执行引擎等多方面对TDSQL-A进行了深入解读。

本期带来了系列分享中腾讯云数据库高级工程师张倩老师主题为“TDSQL-A分布式执行框架设计及优化策略”的分享的文字版。

作为领先的分析型数据库,TDSQL-A是腾讯首款分布式分析型数据库,采用全并行无共享架构,具有自研列式存储引擎,支持行列混合存储,适应于海量OLAP关联分析查询场景。它能够支持2000台物理服务器以上的集群规模,存储容量能达到单数据库实例百P级。

一、执行框架总体设计

1.1 TDSQL-A架构

首先介绍TDSQL-A的总体架构,包括上层的协调节点CN、GTM事务管理器、中间的数据交互总线FN、以及下方的数据节点DN。主要介绍的是协调节点CN和数据节点DN的相关内容,包括用户的查询怎么在CN和DN上执行、最后如何返回结果给用户等问题。 file

TDSQL-A采用MPP架构,其特性是share-nothing,数据分散在多个DN上,按照不同的分布键分布,并且不同的表可以自定义不同的分布键。如果CN收到了一条查询,它会将这个任务分散到多个DN上并行执行,从而提高执行效率,最后CN获得DN并行执行的最后结果,汇总之后再返回给客户端。 file

1.2原分布式执行框架

这里先说明一下我们的原分布式执行框架一个最主要的问题。下图是一个简单的Join查询,如果Join查询正好是在这个表的分布键上进行Join,则不涉及数据的重分布,可以直接在每个DN节点上进行Join,DN的结果汇总起来就是最终的查询结果,这是最理想的情况。

但客户的查询往往比较复杂多样,Join经常会涉及不同节点之间的数据交换,Join的两个表的Join键不一定是一个表的分布键,这种情况下就会涉及到数据的重分布。在TDSQL-A中,数据重分布是由Remote Subplan算子来执行。在执行的时候,Remote Subplan算子会并行地创建对应下层的执行进程和对应的DN连接,每个DN都会创建对应其他DN的各个链接,这就会导致链接数和进程数急剧膨胀,给服务器造成很大的压力。 file

1.3 TDSQL-A分布式执行框架

针对原分布式架构的缺点,我们设计了一套全新的分布式执行框架。在这种执行框架下,查询执行前CN会对查询计划进行分片,并创建DN上的各个执行进程,每个DN的进程间不需要再建立冗余的进程及连接。这可以减少不必要的进程和连接,减轻服务器的负担,并且能够做到比较好的线性扩展性。数据交互则是通过中间的router——FN节点来进行数据交换,这是当前TDSQL-A的分布式执行框架。 file

二、查询计划分片策略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值