To answer my own question, directly from the docs: It appears the answer to this is: "Yes, CL.QUORUM isn't necessary for reads." Essentially, replicate_on_write sets the CL to ALL regardless of what you actually set it to (and for good reason).

On Wed, May 29, 2013 at 9:47 AM, Andrew Bialecki <> wrote:
Quick question about counter columns. In looking at the replicate_on_write setting, assuming you go with the default of "true", my understanding is it writes the increment to all replicas on any increment.

If that's the case, doesn't that mean there's no point in using CL.QUORUM for reads because all replicas have the same values?

Similarly, what effect does the read_repair_chance have on counter columns since they should need to read repair on write.

In anticipation a possible answer, that both CL.QUORUM for reads and read_repair_chance only end up mattering for counter deletions, it's safe to only use CL.ONE and disable the read repair if we're never deleting counters. (And, of course, if we did start deleting counters, we'd need to revert those client and column family changes.)