前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >POSTGRESQL Postgres-XL 了解一下

POSTGRESQL Postgres-XL 了解一下

作者头像
AustinDatabases
发布2021-09-02 16:08:13
2.5K0
发布2021-09-02 16:08:13
举报
上次分析的POSTGRES -XC 的结构, 实际上POSTGRES-X 系列一直在发展, POSTGRES除了 XC 还有XL 的高可用的结构.

Postgres-XL 是一款Postgres-XC升级的产品, 如果说PGXC是在PG添加了集群的功能主打OLTP的功能为卖点, PGXL 是一款基于PGXC添加了OLAP功能的支持MPP架构的, 但不是简单的POSTGRESQL 单机的功能的堆叠,本身基于的是PG早期的9.5 ,目前最新的版本是Postgres-XL 10R1.1 的版本。

目前有些国产数据库是基于POSTGRES-XL 来进行二次研发并推广上市的,实际上POSTGRES-XC 是日本NTT电信在2010年的网格化数据库的计划,在2012年一个叫stormDB的公司在POSTGRES-XC 基础上增加了POSTGRES-XC的性能,包含MPP架构, 在2013年stormDB被TransLattice 获得并在2014年将这个项目开源,变为POSTGRES-XL

POSTGREX-XC 和 XL 不同在于XC是将数据查询下推到datanode, 而xl使用的MPP架构。另一点的不同在于XC 主攻的方向是 OLTP, XL主攻的方向是OLAP

今天就继续了解一下 POSTGRES-XL 的分布式结构

XL 的主要完成的工作是从应用端接受语句或事务将这些执行的语句,通过coordinator 来对外提供一致性的视图来访问数据库,并且最大化的提供与POSTGRESQL 单机类似的事务处理的方式和数据的展示的方式。数据表被分割成多个片,存储在不同的data nodes,并且对于应用程序来说这些都是透明的。

在分布式成型中,主要的三种模式, 集中式,民主式,令牌式,POSTGRESQL-XL 主要还是使用集中式的方式来完成核心的问题的解决,这点与TIDB 使用PD 的方式类似。这样的方式高效,简单。这也符合简洁就是美的一种想法的理论。

POSTGRES-XL 核心的组件,GTM , Coordinator , datanoade 与TIDB 的 TIDB SERVER , PD , TIKV 也是类似的,当然在以前写过,目前的两大分布式流派, POSTGRES-XC XL , 以及 TIDB 的 NEW SQL 流派。

POSTGRES-XL 的核心 GTM , Global Transaction Manager 与PD 功能一致,提供了事务的管理,以及事务的状态和数据的路由的功能。Coordinator相当于postgresql 单机中每个客户连接到数据库的backend process, 但Coordinator 不会存储数据仅仅是一个客户端,这与TIDB SERVER 的功能也是类似的。通过coordinator 来获得全局事务ID 和 事务的SNAPSHOT,通过GXID 来看到底哪些datanode 可以获取需要的数据。Datanode 本身存储数据并且不含有任何的全局的数据视图,根据GXID来完成SNAPSHOT 和 数据的存取。

系统中核心的KEY 应该是GTM, 主题 POSTGRES-XL并未在POSTGRESQL源码中修改的太多。

这里着重的说说GTM, GTM 功能就是控制事务,提供了有序性的全局时间戳,以及分配GXID 全局事务ID, 并且手机所有事务的状态提供全局snapshot,而全局的SNAPSHOT 状态也是通过GXID来实现的,防止其他事务来读取某些“大事务”未提交的行。这里通过记录每个事务的开始和结束时间来去提供SNAPSHOT,以及事务的可见性。

从左到右,每个事务都包含最左侧的信息通过右侧 gtm_transactionInfo 来进行全局事务的操控和snapshot的功能。gtm_snapshotdata 里面的信息是不是和POSTGRESQL 中每行的事务管理的方式类似。

同时Postgres-XL 是遵循MPP架构的分布式数据库,所以必须对所在数据存储节点进行管理,通过合理的管理来对数据进行有效的访问。

POSTGRES-XL 在数据NODE中存储也分为

1 节点均存在数据

2 数据通过算法进行数据的分布

在标准的Standard postgresql 和 POSTGRES-XL 结构中

标准的PostgreSQL 包含了

而 XL 系列将这些分别在 Coordinator 和 XL Datanode 完成

Coordinator

datanode

所以在POSTGRES-XL 中建立表对于POSTGRES-XL 是非常重要的, 如果数据表初始建立错误,或者数据分布有问题,则整体的性能不会太好.

总结特点:

主要的特点:

1 支持OLTP 高负载的支持

2 支持OLAP 场景通过MPP 并行的结构来满足OLAP 的需求

3 分布式数据存储数据,或根据具体情况进行表复制存储

4 节点的扩展方便快捷,数据具有副本

5 支持多节点分布式数据查询,将数据查询的CPU 与 I/O 使用率分散

6 支持复杂的SQL 查询方式,类似单库的查询语句方式

7 基于POSTGRESQL streaming replicaition的数据复制方式

8 表的数据存储通过算法进行拆分到不同node,或者表在所有的节点进行复制

9 系统本身不支持datanode 高可用,需要另外采用其他办法进行支持

10 需要的VIP 的特性来支持coordinator 出现故障后的访问,并且在coordinator 中进行均衡负载.

当然POSTGRES-XL 应用的案例就是腾讯的微信的支付功能,想必POSTGRES-XL 在二次开发后的厉害之处,已经被证明了.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档