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

      • Remove all token bucket code.
      • Remove the adaptiveRetries client knob and URI option.
      • Add two new client knobs/URI options: maxAdaptiveRetries and enableOverloadRetargeting.
      • Full details in #1b15cd2 (see client-backpressure and uri-options changes)
      • 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)

      • #1b15cd2: There are both new tests added and existing tests updated.

      Context for other referenced/linked tickets

      •  
      Show
      Summary of necessary driver changes Remove all token bucket code. Remove the adaptiveRetries client knob and URI option. Add two new client knobs/URI options: maxAdaptiveRetries and enableOverloadRetargeting . Full details in #1b15cd2 (see client-backpressure and uri-options changes) 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) #1b15cd2 : There are both new tests added and existing tests updated. Context for other referenced/linked tickets  
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-6274 In Code Review 2.3.0
      CXX-3439 Backlog
      CSHARP-5941 In Progress
      GODRIVER-3844 In Progress
      JAVA-6141 In Progress
      NODE-7491 Needs Review
      PYTHON-5767 Done
      PHPLIB-1814 Backlog
      RUBY-3794 Fixed 2.24.0
      RUST-2385 Fixed 3.6.0
      $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 In Code Review 2.3.0 CXX-3439 Backlog CSHARP-5941 In Progress GODRIVER-3844 In Progress JAVA-6141 In Progress NODE-7491 Needs Review PYTHON-5767 Done PHPLIB-1814 Backlog RUBY-3794 Fixed 2.24.0 RUST-2385 Fixed 3.6.0

      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.

      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.
      • Update the backpressure code examples completed in DRIVERS-3378 - handled separately in DRIVERS-3438

            Assignee:
            Noah Stapp
            Reporter:
            Daria Pardue
            Daria Pardue Daria Pardue
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: