[SERVER-63512] Use optimized (no isSelf calls) reconfiguration on heartbeat reconfig Created: 09/Feb/22 Updated: 29/Oct/23 Resolved: 18/Mar/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 5.0.7 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Matthew Russotto | Assignee: | Matthew Russotto |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Backport Requested: |
v5.0
|
||||||||||||||||
| Sprint: | Repl 2022-03-07, Repl 2022-03-21 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Case: | (copied to CRM) | ||||||||||||||||
| Linked BF Score: | 0 | ||||||||||||||||
| Description |
|
On primaries, when our new config matches the old config aside from term, we skip some of the validation checks and in particular, we skip calling isSelf to find our own entry in the config (since it must be at the same index). This avoids doing a round of network calls to all other nodes for term increases associated with elections, which is especially important since a likely reason for an election is a node is down and may time out in the isSelf call, slowing failover. On secondaries, the heartbeatReconfig path does not do this check, which can result in the secondary not installing its config for a while. |
| Comments |
| Comment by Githook User [ 18/Mar/22 ] |
|
Author: {'name': 'Matthew Russotto', 'email': 'matthew.russotto@mongodb.com', 'username': 'mtrussotto'}Message: |
| Comment by Githook User [ 18/Mar/22 ] |
|
Author: {'name': 'Matthew Russotto', 'email': 'matthew.russotto@mongodb.com', 'username': 'mtrussotto'}Message: (cherry picked from commit e43a65ada2aea66c9ab21134bbd72a71fa581758) |
| Comment by Githook User [ 15/Mar/22 ] |
|
Author: {'name': 'Matthew Russotto', 'email': 'matthew.russotto@mongodb.com', 'username': 'mtrussotto'}Message: |