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

API to set transaction commit timestamp from numerical timestamp

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 6.0.0-rc0, 5.0.9, 4.4.16
    • Affects Version/s: None
    • Component/s: None
    • 8
    • Storage - Ra 2022-03-07, Storage - Ra 2022-03-21
    • v5.0, v4.4

      Profiling shows that in bulk insert workloads significant time, up to 40% of the time per insert, is spent constructing the config string "commit_timestamp=..." in WiredTigerRecoveryUnit::setTimestamp, and then parsing it in WT_SESSION::timestamp_transaction. As suggested in WT-4451 can we add an API specifically to set the transaction commit timestamp passed as a number, without having to parse a config string?

      I think this should be a simple change, at least at a POC level, which the performance team could then validate against our performance tests that show this issue.

      (Note that the POC done in WT-4451 does not seem like it fully tested this concept, because it still passed a config string to indicate which timestamp to set, so we still had the expense of parsing a config string).

        1. poc.diff
          5 kB
        2. Screen Shot 2022-02-16 at 8.44.52 AM.png
          Screen Shot 2022-02-16 at 8.44.52 AM.png
          130 kB
        3. Screen Shot 2022-04-04 at 12.35.47 PM.png
          Screen Shot 2022-04-04 at 12.35.47 PM.png
          168 kB

            will.korteland@mongodb.com Will Korteland
            bruce.lucas@mongodb.com Bruce Lucas (Inactive)
            0 Vote for this issue
            26 Start watching this issue