-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Engines - Transactions
-
None
-
None
The delta generation code currently interleaves with full page reconciliation. The reconciliation code generates both a full page image and a delta page image (if possible) and then decides which one to use based on some criteria.
For load workloads, and particularly for load workloads that are inserting content into an index that has grown larger than the dirty working set in cache. A pattern emerges that could potentially benefit from a fast-path delta reconciliation.
The pattern is that an index page is read in, a single new entry is added in a random location on the page, and then the page is written back to stable storage. In this case, ideally delta generation would be able to find the single new record and issue a write of a delta page without needing to go through the process of a full reconciliation which can be CPU intensive.
The double (potential) benefit of this will be for checkpoint reconciliations. Checkpoint reconciliation is currently single threaded (each page is sequentially written back), and even once they are concurrent (WT-14519), the majority of work checkpoints need to do is in reconciliation. The more we can reduce that overhead, the faster checkpoints should complete, and the less disruptive they will be.
- related to
-
WT-16888 Add reconciliation statistics for where time is spent in checkpoint
-
- In Code Review
-