For refine a collection's shard key, the formats of documents in config.chunks and config.tags were changed to allow updating their min boundaries without needing to update their _ids. In particular, _id in config.chunks is no longer a string concatenation of namespace and minbound and _id in config.tags is no longer an object containing namespace and minbound.
As part of this ticket, the server should be changed to:
- Gate the new format on FCV 4.4 and change the BSONField for the ChunkType class to expect _id as an OID
- Note
SERVER-42106made _id a string representation of an OID to defer upgrade/downgrade work until this ticket
- Note
- Upgrade (through setFeatureCompatibilityVersion command) should iterate through each document in config.chunks and config.tags and change their _ids to be in the new format
- Vice versa for downgrade through setFCV
In addition to basic integration testing, add integration coverage to ensure migrations in mixed binary version clusters work and that zone boundaries are respected before and after an upgrade/downgrade.
- has to be done after
-
SERVER-41230 Update FCV constants throughout server code following 4.2 branch
- Closed
- is depended on by
-
SERVER-44034 [refine shard key] Remove refineCollectionShardKey and config chunks and tags upgrade/downgrade code when 4.4 becomes last stable
- Closed