开发者社区 > PolarDB开源 > PolarDB 分布式版 > 正文

PolarDB-X这样环死锁的情况,如果过滤了这个等待关系是不是就丢失了,无法判断出环哈?

PolarDB-X为什么 https://zhuanlan.zhihu.com/p/481468406 中 “查询 DN 上 information_schema.innodb_locks/innodb_trx/innodb_lock_waits” 这步的时候可以 trx_b.trx_state != 'LOCK WAIT' 这个条件。。。

假设 txn1 和 txn3 都是单 sql 且需要在 DN1 DN2 都加锁, 应该会有

DN1 上: txn3 等 txn2, txn2 等 txn1

DN2 上: txn1 等 txn3

这样环死锁的情况,如果过滤了 trx_b.trx_state != 'LOCK WAIT',“txn3 等 txn2” 这个等待关系是不是就丢失了,无法判断出环哈~? 感觉是哪里我想错了

展开
收起
嘟嘟嘟嘟嘟嘟 2024-07-16 21:43:35 9 0
1 条回答
写回答
取消 提交回答
  • txn3 实际会有 2 个 DN 上的分支事务,这里的 trx_b 指的是单个 DN 上阻塞了其他事务的事务(即 trx_a 等 trx_b),在 DN1 上, txn3 的分支事务等 txn2 的分支事务这个关系不会丢的,DN1 上 txn3 的分支事务会出现在 SQL 里的 trx_a 返回。
    此回答整理自钉群“阿里云 PolarDB-X 开源交流群”

    2024-07-17 08:13:45
    赞同 11 展开评论 打赏

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载