[DOCS-12437] Docs for TOOLS-1862: Revise UUID support for MongoDB 4.0 Created: 07/Feb/19  Updated: 30/Oct/23  Resolved: 12/Dec/19

Status: Closed
Project: Documentation
Component/s: manual, Server
Affects Version/s: None
Fix Version/s: Server_Docs_20231030

Type: Task Priority: Major - P3
Reporter: Kay Kim (Inactive) Assignee: Kay Kim (Inactive)
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Documented
documents TOOLS-1862 Revise UUID support for MongoDB 3.6 Closed
Duplicate
duplicates DOCS-12438 Docs for TOOLS-1817: Add 'preserveUUI... Closed
Participants:
Days since reply: 5 years, 6 days ago
Epic Link: DOCSP-1769

 Description   

Description

Correction to auto-gen'ed ticket: For 4.0+ mongorestore (and not 3.6)

Description:

Adding a new flag --preserveUUIDs to mongorestore. Plus, the whole topic of UUID preservation (or not) probably needs its own section in the docs.

Engineering Ticket Description:

The approach in TOOLS-1813 turns out to have a number of edge cases that need to be fixed.

For mongodump:

  • Ensure UUIDs are dumped to collection metadata (probably just writing a test for existing behavior) (TOOLS-1815)
  • Ensure an error occurs if rename is seen during oplog dumping (probably just confirming existing tests/behavior) (confirmed)
  • Ensure an error occurs if FCV is modified during oplog dumping (new behavior) (TOOLS-1818)
    • A shortcut might be to error on any modification to admin.system.version

For mongorestore:

  • Add a --preserveUUIDs flag (TOOLS-1817 – may come after 3.6 GA unless we can fit it in)
  • With --preserveUUIDs, have the following behaviors:
    • Require the --drop flag or abort
    • Require collection metadata to contain UUID info or abort
    • Require the destination to be in FCV 3.6 or abort (MUST check both ways that FCV could appear)
    • Create collections with the desired UUID with a synthesized applyOps command
      • Follow procedure in SERVER-31906 for creating admin.system.version with a given UUID
    • Apply oplog without modification
  • Without --preserveUUIDs, have the following behaviors:
    • Strip UUID information when creating missing collections (probably just needs a test confirming restored collections are different)
    • When applying oplog entries, remove UUID related fields
      • Remove top level 'ui' field
      • Remove ‘o.dropTarget’ in op:’c’ entries where ‘o.renameCollection’ exists
      • Recurse stripping into nested ops in op:'c' entries where 'o.applyOps' exists

Scope of changes

Impact to Other Docs

MVP (Work and Date)

Resources (Scope or Design Docs, Invision, etc.)


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