作者:杨杰
简介
Citus是Postgres的开源扩展,将Postgres转换成一个分布式数据库,在集群的多个节点上分发数据和查询,具有像分片、分布式SQL引擎、复制表和分布式表等特性。
因为Citus是Postgres的扩展(而不是一个独立的代码分支),所以当你使用Citus时,你也在使用Postgres,可以利用最新的Postgres特性、工具和生态系统。
架构节点
每个集群都有一个称为协调节点(Coordinator Node,CN)的特殊节点,其他节点称为工作节点(Worker Node,WN/DN)。
CN只存储和数据分布相关的元数据,实际的表数据被分成M个分片,打散到N个DN上。
应用程序将它们的查询发送到协调器节点,该节点将查询转发给相关的数据节点并收集结果。
注:以上以分布式表为例
集群拓扑
首先介绍原生Citus支持的几种集群拓扑
statement-based replication
为了提高可用性,协调节点通过PG原生流