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

Coordinator should resume coordinating commit for unfinished transactions on stepup

    XMLWordPrintable

    Details

    • Backwards Compatibility:
      Fully Compatible
    • Sprint:
      Sharding 2018-10-22, Sharding 2018-11-05, Sharding 2018-11-19, Sharding 2018-12-17
    • Linked BF Score:
      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

              Assignee:
              esha.maharishi Esha Maharishi
              Reporter:
              matthew.saltz Matthew Saltz
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: