Michaël Figuière created CASSANDRA-13988:
--------------------------------------------
Summary: Add a timeout field to EXECUTE / QUERY / BATCH messages
Key: CASSANDRA-13988
URL: https://issues.apache.org/jira/browse/CASSANDRA-13988
Project: Cassandra
Issue Type: Improvement
Reporter: Michaël Figuière
Priority: Minor
The request timeout at the coordinator level is currently statically configured
through the {{request_timeout_in_ms}} and {{xxx_request_timeout_in_ms}}
parameters in cassandra.yaml. There would be some benefits in making it
possible for the client to dynamically define it through the CQL Protocol:
* In practice, there's often a misalignment between the timeout configured in
Cassandra and in the client leading non-optimal query execution flow, where the
coordinator continues to work while the client is not waiting anymore, or where
the client waits for too long for a potential response. The 99th percentile
latency can be significantly impacted by such issues.
* While the read timeout is typically statically configured on the Drivers, on
the Java Driver 3.x the developer is free to set a custom timeout using
{{ResultSetFuture#get(long, TimeUnit)}} which can lead to an extra misalignment
of timeouts with the coordinator. The Java Driver 4.x will make the timeout
configurable per query through its new {{DriverConfigProfile}} abstraction.
* It makes it possible for applications to shift to a "remaining time budget"
approach rather than the often inappropriate static timeout one. Also, the Java
Driver 4.x plans to change its definition of {{readTimeout}} from a per
execution attempt time to an overall query execution time. So the Driver itself
would also be able to work on a "remaining time budget" for each of its
execution attempts.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]