-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Cache and Eviction
-
Storage Engines
-
8
-
2024-07-09 - Nyan Cat
-
v8.0, v7.0, v6.0, v5.0
As part of WiredTiger's durable history, the time window is written to the disk to support MVCC with better performance. The stored time window can become obsolete and no longer need storage. This obsolete time window is removed automatically when the page is reconciled again, otherwise, this obsolete time window information is saved on disk until the page is modified.
The time information isn't as noticeable when the table has bigger values. Suppose the time information is noticeable for indexes where the values are smaller. To reduce the unnecessary use of the disk space by the obsolete time window information, we want the checkpoint cleanup to look for the pages that have the obsolete time window information and mark the page dirty to let the reconciliation remove the obsolete time window information.
To perform better cleaning of these obsolete time window pages, while evicting any clean page that has obsolete time window information we mark them dirty to let the reconciliation happen on the page and this reconciliation removes the obsolete time window information on the page.
Freeing obsolete time window information from a page shouldn't cause any overhead to the existing workload. Due to this reason, we limit the number of pages that are converted into dirty eviction per btree in a single checkpoint.