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

Special-case concurrency model for oplog, make reads not block as much

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 2.0.4
    • Component/s: MMAPv1, Replication, Storage
    • Labels:
    • Environment:
      Ubuntu 10.10 64-bit
    • Storage Execution

      It would be useful to special-case the concurrency model for the oplog so that reads don't block. Under sustained periods of high write load, secondaries can fall further and further behind the primary because of high lock% when trying to read from the oplog. But the oplog is a special beast that is an append-only (sorta, most of the time) capped collection. It might be possible to use this fact to make special locking rules that allowed reads to happen all the time, or at least dramatically reduce the period of lock contention.

      The situation will get markedly better with DB-level locking, but further special-casing could help as well. Currently we have to bump the horsepower on the nodes in the replica set, even if the boxes are otherwise healthy.

      There are sometimes reasons to actually write to the oplog manually. Would need to figure out a way to deal with those cases.

            Assignee:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            jared Jared D. Cottrell
            Votes:
            4 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: