ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Replication
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Context

      In this line of the primary liveness watchdog, we will cancel a pending stepdown due to unhealthy primary if our lastWritten == lastCommitted. However, I believe there may be cases where those timestamps are equal, but the primary is unable to make progress due to being unable to write oplog entries, such as a WT stall. This may result in increased write unavailability if the primary does not step down when it is unable to write oplog entries.

      Please note that I am not the most familiar with the primary liveness watchdog. We should double check if this hypothesis is correct and make sure we have accounted for edge cases with each check that may skip stepdown on the primary, as this directly impacts availability and recovery during stalls.

      Acceptance Criteria

      • Modify or replace the lastWritten == lastCommitted check in the primary liveness watchdog
      • Alternatively, verify that this is not a real issue and add a comment explaining why. In addition, we should add a log to the code path indicating that we are not stepping down for this reason

       

      EDIT: We may also need to ensure that nodes don't step down unnecessarily when writes are purposefully blocked, such as during fsync.

            Assignee:
            Unassigned
            Reporter:
            Xuerui Fa
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: