高效分布式 JOIN 计算
业务分析场景,通常会有2个或多个表关联(JOIN)的逻辑,此逻辑在单机模式中是一个简单的操作,但在集群模式下,由于数据分布在1个或多个物理节点中,处理会相对复杂。在很多分布式解决方案中,JOIN 会把数据拉取到一个节点,进行关联计算,不仅耗费了大量网络资源,且语句的执行耗时会很高。
TDSQL PostgreSQL 版通过如下方式对分布式 JOIN 进行高效计算,基于高效的全局查询计划和数据重分布的技术支撑,TDSQL PostgreSQL 版能轻易发挥并行计算的优势,高效完成 JOIN 过程。
在执行方式上,协调节点接收到用户的 SQL 请求,根据收集的集群统计信息,生成最优的集群级分布式查询计划,并下发到参与计算的数据节点上进行执行,即协调节点下发的是执行计划,数据节点负责执行该计划。
在数据交互上,数据节点之间建立了高效数据交换通道,可以高效的交换数据,数据交换的过程在 TDSQL PostgreSQL 版里称之数据重分布(Data Redistribution)。
分布式数据库故障定位工具
为增加分布式数据库系统的易用性,TDSQL PostgreSQL 版提供分布式的全局实时会话分析和锁分析功能,该功能展示当前分布式数据库系统中实时会话详情,包含后端 PID、SQL 文本、客户端 IP、状态、运行时长等关键字段,帮助用户准确判断系统当前的运行状态。同时,提供 kill 会话的功能,用户能基于业务运行状态分析并自助完成 kill。
TDSQL PostgreSQL 版同时支持锁分析功能,展示当前数据库系统中被阻塞的会话的详情,用户可以基于系统运行情况完成自助终止操作。
另外,TDSQL PostgreSQL 版支持数据库系统慢日志的查询和下载,以便用户能定位出当前数据库的性能阻塞点。
多级容灾功能
TDSQL PostgreSQL 版在多个维度保证集群的容灾能力:
强同步复制
TDSQL PostgreSQL 版支持强同步复制,在节点级保证每个节点的主从数据完全一致,是整个容灾体系的基础,当主节点(Master)发生故障时,数据库可切换到从节点(Slave)提供服务且无任何数据丢失。强同步机制要求用户请求发生并且从节点写入日志成功后,才给用户返回成功信息,保证主从节点的数据时刻一致。
主从高可用
TDSQL PostgreSQL 版主从高可用方案主要通过每组节点的多副本冗余,来实现服务不中断或很短时间的中断,当一组节点的主节点出现故障不可恢复,将自动从对应的备节点中选出新的主节点工作。在主从高可用基础上 TDSQL PostgreSQL 版支持:
故障自动转移:集群中主节点故障时,系统自动从对应的从节点中选出新的主节点,故障节点自动被集群隔离,基于强同步复制策略,主从切换保证主从数据完全一致,可满足金融级数据一致性要求。
故障恢复:备节点因磁盘故障导致数据丢失时,数据库管理员(DBA)可以通过重做备机来恢复备机,可选择在新的物理节点上添加备机来恢复主从备份关系,保证系统可靠性。
副本切换:每组主从节点(可以是1主 N 从)的每个节点都包含完整的数据副本,DBA 可根据需求进行切换。
设置禁止切换:即可设置在某一特殊时期,不处理故障转移。
跨可用区部署:主节点和从节点分处于不同机房,通过专线网络进行实时的数据复制。本地为主节点,远程为从节点,首先访问本地节点,若本地主节点发生故障或访问不可达,则远程的从节点升为主节点提供服务。
TDSQL PostgreSQL 版支持基于强同步的高可用方案,主节点故障时将自动选出最优从节点立即顶替工作,切换过程对用户透明,且不改变访问 IP。TDSQL PostgreSQL 版对系统组件支持7 * 24小时持续监控,发生故障时,TDSQL PostgreSQL 版将自动重启节点或者隔离节点,从节点选出新主节点提供服务。
基于时间点的恢复功能
TDSQL PostgreSQL 版支持基于备份在事务一致性的时间点恢复数据,防止误操作带来的数据丢失。备份分为全量备份(冷备)和增量备份(xlog 备份):
全量备份:指备份数据库的全部数据(除了运行日志和 xlog 之外),全量备份通常是周期性,如一天、一周或 N 天。
增量备份:指增量数据的备份,一般通过 xlog 文件实现,当数据库系统产生新的 xlog 文件后,系统将 xlog 文件备份到备份服务器上,增量备份通常是实时行为。
当发生事故或灾难后,用户可以利用备份数据来恢复系统。TDSQL PostgreSQL 版是一个全局分布式事务的数据库系统,各节点之间数据是关联的,因此恢复系统需要通过一个全局时间点来恢复。