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

Coordinator should resume coordinating commit for unfinished transactions on stepup

    XMLWordPrintable

Details

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

    Description

      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

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: