分享好友 站长动态首页 网站导航

PostgreSQL架构

网友发布 2022-08-04 22:11 · 头闻号数据库
PostgreSQL软件架构

Postgres-XL架构



由GTM、GTM-Proxy、Coordinator、Datanode组成。

GTM负责提供事务的ACID属性;

Datanode负责存储表的数据和本地执行由Coordinator派发的SQL任务;

Coordinator负责处理每个来自Application的SQL任务,并且决定由哪个Datanode执行,然后将任务计划派发给相应的Datanode,根据需要收集结果返还给Application;

GTM通常由一台独立的服务器承担,GTM需要处理来自所有GTM-Proxy或者Coordinator和Datanode的事务请求。

每台机器最好同时配置一个Coordinator、一个Datanode与GTM-Proxy。

每台机器同时配置一个Coordinator和一个Datanode,可以负载均衡,同时降低网络流量。GTM-Proxy会减少GTM的负载,将Coordinator和Datanode上进程的请求和响应聚集到一台机器上,同时会帮助处理GTM失效的情况。

GTM可能会发生单点故障,可以配置一个GTM-Standby节点作为GTM的备用节点。

协调器(Coordinator)

处理客户端连接。

分析查询语句,生成执行计划,并将计划传递给数据节点实际执行。

对数据节点返回的查询中间结果集执行最后处理。

管理事务两阶段提交(2PC)。

存储全局目录(GlobalCatalog)信息。

数据节点(DataNode)

实际存储表和索引数据,数据自动打散分布到集群中各数据节点。

只有协调器连接到数据节点才能可读写。

执行协调器下传的查询,一个查询在所有相关节点上并行查询。

两个数据节点间可建立一对一通讯连接,交换分布式表关联查询(Join类)的相关信息。

全局事务管理器(GTM)

全局事务管理器(GTM:Global Transaction Manager)

全集群只有一个GTM节点,会有单点故障问题,可以配置StranBy热备节点保证高可用。

通过部署GTM Proxy,解决GTM性能瓶颈。

提供事务间一致性视图。

处理必须的MVCC任务:

transaction IDs 事务ID。

snapshots 数据快照,MVCC使用。

管理全局性数据值:

timestamps 时间戳。

sequences 序列对象。

数据分布

数据分布有两种模式: 复制表(Replicated Table)与分布表(Distributed Table)

复制表(Replicated Table):每行记录复制到集群中所有的数据节点,每节点一份。

分布表(DistributedTable):记录分片存在不同节点,可用的分片策略方式Hash、Round Robin、Modulo。

高可用性

全局事务管理器采用热备方式。

多个协调器间负载均衡。

数据节点使用流复制,复制数据到备节点。


功能特性

license:Mozilla PublicLicense许可,允许将开源代码与闭源代码混在一起使用。

完全的ACID支持。

可横向扩展的关系型数据库(RDBMS)。

支持OLAP应用,采用MPP(Massively Parallel Processing大规模并行处理系统)架构模式。

支持OLTP应用,读写性能可扩展。

集群级别的ACID特性。

多租户安全。

支持分布式Key-Value存储、支持JSON和XML格式。

事务处理与数据分析处理混合型数据库。

支持丰富的SQL语句类型,如关联子查询。

支持绝大部分PostgreSQL的SQL语句。

分布式多版本并发控制(MVCC:Multi-version Concurrency Control)。

支持所有支持PostgresSQL类型的驱动JDBC, ODBC, OLE DB,Python,Ruby,perl DBI,Tcl。


功能不足

需要使用外部机制实现高可用,如pg流复制、Corosync/Pacemaker等。

增删节点/重新分片数据(re-shard)的比较复杂。

数据重分布(redistribution)期间会锁表。

某些外键、唯一性约束功能欠缺。

免责声明:本平台仅供信息发布交流之途,请谨慎判断信息真伪。如遇虚假诈骗信息,请立即举报

举报
反对 0
打赏 0
更多相关文章

评论

0

收藏

点赞