cassandra-commits mailing list archives

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


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

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:

View raw message