[SERVER-29697] Replace catchupTimeoutMillis with boolean field Created: 16/Jun/17 Updated: 06/Dec/22 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Osmar Olivo | Assignee: | Backlog - Replication Team |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Replication
|
| Participants: |
| Description |
|
catchupTimeoutMillis was introduced in order to allow Pv1 to preserve uncommitted writes in the event of an election. In 3.6, the only values that provide any deterministic guarantees for this field are -1 or 0. So why isn't it a boolean? Having it as a timeout value is confusing and encourages users to do the incorrect thing as it is not obvious that it is incorrect. If you wish to abort after some fuzzy period of time you should set the catchupTakeoverTimeoutMillis or manually abort using replSetAbortPrimaryCatchUp or stepDown. |