结构:Client——master host——interconnect——segment host
每个节点都是单独的PG数据库,要获得最佳的性能需要对每个节点进行独立优化。
master上不包含任何的用户数据,仅保留system catalog,用户数据全部存储在segments上。
master负责处理传入的sql命令,分发到对应的segments上,组合返回的结果并返回给客户端。
Because the master does not contain any user data, it has very little disk load. The master needs a fast, dedicated CPU for data loading, connection handling, and query planning because extra space is often necessary for landing load files and backup files, especially in production environments. Customers may decide to also run ETL and reporting tools on the master, which requires more disk space and processing power.
master节点备份:When an the standby master is active, the replicated logs are used to reconstruct the state of the master host at the time of the last successfully committed transaction.
虽然用户数据存储在segments上面(每个节点存储的数据互补相同),但用户是通过master节点来操控的。每台主机的segments个数由性能决定。
镜像segments节点必须部署在不同的主机上:1.group mirroring,把每个segments节点放在另外一台主机上(已经存在segments节点);spread mirroring,讲segments节点存放在空闲主机上(要求空闲主机数量大于segments节点数)。
当master节点认为某个segments节点不可用时,会把它剔除搜索范围,自动启用备用节点。管理员可以重新将它设为启用,不论系统是否正在运行,恢复程序会自动修复丢失的数据。如果某个segments节点挂掉并且没有备用节点,系统会自动shutdown,直到管理员将所有挂掉的节点恢复(防止返回错误的数据)。
GPDB性能取决于最慢的那个segments节点(木桶原理)。为了获取最佳性能,segments节点主机应该是独立的,没有其他程序占用资源。
segments节点硬盘结构:每个cpu对应一个逻辑硬盘,一个逻辑硬盘对应一组物理硬盘。
每个节点的hosts文件需要配置其他所有的主机名及host address,这样GPDB就可以自动均衡网络使用。
性能监控是每个segments节点都有一个任务,收集节点数据及系统利用率,每隔一段时间(默认15s)返回给master,查询这些数据即可查看节点的性能。