[SERVER-54918] Prepare work to implement a serialiser between Sharded DDL and FCV switch between the old and new metadata format Created: 03/Mar/21  Updated: 29/Oct/23  Resolved: 08/Apr/21

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: 5.0.0-rc0

Type: Task Priority: Major - P3
Reporter: Kaloian Manassiev Assignee: Kaloian Manassiev
Resolution: Fixed Votes: 0
Labels: PM-1965-Milestone-0-Metadata-Format
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Backwards Compatibility: Fully Compatible
Sprint: Sharding 2021-04-05, Sharding EMEA 2021-05-03
Participants:

 Description   

As part of the FCV switch from 4.4 to 5.0, we upgrade the Sharding metadata format to be indexed by collection UUID and also to contain timestamps (on downgrade we do the inverse).

The CatalogCache is already prepared to handle the switch between the two formats gracefully, but DDL such as shardCollection or renameCollection will not work correct during this transition.

Because of this, we will implement a 2-Phase FCV barrier which will join all concurrently running DDL on the cluster, block any new one from starting, before upgrading/downgrading the metadata and as a second phase will unblock it. This ensures that DDL only needs to be aware of a single metadata format.



 Comments   
Comment by Githook User [ 07/Apr/21 ]

Author:

{'name': 'Kaloian Manassiev', 'email': 'kaloian.manassiev@mongodb.com', 'username': 'kaloianm'}

Message: SERVER-54918 Pull the metadata format decisions out of InitialSplitPolicy
Branch: master
https://github.com/mongodb/mongo/commit/ae4a8cfaef648518ea539dee841be2243d23eba3

Comment by Githook User [ 29/Mar/21 ]

Author:

{'name': 'Kaloian Manassiev', 'email': 'kaloian.manassiev@mongodb.com', 'username': 'kaloianm'}

Message: SERVER-54918 Use const & for the SplitPolicyParams in InitialSplitPolicy
Branch: master
https://github.com/mongodb/mongo/commit/a0904db4fb12ade7917759e9f9b7413ac2214a96

Comment by Githook User [ 26/Mar/21 ]

Author:

{'name': 'Kaloian Manassiev', 'email': 'kaloian.manassiev@mongodb.com', 'username': 'kaloianm'}

Message: SERVER-54918 Hide the `fcvLock` behind a proper FCV set/check interface
Branch: master
https://github.com/mongodb/mongo/commit/7b990588faa09671660de9301e523c532fdb73aa

Comment by Githook User [ 23/Mar/21 ]

Author:

{'name': 'Kaloian Manassiev', 'email': 'kaloian.manassiev@mongodb.com', 'username': 'kaloianm'}

Message: SERVER-54918 Split the `setFeatureCompatibility` flow into separate upgrade/downgrade functions
Branch: master
https://github.com/mongodb/mongo/commit/111b1c9e8a6de17ade7df02fc512dd0354acbae0

Generated at Thu Feb 08 05:34:52 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.