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

serverStatus blocks waiting for various locks

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major - P3 Major - P3
    • None
    • 2.4.0-rc0
    • Admin
    • None
    • Storage Execution
    • ALL

    Description

      Here is a quick analysis of the locks hanging off serverStatus:

      • recordStats requires a read lock (Client::ReadContext) for each db
      • locks requires "DBLocksMap::ref r(dblocks);" (not write lock related)
      • cursors requires client cursor lock
      • network requires local lock for network counters
      • repl requires lock on "ReplSetImpl"
        • master/slave: local db, and possibly queries all replication sources (other server oplog entries – first/last entry).

      The biggest issue is the recordStats since that requires a read lock for each db.

      Attachments

        Activity

          People

            backlog-server-execution Backlog - Storage Execution Team
            scotthernandez Scott Hernandez (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: