Summary:
Speed up crash recovery by avoiding full undo log traversal when restoring IX table locks for active transactions.
Problem:
During crash or fast-shutdown recovery, InnoDB must restore IX locks for transactions that were active at shutdown. Today, it may need to scan large undo chains to discover the modified table IDs, even when only a few tables were touched.
Proposed approach:
Use the unused FIL_PAGE_PREV field of undo pages to create a sparse per-transaction skip list that links only undo pages introducing previously unseen table IDs. Recovery can traverse this skip list instead of all undo records.
Expected benefits:
• Much faster recovery of modified table IDs
• Faster database opening after crash or fast shutdown
• No observable runtime behavior change
• Normal rollback and purge chains remain unchanged
Summary:
Speed up crash recovery by avoiding full undo log traversal when restoring IX table locks for active transactions.
Problem:
During crash or fast-shutdown recovery, InnoDB must restore IX locks for transactions that were active at shutdown. Today, it may need to scan large undo chains to discover the modified table IDs, even when only a few tables were touched.
Proposed approach:
Use the unused FIL_PAGE_PREV field of undo pages to create a sparse per-transaction skip list that links only undo pages introducing previously unseen table IDs. Recovery can traverse this skip list instead of all undo records.
Expected benefits:
• Much faster recovery of modified table IDs
• Faster database opening after crash or fast shutdown
• No observable runtime behavior change
• Normal rollback and purge chains remain unchanged