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

    • Icon: Improvement Improvement
    • Resolution: Done
    • Icon: Major - P3 Major - P3
    • None
    • 2.0.4
    • 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

        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: