-
Type:
Task
-
Status: Closed
-
Priority:
Major - P3
-
Resolution: Fixed
-
Affects Version/s: None
-
Component/s: None
-
Labels:None
-
Story Points:3
-
Sprint:Storage Engines 2019-07-29, Storage Engines 2019-08-12
-
Backport Requested:v4.2, v4.0, v3.6, v3.4
We have code that maintains a write generation on each page. Every time an update is added to a page the write generation is incremented. When the page is marked clean by reconciliation the write generation is reset to 0.
It is possible to construct a workload where checkpoints don't mark the page clean (there is always an update in front of the checkpoint), and the page is never evicted from cache either (never split). A case where this might be the case is a single document is being updated very regularly.
We should fix the write generation code to be resilient to the write generation wrapping, or implement a clean/dirty tracking mechanism that isn't susceptible to wrapping.