[SERVER-5839] Create different replica set states for each current use of RECOVERING Created: 14/May/12  Updated: 06/Dec/22  Resolved: 07/Oct/19

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Spencer Brody (Inactive) Assignee: Backlog - Replication Team
Resolution: Won't Do Votes: 4
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
Assigned Teams:
Replication
Participants:

 Description   

There are currently several different things that can put a replica set member into the RECOVERING state. It'd be nice to be able to easily tell why a node is in RECOVERING. We could create a different status for each type of operation that can put a member into RECOVERING. For example: SYNCING, BUILDING INDEX, STALE, etc.



 Comments   
Comment by Steven Vannelli [ 07/Oct/19 ]

Closing this ticket as Won't Do as the parent Epic is no longer needed at this time.

Comment by Siyuan Zhou [ 05/Oct/17 ]

There are 4 reasons that we may be in RECOVERING. Transition from RECOVERING to ROLLBACK is possible.

1) Briefly in RECOVERING after startup or initial sync. Ready to transition to
SECONDARY. No rollback.
2) After rollback, we need RECOVERING to reach the minValid, but we choose sync
sources very carefully to make sure the sync source has minValid. So rollback
during recovering after rollback is impossible.
3) Too stale. We cannot find a sync source, so rollback is also impossible.
4) Maintenance mode is RECOVERING. It's possible to rollback in this case and
should be safe.

Generated at Thu Feb 08 03:10:01 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.