cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-8287) Row Level Isolation is violated by read repair
Date Wed, 12 Nov 2014 09:48:33 GMT

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

Sylvain Lebresne commented on CASSANDRA-8287:
---------------------------------------------

You're right, read repair can screw up isolation. That said, the example above is actually
not affected currently because CQL always read full CQL rows and thus the step 3) above (you
now only read the password) actually don't happen internally. Granted, it's due to an inefficiency
that we want to fix, so it's still something to consider.

Anyway, that's a problem at the partition level, and I have no clue how to fix that efficiently.
That said, and unless someone has a brilliant idea, I'd be fine with keeping it a know limitation
at the partition level. Keeping it working at the CQL row level is probably more important
however.

> Row Level Isolation is violated by read repair
> ----------------------------------------------
>
>                 Key: CASSANDRA-8287
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8287
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: sankalp kohli
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>
> In 1.1, row level isolation was added. As per the blog post 
> http://www.datastax.com/dev/blog/row-level-isolation
> "Cassandra guarantees that the changes to login and password are either both applied
or none are."
> This is not true with background read repair. Consider this as given in the blog post.
> You run 
> UPDATE Users
>     SET login='eric22' AND password='f3g$dq!'
>     WHERE key='550e8400-e29b-41d4-a716-446655440000'
> There are 3 machines A,B and C and replication is RF=3
> 1) Machine A did not get this update as it was down and past hint window. 
> 2) Machine A comes online.
> 3) You now only read the password.
> 4) password is now read repaired on A. 
> SO on machine A, password = f3g$dq! and login is still old 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message