The MongoDB Node.js team is pleased to announce version 3.5.9 of the driver
roundTripTime of a
ServerDescription is -1, which means if that value is used we can potentially calculate a negative
roundTripTime. Instead, if no previous
roundTripTime exists, we use the duration of the initial handshake.
A number of new options were added when the CMAP compliant connection pool was introduced in 3.5.x. Unfortunately, these options were not documented properly. Now they are mentioned in the
MongoClient documentation, with a notice that they are only supported with the unified topology.
A fix in 3.5.8 which ensured proper filtering of servers during server selection exposed an issue in max staleness calculations when the topology type is
ReplicaSetNoPrimary and no servers are currently known. In order to estimate an upper bound of max staleness when there is no primary, the most stale known server is known to compare the others to - if there are no known servers, you can't reduce the array!
In certain very high load fail-over scenarios the driver is unable to reschedule a monitoring check in order to update its view of the topology for retryability. This would result in a high number of failed operations, as they were unable to determine a new viable server.
We invite you to try the driver immediately, and report any issues to the NODE project.
Thanks very much to all the community members who contributed to this release!
- [NODE-2637] - connection pool options support for MongoClient
- [NODE-2641] - maxStalenessReducer fails on empty set of servers
- [NODE-2643] - Server monitoring is prevented under heavy request load
- [NODE-2652] - Use duration of initial handshake if no roundTripTime value exists for server
- [NODE-2651] - Use consistent means of measuring time