6. Replication and Sharding for High Availability and Scalability 🌐

Intermediate

MongoDB offers robust mechanisms to ensure data availability and horizontal scalability.

Replication:

  • Implements replica sets—groups of MongoDB servers maintaining the same data.
  • Provides automatic failover and data redundancy.
  • Configuration involves initializing a replica set:
rs.initiate()
  • Reads can be distributed across replica members for load balancing.

Sharding:

  • Distributes data across multiple servers (shards), enabling horizontal scaling.
  • Uses a shard key to partition data.
  • Components:
    • Shard server
    • Config server
    • Query router (mongos)
  • Example of enabling sharding:
sh.enableSharding("mydb")
sh.shardCollection("mydb.users", { _id: 1 })

Together, replication and sharding make MongoDB suitable for enterprise-grade, large-scale deployments, ensuring high availability and performance.