[SERVER-20070] Support for zero-downtime downgrade from CSRS to SCCC Created: 20/Aug/15 Updated: 06/Dec/22 Resolved: 06/Jan/16 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Andy Schwerin | Assignee: | [DO NOT USE] Backlog - Sharding Team |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | csrsupgrade | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Sharding
|
| Sprint: | Sharding 9 (09/18/15), Sharding 10 (02/19/16) |
| Participants: |
| Comments |
| Comment by Ian Whalen (Inactive) [ 26/Apr/19 ] |
|
Switching "Drivers Changes Needed" from "Maybe" to "Not Needed" since this was closed as something other than Fixed. |
| Comment by A. Jesse Jiryu Davis [ 04/Sep/15 ] |
|
I commented in the google doc too but the gist is, I concur with Andy's idea: "mongos closes its connections when it drops its protocol version". |
| Comment by Jeffrey Yemin [ 04/Sep/15 ] |
|
To avoid silently ignoring a non-default read concern, the current plan is for drivers to report an error if a non-default read concern is requested and wire version < 4. So before downgrading, users would have to remove and non-default read concern from their applications anyway. |
| Comment by Bernie Hackett [ 04/Sep/15 ] |
|
Sounds good to me. |
| Comment by Andy Schwerin [ 03/Sep/15 ] |
|
I'd be pretty comfortable having mongos close its connections when it drops its protocol version (during downgrade from CSRS to SCCC). I'm reluctant to do it on upgrade, since no harm is coming to the running clients just because new functionality became available. Presumably to harness the functionality (read concern), they'd need to bounce their applications anyways. |
| Comment by Bernie Hackett [ 03/Sep/15 ] |
|
Indeed. Perhaps the solution is to have mongos close all its client connections if we go from SCCC to CSRS or the reverse. |
| Comment by Jeffrey Yemin [ 03/Sep/15 ] |
|
This may be an issue for drivers, depending on whether mongos needs to be restarted after a downgrade. The issue is that according the the SDAM spec drivers are required to cache maxWireVersion for the lifetime of a connection. In the past this was safe, as maxWireVersion could never change unless a server was restarted. But now it seems that it may be possible for mongos to dynamically lower its maxWireVersion without a restart and therefore without closing all of its connections. |