postgresql 在navicat 中表不显示_PostgreSQL 数据库在分布式场景下的架构

本文探讨了PostgreSQL在分布式场景下的三种主流架构:Citus、Pgxc/Pgxl和Greenplum。Citus作为插件提供快速扩展,被广泛应用于大型企业。Pgxc/Pgxl是企业级HTAP解决方案,而Greenplum是一款知名的OLAP MPP数据库。文章还详细介绍了各个架构的高可用性和数据一致性保障策略。
摘要由CSDN通过智能技术生成

能否给张PostgreSQL数据库在分布式场景下的架构?

问题来自社区会员@邓毓 某农信 系统工程师,回答来自社区交流,供同行参考

@priest 系统架构师:

目前,主要流行的就3种:Citus 、 Pgxc/Pgxl 、 Greenplum

@zhuqibs Mcd 软件开发工程师:

以下引用自公众号“数据库架构之美”文章:(1) Citus

以插件的方式扩展到postgresql中,独立于postgresql内核,所以能很快的跟上pg主版本的更新,部署也比较简单,是现在非常流行的分布式方案。Citus在苏宁有大规模应用,微软也提供citus的商业支持。下面是citus的架构

5ad6cc8ebb80ddaf04778f2168ee1473.png

(2) pgxc && pgxl

是经典的分布式数据库架构,是真正的企业级HTAP,我们看到市面上很多分布式数据库产品都是基于pgxc架构扩展而来。pgxc是和pg内核紧耦合的,是嵌入到pg内核中,最初pgxc的核心开发者将pgxc商业化,创建了stormdb,进行了一些并行算子优化,后来TransLattice公司将stormdb收购,并且将项目开源,就是现在的pgxl,所以pgxc和pgxl是一脉相承的,大部分代码是直接移植过来的。下面是pgxc的架构

6f605909e2cb99d4b62f49a056916346.png

(3) Greenplum

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

70e9dd3c59361845bae50851f25ae68e.png

@weibo 北京象前行信息科技有限公司 副总:

来张比较流行的GP架构:

aae975f714012328708c30d9c2165aad.png

在分布式数据库中,无论是share-disk,share-memory,还是share-nothing的结构,数据库高可用性能主要实现方案都是通过节点冗余的方式,greenplum是采用share-nothing的MPP架构,其高可用也是通过给每个节点(master节点和所有的segment节点)设置一个冗余节点来实现的。

目前GP版本基于PG 9.6

Master 主节点冗余通过物理流复制实现。

每个segment都有一个热备份(hot standby)称为segment mirror。

Master节点能够检测到primary segment的状态,当primary segment不能继续提供服务时,会主动激活mirror segment成为新的primary。正常情况下primary segment处于active状态,primary segment和mirror segment之间的数据同步是通过两种方式:

(1) 数据同步复制

primary segment上,在事务commit之前,把事务的commit log同步到mirror segment上,同步结束以后,primary segment才做真正的commit。这样当mirror segment被提升成primary后,能够保证事务的一致性。

(2) 物理文件复制

堆表使用物理文件复制。GP中表数据是由元组组成的一个固定大小的块文件存储在磁盘上,为了优化磁盘I/O,块文件会被存储到缓冲区,当缓冲区满了之后会被新更新的块文件替换,被替换出来的块文件被写到primary segment的磁盘上,同时通过网络复制到mirror segment上,Mirror segment只更新其文件副本中的相应块。当块保存在缓存中时,primary segment和mirror segment具有不同的块镜像,但是数据库仍然是一致的,因为事务日志已经被复制了。

@Amygo 分布式事务数据库 数据库管理员:

PG的分布式基本上都是pgxl、pgxc的架构模式,可以看下开源产品AntDB。我正在写一篇文章关于PG VS MySQL为何PG不适合OLTP业务场景的原因,核心是没有真正的 MVCC,在做UPDATE/DELETE的时候很吃亏。

另外,使用OLTP分布式数据库产品后,则数据库端没有业务计算的包、自定义函数、存储过程、视图,甚至连复杂子查询都没有,则PG的内部机制就会显得更加笨重,不如MySQL走的轻量型路线高效和处理快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值