Exclude special config cursors from cursor cache search

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Cursors
    • None
    • Storage Engines - Foundations
    • 265.968
    • None
    • None

      wt_cursor_cache_get is attempted for every URI passed to WT_SESSION::open_cursor, but only file, table, tiered and layered cursors ever set WT_CURSTD_CACHEABLE. Opens of any other cursor type still walk the full cache hash bucket for their URI and are guaranteed to miss. The walk is O(bucket depth), and bucket depth scales with the number of cached cursors in the session.

      WT-17579 fixed the one high-frequency instance (statistics cursors, opened per-transaction by MongoDB) via a config check. The remaining never-cacheable types still pay the futile walk: metadata:, backup:, log:, config:, version:, prepared_discover:, colgroup:, index:, complex table: cursors (multiple column groups), the metadata file, and custom data-source cursors. These need a type/URI-based exclusion, since NULL-config opens bypass the config check entirely.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Alexander Pullen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: