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

Improve persisted diagnostic information for indexes

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Storage Execution

      Motivation 
      Debugging issues with index builds is a reoccurring pain point (see SERVER-74973, SERVER-76336, ...)

      Current Diagnostic Options

      • logs - not useful for long, ongoing index builds if the persisted rollover
      • curOp() to get active index information - the output isn't easily parsable.
      • coll.getIndexes()
        • Until SERVER-76336 is viable, one problem node requires finding all the active index builds, and explicitly changing the commit quorum for each in-progress index. 
        • Since the curOp() information is difficult to parse, one could try to use  getIndexes(). However, the output doesn't indicate if the build is in progress, and calling setIndexCommitQuorum() on an already built index yields
      MongoServerError[IndexNotFound]: Cannot find an index build on collection '<db>.<collName>' with the provided index names
      • config.system.indexBuilds - useful to see which nodes have voted, but "a typical admin account COEs use doesn't have the __system privilege to read that collection"

      Request
      Either the addition of a new command or straight forward way to filter the status of active indexes.

      "It would be nice to have a diagnostic command like getIndexBuildStatus which at the very least, shows content from config.system.indexBuilds.

      It would be helpful if the command can report additional metadata such as:

      • The index creation time 
      • Local status
      • If it has been resumed
      • If there are any more index creation requests that are pending and what the requested quorum values are

      It would be great if the output could also overlap with the indexBuilds and indexBulkBuilds section of serverStatus."

       

            Assignee:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            haley.connelly@mongodb.com Haley Connelly
            Votes:
            0 Vote for this issue
            Watchers:
            12 Start watching this issue

              Created:
              Updated: