分布式事务型关系数据库 AntDB 锁集群

 

github 代码位置:https://github.com/ADBSQL/AntDB

QQ交流群:496464280

 

AntDB是基于postgres-xc架构的分布式数据库,在原有postgres-xc基础上,提供了oracle语法兼容,增强了集群在高并发大压力下的稳定性等多方面的改进。

 

下面主要介绍AntDB提供的锁集群功能。


锁集群

 

AntDB数据库集群包含多个coordinator节点,coordinator节点之间存在相互通信。在锁集群操作时,我们只需要在其中一个coordinator节点上执行锁集群语句即可,

 

锁集群语句为"SELECT PG_PAUSE_CLUSTER()",示例如下:

postgres=# SELECT PG_PAUSE_CLUSTER();
 pg_pause_cluster 
------------------
 t
(1 row)

 

锁集群发生后,除了所集群涉及的当前session可以继续执行sql等语句操作,其它任何连接到coordinaator上的session上都无法执行sql等语句操作,操作hang住,

等待集群锁释放才能继续执行,可以理解为各个coordinator上不再允许有新的连接进来执行应用操作。

 

释放集群锁

需要释放集群锁时,需要在锁集群涉及的session界面执行释放集群锁语句即可,释放集群锁语句为"SELECT PG_UNPAUSE_CLUSTER()",示例如下:
postgres=# SELECT PG_UNPAUSE_CLUSTER();
 pg_unpause_cluster 
--------------------
 t
(1 row)
释放集群锁后,所有的coordinator均可接受连接执行操作,原有的由于锁集群被hang住的语句恢复正常执行。

 

需要说明的是:

1.在集群正常运行状态下才能够锁集群成功,若有coordinator节点异常则锁集群操作失败;

2.执行完锁集群操作后执行"\q"或其它操作导致与coordinator连接断开,会自动触发释放集群锁操作;

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值