[JAVA-1025] Drivers should only talk to servers with overlapping wire versions Created: 16/Oct/13  Updated: 27/May/22  Resolved: 14/Nov/13

Status: Closed
Project: Java Driver
Component/s: Cluster Management
Affects Version/s: None
Fix Version/s: 2.12.0, 3.0.0

Type: New Feature Priority: Major - P3
Reporter: Barrie Segal Assignee: Jeffrey Yemin
Resolution: Done Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-10529 Allow isMaster to report the wire ver... Closed
Sub-Tasks:
Key
Summary
Type
Status
Assignee
JAVA-1026 2.12: Drivers should only talk to ser... Sub-task Closed  
JAVA-1027 3.0: Drivers should only talk to serv... Sub-task Closed  
Server Compat: 2.5

 Description   

A server is considered to be incompatible with a driver if its min and max wire version does not overlap the driver’s. Specifically, a driver with a min and max range of [a, b] must be considered incompatible with any server with a min and max range of [c, d] where c > b or d < a. All other servers are considered to be compatible.

A driver is considered to be connected to a server if it has received an ok response to the most recent isMaster command sent to that server. Since wire version is determined by the isMaster reply, then by definition an unconnected server has an undetermined wire version range.

When any of the connected servers are incompatible, the driver must throw an exception for all operations (CRUD, commands) initiated through its API. Conversely, drivers must allow all operations when all of the connected servers are compatible. Note that this compatiblility may change over time as servers are restarted, and a driver must be able to switch between states as the min and max wire version changes for the servers to which it is connected.

A drivers must allow operations when all of the connected servers are compatible.


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