-
Type: Improvement
-
Resolution: Fixed
-
Priority: Minor - P4
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
Currently when the driver needs to find out whether the deployment supports sessions, it queries the cluster for data bearing nodes and if there aren't any, the driver decides the deployment does not support sessions. This is problematic when, due to failover for example, there are no available servers - even though the deployment in principle supports sessions, there is a time period when the driver considers it not to.
Since session support does not require network roundtrips, we can track in the cluster, whenever the topology changes, whether the new topology has data bearing servers for determination of session support, and if not use the previous value for session support, on the assumption that most of the time it will be correct. The only time when old value will be wrong is when all nodes in the deployment are taken offline and then downgraded to a server version that does not support sessions.