cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Bailis (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-7056) Add RAMP transactions
Date Wed, 25 Jun 2014 18:10:26 GMT


Peter Bailis commented on CASSANDRA-7056:

[~jjordan] Good question. The short answer is that this behavior (reading A @2 and C@1) is
well-defined under RAMP. Just like in Cassandra today, the fact that I read a write at time
500 doesn't mean I'm going to see the effects of all writes that occur before time 500! Rather,
the guarantee that RAMP adds is that, once you see the effects of one write in the the batch,
you'll see all of the writes in the batch.

So, in your scenario, you have three batches: B1 {A=1, B=1} at time 1, B1.5 {B=1.5, C=1.5}
at time 1.5, and B2 {A=2, B=2} at time 2. You could get the behavior you describe above if
B1 executes and completes, B2 executes and complete, and we subsequently read sometime before
B1.5 completes. So, I guess I disagree that "the real C you should be getting is the one from
[the batch at time 1.5]" because you didn't yet see the effect of any writes from B1.5. However,
once B1.5 completes, you *will* be guaranteed to read C at time 1.5.

It may be easier to think of RAMP as providing the ability to take each of your normal reads
and writes under LWW and turn them into multi-column, multi-table writes that are all going
to be visible/reflected in the table state (once completed). There's no special ordering guarantees
beyond what Cassandra already provides; if you need strong ordering guarantees (e.g., enforcing
sequential assignment of timestamps), it's a case for CAS.

> Add RAMP transactions
> ---------------------
>                 Key: CASSANDRA-7056
>                 URL:
>             Project: Cassandra
>          Issue Type: Wish
>          Components: Core
>            Reporter: Tupshin Harper
>            Priority: Minor
> We should take a look at [RAMP|]
transactions, and figure out if they can be used to provide more efficient LWT (or LWT-like)

This message was sent by Atlassian JIRA

View raw message