cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Stupp (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-7378) Protocol: Autoprepare flag for QUERY and BATCH requests
Date Thu, 12 Jun 2014 19:35:02 GMT

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

Robert Stupp commented on CASSANDRA-7378:
-----------------------------------------

It might be a nice optimization to save one round trip for the first time a pstmt is executed.
But it requires some management overhead for all executions just to save the initial round
trip - for 1000 requests the first one would benefit and 999 would suffer...
IMO it is better to prepare multiple statements asynchronously at client start up to optimize
initialization (if this is the point).

> Protocol: Autoprepare flag for QUERY and BATCH requests
> -------------------------------------------------------
>
>                 Key: CASSANDRA-7378
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7378
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: API
>            Reporter: Jorge Bay
>            Priority: Minor
>
> Currently the flow for executing a prepared statement in the native protocol is:
> - PREPARE request
> - prepared response (queryid)
> - EXECUTE request (using queryid)
> 	- RESULT response
> 	- or UNPREPARED error response
> As is today, it is the responsibility of the driver or client to maintain the query id
and to send a EXECUTE message using this query id and to expect for UNPREPARED error response
in case the query got evicted or the node was restarted.
> With the following implications:
> - Before making a EXECUTE request, there is no way to know if it got evicted.
> - Before sending a PREPARE request, there is no way to know if that query has been already
prepared on that host (by another connection), .
> - There isn't anything else the client can do with the prepared id (no much use from
the client perspective).
> It would be nice to have a flag in the QUERY and BATCH requests that when set, the Cassandra
node will prepare (if not already prepared) and execute the prepared query. This way we could
save a few extra roundtrips and make the protocol flow for prepared statements a little more
simple.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message