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

Docs for SERVER-33244: Make all lock acquisitions for transactions have 0 second timeout

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:


      New server parameter, maxTransactionLockRequestTimeoutMillis. Start up parameter and settable via setParameter, gettable via getParameter.

      Server parameter that dictates the max number of milliseconds that any transaction lock request will wait for lock acquisition. If an operation provides a greater timeout in a lock request, maxTransactionLockRequestTimeoutMillis will override it. If this is set to a negative value, it is inactive and nothing will be overridden. – should probably message this as set maxTransactionLockRequestTimeoutMillis to -1 to unset the override, and forget about the rest of the allowable negative values.

      The default of 0 milliseconds will ensure that transaction operations will immediately give up trying to take any lock if it is not immediately available. This prevents deadlocks between transactions. Setting a non-zero, positive value will also help obviate deadlocks, but won't abort a potentially deadlocked transaction operation for however long has been set.

      Scope of changes:

      • 4.0.txt
      • transactions
      • parameters

      Impact to other docs outside of this product:



      Engineering Ticket Description:

      Txns should do no waiting for locks, they should fail the lock acquisition immediately if there's any conflict. They should also abort the transaction if that happens.

            kay.kim@mongodb.com Kay Kim (Inactive)
            kay.kim@mongodb.com Kay Kim (Inactive)
            0 Vote for this issue
            1 Start watching this issue

              5 years, 38 weeks, 3 days ago