Postgres-XL概述

简言

Postgres-XL是一个开源项目,它为PostgreSQL透明地提供写可伸缩性和大规模并行处理。 它是一组紧密耦合的数据库组件,可以安装在多个系统或虚拟机上。

Write-scalable意味着Postgres-XL可以配置任意数量的数据库服务器,并且可以处理比单个独立数据库服务器多得多的写(更新SQL语句)。 可以有多个数据库服务器提供单个数据库视图。 来自任何数据库服务器的任何数据库更新对于运行在不同服务器上的任何其他事务都是立即可见的。 透明意味着您不必担心数据如何存储在多个数据库服务器内部。

您可以将Postgres-XL配置为在多台机器上运行。 它以分布式的方式存储数据,也就是说,分区或复制取决于为每个表选择的。 当您发出查询时, Postgres-XL会确定目标数据存储在何处,并将相应的计划分派给包含目标数据的服务。

在典型的web系统中,您可以拥有尽可能多的web服务器或应用程序服务器来处理事务。 但是,对于数据库服务器,通常不能这样做,因为所有更改的数据必须对所有事务可见。 与其他数据库集群解决方案不同,Postgres-XL提供了这种功能。 您可以安装任意数量的数据库服务器。 每个数据库服务器都为应用程序提供统一的数据视图。 任何服务器上的任何数据库更新对于从其他服务器连接数据库的应用程序都是立即可见的。 这是Postgres-XL最重要的特性之一。

Postgres-XL的另一个重要特性是MPP并行性。 您可以使用Postgres-XL处理业务智能、数据仓库或大数据的工作负载。 在Postgres-XL中,计划在协调器上生成一次,然后发送到各个数据节点。 然后执行此操作,数据节点彼此直接通信,每个节点都知道从何处接收需要发送的元组,以及需要将元组发送到何处。

Postgres-XL的目标

Postgres-XL的最终目标是跨所有类型的数据库工作负载提供具有ACID一致性的数据库可伸缩性。 也就是说,Postgres-XL应该会提供以下特性:

  • Postgres-XL应该提供多个服务器来接受来自应用程序的事务和语句,这些事务和语句被称为“协调器”流程。
  • 任何协调器都应该为应用程序提供一致的数据库视图。 来自任何协调器的任何更新都必须是实时可见的,就好像这些更新是在单个PostgreSQL服务器中完成的一样。
  • Postgres-XL应该允许数据节点以高效并行的方式彼此直接通信执行查询。
  •  数据表应该能够存储在指定为复制或分布式(称为片段或分区)的数据库中。 Replication和 distribution应该对应用程序透明;也就是说,这样的复制和分布式表被视为单个表,每个记录/元组的位置或副本数量由Postgres-XL管理,应用程序不可见。
  • Postgres-XL为应用程序提供了兼容的PostgreSQL API。
  • Postgres-XL应该提供底层PostgreSQL数据库服务器的单一统一视图,以便SQL语句不依赖于表的实际存储方式 。

Postgres-XL关键组件

Postgres-XL由三个主要组件组成: GTM (Global Transaction Manager), Coordinator 和Datanode.

GTM (Global Transaction Manager)

GTM是Postgres-XL提供一致性事务管理和元组可见性控制的关键组件。 PostgreSQL的事务管理基于MVCC(多版本并发控制)技术。 Postgres-XL将这种技术提取到单独的组件(如GTM)中,以便任何Postgres-XL组件的事务管理都基于单个全局状态。 详情请看 Chapter 50.

Coordinator

协调器是应用程序数据库的接口。 它的作用类似于传统的PostgreSQL后端流程,但是协调器不存储任何实际数据。 实际数据由数据节点存储。 协调器接收SQL语句,根据需要获取全局事务Id和全局快照,确定涉及哪些数据节点,并要求它们执行(部分)语句。 当向datanodes发出语句时,它与GXID和全局快照相关联,以便多版本并发控制(MVCC)属性扩展到集群范围。

Datanode

Datanode实际上存储用户数据。 数据表可以分布在数据节点之间,或者复制到所有数据节点。 Datanode没有整个数据库的全局视图,它只负责本地存储的数据。 协调器将按照下面的描述检查传入的语句,并制定子计划。 然后根据需要将这些数据与GXID和全局快照一起传输到每个Datanode。 datanode可以在不同的会话中接收来自不同协调器的请求。 但是,由于每个事务都是唯一标识的,并且与一致的(全局)快照相关联,所以每个Datanode都可以在其事务和快照上下文中正确执行。

Postgres-XL继承自PostgreSQL

Postgres-XL是PostgreSQL的扩展,继承了它的大部分特性。 它是PostgreSQL及其原始Berkeley代码的开源后代。 它支持大部分SQL标准,并提供许多现代特性 :

  • 复杂查询
  • 外键
  • 触发器
  • 视图
  • 事务完整性,但SSI除外,它的支持是不完整的
  • 多版本并发控制

此外,与PostgreSQL类似,用户可以通过许多方式扩展Postgres-XL,例如添加新的:

  • 数据类型
  • 函数
  • 运算符
  • 聚集函数
  • 索引方法
  • 过程语言

只要遵循PostgreSQL许可,任何人都可以免费使用、修改和分发 Postgres-XL,可以是私有的、商业的,也可以是学术的。

翻译自:https://www.postgres-xl.org/documentation/intro-whatis-postgres-xl.html

转载于:https://my.oschina.net/jennerlo/blog/2993081

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值