关于设置锁超时配置

你在tidb-server执行语句,例如要锁1行,这时下推到tikv,开始等待加锁,如果行上已经有锁,则等待 wait-for-lock-timeout时间,时间内锁释放,则加锁,超过时间锁还存在无法获取到锁,回退到tidb-server,tidb-server判断是否超过innodb_lock_wait_timeout,如超过,直接报错mysql 1205 ,如果还在时间内,继续下推到tikv重新等待加锁,如此反复。
可以这样理解,tidb-server加锁时如未获得锁会反复下推个tikv,每次tikv的等待时间由wait-for-lock-timeout控制,但是tidb-server这个sql的整个等待时间由innodb_lock_wait_timeout控制

1 个赞