PostgreSQL基于Greenplum的分布式

Greenplum简介

官方

全球首个开源、多云、并行 大数据平台

来自网页

Greenplum是pivotal公司推出的一款开源olap的mpp数据库,greenplum的用户在某种程度上甚至超越了pg,很多人可能是通过greenplum才认识的pg,可见greenplum的风靡。下面是greenplum架构:

2018042723003371

Master节点存储全局系统元数据信息,不存储真实数据。数据通过hash分布到不同的segment中,master作为sql的全局入口,负责在segment中分配工作负载,整合处理结果,返回客户端。

Greenplum架构特点如下:

①master节点可以做主备,segment节点也有镜像保证高可用,segment主备尽量混布到不同服务器上。

②支持行列混合存储引擎,同时支持外部表。

③在join时也涉及到数据跨节点重分布的问题,这也是share nothing数据库不可避免的问题。

④高速内部interconnect网络,实现数据join时的高速移动和汇总。

⑤高效的数据并行加载。

来自 PostgreSQL的几种分布式架构对比

了解 share nothing

  • Shared Everthting:一般是针对单个主机,完全透明共享CPU/MEMORY/IO,并行处理能力差,典型的代表SQLServer。 shared-everything架构优点很明显,但是网络,硬盘很容易就会成为系统瓶颈。

  • Shared Disk:各个处理单元使用自己的私有 CPU和Memory,共享磁盘系统。典型的代表Oracle Rac,
    它是数据共享,可通过增加节点来提高并行处理的能力,扩展能力较好。其类似于SMP(对称多处理)模式,但是当存储器接口达到饱和的时候,增加节点并不能获得更高的性能 。

  • Shared Nothing
    :各个处理单元都有自己私有的CPU/内存/硬盘等,不存在共享资源,各处理单元之间通过协议通信,并行处理和扩展能力更好。各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转。Share-Nothing架构在扩展性和成本上都具有明显优势。

了解 MPP

大规模并行处理系统是由许多松耦合处理单元组成的,借助MPP这种高性能的系统架构,Greenplum可以将TB级的数据仓库负载分解,并使用所有的系统资源并行处理单个查询。

本文地址: https://github.com/maxzhao-it/blog/post/34819/