2012-06-26 3 views
2

최근에 InnoDB 코드를 읽고 그것에 코드를 작성해야합니다. S2PL에서 충돌 트랜잭션이 완료된 후 차단 된 트랜잭션이 재개됩니다. 그러나, InnoDB가 블록 이후에 트랜잭션을 재개하는 방법을 확신하지 못한다면, 이런 종류의 작업을 처리하는 스레드가 있습니까? 고마워.innodb는 어떻게 트랜잭션을 재개합니까?

답변

0

잠금이 필요하지만 부여 할 수없는 경우 잠금은 페이지 수준의 잠금 대기열에 입력됩니다. 임의의 잠금이 해제되면, 해제 트랜잭션은 큐를 검색하고 다음으로 새로 충돌하지 않는 잠금을 큐에서 승인합니다. MySQL 소스 코드의 storage/innobase/lock/lock0lock.c에서 lock_rec_enqueue_waiting, lock_rec_dequeue_from_page, lock_grant 등을 참조하십시오.

관련 문제