cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Schuller (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-3901) write endpoints are not treated correctly, breaking consistency guarantees
Date Thu, 27 Sep 2012 01:51:07 GMT

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

Peter Schuller commented on CASSANDRA-3901:
-------------------------------------------

As an aside, streaming from multiple sources and discarding un-needed data in real-time based
on streaming data you have and comparing, overlaps in mechanism with what you might want to
do for repair in order to avoid the size explosion problem completely.

                
> write endpoints are not treated correctly, breaking consistency guarantees
> --------------------------------------------------------------------------
>
>                 Key: CASSANDRA-3901
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3901
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: Core
>            Reporter: Peter Schuller
>            Assignee: Peter Schuller
>
> I had a nagging feeling this was the case ever since I started wanting CASSANDRA-3833
and thinking about hot to handle the association between nodes in the read set and nodes in
the write set.
> I may be wrong (please point me in the direct direction if so), but I see no code anywhere
that tries to (1) apply consistency level to currently normal endpoints only, and (2) "connect"
a given read endpoint with a future write endpoint such that they are tied together for consistency
purposes (parts of these concerns probably is covered by CASSANDRA-2434 but that ticket is
more general).
> To be more clear about the problem: Suppose we have a ring of nodes, with a single node
bootstrapping. Now, for a given row key suppose reads are served by A, B and C while writes
are to go to A, B, C and D. In other words, D is the node bootstrapping. Suppose RF is 3 and
A,B,C,D is ring order. There are a few things required for correct behavior:
> * Writes acked by D must never be treated as sufficient to satisfy consistency level
since until it is part of the read set it does not count towards CL on reads.
> * Writes acked by B must *not* be treated as sufficient to satisfy consistency level
*unless* the same write is *also* acked by D, because once D enters the ring, B will no longer
be counting towards CL on reads. The only alternative is to make the read succeed and disallow
D from entering the ring.
> We don't seem to be handling this at all (and it becomes more complicated with arbitrary
transitions).

--
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