Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-4346

Remove prepared updates from lookaside on reading the page.

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.0.4, 4.1.4, WT3.2.0
    • Affects Version/s: None
    • Component/s: None
    • None
    • 3
    • Storage Engines 2018-10-08

      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.

            Assignee:
            sulabh.mahajan@mongodb.com Sulabh Mahajan
            Reporter:
            sulabh.mahajan@mongodb.com Sulabh Mahajan
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: