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

Have FTDC code paths obtain locks with a timeout.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 4.7.0, 4.4.19
    • Storage
    • None
    • Fully Compatible
    • v4.4
    • Execution Team 2020-01-13, Execution Team 2020-06-01, Execution Team 2020-06-15

    Description

      Currently FTDC takes out locks in two places (once when running WiredTiger and once when running with replication).
      WiredTiger: https://github.com/mongodb/mongo/blob/1dc2afc8b5ce09d88535049df2ad72adc0434cc8/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp#L60
      Replication: https://github.com/mongodb/mongo/blob/c1e7921e9d69bd9a37761deb58d119a324341a54/src/mongo/db/ftdc/ftdc_mongod.cpp#L47-L60 which calls into https://github.com/mongodb/mongo/blob/1dc2afc8b5ce09d88535049df2ad72adc0434cc8/src/mongo/db/stats/storage_stats.cpp#L57

      Both can wait forever which can be undesirable for FDTC. Instead it may be useful to utilize "tryLocks" such that an FTDC round can make progress and output data despite some pieces blocking.

      However such a change would also affect serverStatus output thus be an API change that can affect downstream callers.

      Attachments

        Issue Links

          Activity

            People

              gregory.noma@mongodb.com Gregory Noma
              daniel.gottlieb@mongodb.com Daniel Gottlieb
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: