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

__split_multi_inmem set of first_dirty_txn

    • Type: Icon: Task Task
    • Resolution: Done
    • WT2.5.0
    • Affects Version/s: None
    • Component/s: None

      @michaelcahill, I had a question I didn't want forget, so I'm opening an issue:

      In __split_multi_inmem, we assign the first dirty transaction this way:

      /*
       * We modified the page above, which will have set the first dirty
       * transaction to the last transaction current running.  However, the
       * updates we installed may be older than that.  Take the oldest active
       * transaction ID to make sure these updates are not skipped by a
       * checkpoint.
       */
      page->modify->first_dirty_txn = S2C(session)->txn_global.oldest_id;
      

      But in __wt_split_insert we do it this way:

      /*
       * We modified the page above, which will have set the first dirty
       * transaction to the last transaction current running.  However, the
       * updates we are moving may be older than that: inherit the original
       * page's transaction ID.
       */
      right->modify->first_dirty_txn = page->modify->first_dirty_txn;
      

      We have the original page in __split_multi_inmem, should it be:

      page->modify->first_dirty_txn = orig->modify->first_dirty_txn;
      

            Assignee:
            michael.cahill@mongodb.com Michael Cahill (Inactive)
            Reporter:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: