MongoDB Documentation, Release 3.0.4 Adding a member to the replica set does not always increase the fault tolerance. However, in these cases, additional members can provide support for dedicated functions, such as backups or reporting. Use Hidden and Delayed Members for Dedicated Functions Add hidden (page 569) or delayed (page 570) mem- bers to support dedicated functions, such as backup or reporting. Load Balance on Read-Heavy Deployments In a deployment with very high read traffic, you can improve read throughput by distributing reads to secondary members. As your deployment grows, add or move members to alternate data centers to improve redundancy and availability. Always ensure that the main facility is able to elect a primary. Add Capacity Ahead of Demand The existing members of a replica set must have spare capacity to support adding a new member. Always add new members before the current demand saturates the capacity of the set. Distribute Members Geographically To protect your data if your main data center fails, keep at least one member in an alternate data center. Set these members’ priority to 0 to prevent them from becoming primary. Keep a Majority of Members in One Location When a replica set has members in multiple data centers, network partitions can prevent communication between data centers. To replicate data, members must be able to communicate to other members. In an election, members must see each other to create a majority. To ensure that the replica set members can confirm a majority and elect a primary, keep a majority of the set’s members in one location. Use replica set tag sets (page 635) to ensure that operations replicate to specific data centers. Tag sets also allow the routing of read operations to specific machines. Data Center Awareness (page 207) and Operational Segregation in MongoDB Deployments (page 208). Enable journaling to protect data against service interruptions. Without journaling MongoDB cannot recover data after unexpected shutdowns, including power failures and unexpected reboots. All 64-bit versions of MongoDB after version 2.0 have journaling enabled by default. If your application connects to more than one replica set, each set should have a distinct name. Some drivers group replica set connections by replica set name. Replica Set Naming 573 9.2. Replication Concepts Use Journaling to Protect Against Power Failures See also: Target Operations with Tag Sets Determine the Distribution of Members