Uploaded image for project: 'Rust Driver'
  1. Rust Driver
  2. RUST-954

Pin connections for cursors and transactions when talking to a load balancer

    • Type: Icon: New Feature New Feature
    • Resolution: Fixed
    • Priority: Icon: Unknown Unknown
    • 2.1.0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      When using cursors or transactions, the connection itself (not just the server selection criteria) must be pinned, i.e. the connection removed from the pool for the duration of usage of the cursor or transaction, and only returned afterwards [spec].

      • For cursors, the connection must remain pinned and used for all getMore commands until the server returns cursor ID 0 or close is called on the cursor (i.e. it's dropped).
      • For transactions, the connection pinning follows the same logic as sharded transaction mongos pinning.
      • Whether a connection is checked out for cursor pinning, transaction pinning, or otherwise needs to be tracked to enable detailed error messages.

            Assignee:
            abraham.egnor@mongodb.com Abraham Egnor
            Reporter:
            abraham.egnor@mongodb.com Abraham Egnor
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: