Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-10837

Docs for SERVER-31114: Perform targeted invalidation on direct writes to the `config.transactions` collection

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 3.5.14, 3.6.0-rc0
    • Affects Version/s: None
    • Component/s: manual, Server
    • Labels:
      None

      Documentation Request Summary:

      Not sure if we document our internal collections, but this change treats the config.transactions collection specially and only allows records with the following structure in it (all fields are mandatory):

      • _id (BSON) - BSON serialization of a logical session id
      • txnNum (int32) - The last transaction, which started on this session
      • lastWriteOpTimeTs (Timestamp) - The timestamp of the last oplog entry written for this session

      Deleting a document from this collection invalidates the session's transaction information, which means that all retryability information is lost for that session.

      Dropping this collection will break the retryable writes feature and must never be done by users. The collection will be automatically recreated on stepUp/stepDown.

      Engineering Ticket Description:

      As implemented, direct writes to the config.transactions collection will invalidate the entire session transactions cache. This is not optimal, because session cleanup also performs direct writes to the sessions catalog and this can happen fairly frequently.

      Instead, when a document is available for the direct write, we should try to extract the session id from it and only invalidate that session.

            Assignee:
            kay.kim@mongodb.com Kay Kim (Inactive)
            Reporter:
            kay.kim@mongodb.com Kay Kim (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              6 years, 29 weeks, 4 days ago