TDSQL PostgreSQL版采用分布式集群架构,如下图所示。 该架构分布式无共享(share nothing)模式,节点之间相应独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转,各处理单元之间通过网络协议进行通信,并行处理和扩展能力更好,这也意味着只需要简单的x86服务器就可以部署TDSQL PostgreSQL版数据库集群。
下面简单解读一下TDSQL PostgreSQL版内核的各个模块。
Coordinator:协调节点(简称CN),对外提供接口,负责数据的分发和查询规划,多个节点位置对等,每个节点都提供相同的数据库视图;在功能上CN上只存储系统的全局元数据,并不存储实际的业务数据。
Datanode:处理存储本节点相关的元数据,每个节点还存储业务数据的分片,简称DN。在功能上,DN节点负责完成执行协调节点分发的执行请求。
GTM:全局事务管理器(Global Transaction Manager),负责管理集群事务信息,同时管理集群的全局对象,比如序列等。
在这个架构下,TDSQL PostgreSQL版集群具有下面几个能力:
同城双中心部署模式下,建议至少采用一主两从的三节点的方式,三组节点分布在同城两个IDC机房里,机房之间使用专线互通,主IDC机房部署一主一从两组节点:包含全局事务管理器节点(GTM节点)、协调节点(CN节点)、数据节点(DN节点),备IDC机房至少部署1个一组从节点。若业务需要使用TDSQL PostgreSQL版的HTAP能力,那么必须开启TDSQL PostgreSQL版的读写多平面特性,协调节点(CN节点)必须进行区分。考虑到跨机房的时延问题,我们的备IDC建议只开启读平面。负载均衡层面,TDSQL PostgreSQL版集成了LVS功能可以直接使用,业务也可以自行选择腾讯云提供的TGW等负载均衡组件。TDSQL PostgreSQL版集群中,同一平面的CN节点是对等的,由于LVS等负载均衡的组件,具备故障节点自动剔除的能力,可以保证在任意平面的CN故障时,业务请求不会失败;GTM节点以及DN节点均有同步备机存在,TDSQLPostgreSQL版在OSS系统的辅助下,会在1分钟以内发现故障,并发起自动切换,数据保证0丢失。
两地三中心的方案在同城双中心的基础上,增加一个异地灾备中心(如上图)。两个灾备实例之间通过流复制的方式进行同步。