cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Ellis <>
Subject Re: Question about consitency level & data propagation & eventually consistent
Date Wed, 10 Nov 2010 16:52:54 GMT
On Wed, Nov 10, 2010 at 8:54 AM, Thibaut Britz
<> wrote:
> Assuming I'm reading and writing with consitency level 1 (one), read repair
> turned off, I have a few questions about data propagation.
> Data is being stored at consistency level 3.
> 1) If all nodes are up:
>  - Will all writes eventually reach all nodes (of the 3 nodes)?


>  - What will be the maximal time until the last write reaches the last node

Situation-dependent.  The important thing is that if you are writing
at CL.ALL, it will be before the write is acked to the client.

> 2) If one or two nodes are down
> - As I understood it, one node will buffer the writes for the remaining
> nodes.

Yes: _after_ the failure detector recognizes them as down. This will
take several seconds.

> - If the nodes go up again: When will these writes be propagated

When FD recognizes them as back up.

> The best way would then be to run nodetool repair after the two nodes will
> be available again. Is there a way to make the node not accept any
> connections during that time until it is finished repairing? (eg throw the
> Unavailableexception)

No.  The way to prevent stale reads is to use an appropriate
consistencylevel, not error-prone heuristics.  (For instance: what if
the replica with the most recent data were itself down when the first
node recovered and initiated repair?)

Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support

View raw message