Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-82865

Lightweight collection acquisition for findOneById

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Catalog and Routing

      PERF-4548 identified AutoGetCollection as one important source for findOneById regressions on 7.0. It's also one of the largest contributors to latency in absolute terms.

      PERF-4741 created a POC with much simpler logic to acquire a collection for the specific case of findOneById, showing significant improvements for some workloads (e.g. 20% for ycsb_100read on top of PERF-4696).

      The main changes of PERF-4741 are:

      • Not taking any global locks on the fast path, relying instead on a "hazard-pointer like" mechanism.
      • Doesn't canonicalize the query.
      • Doesn't instantiate AutoStatsTracker.
      • Doesn't take storage tickets on the fast path, it uses a rudimentary rate limiter based on a semaphore, it continues to take locks and tickets on the slow path.

            Assignee:
            backlog-server-catalog-and-routing [DO NOT USE] Backlog - Catalog and Routing
            Reporter:
            daniel.gomezferro@mongodb.com Daniel Gomez Ferro
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated: