
美河学习在线 www.eimhe.com
的 Load Balance 组件并不属于 PGXL 集群本身,需要其他负载均衡工具实现。
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 语句存取数据,节点之间也
会互相通信。一般的,一个节点上的数据并不是全局的,数据节点不直接对外提供数据访问。
一个表的数据在数据节点上的分布存在两种模式:复制模式和分片模式,复制模式下,一个
表的数据在指定的节点上存在多个副本;分片模式下,一个表的数据按照一定的规则分布在
多个数据节点上,这些节点共同保存一份完整的数据。这两种模式的选择是在创建表的时候
执行 CREATE TABLE 语句指定的,具体语法如下:
CREATE TABLE table_name(...)
DISTRIBUTE BY
HASH(col)|MODULO(col)|ROUNDROBIN|REPLICATION
TO NODE(nodename1,nodename2...)
可以看到,如果 DISTRIBUTE BY 后面是 REPLICATION,则是复制模式,其余则是分片模
式,HASH 指的是按照指定列的哈希值分布数据,MODULO 指的是按照指定列的取摩运算分
布数据,ROUNDROBIN 指的是按照轮询的方式分布数据。TO NODE 指定了数据分布的节点范
围,如果没有指定则默认所有数据节点参与数据分布。如果没有指定分布模式,即使用普通
的 CREATE TABLE 语句,PGXL 会默认采用分片模式将数据分布到所有数据节点。
评论