AntDB重分布流程记录

AntDB基于PGXC开发,保留了原PGXC的重分布逻辑,本文记录了常见的重分布流程。

集群环境

coordinator节点:cd1、cd2
datanode节点:dn1、dn2、dn3


案例1

概述
重分布前 重分布后
重分布CASE 重分布SQL 分片方式 分片函数 分片字段 分片节点 分片方式 分片函数 分片字段
1、复制表重分布成复制表。2、节点减少。 alter table t to node(dn1, dn3); R × × dn1、dn2、dn3 R × ×
重分布流程
cd1 -> cd2 : SELECT pg_catalog.pg_try_advisory_xact_lock_shared(65535, 65535)
cd1 -> dn2 : START TRANSACTION ISOLATION LEVEL read committed READ WRITE
cd1 -> dn2 : TRUNCATE public.t
cd1 -> cd2 : START TRANSACTION ISOLATION LEVEL read committed READ WRITE
cd1 -> cd2 : alter table t to node(dn1, dn3);
cd1 -> dn2 : PREPARE TRANSACTION 'T1906'
cd1 -> cd2 : PREPARE TRANSACTION 'T1906'
cd1 -> dn2 : COMMIT PREPARED 'T1906'
cd1 -> cd2 : COMMIT PREPARED 'T1906'

案例2

概述
重分布前 重分布后
重分布CASE 重分布SQL 分片方式 分片函数 分片字段 分片节点 分片方式 分片函数 分片字段
1、复制表重分布成复制表。2、节点变化。 alter table t to node(dn1, dn2); R × × dn1、dn3 R × ×
重分布流程
cd1 -> cd2 : SELECT pg_catalog.pg_try_advisory_xact_lock_shared(65535, 65535)
cd1 -> dn1 : START TRANSACTION ISOLATION LEVEL read committed READ WRITE
cd1 -> dn1 : COPY public.t TO STDOUT
cd1 -> dn3 : START TRANSACTION ISOLATION LEVEL read committed READ WRITE
cd1 -> dn3 : TRUNCATE public.t
cd1 -> dn2 : START TRANSACTION ISOLATION LEVEL read committed READ WRITE
cd1 -> dn2 : COPY public.t FROM STDIN
cd1 -> cd2 : START TRANSACTION ISOLATION LEVEL read committed READ WRITE
cd1 -> cd2 : alter table t to node(dn1, dn2);
cd1 -> dn1 : PREPARE TRANSACTION 'T1907'
cd1 -> dn3 : PREPARE TRANSACTION 'T1907'
cd1 -> dn2 : PREPARE TRANSACTION 'T1907'
cd1 -> cd2 : PREPARE TRANSACTION 'T1907'
cd1 -> dn1 : COMMIT PREPARED 'T1907'
cd1 -> dn3 : COMMIT PREPARED 'T1907'
cd1 -> dn2 : COMMIT PREPARED 'T1907'
cd1 -> cd2 : COMMIT PREPARED 'T1907'

案例3

概述
重分布前 重分布后
重分布CASE 重分布SQL 分片方式 分片函数 分片字段 分片节点 分片方式 分片函数 分片字段
1、复制表重分布成复制表。2、节点数增加。 alter table t to node(dn1, dn2, dn3); R × × dn1、dn2 R × ×
重分布流程
cd1 -> cd2 : SELECT pg_catalog.pg_try_advisory_xact_lock_shared(65535, 65535)
cd1 -> dn1 : START TRANSACTION ISOLATION LEVEL read committed READ WRITE
cd1 -> dn1 : COPY public.t TO STDOUT
cd1 -> dn3 : START TRANSACTION ISOLATION LEVEL read committed READ WRITE
cd1 -> dn3 : COPY public.t FROM STDIN
cd1 -> cd2 : START TRANSACTION ISOLATION LEVEL read
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值