Remove prepared updates from lookaside on reading the page.

XMLWordPrintableJSON

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

      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
            Reporter:
            Sulabh Mahajan
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: