cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Blair Zajac (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CASSANDRA-5619) CAS UPDATE for a lost race: save round trip by returning column values
Date Thu, 06 Jun 2013 17:53:21 GMT
Blair Zajac created CASSANDRA-5619:
--------------------------------------

             Summary: CAS UPDATE for a lost race: save round trip by returning column values
                 Key: CASSANDRA-5619
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5619
             Project: Cassandra
          Issue Type: Improvement
          Components: Core
    Affects Versions: 2.0
            Reporter: Blair Zajac


Looking at the new CAS CQL3 support examples [1], if one lost a race for an UPDATE, to save
a round trip to get the current values to decide if you need to perform your work, could the
columns that were used in the IF clause also be returned to the caller?  Maybe the columns
values as part of the SET part could also be returned.

I don't know if this is generally useful though.

In the case of creating a new user account with a given username which is the partition key,
if one lost the race to another person creating an account with the same username, it doesn't
matter to the loser what the column values are, just that they lost.

I'm new to Cassandra, so maybe there's other use cases, such as doing incremental amount of
work on a row.  In pure Java projects I've done while loops around AtomicReference.html#compareAndSet()
until the work was done on the referenced object to handle multiple threads each making forward
progress in updating the references object.

[1] https://github.com/riptano/cassandra-dtest/blob/master/cql_tests.py#L3044

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message