【转】Postgres-XL介绍

转自:https://blog.csdn.net/yeruby/article/details/49004329

一、什么是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;

pgxl architecture

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.


Postgres-XL是一个强大的分布式数据库集群,可以在大规模数据环境中提供高可用性和高性能。使用Postgres-XL集群,您可以将数据分布在多个节点上,并平衡负载以提高系统吞吐量。 手动配置Postgres-XL集群需要以下步骤: 1. 安装Postgres-XL:首先,您需要在每个节点上安装Postgres-XL软件。可以通过源代码编译或使用预编译的软件包进行安装。确保每个节点的Postgres-XL版本一致。 2. 配置Postgres-XL集群:在每个节点上,您需要编辑Postgres-XL的配置文件来设置集群的参数。配置文件通常位于“$PGXL_HOME/pgxc_ctl/pgxc_ctl.conf”。在配置文件中,您需要指定每个节点的主机名和端口号,以及其他相关参数,如共享存储的路径和主节点的IP地址。 3. 初始化集群:一旦配置文件正确设置,您可以使用pgxc_ctl工具来初始化集群。该工具位于“$PGXL_HOME/pgxc_ctl/pgxc_ctl”。在pgxc_ctl命令行中,您可以执行“init all”命令来初始化集群。此操作将创建必要的数据库对象和配置表,以管理集群。 4. 启动集群:一旦初始化完成,您可以使用pgxc_ctl工具来启动集群。在pgxc_ctl命令行中,您可以执行“start all”命令来启动集群。此操作将启动每个节点上的Postgres-XL进程,并将其连接到集群。 5. 验证集群:一旦集群启动,您可以使用任何标准的PostgreSQL客户端工具连接到集群,并执行SQL查询。您还可以使用pgxc_ctl工具来检查所有节点的状态,并确保它们正常运行。 6. 扩展集群:如果您需要扩展Postgres-XL集群以支持更多的节点和更大的数据库负载,您可以使用pgxc_ctl工具来添加新的节点和重新平衡数据。具体的扩展步骤取决于您的集群架构和需求。 总结而言,手动配置Postgres-XL集群需要安装软件、编辑配置文件、初始化集群、启动集群、验证集群以及可能的扩展集群。这些步骤可以确保您的Postgres-XL集群正确设置并可用于处理大规模数据工作负载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值