|
When a nss.drop() command gets executed on a sharded collection, every shard participating in the DDL is currently adding an internal {op: drop} event to its oplog when the collection gets locally dropped.
This may generate some ambiguity from the perspective of a mongos serving a nss.watch() request (which is collecting oplog events from multiple shards) to establish the exact point in time at which the change stream may be considered as invalidated.
To solve this,
- The DropCollectionParticipant should hide the "local drop" event by marking the related oplog entry with the fromMigrate option.
- The DropCollectionCoordinator should issue a single regular drop event once the commit phase of the DDL is completed.
|