分布式DB锁问题排查方法 - 阿里云HybridDB for PostgreSQL最佳实践

  1. 云栖社区>
  2. 阿里云数据库ApsaraDB>
  3. 博客>
  4. 正文

分布式DB锁问题排查方法 - 阿里云HybridDB for PostgreSQL最佳实践

德哥 2017-08-26 13:32:52 浏览1594
展开阅读全文

标签

PostgreSQL , Greenplum , 锁 , SEGMENT不一致 , gp_session_role=utility , gp_dist_random


背景

Greenplum(GPDB)是一个分布式数据库,分布式数据库的锁管理比单机更加复杂。例如在加锁时,需要对所有节点加锁(包括MASTER和所有的SEGMENT节点),在释放锁时,则需要释放所有节点的锁。

如果在释放过程中,MASTER的锁释放了,而SEGMENT锁没有释放,会造成什么问题呢?

不用说,会有很诡异的问题出现。例如某个会话锁了某一张表,但是会话退出时,主节点的锁释放了,SEGNEMT节点的锁没有释放。

那么用户在发起新的会话后,如果加载与之冲突的锁,当然要等待了。但是在MASTER节点你观察不到到底它在等待谁,你只能观察到它在等待。是不是很诡异呢?

锁查看方

网友评论

登录后评论
0/500
评论
德哥
+ 关注
所属云栖号: 阿里云数据库ApsaraDB