-
Type: Task
-
Resolution: Done
-
Affects Version/s: None
-
Component/s: None
-
None
An update that remains in memory while 2 billion transactions are executed will become invisible. Force eviction of pages with very old updates – this should be very uncommon but the consequences of not handling it are fatal.
This should just involve storing the first update to a page in the WT_PAGE_MODIFY struct, and testing it against txn_global->id in _wt_eviction_page_check). We should do the same test in _wt_page_in_func, to be sure.
(FWIW, PostgreSQL has the exact same issue, for the same reason. See http://www.postgresql.org/docs/9.1/static/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND for details).