核心特性—混合负载HTAP

简介: PolarDB-X是一款支持HTAP(Hybrid Transaction/Analytical Processing)的数据库,在支持高并发、事务性请求的同时,也对分析型的复杂查询提供了良好的支持。

为了提高复杂分析型查询的速度,PolarDB-X将计算任务切分并调度到多个计算节点上,从而利用多个节点的计算能力,加速查询的执行。这种方式也称为MPP并行计算。目前只有PolarDB-X只读实例集群默认开启了MPP并行计算能力。p325031.png

查询优化器

PolarDB-X的优化器面向HTAP负载设计,对复杂查询有着良好的支持。TP类查询包含的表数量通常有限(例如3个以内),并且Join条件往往被索引覆盖,且查询涉及的数据量较小。而对于不符合上述特征的复杂查询,则对优化器提出了更高的要求。

PolarDB-X采用了基于代价的优化器技术,能够根据实际数据量、数据分布情况等,搜索到较优的执行计划,例如,对Join顺序进行调整、选择合适的Join或聚合算法,对关联子查询去关联化等。执行计划的好坏很大程度上决定了查询效率,查询优化对于分析型查询至关重要。

HTAP智能路由

现阶段,阻碍HTAP数据库实际应用的一大障碍是分析型查询(AP)对TP类查询的影响。为了解决这一问题,PolarDB-X建议用户部署独立的只读集群,只读集群与原集群在硬件资源上完全分离,从而将AP类查询对TP类查询的影响降到最低。

PolarDB-X优化器会基于代价估计将请求区分为TP与AP负载,其中AP查询会被进一步改写为分布式执行计划,发往只读集群进行计算,避免它对主实例的TP类查询造成影响。p325032.png

分布式执行

分布式执行计划下一步会被切分为多个阶段(Stage),每个阶段又会生成多个并行的分片(Split),这些分片被下发到多个计算节点执行。计算节点之间通过高速网络互联。在计算过程中往往需要对中间结果进行多次交换(Exchange),直到最后一个Stage将结果收集汇总、回复给发起查询的客户端。p325033.png

全局一致性读

传统读写分离架构下,数据复制的延迟可能带来的数据写后读(read-after-write)不一致问题。PolarDB-X中,对于路由给只读实例的查询,默认开启全局一致性读能力,确保业务不会读到过期的数据,向主实例写入成功后能在只读库读到写入的数据。

相关文章
|
网络架构
海康大华云台摄像机使用ONVIF无法控制云台问题
海康大华云台摄像机使用ONVIF无法控制云台问题
815 1
|
Java 测试技术 数据库连接
【MyBatisPlus】MyBatisPlus 整合开发
【1月更文挑战第19天】【MyBatisPlus】MyBatisPlus 整合开发
|
JavaScript
jq样式、元素操作,效果,筛选方法与转换,事件对象
jq样式、元素操作,效果,筛选方法与转换,事件对象
|
敏捷开发 运维 Devops
IT入门知识第三部分《软件开发》(3/10)
IT入门知识第三部分《软件开发》(3/10)
|
数据可视化 数据挖掘 定位技术
【理论+实操】GeoDa空间自相关
【理论+实操】GeoDa空间自相关
|
Java
在Java多线程编程中,`wait()` 和 `notify()/notifyAll()` 方法是线程间通信的核心机制。
在Java多线程编程中,`wait()` 和 `notify()/notifyAll()` 方法是线程间通信的核心机制。它们通过基于锁的方式,使线程在条件不满足时进入休眠状态,并在条件成立时被唤醒,从而有效解决数据一致性和同步问题。本文通过对比其他通信机制,展示了 `wait()` 和 `notify()` 的优势,并通过生产者-消费者模型的示例代码,详细说明了其使用方法和重要性。
222 1
|
前端开发 JavaScript
文本,wangEditor5展示HTML无样式,wangEditor5如何看源码,Ctrl + U看CSS文件,代码高亮,Prism.js可以实现,解决方法,参考网页源代码的写法
文本,wangEditor5展示HTML无样式,wangEditor5如何看源码,Ctrl + U看CSS文件,代码高亮,Prism.js可以实现,解决方法,参考网页源代码的写法
|
算法 安全 Linux
真实世界的密码学(二)(2)
真实世界的密码学(二)
405 2
|
存储 关系型数据库 MySQL
MySQL数据库开发进阶:精通数据库表的创建与管理22
【7月更文挑战第22天】数据库的创建与删除,数据表的创建与管理
252 1
|
人工智能 搜索推荐 新能源
通义大模型进光伏!
通义大模型进光伏!
528 0

热门文章

最新文章