[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: |
|
||||
| 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: |
| Comment by Githook User [ 29/Mar/21 ] |
|
Author: {'name': 'Kaloian Manassiev', 'email': 'kaloian.manassiev@mongodb.com', 'username': 'kaloianm'}Message: |
| Comment by Githook User [ 26/Mar/21 ] |
|
Author: {'name': 'Kaloian Manassiev', 'email': 'kaloian.manassiev@mongodb.com', 'username': 'kaloianm'}Message: |
| Comment by Githook User [ 23/Mar/21 ] |
|
Author: {'name': 'Kaloian Manassiev', 'email': 'kaloian.manassiev@mongodb.com', 'username': 'kaloianm'}Message: |