Finalize client backpressure implementation for phase 1 rollout

XMLWordPrintableJSON

    • Type: Spec Change
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • Component/s: Backpressure
    • None
    • Needed
    • Hide

      Summary of necessary driver changes

      • Spec links TBD
      • Drivers should include the following release note: "Added support for MongoDB 's Intelligent Workload Management (IWM) and ingress connection rate limiting features. The driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability," with a link to IWM page in Atlas, which which will be available with DOCSP-55426 & related Driver Docs, which will be available with DOCSP-57078. 

      Commits for syncing spec/prose tests
      (and/or refer to an existing language POC if needed)

      •  

      Context for other referenced/linked tickets

      •  
      Show
      Summary of necessary driver changes Spec links TBD Drivers should include the following release note: "Added support for MongoDB 's Intelligent Workload Management (IWM) and ingress connection rate limiting features. The driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability," with a link to IWM page in Atlas, which which will be available with DOCSP-55426 & related Driver Docs, which will be available with DOCSP-57078.  Commits for syncing spec/prose tests (and/or refer to an existing language POC if needed)   Context for other referenced/linked tickets  
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-6274 Blocked
      CXX-3439 Blocked
      CSHARP-5941 Blocked
      GODRIVER-3844 Blocked
      JAVA-6141 Blocked
      NODE-7491 Blocked
      PYTHON-5767 Ready for Work
      PHPLIB-1814 Blocked
      RUBY-3794 Blocked
      RUST-2385 Blocked
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } #scriptField td.willNotDo { background-color: #FF0000; /* Red color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-6274 Blocked CXX-3439 Blocked CSHARP-5941 Blocked GODRIVER-3844 Blocked JAVA-6141 Blocked NODE-7491 Blocked PYTHON-5767 Ready for Work PHPLIB-1814 Blocked RUBY-3794 Blocked RUST-2385 Blocked

      Summary

      We are rolling out client backpressure support in two phases. The first phase has the following requirements:

      • No token bucket, this version will include only exponential backoff and jitter for SystemOverloadedError **
      • Introduce a new knob controlling the maximum number of retries, with a default of 2.
      • Disable overload retargeting (deprioritized servers) by default. Add a knob to enable it.
      • Include retry metadata in outgoing requests, attach the number retry to outgoing command bodies so the server can observe the impact of retry storms.

      Motivation

      Who is the affected end user?

      Rapid release customers in the upcoming 8.3 version

      How does this affect the end user?

      Gives users a pathway for improved experience with the IWM server feature.

      How likely is it that this problem or use case will occur?

      -

      If the problem does occur, what are the consequences and how severe are they?

      -

      Is this issue urgent?

      8.3 is planned to come out in May; drivers should be targeting Apr 17 or earlier for releases.

      Is this ticket required by a downstream team?

      -

      Is this ticket only for tests?

      No

      Acceptance Criteria

      Update the spec and add relevant testing for the following:

      • Remove any language referencing the token bucket and the adaptiveRetries option.
      • Introduce a new option controlling the maximum number of retries, with a default of 2.
      • Disable overload retargeting (deprioritized servers) by default. Add an option to enable it.
      • Add a requirement to include retry metadata in outgoing requests: attach the number retry to outgoing command bodies so the server can observe the impact of retry storms.
      • Update the backpressure code examples completed in DRIVERS-3378 - AC TBD

            Assignee:
            Jib Adegunloye
            Reporter:
            Daria Pardue
            Daria Pardue Daria Pardue
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: