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