Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-12716

Docs for SERVER-39860: Separate reporting of RSTL and PBWM locks metrics in serverStatus and currentOp

      Description

      Description:

      This is what the "locks" section looks like now (I ran jstests/noPassthrough/lock_stats.js with some extra logging)

      ~~~stats: {
      	"ParallelBatchWriter" : {
      		"acquireCount" : {
      			"r" : NumberLong(29)
      		}
      	},
      	"ReplicationStateTransition" : {
      		"acquireCount" : {
      			"w" : NumberLong(36)
      		}
      	},
      	"Global" : {
      		"acquireCount" : {
      			"r" : NumberLong(24),
      			"w" : NumberLong(6),
      			"R" : NumberLong(1),
      			"W" : NumberLong(5)
      		},
      		"acquireWaitCount" : {
      			"W" : NumberLong(1)
      		},
      		"timeAcquiringMicros" : {
      			"W" : NumberLong(500691)
      		}
      	},
      	"Database" : {
      		"acquireCount" : {
      			"r" : NumberLong(5),
      			"R" : NumberLong(3),
      			"W" : NumberLong(6)
      		}
      	},
      	"Collection" : {
      		"acquireCount" : {
      			"r" : NumberLong(5),
      			"w" : NumberLong(1)
      		}
      	},
      	"Mutex" : {
      		"acquireCount" : {
      			"r" : NumberLong(12),
      			"W" : NumberLong(1)
      		}
      	}
      }
      

      Engineering Ticket Description:

      The introduction of the RSTL lock has considerably changed the behavior the locks.Global section of serverStatus because the RSTL metrics are currently lumped in with global lock metrics. Diagnosability will be improved if these lock metrics are reported separately.

      In addition the inclusion of the PBWM metrics in the locks.Global section has hampered diagnosability in the past, so we should also separate those metrics out.

      Specific strawman proposal: introduce new locks.RSTL and locks.PBWM alongside locks.Global, which will now include only global lock metrics and not RSTL or PBWM metrics:

              "locks" : {
                      "Global" : {
                              "acquireCount" : ...
                              "acquireWaitCount" : ...
                              "timeAcquiringMicros" : ...
                      },
                      "PBWM" : ...
                      "RSTL" : ...
                      "Database" : ...
                      "Collection" : ...
                      "oplog" : ...
              },
      

      As part of this work we should also verify that clients waiting on the RSTL and PBWM locks will be reported as queued in the globalLock.currentQueue section, as the reported queues are an important diagnostic metric.

      Scope of changes

      Impact to Other Docs

      MVP (Work and Date)

      Resources (Scope or Design Docs, Invision, etc.)

            Assignee:
            kay.kim@mongodb.com Kay Kim (Inactive)
            Reporter:
            kay.kim@mongodb.com Kay Kim (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              4 years, 38 weeks, 3 days ago