[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.

Generated at Thu Feb 08 03:53:03 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.