You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Michaël Figuière (JIRA)" <ji...@apache.org> on 2017/11/02 18:04:00 UTC

[jira] [Commented] (CASSANDRA-13988) Add a timeout field to EXECUTE / QUERY / BATCH messages

    [ https://issues.apache.org/jira/browse/CASSANDRA-13988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236282#comment-16236282 ] 

Michaël Figuière commented on CASSANDRA-13988:
----------------------------------------------

Looking into it, it seems like the {{ReadCommand#getTimeout()}} abstract method offers a convenient opportunity to implement this feature.

> 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: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org