On Tue, Jul 17, 2012 at 5:05 PM, Jason Tang <ares.t...@gmail.com> wrote:
>    I check the schema, and found the parameter "Replicate on write: false",
> what does this parameter mean.

First, that parameter only affects counter increments, it has no
impact whatsoever on normal writes.

For counters, if set to false as in your case, it means that counter
increments are written to only one replica, whatever the replication
factor is. The (bad) justification for this even existing is that
counters, by their design and contrarily to normal writes, imply a
read during a write, and that option avoid that read. *However*, that
option is very dangerous as it make it very very easy to lose data
(that is, it is *worst* that RF=1 and as such is not appropriate even
if RF=1). The reason it still exists is that some people that are very
intimate with the counter implementation and know what they are doing
(at least I hope for them they do) asked that we keep it.

So overall my personal advise is 'Do not ever set replicate_on_write
to false' (it is set to true by default unless you are using a very
old C* version, in which case having it to false was a bug).

But to sum it up, it's only for counters and even then, if set to
false, only CL=ONE is allowed.

--
Sylvain

Reply via email to