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

Introduce the _flushReshardingStateChange command

    XMLWordPrintable

    Details

    • Backwards Compatibility:
      Fully Compatible
    • Sprint:
      Sharding 2021-03-22, Sharding 2021-04-05
    • Story Points:
      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

              Assignee:
              janna.golden Janna Golden
              Reporter:
              haley.connelly Haley Connelly
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: