Postgres-XL介绍

一、什么是Postgres-XL

XL的意思是:eXtensible Lattice,可以扩展的格子,即将PostgreSQL应用在多机器上的分布式数据库的形象化表达。

Postgres-XL 是一个完全满足ACID的、开源的、可方便进行水平扩展的、多租户安全的、基于PostgreSQL的数据库解决方案。

Postgres-XL 可非常灵活的应付各种负载,比如:

  • OLAP(通过MPP并行化)
  • OLTP
  • OLAP & OLTP
  • 操作数据存储
  • Key-value存储,包括JSON格式

不同的应用场景:

  • 支持商业智能应用(数据仓库&数据集市),因为PGXL支持MPP(Massively Parallel Processing)
  • Web2.0,数据库扩容的解决方案
  • 遗留系统的数据库扩容的解决方案
  • 新应用,可以先使用PostgreSQL,之后随着数据库变大使用PGXL扩容

PGXL底层为PostgreSQL,这意味着它支持所有支持PostgresSQL类型的驱动,包括: JDBC, ODBC, OLE DB, Python, Ruby, perl DBI, Tcl, and Erlang.

二、PostgreSQL与Postgres-XL

1994年,Postgre95发布,开源。 
1996年,PostgreSQL继承了Postgre95,发布。 
2010年,Postgres-XC发布。 
2012年,前PGXC核心开发者创建StormDB公司,进行了一些改进,包括对MPP并行化的性能改进和多租户安全。 
2013年,TransLattice收购了StormDB。 
2014年,将项目开源,命名为Postgres-XL。

三、Postgres-XC与Postgres-XL

PGXL的架构师和开发者 很多都是以前做PGXC的,PGXL的部分代码是从PGXC移植过来的。

比起功能性,PGXL更强调稳定性, 正确性和性能.

PGXL增加了一些重要的性能提升,比如MPP和replan avoidance on the data nodes,这些都是PGXC没有的。

PGXC目前集中在OLTP的业务上面,PGXL则更加灵活,可以应用于很多不同种类的业务上,比如可以用在大数据处理领域,除此,在多租户的环境中,PGXL也更加安全。

PGXL的社区非常开放。

四、PGXL架构基本知识

PGXL是一系列PostgreSQL数据库的集群,在上层看来就像使用一个数据库一样。根据设计方案的不同,每张表可以是replicated或是distributed的形式。

PGXL有三个主要组件,分别是GTM,Coordinator和Datanode。

    • GTM(Gloable Transaction Manager)负责提供事务的ACID属性;
    • Datanode负责存储表的数据和本地执行由Coordinator派发的SQL任务;
    • Coordinator负责处理每个来自Application的SQL任务,并且决定由哪个Datanode执行,然后将任务计划派发给相应的Datanode,根据需要收集结果返还给Application;

GTM通常由一台独立的服务器承担,因为GTM需要处理来自所有Coordinator和Datanode的事务请求。为了将 Coordinator和Datanode上进程的请求和响应聚集到一台机器上,可以配置GTM-Proxy。GTM-Proxy会减少GTM的负载,同 时会帮助处理GTM失效的情况。即便如此,GTM还是可能会发生单点失效问题,这时可以配置一个GTM-Standby节点作为GTM的备用节点。

每台机器最好同时配置一个Coordinator和一个Datanode,这样既不用担心二者的负载均衡,而且可以降低网络流量。

五、如何实现High Availability

可以对每个节点增加slave,就类似PostgreSQL的streaming replication一样。

GTM可以有一个GTM Standby。

针对自动的failover,目前可以使用Corosync/Pacemaker,虽然它们现在还不是核心项目。

六、PGXL的license

PGXL和PostgreSQL使用相同的LICENSE,截止到2015年,使用的还是Mozilla Public License.

时间: 2024-11-08 08:12:01

Postgres-XL介绍的相关文章

Postgres XL FAQ

Q. What does XL stand for? XL is short for eXtensible Lattice. It also connotes an extra large version of PostgreSQL, in this case across multiple systems. Q. Is this a "NoSQL" solution? No, Postgres-XL supports traditional SQL, strongly conform

PostGres xl ERROR: Snapshot too old - RecentGlobalXmin......

