Add support for server selection's deprioritized servers to all topologies

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • Component/s: Server Selection
    • None
    • Needed
    • Hide

      Summary of necessary driver changes
      Enable server deprioritization on retry attempts for all topologies and apply deprioritized filtering before applying read/write preferences during server selection.

      •  

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

      •  

      Context for other referenced/linked tickets

      •  
      Show
      Summary of necessary driver changes Enable server deprioritization on retry attempts for all topologies and apply deprioritized filtering before applying read/write preferences during server selection.   Commits for syncing spec/prose tests (and/or refer to an existing language POC if needed) 3e577e879b60d3850ed617ea8f91eeec14c106e3   Context for other referenced/linked tickets  
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-6167 Needs Triage
      CXX-3383 Needs Triage
      CSHARP-5805 Needs Triage
      GODRIVER-3719 Needs Triage
      JAVA-6021 Needs Triage
      NODE-7333 Needs Verification
      PYTHON-5662 Done
      PHPLIB-1747 Needs Triage
      RUBY-3741 Needs Triage
      RUST-2310 Backlog
      $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-6167 Needs Triage CXX-3383 Needs Triage CSHARP-5805 Needs Triage GODRIVER-3719 Needs Triage JAVA-6021 Needs Triage NODE-7333 Needs Verification PYTHON-5662 Done PHPLIB-1747 Needs Triage RUBY-3741 Needs Triage RUST-2310 Backlog

      Summary

      Server selection supports deprioritizing servers on retries for sharded clusters.  This functionality is being expanded to run on all topologies.

      For some drivers, the spec changes might be minimal.  For some, like Node, it requires some refactoring of server selection logic.  Regardless of the effort of implementation, it seems feasible and prudent to add tests for the deprioritization logic for each topology type.

      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

      • Clarify that drivers MUST apply server deprioritization for all topology types in server selection.
      • Clarify that deprioritized servers is a list of deprioritized servers (see DRIVERS-2901 for context)
      • Update the server selection test framework to support testing with a list of deprioritized servers.
      • Add tests ensuring that drivers correctly prioritized non-deprioritized servers across all topology types.

            Assignee:
            Noah Stapp
            Reporter:
            Bailey Pearson
            Jib Adegunloye Jib Adegunloye
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: