Mysql innodb如何恢复事务?

Mysql innodb如何恢复事务?,mysql,transactions,innodb,Mysql,Transactions,Innodb,我最近正在阅读InnoDB代码,需要在上面写一些代码。 我知道在S2PL中,冲突事务完成后,阻塞的事务将恢复。但是,我不确定InnoDB在阻塞后如何恢复事务,是否有线程处理此类工作?非常感谢。当需要锁但无法授予时,会将锁输入页面级别的锁队列中。释放任何锁时,释放事务将搜索队列并从队列中授予下一个新的非冲突锁。请参阅MySQL源代码中的storage/innobase/lock/lock0lock.c中的lock\u rec\u enqueue\u waiting、lock\u rec\u deq

我最近正在阅读InnoDB代码,需要在上面写一些代码。
我知道在S2PL中,冲突事务完成后,阻塞的事务将恢复。但是,我不确定InnoDB在阻塞后如何恢复事务,是否有线程处理此类工作?非常感谢。

当需要锁但无法授予时,会将锁输入页面级别的锁队列中。释放任何锁时,释放事务将搜索队列并从队列中授予下一个新的非冲突锁。请参阅MySQL源代码中的
storage/innobase/lock/lock0lock.c
中的
lock\u rec\u enqueue\u waiting
lock\u rec\u dequeue\u from\u page
中的
lock\u grant
,等等。

当需要锁但无法授予时,锁会进入页面级别的锁队列。释放任何锁时,释放事务将搜索队列并从队列中授予下一个新的非冲突锁。请参阅MySQL源代码中的
storage/innobase/lock/lock0lock.c
中的
lock\u rec\u enqueue\u waiting
lock\u rec\u dequeue\u from\u page
lock\u grant