[DRIVERS-1571] Direct read/write retries to another mongos if possible Created: 19/Feb/21 Updated: 06/Feb/24 |
|
| Status: | Implementing |
| Project: | Drivers |
| Component/s: | Performance, Retryability, Server Selection |
| Fix Version/s: | None |
| Type: | Epic | Priority: | Major - P3 |
| Reporter: | Oleg Pudeyev (Inactive) | Assignee: | Dmitry Rybakov |
| Resolution: | Unresolved | Votes: | 6 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Driver Changes: | Not Needed | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Server Compat: | 4.4, 5.0, 5.3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Quarter: | FY24Q1, FY24Q2, FY24Q3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Upstream Changes Summary: | Details TBD |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Downstream Changes Summary: | Drivers should implement server selection and read/write retry mechanisms changes, as well as new prose tests: specifications@86d961f |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Case: | (copied to CRM) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Engineering Lead: | |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Product Manager: | |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Program Manager: | |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Start date: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Scope Cost Estimate: | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Cost to Date: | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Final Cost Estimate: | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Cost Threshold %: | 100 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Detailed Project Statuses: | Engineer: Dmitry Rybakov 2023-06-23
2023-06-09
2023-05-12
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Driver Compliance: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description |
|
There are several scenarios in which it would be useful to redirect reads or writes to a different mongos.
The suggested improvement is for the driver, when in sharded cluster topology, to:
Cast of Characters: |
| Comments |
| Comment by Githook User [ 08/Sep/23 ] |
|
Author: {'name': 'Dmitry Rybakov', 'email': 'dmitry.rybakov@mongodb.com', 'username': 'comandeo'}Message: DRIVERS-1571 Fix changelog entries (#1456) |
| Comment by Githook User [ 25/Aug/23 ] |
|
Author: {'name': 'Dmitry Rybakov', 'email': 'dmitry.rybakov@mongodb.com', 'username': 'comandeo'}Message: DRIVERS-1571 Retry on different mongos when possible (#1450) Co-authored-by: Alex Bevilacqua <alex@alexbevi.com> |
| Comment by Jeffrey Yemin [ 16/Jun/22 ] |
|
SPEC-1555 seems related to this issue, as over time that feature will help the driver to route even the initial command to a mongos that is experiencing less queuing. |
| Comment by Oleg Pudeyev (Inactive) [ 07/Jul/21 ] |
|
If the question is about errors returned for operations, I don't believe there is one. Server selection does not presently take into account errors that happened on a particular connection or server. Given two mongoses in a sharded cluster, each will be equally likely to be chosen (for each new operation or retry) even if one is failing every single operation with any error code. However if the mongos responds with an error to ismaster then it should be taken out of usage by the drivers. |
| Comment by Jeffrey Yemin [ 23/Feb/21 ] |
|
Also, note that it will not interact well with DRIVERS-720. |