-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: Btree
-
Storage Engines - Transactions
-
412.571
-
SE Transactions - 2026-07-17
-
3
Problem
When reading a page from disk into cache, if an update is instantiated onto the update chain, the code marks the btree dirty, the parent internal page dirty, and the leaf page dirty. The leaf page is then immediately marked clean again — but the btree and parent internal page remain dirty.
This causes checkpoints to unnecessarily write this tree even though no user-visible changes have occurred, wasting I/O and CPU.
Expected Behavior
Instantiating updates on page read is an internal bookkeeping operation. The btree and parent internal page should not be dirtied as a result, since the leaf page itself ends up clean. Checkpoints should not consider this tree modified.
Proposed Fix
Avoid marking the btree and internal page dirty in the first place when instantiating updates during a page read. Since the leaf page is subsequently marked clean, the dirty propagation up the tree is unnecessary and should be skipped.
Impact
Reduces unnecessary checkpoint work for trees that have had pages read from disk with instantiated updates but no actual user modifications.