Sentinel quorum concept in Redis - Time & Space Complexity
When Redis Sentinel monitors servers, it needs to decide when enough Sentinels agree that a server is down. This agreement is called a quorum.
We want to understand how the time to reach this quorum grows as the number of Sentinels increases.
Analyze the time complexity of the following Redis Sentinel quorum check.
// Pseudocode for quorum check
int votes = 0;
for each sentinel in sentinels {
if (sentinel reports server down) {
votes++;
}
}
if (votes >= quorum) {
mark server as down;
}
This code counts how many Sentinels say the server is down and compares it to the quorum number.
We look for repeated steps in the code.
- Primary operation: Looping through all Sentinels to check their votes.
- How many times: Once for each Sentinel in the system.
As the number of Sentinels grows, the time to count votes grows too.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 checks |
| 100 | 100 checks |
| 1000 | 1000 checks |
Pattern observation: The number of checks grows directly with the number of Sentinels.
Time Complexity: O(n)
This means the time to decide if the quorum is reached grows in a straight line as more Sentinels join.
[X] Wrong: "The quorum check happens instantly no matter how many Sentinels there are."
[OK] Correct: Each Sentinel's vote must be checked one by one, so more Sentinels mean more work.
Understanding how quorum checks scale helps you explain how distributed systems keep data safe and available as they grow.
"What if Sentinel votes were stored in a data structure that allows instant counting? How would that change the time complexity?"
Practice
What does the quorum setting in Redis Sentinel control?
Solution
Step 1: Understand Sentinel quorum purpose
The quorum defines how many Sentinels must agree that the master is down before starting failover.Step 2: Eliminate unrelated options
Options about clients, timeouts, or replicas do not relate to quorum.Final Answer:
The number of Sentinels that must agree a master is down before failover -> Option DQuick Check:
Sentinel quorum = agreement count [OK]
- Confusing quorum with client limits
- Thinking quorum is a timeout setting
- Mixing quorum with replica count
Which of the following is the correct way to set the quorum to 3 in a Redis Sentinel configuration file?
sentinel monitor mymaster 127.0.0.1 6379 3
Solution
Step 1: Recall correct sentinel monitor syntax
The sentinel monitor command includes the master name, IP, port, and quorum number at the end.Step 2: Match options to syntax
Only sentinel monitor mymaster 127.0.0.1 6379 3 matches the full correct syntax with quorum as the last argument.Final Answer:
sentinel monitor mymaster 127.0.0.1 6379 3 -> Option CQuick Check:
Monitor command ends with quorum number [OK]
- Using 'sentinel quorum' command which does not exist
- Placing quorum before IP or port
- Confusing 'set' command with monitor
Given 5 Sentinels monitoring a master with quorum set to 3, what happens if only 2 Sentinels report the master as down?
Solution
Step 1: Understand quorum requirement
Quorum is 3, meaning at least 3 Sentinels must agree the master is down to start failover.Step 2: Analyze 2 Sentinels reporting down
Since only 2 Sentinels report down, quorum is not met, so failover will not start.Final Answer:
Failover does not start because quorum is not reached -> Option BQuick Check:
Quorum unmet = no failover [OK]
- Assuming failover starts with any Sentinel down report
- Thinking Sentinels restart on partial failure
- Believing master is removed automatically
You configured 4 Sentinels with quorum set to 3, but failover never happens even when the master is down. What is the most likely cause?
Solution
Step 1: Check quorum vs Sentinels count
Quorum is 3 but only 4 Sentinels exist; if some Sentinels are unreachable, quorum may not be met.Step 2: Identify cause of failover not triggering
If quorum is effectively higher than reachable Sentinels, failover won't start.Final Answer:
Quorum is set higher than the number of Sentinels available -> Option AQuick Check:
Quorum > available Sentinels blocks failover [OK]
- Ignoring Sentinel network issues
- Assuming master is always down
- Blaming Redis version without checking
You have 7 Sentinels monitoring a Redis master. To ensure high availability, you want failover to start only if a majority agrees the master is down. What is the best quorum value to set?
Solution
Step 1: Calculate majority of 7 Sentinels
Majority means more than half, so (7 / 2) = 3.5, rounded up to 4.Step 2: Choose quorum equal to majority
Setting quorum to 4 ensures failover starts only if most Sentinels agree.Final Answer:
4 -> Option AQuick Check:
Majority quorum = 4 for 7 Sentinels [OK]
- Setting quorum less than half
- Setting quorum equal to total Sentinels
- Not rounding up majority
Ready to prove it?
Pass the test and this pattern moves unknown