某天postgres xl集群执行pgxc_ctl stop all命令关闭集群,并重启集群,连接某节点,发觉读取某张表出现了以下错误 postgres=# select count(*) from t4; ERROR:  Snapshot too old - RecentGlobalXmin (260760) has already advanced past the snapshot xmin (210218) postgres=# 查看第一个节点的txid,如下 postgres=#  s

postgres入门介绍

mysql被oricle公司收购以后,PG就成了比较流行的开源数据库的首选,而且heroku上面不支持mysql,但是却大力支持PG,所以说,不得不学学PG,并非迫不得已的样子,至少以后PG会比较流行,学学固然是好的,自己学习的一点感想,供新手快速入门. 安装 你可以选择自行下载源码安装:http://www.postgresql.org/download/ 个人推荐使用apt-get方式安装,省心. sudo apt-get install postgresql-client #客户端 sud

Postgres数据库基本介绍

最近一直在做一个和PostgreSQL数据库相关的项目,把自己在这个过程中学习的知识记录下来.关于PostgreSQL数据库网上已经有太多的相关介绍了,为了博文的系统性还是先看一下维基百科对PostgreSQL数据库的介绍吧. PostgreSQL是自由的对象-关系型数据库服务器(数据库管理系统),在灵活的BSD-风格许可证下发行.它在其他开放源代码数据库系统(比如MySQL和Firebird),和专有系统比如Oracle.Sybase.IBM的DB2和Microsoft SQL Server之

PostgreSQL介绍以及如何开发框架中使用PostgreSQL数据库

最近准备下PostgreSQL数据库开发的相关知识,本文把总结的PPT内容通过博客记录分享,本随笔的主要内容是介绍PostgreSQL数据库的基础信息,以及如何在我们的开发框架中使用PostgreSQL数据库,希望大家多多提意见. 1.PostgreSQL数据库介绍 PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL.它具有很多不错的特点: 开源:PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 B

Docker推出了Docker云,给大家介绍下哈!

Docker推出了Docker云,给大家介绍下哈. 收到了Docker官网的邮件邀请,他们推出了Docker云:https://cloud.docker.com 账号信息栏目下有: 云提供商:眼下支持AWS.Digital Ocean,Microsoft Azure,SoftLayer,Packet. 代码提供商:眼下支持GitHub API键:用来首选Docker云平台的API 改动password,改动邮件地址,通知,计划,账单.核,兑换优惠码 watermark/2/text/aHR0cD

ubuntu crontab 定时备份postgres数据库并上传ftp服务器

最近公司要求备份数据库,所以就查了比较作的资料.废话不多说,入正题. 目的:定期备份ubuntu下的postgres数据库,打包上传到指定ftp服务器. 经过查找资料,解决方法: ①编写备份数据库.打包压缩.上传指定ftp的脚本. ②将该脚本加入到ubuntu定期计划任务crontab中. 下边是执行的步骤: ①编写shelll脚本:bk.sh,对于对shell脚本不了解的,可以百度w3cshool shell. 最好用root用户编写:su root. 编写完后,添加执行权限,新编写的shel

Postgres远程访问配置

在服务器上安装了Postgres数据库,然后通过客户端工具pgAdminIII来远程访问的过程中发现提醒服务器没有启动监听的错误.解决方法如下: 编辑Postgres安装路径下的/data/pg_hba.conf 文件: e.g: # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD # IPv4 local connections:host    all         all         127.0.0.1/32    

postgres源码目录结构

1.第一级目录介绍 |_postgres |_aclocal.m4------------config用的文件的一部分 |_config----------------config文件目录 |_configure-------------configure文件 |_contrib---------------contribution程序 |_COPYRIGHT----------版权信息 |_doc------------------文档目录 |_GNUmakefile.in-------mak

PostgreSQL9.2.4内核源码结构介绍

PostgreSQL的源代码可以随意获得,其开源协议也允许研究者任意修改,这里介绍一下PostgreSQL的源码结构以及部分实现机制.下载PostgreSQL源代码并减压后,其一级目录结构如下图: PostgreSQL源代码一级结构 其中config目录下存放一些系统的配置文件.contrib目录下包括一些没有集成到核心代码中的外围工具和一些实验性质的开发代码.doc目录下是帮助文档,由SGML编写.src为系统核心代码,其他文件属于编译安装相关文件. src目录,各子目录及其对应内容如下表: