本文将详细介绍TDSQL的管控架构和特性,分四个方面进行解读:TDSQL PG产品基本概念、管控平台架构与组件、高效安全的数据库管理以及未来展望。
TDSQL PG产品基本概念
TDSQL PG产品特点可以用三个关键词概括:分布式事务全局一致性、SQL高兼容度和HTAP融合。分布式事务全局一致性得益于无共享架构、两阶段提交和全局时钟。SQL高兼容度表现为全量兼容PG和高度兼容Oracle。HTAP融合则使得TDSQL同时具备高效的OLTP能力和一定规模的OLAP能力。
在介绍管控前,我们首先明确TDSQL PG实例的概念,即包含一组节点、可提供完整服务的数据库集群。TDSQL PG实例包含三种角色:GTM节点(全局事务管理,提供统一时钟和分布式事务)、CN节点(业务读写入口)和DN节点(数据节点,负责保存实例数据)。每组GTM、CN和DN组成一个Set,分别称为GTM Set、CN Set和DN Set。支撑这些角色统一调度的是OSS(Operation Support System),即管控平台,它负责TDSQL PG集群的监控和运维。
TDSQL PG管控平台作为运营门户,提供集群统一管理入口和监控大屏。管控平台支持从集群部署到实例生产、实例变更、性能优化和资源回收等100多项运营操作,覆盖常用运营场景,实现实例全生命周期的自动化和智能化管理。
管控平台架构与组件
管控平台的架构同时支持了公有云和私有云场景,主要分为三个子系统。首先是业务的访问入口——租户端控制台,通过API3.0规范访问租户端服务,集成了腾讯云基础的支撑服务,包括监控、网络、计费等功能。其次是管控的OSS Center组件,它集成了一系列的管控微服务,如资源管理、监控告警、高可用和备份等模块。最后是OSS Agent组件,与服务器节点一一对应,管理和监控主机上的数据库实例节点(CN/DN节点)。从数据链路维度看,CN节点通过一个VIP给应用提供统一的Endpoint访问。
在公有云和私有云这两个场景中,我们在国内外各地域都有相应的集群部署,在私有云中,我们在保险、银行、通信、政务等行业帮助客户深度“去O”。
OSS的组件主要分为OSS Center、OSS Agent、ConfDB和ETCD四个部分。OSS Center组件是管控OSS server的前端请求入口,另外还集成了其他的工作流、监控和日志模块。OSS Agent组件作为一个命令通道,执行运维动作和监控采集。ConfDB是管控的元数据库。ETCD有两个主要作用,一是仲裁Center和Master,实现Center的选主;二是协同Stolon组件支撑ConfDB的高可用。
高效安全的数据库管理
高效安全的数据库管理体现在四个方面:
一、BPMN工作流模型。它的核心价值在于异步长流程能够观测、可干预。我们提出了BPMN工作流模型,该模型的优点在于它带有控制节点,可以根据需要改变临时变量,控制跳转执行步骤。其实现机制是,每个OSS Center节点会集成一个工作流的组件,每个任务的提交都会创建并产生一条消息,然后基于分布式锁被某个节点抢占执行,最后通过状态机控制状态流转。简而言之,我们基于BPMN工作流实现编排运维流程,通过消息+分布式锁的机制保证工作流的调度。工作流编写的原则是Center节点进行编排和调度,Agent节点执行原子操作。
我们以设置资源隔离的工作流为例,BPMN模型有三个简单步骤,步骤1获取元数据,步骤2逐个节点遍历更新CGROUP配置,步骤3更新元数据。流程做到可观测,可修改上下文,可干预和可回滚。通过管理工作流,运维人员能够灵活地管理实例的生命周期。
二、快速扩容特性。普通扩容方式会导致数据迁移速度慢、阻塞DDL操作、效率低且容易拖垮订阅者。因此,我们提出了快速扩容机制。在快速扩容中,我们不改变总副本数,而是将原有的一主三备模式变为两个主备模式。这样做的好处是无需进行数据搬迁,仅需进行标记清理操作,效率非常高。
为了量化这个效果,我们进行了对比实验。在1TB数据情况下,普通扩容需要5小时,而快速扩容仅需30秒;在9TB数据情况下,对比更加明显。总的来说,快速扩容比普通扩容模式有更多优势,包括无需进行数据搬迁、秒级完成扩容、不阻塞DDL操作且对业务无影响。
三、高可用架构。高可用架构从下往上分为五个层次:ETCD、Stolon、ConfDB、OSS和数据库实例。通过这五层架构,我们实现了管控组件和实例组件的容灾。
管控组件的容灾主要包括ConfDB的容灾和OSS Center的容灾。ConfDB是一个单机版本的PG元数据库,其容灾通过Stolon组件实现;OSS Center的容灾则基于ETCD的选主逻辑实现。
实例组件的容灾主要依赖于管控组件进行拨测,包括DB本身状态的拨测和Agent心跳上报的监听。这两种机制结合起来,可以判断是否需要进行实例切换。CN和DN的拨测逻辑相同,都会监测进程状态,然后通过长链接探活、获取复制关系,短连接获取实例角色。而GTM的拨测逻辑略有不同,主要通过短连接进行拨测、获取进程状态和角色信息。最后,拨测结果统一上报到OSS Center节点进行仲裁。
除了上述拨测机制外,实例还有强同步和退化逻辑。强同步退化主要通过两个参数实现:synchronous_commit和synchronous_standby_names。前者设置为ON表示本机刷盘并同步到备机,后者指定备机列表,支持全同步、FIRST和ANY三种模式。全同步表示等待所有备机事务返回;First X模式表示等待前X个备机返回;ANY模式则等待任意X个备机返回。退化逻辑中,守护程序会根据备机状态动态调整可用备机列表,实现强同步感知。
仲裁后的切换环节与单机PG类似,但需进行修改路由操作。选主流程会选择同步节点,优先选择Receive LSN最大的备机以保证数据不丢失。若Receive LSN相同,则选择Replay LSN最大的备机以保证切换速度最快。最后优先选择同城、同平面备机。另外,老主降备时需处理时间线分叉问题,可通过设置PG Rewind工具自动修复或备库重搭。
高可用部署分为三个模型:同城单中心、同城双中心(通常客户采用的模式)和两地三中心。两地三中心部署时,异地灾备自动变为级联复制方式,异步复制搭载到同城IDC上。
为简化客户操作,管控平台直接提供了两地三中心实例创建,让客户一键部署。同时,客户还可选择自定义部署模式,根据需求定义拓扑关系、复制源和同步模式。总体原则是将复杂性留给自己,简单性留给客户,提升客户体验。
四、备份恢复,主要包括以下几个方面:
1. 丰富可靠的备份支持,我们提供多种备份介质,如NAS、HDFS、COS、S3和NBU等主流备份软件。而其他第三方备份软件,可以通过XBSA接口协议快速对接。此外,我们提供灵活的备份策略,包括物理备份(全量+增量)、逻辑备份(库表级备份),以及自定义策略如备份周期、备份保留数、并发数和压缩算法。
2. 数据恢复,每个节点独立进行周期性全量备份和实时增量备份,备份至HDFS或COS存储池。内核会分钟级产生GTS文件,从而获取逻辑时间和物理时间的映射关系。通过计算元数据中最大和最小GTS,管控自动获取可恢复的时间窗口。恢复流程包括创建同拓扑结构的新实例、停止节点、下载全量和增量、等待各节点完成PITR、修改路由。
3. 细节打磨,在备份恢复场景有大量精细化处理,管控完善了如下细节:1)通过秒级采集GTS,实现了秒级PITR;2)通过小文件批量打包和大文件分块上传破除了存储池的负载和文件块大小限制;3)通过压缩及多网卡分流,降低了备份对存储空间和网络资源限制的影响。
未来展望
展望未来,我们会从以下几个方面重点增强,持续提升产品能力和创造客户价值:
1.
被集成:持续提升易用性并降低接入门槛,灵活接入自建监控告警等系统。
2.
云原生:充分应用K8s能力和腾讯云IaaS层红利提升产品竞争力。
3.
智能化:提升参数调优、资源调度等方面的智能化水平。
4.
周边生态:持续完善数据迁移和数据库管理等周边工具。




