-
Type: Bug
-
Resolution: Fixed
-
Priority: Critical - P2
-
Affects Version/s: 7.2.0, 7.3.0, 8.0.0-rc2
-
Component/s: Sharding
-
Cluster Scalability
-
Fully Compatible
-
ALL
-
v8.0, v7.3
-
Cluster Scalability 2024-4-29, Cluster Scalability 2024-5-13
Prior to PM-2322 (7.2), the recipient shards in the resharding operation would call MigrationDestinationManager::cloneCollectionIndexesAndOptions() to create the temporary resharding collection with the collection options, the _id index, and all secondary indexes with the collection still being empty. Post the work done under PM-2322, the recipient shards defer building all secondary indexes until after their initial data clone which speeds up the overall resharding operation. However, the IndexBuildsCoordinator::startIndexBuild() interface interprets the index specifications as-if they had been provided from the createIndexes command and fills the collection's default collation where the collation parameter had been omitted in the index specification. Instead, the absence of the collation parameter in the index specification must be interpreted as {locale: "simple"}.
One solution would be to change the RecipientStateMachine to explicitly fill in {locale: "simple"} into the index specifications from the listIndexes output. We should also look to see if there is a function which does this already or another method for IndexBuildsCoordinator which accepts the index specifications verbatim.
- is caused by
-
SERVER-77570 Do index building after cloning in resharding
- Closed
- is related to
-
SERVER-89953 listIndexes should list the collation if it's {locale: "simple"}.
- Backlog
- related to
-
SERVER-95013 Incorrect index built for timeseries measurement field through moveCollection.
- Closed
-
SERVER-26581 hinting index with different collation than query specifies should give an error or warning
- In Progress