Replica set architecture mental model in MongoDB - Time & Space Complexity
When working with MongoDB replica sets, it's important to understand how the system handles data replication and failover.
We want to see how the time to replicate data grows as the amount of data or number of nodes increases.
Analyze the time complexity of data replication in a MongoDB replica set.
// Simplified replica set write operation
const writeData = (data) => {
primary.insert(data); // write to primary
secondaryNodes.forEach(node => {
node.syncFrom(primary); // replicate data
});
};
This code writes data to the primary node and then replicates it to all secondary nodes.
Look for repeated actions that affect performance.
- Primary operation: Loop over all secondary nodes to replicate data.
- How many times: Once per secondary node for each write.
As the number of secondary nodes grows, the replication work grows too.
| Input Size (number of secondaries) | Approx. Operations |
|---|---|
| 3 | 3 replication calls |
| 10 | 10 replication calls |
| 100 | 100 replication calls |
Pattern observation: The replication work increases directly with the number of secondary nodes.
Time Complexity: O(n)
This means the time to replicate data grows linearly with the number of secondary nodes.
[X] Wrong: "Replication time stays the same no matter how many secondaries there are."
[OK] Correct: Each secondary node must receive the data, so more nodes mean more replication steps.
Understanding how replication scales helps you explain system behavior and design choices clearly in interviews.
"What if we added asynchronous replication instead of synchronous? How would the time complexity change?"
Practice
Solution
Step 1: Understand replica set function
A replica set keeps copies of data on multiple servers to protect against failure.Step 2: Compare options
Only To keep copies of data on multiple servers for safety and availability describes this purpose correctly; others describe unrelated tasks.Final Answer:
To keep copies of data on multiple servers for safety and availability -> Option BQuick Check:
Replica set = data copies on servers [OK]
- Confusing replica sets with sharding
- Thinking replica sets speed up CPU usage
- Believing backups are manual in replica sets
Solution
Step 1: Recall primary election process
MongoDB automatically elects one server as primary to manage writes.Step 2: Eliminate incorrect options
Primary is not chosen by data size, age, or manual setting.Final Answer:
MongoDB automatically elects a primary among members -> Option AQuick Check:
Primary election = automatic [OK]
- Assuming user sets primary manually
- Thinking data size decides primary
- Believing oldest server is primary
Solution
Step 1: Understand failover in replica sets
If the primary fails, MongoDB elects a new primary from secondaries automatically.Step 2: Check other options
Replica sets do not stop working, do not have multiple primaries, and do not lose data immediately.Final Answer:
One of the secondaries is automatically elected as the new primary -> Option CQuick Check:
Failover = automatic new primary [OK]
- Thinking replica set stops on primary failure
- Believing multiple primaries exist simultaneously
- Assuming data loss happens immediately
Solution
Step 1: Identify write requirements in replica sets
Writes must go to the primary; if no primary exists, writes fail.Step 2: Analyze options
Healthy members or single member replica sets usually allow writes; secondaries do not accept writes.Final Answer:
No primary is elected in the replica set -> Option DQuick Check:
Writes need primary elected [OK]
- Thinking secondaries accept writes
- Assuming single member replica set blocks writes
- Ignoring primary election status
Solution
Step 1: Understand majority voting in replica sets
Replica sets use majority votes to elect primary; to tolerate 2 failures, majority must be > half of total members.Step 2: Calculate minimum members
With 5 members, majority is 3; losing 2 still leaves 3 members to form majority and keep primary.Final Answer:
5 members -> Option AQuick Check:
To survive 2 failures, need 5 members [OK]
- Choosing 3 or 4 members which can't tolerate 2 failures
- Not considering majority voting
- Assuming even number members are better
Ready to prove it?
Pass the test and this pattern moves unknown
