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

Introduce the _flushReshardingStateChange command

    XMLWordPrintableJSON

Details

    • Fully Compatible
    • Sharding 2021-03-22, Sharding 2021-04-05
    • 2

    Description

      command: _flushReshardingStateChanges(nss for shard to refresh on)

      context:
      In resharding, _flushRoutingTableCacheUpdatesWithWriteConcern is not safe to call when in the critical section. 
      SERVER-53258 introduces the _shardsvrFinishReshardCollection for when the coordinator persists its decision in the success case.

      However, when the coordinator errors, it is possible that the error will occur while the critical section is engaged. 

      This command should combine the logic for _shardsvrFinishReshardCollection and _flushRoutingTableCache++UpdatesWithWriteConcern so it is safe to call regardless of whether the shard refreshing is in the critical section.

      logic inside command
      if (critical section is held)

      { // ... do _shardsvrFinishReshardCollection behavior }

      else

      { // ... do _flushRoutingTableCacheUpdates behavior }

       

      Attachments

        Issue Links

          Activity

            People

              janna.golden@mongodb.com Janna Golden
              haley.connelly@mongodb.com Haley Connelly
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: