greenplum架构介绍
1 Greenplum 简介 GreenPlum是一款基于分布式架构的开源数据库;采用无共享(no shareing)的MPP架构(每个数据节点拥有独立的CPU、IO和内存等资源);其具有良好的线性扩展能力,具有高效的并行运算、并行存储特性。拥有独特的高效的ORCA优化器。非常适合用于PB数据量级的存储、处理和实时分析能力。Greenplum是基于PostgreSQL数据库发展而来,本质上是多个PostgreSQL面向磁盘的数据库实例一起工作形成的一个紧密结合的数据库管理系统(DBMS),同时支持涵盖OLTP型业务混合负载,数据节点和主节点均可设计备份节点,进而提供数据库的高可用性。
2 Greenplum架构
如上图,Greenplum由Master节点和Segment节点以及高速网络层三部分组成,转载自官网Greenplum的架构。
- Master Host: 又称协调节点,是整个Greenplum数据库系统的入口。负责接受来自客户端连接请求,对SQL语句生成查询计划,并将查询计划分发至涉及的Segment实例上,收集Segment实例返回的结果并呈现给客户端。同时Master记录集群中的元数据信息,包括各种全局系统系统表,但Master上不存储任何用户数据,数据只存在于Segment之上。
- Standby: Master的备库,在Master 发生故障不可提供服务时可promote Standby继续提供服务,保证集群的高可用,正常情况下Standby上进行只读操作,且时时同步Master的元数据。
- Segment Host【Primary segment】:数据节点,其功能是存放并管理数据库中的数据,接收Master分发下来的执行计划,执行返回结果给Master节点。
- Mirror segment: Primary segment节点的备库以保障高可用性;通常跟对应的Primary segment节点不在同一台机器上。在segment节点出现故障,mirror segment自动接管进行工作。但是为了数据库平稳;尽快恢复出现故障的segment。
- Interconnet: Interconect是Greenplum数据库架构中的网络层,是Segment之间的进程间通信以及这种通信所依赖的网络基础设施。 Greenplum的Interconnect使用带流控制的用户数据包协议(UDPIFC)在网络上发送消息,可靠性和可扩展性超于TCP。 之所以采用UDP,是因为Interconnect改为TCP,当Segment实例超过1000个时其可扩展性会受到限制,而对于Interconnect的默认协议UDPIFC则不存在这种限制。