Mark node down on driver read timeouts

Description

Note: this change was eventually reverted in 2.0.10/2.1.6. Based on practical experience, marking the host down on read timeouts turned out to be too aggressive.


Original report:

We've added a driver per-host read timeout (SocketOptions.setReadTimeout) to make sure that even if a C* node is misbehaving by accepting request but never sending any request (as in, not even a C* write/read timeout), we don't block the request forever driver side. We don't defunct the connection however on such timeout (so we don't presume the node dead) but we probably should. If the node is misbehaving for one query, it's probably safer to assume that something is wrong with the node. If the misbehaving was ponctual, we'll reconnect right away to the node with little harm done. But if the misbehaving is not ponctual (the server don't drop the connection but something is really wrong with it), then not marking the node dead means we'll continue using the node for querying, timeouting every time.

Environment

None

Pull Requests

None

Status

Assignee

Olivier Michallat

Reporter

Sylvain Lebresne

Labels

None

PM Priority

None

Affects versions

None

Fix versions

Pull Request

None

Doc Impact

None

Size

None

External issue ID

None

External issue ID

None

Priority

Major
Configure