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]

Reply via email to