Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.0.7, 2.1.2
    • Component/s: None
    • Labels:
      None

      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.

        Attachments

          Issue links

            Activity

              People

              • Assignee:
                omichallat Olivier Michallat
                Reporter:
                pcmanus Sylvain Lebresne
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 4 hours
                  4h