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

Consider sending database version for all commands allowed in a transaction

    XMLWordPrintableJSON

Details

    • Sharding

    Description

      The only command allowed in a transaction that currently sends database version is distinct. Similarly to SERVER-37501, this allows transactions to take locks for databases that the router coordinating the transaction is stale for, which would force database versioned writes outside the transaction that trigger a stale database version error to wait for the transaction to complete before the shard is able to refresh its database version metadata (because it requires an exclusive lock on the database).

      If all of the commands that run in a transaction sent database version, then a transaction wouldn't be able to take locks for a database it has stale metadata for, avoiding this.

      Attachments

        Activity

          People

            backlog-server-sharding [DO NOT USE] Backlog - Sharding Team
            jack.mulrow@mongodb.com Jack Mulrow
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: