Open liujiusheng opened 4 years ago
Postgres-XL是一个可横向扩展的开源数据库集群,基于Postgres-XC,而Postgres-XC又是基于PostgreSql。Postgres-XL完美继承了PostgreSql的相关特性,并新增了数据库集群、可横向扩展、提供多种表分片策略、键值对存储、GIS空间分析、采用MPP架构模式(OLAP),可以与OLTP混合使用等优点。 可扩展: Postgres-XL (eXtensible Lattice)允许跨多个节点对表进行分区或复制。分区(或分布)表允许跨多个节点的写可伸缩性,以及针对大数据类型的工作负载的大规模并行处理(MPP)。复制的表通常是不经常更改的静态数据。复制它们允许读取可伸缩性。
全事务支持: Postgres-XL是一个完全符合ACID的事务性数据库,它不仅在任何时候都为您提供完全一致的数据视图,而且还使用集群范围内的多版本并发控制(MVCC)。在Postgres-XL中启动事务或查询时,您将看到整个集群中数据的一致版本。当您在一个连接上读取数据时,您可以在另一个连接上更新相同的表甚至行,而不需要任何锁定。由于全局事务标识符和快照,这两个连接都使用它们自己的行版本。读操作不会妨碍写操作,写操作也不会妨碍读操作。
GTM: 全局事务控制节点,保证集群数据的一致性,与Coordinator节点和Datanode节点不断通信,是整个集群的核心节点,只存在一个,可以存在一个GTM Standby节点,对GTM实时备份。GTM一旦故障,整个集群立刻无法访问,此时可以切换到GTM Standby节点上。如果部署了GTM Standby节点,就应该同时部署GTM Proxy,一般和Coordinator、Datanode部署在同一台服务器上。GTM Proxy的作用代理Coordinator和Datanode对GTM的访问,起到减轻GTM负载的作用,另外一个重要的作用是帮助完成GTM的故障切换,当GTM节点发生故障后,GTM Standby成为新的GTM,此时Coordinator和Datanode节点并不需要重新指定GTM地址,只需要GTM Proxy重新连接到新的GTM地址即可。 Coordinator: 接收数据访问请求的节点,本质上是由PG后台进程组成。接收的一条查询后,Coordinator节点执行查询计划,然后会根据查询数据涉及的数据节点将查询分发给相关的数据节点。写入数据时,也会根据不同的数据分布策略将数据写入相关的节点。可以说Coordinator节点上保存着集群的全局数据位置。Coordinator节点可以任意扩展,各个节点之间除了访问地址不同以外是完全对等的,通过一个节点更新的数据可以在另一个节点上立刻看到。每个Coordinator节点可以配置一个对应的standby节点,避免单点故障。 Datanode: 实际存取数据的节点,接收Coordinator的请求并执行SQL语句存取数据,节点之间也会互相通信。一般的,一个节点上的数据并不是全局的,数据节点不直接对外提供数据访问。一个表的数据在数据节点上的分布存在两种模式:复制模式和分片模式,复制模式下,一个表的数据在指定的节点上存在多个副本;分片模式下,一个表的数据按照一定的规则分布在多个数据节点上,这些节点共同保存一份完整的数据。
Postgres-XL是一个可横向扩展的开源数据库集群,基于Postgres-XC,而Postgres-XC又是基于PostgreSql。Postgres-XL完美继承了PostgreSql的相关特性,并新增了数据库集群、可横向扩展、提供多种表分片策略、键值对存储、GIS空间分析、采用MPP架构模式(OLAP),可以与OLTP混合使用等优点。 可扩展: Postgres-XL (eXtensible Lattice)允许跨多个节点对表进行分区或复制。分区(或分布)表允许跨多个节点的写可伸缩性,以及针对大数据类型的工作负载的大规模并行处理(MPP)。复制的表通常是不经常更改的静态数据。复制它们允许读取可伸缩性。
全事务支持: Postgres-XL是一个完全符合ACID的事务性数据库,它不仅在任何时候都为您提供完全一致的数据视图,而且还使用集群范围内的多版本并发控制(MVCC)。在Postgres-XL中启动事务或查询时,您将看到整个集群中数据的一致版本。当您在一个连接上读取数据时,您可以在另一个连接上更新相同的表甚至行,而不需要任何锁定。由于全局事务标识符和快照,这两个连接都使用它们自己的行版本。读操作不会妨碍写操作,写操作也不会妨碍读操作。
GTM: 全局事务控制节点,保证集群数据的一致性,与Coordinator节点和Datanode节点不断通信,是整个集群的核心节点,只存在一个,可以存在一个GTM Standby节点,对GTM实时备份。GTM一旦故障,整个集群立刻无法访问,此时可以切换到GTM Standby节点上。如果部署了GTM Standby节点,就应该同时部署GTM Proxy,一般和Coordinator、Datanode部署在同一台服务器上。GTM Proxy的作用代理Coordinator和Datanode对GTM的访问,起到减轻GTM负载的作用,另外一个重要的作用是帮助完成GTM的故障切换,当GTM节点发生故障后,GTM Standby成为新的GTM,此时Coordinator和Datanode节点并不需要重新指定GTM地址,只需要GTM Proxy重新连接到新的GTM地址即可。 Coordinator: 接收数据访问请求的节点,本质上是由PG后台进程组成。接收的一条查询后,Coordinator节点执行查询计划,然后会根据查询数据涉及的数据节点将查询分发给相关的数据节点。写入数据时,也会根据不同的数据分布策略将数据写入相关的节点。可以说Coordinator节点上保存着集群的全局数据位置。Coordinator节点可以任意扩展,各个节点之间除了访问地址不同以外是完全对等的,通过一个节点更新的数据可以在另一个节点上立刻看到。每个Coordinator节点可以配置一个对应的standby节点,避免单点故障。 Datanode: 实际存取数据的节点,接收Coordinator的请求并执行SQL语句存取数据,节点之间也会互相通信。一般的,一个节点上的数据并不是全局的,数据节点不直接对外提供数据访问。一个表的数据在数据节点上的分布存在两种模式:复制模式和分片模式,复制模式下,一个表的数据在指定的节点上存在多个副本;分片模式下,一个表的数据按照一定的规则分布在多个数据节点上,这些节点共同保存一份完整的数据。