Improve re-opening dhandles given many concurrent readers

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: DHandles
    • None
    • Storage Engines, Storage Engines - Foundations
    • 972.246
    • None
    • None

      After picking up a new checkpoint, the next access by any session finds its cached dhandle marked OUTDATED in __session_find_dhandle ([src/session/session_dhandle.c:139-143|src/session/session_dhandle.c]), discards it, and attempts to reopen. Reopening a not-yet-open dhandle requires an exclusive write lock (__wt_session_lock_dhandle). With a large number of concurrent reader sessions, they all race to acquire the same exclusive write locks. Each failed attempt spins through the yield loop at [src/session/session_dhandle.c:280-285|src/session/session_dhandle.c] and increments dhandle_lock_blocked.

      Please refer to WT-17761 for more details.

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

              Created:
              Updated: