-
Type:
Investigation
-
Resolution: Done
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Not Needed
For all replicated commands which run on a specific collection, an optional command parameter will be added which takes a collection UUID. If the provided UUID does not match that of the collection, the command will error. The error returned by the command will include the actual namespace of the provided UUID.
Description of Linked Ticket
Summary
Allow all write commands to specify a UUID instead of (or in addition to) a namespace.
Motivation
In certain scenarios (e.g. during oplog application following an initial sync) the C2C replicator process may encounter operations from the source cluster which are out-of-date with respect to the collections on the target cluster. If a collection was renamed prior to being synced, for instance, then some oplog events accumulated during the sync may refer to the original namespace of that collection; the replicator will also need to know how to handle the renameCollection event itself when it sees it in the stream. We therefore need to provide the replicator with a way to distinguish which version of a namespace the oplog event refers to, so that its operations can be applied idempotently on the target cluster. In the mongod replication system, this is achieved by performing operations by UUID rather than by namespace. To allow C2C replication to adopt a similar solution, we should add UUID validation to the standard write commands.
Cast of Characters
- Product Owner:
- Project Lead:
- Program Manager:
- Drivers Contact:
Documentation
Product Description
Scope Document
Technical Design Document