Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-36853

Coordinator should resume coordinating commit for unfinished transactions on stepup

    • Fully Compatible
    • Sharding 2018-10-22, Sharding 2018-11-05, Sharding 2018-11-19, Sharding 2018-12-17
    • 0

      Server changes:

      1. On step-up,
        1. Wait for the coordinator catalog to drain.
        2. Scan the coordinators table and for each document, if a corresponding TransactionCoordinator does not exist in the TransactionCoordinatorCatalog, create a TransactionCoordinator from the document, insert it into the catalog, and schedule a task to continue driving it to completion.
      2. Prevent external requests from reading the TransactionCoordinatorCatalog after stepup until the catalog has been populated from the durable state

      If this ticket is completed before "prepare" is ready for failover testing, additional server changes:

      • Add an override to mongos to send coordinateCommit to the config server
      • Add an override to the config server to not remove TransactionCoordinators from the catalog on finishing coordinating a commit (because a coordinateCommit retry from mongos will not be able to recover the decision from a local participant)

      These overrides should be removed under SERVER-37886.

      Testing

      • Same node steps up after stepping down
      • Different node steps up after stepping down

            Assignee:
            esha.maharishi@mongodb.com Esha Maharishi (Inactive)
            Reporter:
            matthew.saltz@mongodb.com Matthew Saltz (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: