TiDB 在遇到死锁时的行为。 TiKV 如有锁等待逻辑就会造成死锁。 TiDB 目前采用了全局死锁检测的方式,如果发现当前的等锁行为会形成死锁,就会立刻返回给 TiDB 告知死锁异常,通过这种方式直接把死锁拒绝在源头。
为了保证死锁检测服务的高可用,我们将该服务放在了特定 region leader 所在的 TiKV 实例上,当需要等待锁时,如果发现不是事务加的第一个锁就需要检测死锁,死锁检测请求中会携带如下信息:
目前死锁检测算法为:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3131451/ ,如需转载,请注明出处,否则将追究法律责任。