Innodb行锁(2):堵塞事务的唤醒方式
一、关于Lock_iter::for_each迭代器的迭代方式
加入到LOCK SYSTEM hash结构使用的space_id和page no,比如函数lock_rec_insert_to_granted,那么至少同一个page no的lock_t会挂入同一个hash 链表(cell)中. 而在迭代的时候,我们通常是需要迭代是相同page并且某个heap no上锁了,这里以Lock_iter::for_each迭代器为例,因为这个迭代器用得很多,那么需要如下,
UNIV_INLINEulint lock_rec_fold(const page_id_t page_id) { return (ut_fold_ulint_pair(page_id.space(), page_id.page_no()));}