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

Minimise the impact of FCV upgrade/downgrade between 4.4 and 5.0 with large routing tables

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 5.0.2, 5.1.0-rc0
    • Affects Version/s: 5.0.0-rc2
    • Component/s: None
    • None
    • Fully Compatible
    • v5.0
    • Sharding EMEA 2021-07-12, Sharding EMEA 2021-07-26

      The format of the sharding catalog has been changed starting from version 5.0. The change impacts the contents of all entries in the config.databases/collections/chunks/shards system collections and the upgrade/downgrade steps need to update a lot of data.

      The data updates are synchronised per collection under the chunks lock, which means that for collections with a lot of chunks, chunk migrations can be blocked for a longer time. Since the chunk commit happens during the migration critical section, any shard which attempts to commit a chunk migration at that point in time will block access to the portion of the collection that it holds.

      In order to mitigate this impact, it is proposed that we do 2 things:

      1. Make the beginning of setFCV stop the balancer and the end re-enable it (if it wasn't enabled already).
      2. Make chunk migration fail with a ConflictingOperationInProgress error if it attempts to commit at this point in time

      Option (1) can be done later since it needs to remember if the balancer was stopped, but (2) is fairly easy and can be done earlier.

            Assignee:
            paolo.polato@mongodb.com Paolo Polato
            Reporter:
            kaloian.manassiev@mongodb.com Kaloian Manassiev
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: