Re-evaluate if the deletion of transaction coordinator doc should continue to use w: 1

XMLWordPrintableJSON

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

      SERVER-115344 confirmed that the delete currently uses w: 1 as intended. However, the coordinateCommitTransaction command only waits for the decision to be acknowledged by the participants, both when waiting coordinating the commit and when recovering the commit. The completion promise (i.e. the one that gets fulfilled after the coordinator doc is deleted) is only used for determining when to remove the TransactionCoordinator from the TransactionCoordinatorCatalog here and for some error handling here. So it looks like that the delete is meant to be best-effort to avoid blocking the remaining steps in the TransactionCoordinator. If the write gets rolled back, the next primary would resume the coordinator with existing decision which would run to completion immediately and try to delete the doc again.

      While that works, we should consider using w: majority instead and adding a retry mechanism to avoid unnecessary recovery work after failover. 

            Assignee:
            Unassigned
            Reporter:
            Cheahuychou Mao
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: