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

Benedict commented on CASSANDRA-7056:
-------------------------------------

Another separate point to consider, as a follow up: RAMP transactions may also 
permit us to provide consistent reads with less than QUORUM nodes involved. If 
we are performing a consistent read with a known transaction id, we only need 
to ensure the node has seen the totality of that transaction (i.e. any bulk 
insert has completed its first round, but not necessarily its second (commit) 
round) to be certain we have all of the data we need to answer the query 
correctly. So we can potentially answer QUORUM queries at the coordinator only. 
Note this only works if the coordinator has seen _exactly_ this transaction id, 
though some similar optimisations are likely possible to expand that. 

I can envisage answering multiple queries with the following scheme:

1) start transaction, by asking for the latest transaction_id from a given 
coordinator for the data we are interested in;
2) query all coordinators directly for the regions they own, providing them 
with the transaction_id

All of those that were updated with the given transaction_id have the potential 
to be answered with only the coordinator's involvement

Further, to outline a sketch client-side API, I would suggest something like:

Txn txn = client.begin()
Future<ResultSet> rsf1 = txn.execute(stmt1);
Future<ResultSet> rsf2 = txn.execute(stmt2);
...
txn.execute();
ResultSet rs1 = rsf1.get();
...



> Add RAMP transactions
> ---------------------
>
>                 Key: CASSANDRA-7056
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7056
>             Project: Cassandra
>          Issue Type: Wish
>          Components: Core
>            Reporter: Tupshin Harper
>            Priority: Minor
>
> We should take a look at 
> [RAMP|http://www.bailis.org/blog/scalable-atomic-visibility-with-ramp-transactions/]
>  transactions, and figure out if they can be used to provide more efficient 
> LWT (or LWT-like) operations.



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

Reply via email to