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

WiredTiger can walk long update chains for hot rows.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 3.6.0-rc5, WT3.0.0, 3.7.1
    • None
    • Storage 2017-12-04

    Description

      michael.cahill, when chasing WT-3739 (a YCSB, zipfian, r50/u50 workload), I realized we're walking update chains with 80K+ items on them. The problem is __wt_txn_update_check(), it walks the entire update chain looking for a possible collision.

      My guess is we've made this worse by adding WT_CURSOR.modify, because chains can get roughly 10x longer before we'll evict the page because of footprint.

      It seems to me we could check just the first update entry if the update chain has never been modified by a non-snapshot transaction (probably requires a flag byte in the WT_UPDATE structure, or a flag bit stolen from the WT_UPDATE structure's type?), or we could just set a flag on the tree if it's ever modified by a non-snapshot transaction (that should clear us with MongoDB?).

      Anyway, I'm tossing this to you because I think it's a pretty simple fix for hot rows, but I may be misunderstanding the issues.

      Attachments

        Issue Links

          Activity

            People

              sulabh.mahajan@mongodb.com Sulabh Mahajan
              keith.bostic@mongodb.com Keith Bostic (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: