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

Reduce overhead of cursor caching

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Configuration
    • Storage Engines
    • Megabat - 2024-05-14

      We tried to remove the MongoDB cursor caching layer in SERVER-82970, but we found regressions caused by extra overhead in the WiredTiger cursor caching layer.

      The main sources of overhead seem to come from two places:

      • Config string parsing
      • Having to close and re-open the actual dhandle. In the MongoDB layer, we just call reset() when caching a cursor, which does not appear to incur the same overhead.

      In the mixed_multi_deletes_batched workload, this is the time spent constructing a WiredTigerCursor:

      • Before: 3.0%
      • After: 6.6%

      And this is zoomed into the unindex path:
      Before:

      After:

        1. perf-test_phase-ycsb_100read_threads_128_flamegraph_connections_merged.svg
          937 kB
          Louis Williams
        2. Screenshot 2023-12-14 at 1.14.35 PM.png
          54 kB
          Louis Williams
        3. Screenshot 2023-12-14 at 1.14.52 PM.png
          42 kB
          Louis Williams

            Assignee:
            donald.anderson@mongodb.com Donald Anderson
            Reporter:
            louis.williams@mongodb.com Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            13 Start watching this issue

              Created:
              Updated: