分布式数据库PGXC简要总结

1830阅读 0评论2022-11-07 fengzhanhai
分类:Mysql/postgreSQL

Postgres-XC (eXtensible Cluster)是一个提供写可扩展、 同步、 对称的和透明的 PostgreSQL 群集解决方案的开放源码项目。它是紧耦合的数据库组件,可以安装在多个硬件或虚拟机的集合。相较于一台数据库服务器,写可扩展性意味着 Postgres-XC 可以配置与尽可能多的数据库服务器,以及你想要处理很多更多写入 (更新 SQL 语句)。对称意味着可以有更多客户端连接到其中的一个数据库服务器提供单一、 一致的群集全视图的数据库。从任何数据库服务器的任何数据库更新的同步手段是立即可见的在不同的主机上运行的任何其他交易。透明的手段,应用程序不必担心数据如何存储在多个数据库服务器内部。
1.什么是Postgres-XC
Postgres-XC 是一种提供写可靠性,多主节点数据同步,数据传输的开源集群方案。它包含很多组件,这些Postgres-XC组件可以分别安装在多台物理机器或虚拟机上。
写可靠性 (Write-scalable )是指可以部署多个数据库主节点,并且向这些主节点发出 update 语句,这种特性单个 Postgres 库无法提供; 多主节点 (Multi-master ):是指多个数据库都可以提供统一个完整一致的数据库视图;主节点数据同步(Synchronous):是指在一台数据库上更新操作会立刻呈现在另一台数据库中;数据传输(Transparent)是指;数据位于不同的数据库节点中,当查询数据时,不必关心数据位于具体的节点。可以将 Postgres-XC 配置一台或者多台主机上, Postgres-XC 数据以分布式存储,有两种方式, 即 Replication 或Distribution,当向 Postgres-XC 发送查询 SQL时, Postgres-XC 会自动向数据节 点发出查询语句并获取数据。
2.Postgres-XC特性
Postgres-XC{BANNED}最佳主要的特性是提供多主(multi-master)数据同步、读写(read/write)的可靠性。
(1)Postgres-XC可以提供多个主节点同时处理来自应用端发出的SQL语句,这些节点称为master节点,在Postgres-XC中称为“coordinator”。
(2)任何一个master节点都有全局的数据库视图,即当任何一台master接收到update语句时,其余的master节点都可以迅速看到。
(3)表可以以 replicated 或者 distributed 方式分布式存储。若表以Replicated分配存储,则每个数据节点都有完整的表数据;若表以distributed分配存储,则每个数据节点仅保留表的部分数据。
(4)Postgres-XC可以提供统一的全局数据库视图。
3.Postgres-XC组件介绍
Postgres-XC主要组件有gtm(Global Transaction Manager),  gtm_standby,gtm_proxy, Coordinator 和Datanode。
3.1 GTM
GTM是Postgres-XC的核心组件,用于全局事务控制以及tuple的可见性控制。gtm 为分配GXID和管理PGXC MVCC的模块, 在一个CLUSTER中只能有一台主的gtm。
3.2 gtm_standby
gtm_standby 为gtm的备机.
3.3 gtm_proxy
gtm_proxy为降低gtm压力而诞生的, 用于对coordinator节点提交的任务进行分组等操作. 机器中可以存在多个gtm_proxy.。
3.4 Coordinator
协调节点 (Coordinator) 是数据节点 (Datanode)  与应用之间的接口,Coordinator 节点并不物理上存储表数据,表数据以分片或者复制的方式分布式存储,表数据存储在数据节点上。当应用发起SQL时,会先到达 Coordinator 节点,然后 Coordinator 节点将 SQL分发到各个数据节点,汇总数据,这一系统过程是通过  GXID 和 Global Snapshot  来控制的。
3.5 Datanode
数据节点(datanode)物理上存储表数据,表数据存储方式分为分片(distributed)和完全复制(replicated)两种,数据节点只存储本地的数据。
上一篇:网络测试工具ping、tcpping、fping、hping与psping总结
下一篇:没有了