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

config.databases writes with new version field should take the global IX lock rather than the fcvLock

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 4.0.0-rc5, 4.1.1
    • None
    • Sharding
    • None
    • Fully Compatible
    • v4.0
    • Sharding 2018-05-21, Sharding 2018-06-04, Sharding 2018-06-18
    • 0

    Description

      It has been decided that the fcvLock should only be utilized by operations that must do a network call while ensuring the FCV doesn't change.

      config.databases writes can simply be protected by the global IX lock, which ensures a conflict with setFCV's global S lock acquisition here and here. Combined with an upgrade/downgrade process for config.databases schema, this is sufficient to ensure config.databases entries will have version fields in FCV 4.0.

      This work is further necessary to ensure better concurrency between setFCV and sharding createDatabase command, because the fcvLock will continue to be held for the duration of setFCV, which currently would prevent createDatabase during upgrade/downgrade.

      Attachments

        Activity

          People

            esha.maharishi@mongodb.com Esha Maharishi (Inactive)
            dianna.hohensee@mongodb.com Dianna Hohensee (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: