正文
Master节点的高可用(图2),类似于Hadoop的NameNode
HA,如下图,Standby Master通过synchronization process,保持与Primary
Master的catalog和事务日志一致,当Primary Master出现故障时,Standby Master承担Master的全部工作。
图2 Master节点的高可用
Segments
Greenplum中可以存在多个Segment,Segment主要负责业务数据的存储和存取(图3),用户查询SQL的执行,每个Segment存放一部分用户数据,但是用户不能直接访问Segment,所有对Segment的访问都必须经过Master。进行数据访问时,所有的Segment先并行处理与自己有关的数据,如果需要关联处理其他Segment上的数据,Segment可以通过Interconnect进行数据的传输。Segment节点越多,数据就会打的越散,处理速度就越快。因此与Share
All数据库集群不同,通过增加Segment节点服务器的数量,Greenplum的性能会成线性增长。
图3 Segment负责业务数据的存取
每个Segment的数据冗余存放在另一个Segment上,数据实时同步,当Primary
Segment失效时,Mirror Segment将自动提供服务,当Primary
Segment恢复正常后,可以很方便的使用gprecoverseg -F工具来同步数据。
Interconnect
Interconnect是Greenplum架构中的网络层(图4),是GPDB系统的主要组件,默认情况下,使用UDP协议,但是Greenplum会对数据包进行校验,因此可靠性等同于TCP,但是性能上会更好。在使用TCP协议的情况下,Segment的实例不能超过1000,但是使用UDP则没有这个限制。
图4 Greenplum网络层Interconnect
Greenplum,新的解决方案
前面介绍了GPDB的基本架构,让读者对GPDB有了初步的了解,下面对GPDB的部分特性描述可以很好的理解为什么选择GPDB作为新的解决方案。