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

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

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major - P3
    • Resolution: Done
    • 2.0.4
    • None
    • MMAPv1, Replication, Storage
    • Ubuntu 10.10 64-bit
    • Storage Execution

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              backlog-server-execution Backlog - Storage Execution Team
              jared Jared D. Cottrell
              Votes:
              4 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: