Best Practices

Here you will find our technical and procedural recommendations for a successful migration, based on our collective experiences.

General

  1. Over-provision the destination for the duration of the migration process

  2. Build indexes later in the CDC phase

  3. Use UAT and DEV post-migration average object size to get accurate estimates for PROD data size and disk sizes

  4. Monitor the process

    1. CPU, Memory, Disk IO on the source and destination

    2. CPU and Memory for Dsync process

    3. Dsync throughput and replication lag

Database-specific recommendations

Cosmos DB RU destinations

  1. Enable server-side retries in Cosmos DB configuration

  2. Cosmos DB RU consumes a lot of resources for batch writes (~3-5 RU per write). When using as a destination for a large migration, make sure to provision at least 8K RUs for default settings

MongoDB destinations:

  • For large (multi-TB) migrations use w:majority write concern (default on Atlas) and increase replWriterThreadCount if there's CPU and disk headroom (e.g. try 64 for M200)

  • Disable backups

  • Set oplog to a fixed size in Atlas

  • Use network compression in the connection string when Atlas is in a different region or availability zone - this will help save network costs

Dsynct Enterprise:

  • Use a dedicated disk for Temporal database (recommended 3000 IOPS, 125 MBps)

Last updated