pgxc架构下两阶段提交异常分析

本文探讨了在Pgxc(基于postgresql的分布式数据库架构)中,两阶段提交过程中可能出现的异常情况及处理机制。分析了在不同阶段节点宕机时,事务的一致性和恢复策略,包括协调节点与数据节点的角色、超时机制以及pgxc_clean进程在解决不一致状态中的作用。此外,通过跨节点转账程序验证了两阶段协议的实施和潜在问题。
摘要由CSDN通过智能技术生成

在当前去IOE的大潮下,分布式数据库正如火如荼的发展起来,特别是国产数据库呈现了井喷态势。一个典型的分布式数据库应该具有如下组件:①协调节点,也叫sql转发节点,用来进行sql协议支持,分布式执行计划生成与下发;②数据节点:用来存储数据,同时进行运算;③全局事务管理器,用来保证事务一致性。为了保证高可用,成熟的分布式数据库这些节点都具有主备切换功能。

 

Pgxc就是这样cn+dn+gtm的经典架构,底层基于postgresql数据库,pgxc架构如下:

应用连接到协调节点coordinator,数据hash到每个数据节点datanode,所有数据库节点组成完整一份数据,协调节点具有多副本,多个cn节点是无状态的(其实这里并不是真正意义上的无状态,首先ddl元信息需要在每个cn进行同步,否则连到不同的cn可能查到不一致的结果;还有一方面是两阶段残留的问题,这个问题我们后面再细细讨论)。Dn是主备架构,主备通过流复制进行同步。Gtm负责生成全局gxid+snapshot,这里的snapshot是为了保证全局的读一致性,做读可见性判断。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值