Jorge Bay created CASSANDRA-7378:
------------------------------------

             Summary: 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
            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)

Reply via email to