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

Consider sending database version for all commands allowed in a transaction

    • Sharding

      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.

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

              Created:
              Updated:
              Resolved: