首页 > 数据库 >POSTGRESQL Postgres-XL 了解一下

POSTGRESQL Postgres-XL 了解一下

时间:2023-06-19 17:03:29浏览次数:47  
标签:事务 POSTGRESQL Postgres XL XC 数据 POSTGRES


POSTGRESQL  Postgres-XL  了解一下_mysql

上次分析的POSTGRES -XC 的结构, 实际上POSTGRES-X 系列一直在发展, POSTGRES除了 XC 还有XL 的高可用的结构.

POSTGRESQL  Postgres-XL  了解一下_分布式_02

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

POSTGRESQL  Postgres-XL  了解一下_python_03

今天就继续了解一下 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,以及事务的可见性。

POSTGRESQL  Postgres-XL  了解一下_python_04

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

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

POSTGRESQL  Postgres-XL  了解一下_mysql_05

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

1  节点均存在数据

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

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

标准的PostgreSQL 包含了

POSTGRESQL  Postgres-XL  了解一下_python_06

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

Coordinator

POSTGRESQL  Postgres-XL  了解一下_mysql_07

datanode 

POSTGRESQL  Postgres-XL  了解一下_mysql_08

所以在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 在二次开发后的厉害之处,已经被证明了.

POSTGRESQL  Postgres-XL  了解一下_分布式_09

标签:事务,POSTGRESQL,Postgres,XL,XC,数据,POSTGRES
From: https://blog.51cto.com/u_14150796/6516010

相关文章

  • POSTGRESQL 创建一个表到底有什么说的? 可说的挺多的
    创建一张表,到底有什么说的, 下面是POSTGRESQL创建数据表的官方文档的内容截图. 那我们就往下看,到底我们可以说点什么建表的开头是关于临时表的问题,其中临时表的global和local,在目前的V12的版本中并没有具体的含义,问题1,POSTGRESQL怎么创建一个看似global的temparytab......
  • POSTGRESQL 主节点失败后, 在多变的情况下重新让他融入复制中
    POSTGRESQL 在主从流复制中,在主库失败切换后,从库变为主库后,如果主库不是因为硬件的原因,想继续拉起来,并且加入到新的复制关系中,一般都会通过pg_rewind的程序来进行拉起来.但不少问题反馈对pg_rewind在重新拉起旧主库出现问题,到底有什么情况下pg_rewind对你的数据库重新建立......
  • POSTGRESQL 设置hugepage 可以让系统使用内存更有效率,防止OOM
    https://www.percona.com/blog/why-linux-hugepages-are-super-important-for-database-servers-a-case-with-postgresql/https://bbs.huaweicloud.com/blogs/detail/156799Hugepage是什么,基于LINUX系统,大页面对虚拟内存管理是有必要的。除标准的4KB页面之外,还进行内存中的大页面......
  • POSTGRESQL 怎么通过explain 来分析SQL查询性能
    Explain命令是大多数数据库常用的一种展示SQL执行计划和cost的一种方式。在POSTGRESQL中EXPLAIN命令展示的信息比较详细,并且附带explain有不少的附加的命令来进行更多的展示。从命令来命令和功能来划分explainselecta.first_name,a.last_name,a.last_update,fa.film_idfrom......
  • POSTGRESQL 高可用 Patroni VS Repmgr 到底哪家强(1)
    在众多postgresql高可用模式中,主要的参与者有两位,PatroniVSrepmgr基于这二者的功能优点以及缺点相信大部分人都不是太明确,下面将根据两篇翻译的文字合并,来对两个高可用的程序来做一个比较,consandpros。 1 Repmgr是一款开源的基于postgres复制基础上的高可用软件,他基于2......
  • POSTGRESQL 14 功能有啥吸引人的
    好多人还在用postgresql10 ,12这些版本的时候,POSTGRESQL已经开启了POSTGRESQL14的旅程。那么到底Postgresql14有什么吸引人的,那就需要了解一下。 https://sql-info.de/postgresql/postgresql-14/articles-about-new-features-in-postgresql-14.html想详细了解了可以到这个......
  • POSTGRESQL openGaussDB 体系架构
    Today听了一下墨天轮举办的OpenGaussDB的专题的训练营,下面是此次线上的OpenGaussDB的体系结构的介绍。这里根据介绍快速总结出此次介绍中OpenGaussDB的特点:1 OpenGaussDB针对国产的硬件系统,如鲲鹏等硬件系统有特殊的支持和性能调试,真多国产的硬件系统有优势。2OpenGaussDB主......
  • POSTGRESQL 事务控制(二) 事务开启 (写着费力,看着费劲系列)
    今天接着上回书,事务如果在处理中没有子事务,则实现和控制是十分容易的,但如果有子事务的情况下,子事务通过transactionState结构体来实现,(上次已经提到了),每一个transactionState都指向父事务的结构体的指针.在继续往下说之前,我们的提到clog, 这是理解后面要提到的一些事情的......
  • POSTGRESQL SERVERLESS 是POSTGRESQL 数据库的未来 (译)
    以下为翻译内容多年来,PostgreSQL一直备受瞩目,对于企业来说,POSTGRESQL流行是面临众多竞争后的选择。随着企业试图摆脱昂贵的传统关系型数据库管理系统(RDBMS),但仍希望坚持使用RDBMS,开源PostgreSQL是一种具有吸引力的、更经济实惠的替代方案。曾经有两个托管PostgreSQL服务(Aurora和RDS)......
  • POSTGRESQL NEON - Serverless 式的POSTGRESQL 数据库的独特技能 分支数据
    之前没有关注过SERVERLESS的数据库产品之前,我很少会关注SERVERLESS的东西,因为一直在实体机数据库类型打拼的我,从来不关心什么 云原生什么SERVERLESS,Idon'tcareaboutthat,it'snotmybusiness!!!!但是后来上云了,上的很深,没法了,开始关注什么是云原生,什么是POALRDB 最......