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

Skip writing txn-id to data store when not needed

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.0, 4.4.0-rc6, 4.7.0
    • Affects Version/s: None
    • Component/s: None
    • None
    • 5
    • Storage - Ra 2020-05-04, Storage - Ra 2020-05-18

      From the comment in WT-6002, it appears that there might be cases we are storing transaction IDs in the data store, when the workload doesn't even use timestamp:

      For the update-only-btree workload, you can catch this in the test in __cell_pack_value_validity:

          /* Globally visible values have no associated validity window. */
          if (durable_start_ts == WT_TS_NONE && start_ts == WT_TS_NONE && start_txn == WT_TXN_NONE &&
            durable_stop_ts == WT_TS_NONE && stop_ts == WT_TS_MAX && stop_txn == WT_TXN_MAX) {
              ++*pp;
              return; 
          }    
      

      That test is true, except that start_txn != WT_TXN_NONE, and that triggers writing the transaction ID into the on-page cell, which adds about 5B to each cell where it happens, and so the page grows.

      Since wtperf doesn't even use timestamps, there is no durable history as such, we should not be storing the transaction id in the data store.

        1. fast-insert.js
          0.5 kB
          Sulabh Mahajan
        2. ftdc.rc6.ibench.tar
          60.21 MB
          Mark Callaghan
        3. ftdc.rc6.linkbench.tar
          20.39 MB
          Mark Callaghan
        4. image-2020-05-18-09-30-44-631.png
          54 kB
          Luke Pearson

            Assignee:
            luke.pearson@mongodb.com Luke Pearson
            Reporter:
            sulabh.mahajan@mongodb.com Sulabh Mahajan
            Votes:
            0 Vote for this issue
            Watchers:
            12 Start watching this issue

              Created:
              Updated:
              Resolved: