Server selection deprioritization only for overload errors on replica sets

XMLWordPrintableJSON

    • Needed
    • Hide

      Summary of necessary driver changes

      •  Update the deprioritization mechanism added in DRIVERS-3344 to apply only to overload errors for operations on replica sets

      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  Update the deprioritization mechanism added in DRIVERS-3344 to apply only to overload errors for operations on replica sets Commits for syncing spec/prose tests (and/or refer to an existing language POC if needed)   https://github.com/mongodb/specifications/commit/9a101dec57a95ebca1593c022fcf79cfff725577 for two new prose tests Context for other referenced/linked tickets   DRIVERS-3344
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-6245 In Code Review 2.3.0
      CXX-3421 Backlog
      CSHARP-5892 Fixed 3.7.0
      GODRIVER-3822 Ready for Work
      JAVA-6105 In Progress
      NODE-7452 Needs Verification
      PYTHON-5731 Done
      PHPLIB-1793 Blocked
      RUBY-3778 Fixed 2.24.0
      RUST-2365 In Progress
      $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-6245 In Code Review 2.3.0 CXX-3421 Backlog CSHARP-5892 Fixed 3.7.0 GODRIVER-3822 Ready for Work JAVA-6105 In Progress NODE-7452 Needs Verification PYTHON-5731 Done PHPLIB-1793 Blocked RUBY-3778 Fixed 2.24.0 RUST-2365 In Progress

      Summary

      The changes introduced in DRIVERS-3344 incorrectly deprioritize replica set servers on any retryable error instead of only on SystemOverloadedError. This conflicts with the server's technical design and introduces unwanted behavioral changes with read/write preferences such as primaryPreferred and secondaryPreferred.

      Motivation

      Who is the affected end user?

      Who are the stakeholders?

      How does this affect the end user?

      Are they blocked? Are they annoyed? Are they confused?

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

      Main path? Edge case?

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

      Minor annoyance at a log message? Performance concern? Outage/unavailability? Failover can't complete?

      Is this issue urgent?

      Does this ticket have a required timeline? What is it?

      Is this ticket required by a downstream team?

      Needed by e.g. Atlas, Shell, Compass?

      Is this ticket only for tests?

      Does this ticket have any functional impact, or is it just test improvements?

      Acceptance Criteria

      What specific requirements must be met to consider the design phase complete?

      • Clarify that drivers MUST apply server deprioritization to replica set servers only on SystemOverloadedError errors, superseding DRIVERS-3344.
      • Update tests to ensure that drivers correctly prioritize non-deprioritized servers across all topology types.

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

              Created:
              Updated: