您的位置:首页 > 数据库

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

2018-01-01 23:31 531 查看
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连接断开,会自动触发释放集群锁操作;

参考:postgres-xl 锁功能

分布式事务型关系数据库 AntDB
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: