Innodb锁系统 Insert/Delete 锁处置及死锁示例分析

Innodb锁系统 Insert/Delete 锁处理及死锁示例分析?C.释放锁在事务提交或回滚时,会释放记录锁,调用函数为l

Innodb锁系统 Insert/Delete 锁处理及死锁示例分析
?

C.释放锁

在事务提交或回滚时,会释放记录锁,调用函数为lock_release_off_kernel

函数的逻辑很简单,遍历trx->trx_locks。

对于记录锁,调用lock_rec_dequeue_from_page(lock)

–>从lock_sys中删除

–>检查lock所在page上的等待的锁对象是否能被grant(lock_grant),如果可以,则唤醒等待的事务。

对于表锁,调用lock_table_dequeue(lock)

转载自:?[MySQL学习] Innodb锁系统(4) Insert/Delete 锁处理及死锁示例分析