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

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.0.0-rc5, 4.1.1
    • Affects Version/s: None
    • Component/s: Sharding
    • Labels:
      None
    • Fully Compatible
    • v4.0
    • Sharding 2018-05-21, Sharding 2018-06-04, Sharding 2018-06-18
    • 0

      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.

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

              Created:
              Updated:
              Resolved: