2

私は最近 InnoDB コードを読んでいて、コードを書く必要があります。S2PL では、ブロックされたトランザクションは、競合するトランザクションが終了した後に再開されることを知っています。ただし、InnoDB がブロック後にトランザクションを再開する方法がわかりません。この種の作業を処理するスレッドはありますか? どうもありがとう。

4

1 に答える 1

0

ロックが必要であるが付与できない場合、ロックはページ レベルでロック キューに入れられます。ロックが解放されると、解放トランザクションはキューを検索し、キューから次の新しく競合していないロックを許可します。MySQL ソース コードのlock_rec_enqueue_waitinglock_rec_dequeue_from_pagelock_grantなどを参照してください。storage/innobase/lock/lock0lock.c

于 2013-01-16T16:20:20.300 に答える