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. image-2020-05-18-09-30-44-631.png
          image-2020-05-18-09-30-44-631.png
          54 kB
        2. ftdc.rc6.linkbench.tar
          20.39 MB
        3. ftdc.rc6.ibench.tar
          60.21 MB
        4. fast-insert.js
          0.5 kB

            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: