[SERVER-63523] Drain ongoing sharded DDL operations before enabling write blocking on shards Created: 10/Feb/22  Updated: 29/Oct/23  Resolved: 16/Mar/22

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

Type: Task Priority: Major - P3
Reporter: Jordi Serra Torrens Assignee: Jordi Serra Torrens
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-64245 Make SetUserWriteBlockModeCoordinator... Closed
Backwards Compatibility: Fully Compatible
Sprint: Sharding EMEA 2022-03-21
Participants:

 Description   

Sharded DDL operations are coordinated by the DB primary shard but may involve several participant shards. Participant shards need to perform local (shard) catalog changes. When enabling user write blocking (which would make participant shards unable of performing catalog changes), we must first ensure that there is no ongoing sharding DDL operation. Otherwise the ShardingDDLCoordinator would be unable to complete the operation, making the collection unavailable.

One way to achieve this is to make user write blocking enablement a two step process on sharded clusters.
1st step: Tell all shards to prevent new ShardingDDLCoordinators from starting and drain any ongoing ones.
2ns step: Tell all shards to start blocking user writes/ddl.



 Comments   
Comment by Githook User [ 16/Mar/22 ]

Author:

{'name': 'Jordi Serra Torrens', 'email': 'jordi.serra-torrens@mongodb.com', 'username': 'jordist'}

Message: SERVER-63523 Drain ongoing sharded DDL operations before enabling write blocking on shards
Branch: master
https://github.com/mongodb/mongo/commit/ceca8a9f7fb4c89af6ce2cd84379f049c4d4c19e

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