Details
-
Improvement
-
Status: Closed
-
Major - P3
-
Resolution: Fixed
-
None
-
None
-
None
-
3
-
Storage Engines 2018-10-08
Description
Following WT-4185, if there are prepared updates on a page that has been lookaside evicted, these lookaside entries will not be removed on reading the page back.
Lookaside sweep also doesn't remove a block that has prepared updates, in __wt_las_sweep:
/*
|
* There are several conditions that need to be met
|
* before we choose to remove a key block:
|
* * The entries were written with skew newest.
|
* Indicated by the first entry being a birthmark.
|
* * The first entry is globally visible.
|
* * The entry wasn't from a prepared transaction.
|
*/
|
if (upd_type == WT_UPDATE_BIRTHMARK &&
|
__wt_txn_visible_all(session, las_txnid, val_ts) &&
|
prepare_state != WT_PREPARE_INPROGRESS)
|
removing_key_block = true;
|
else
|
removing_key_block = false;
|
This ticket will track the effort of making sure that prepared updates get removed from lookaside at the time of page re-instantiation when reading the page back in memory.