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: Improvement
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Done
    • Affects Version/s: 2.0.4
    • Fix Version/s: None
    • Component/s: MMAPv1, Replication, Storage
    • Labels:
    • Environment:
      Ubuntu 10.10 64-bit


      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.


          Issue Links



              • Votes:
                4 Vote for this issue
                9 Start watching this issue


                • Created: