Hi all,

We recently experienced an unexpected behavior with C* consistency.

For example, a table t consists of 4 columns - pk , a, b and c. We perform 
Quorum write and then Quorum read (RF=3 / LCS compaction).

The consistency seems to break while repairing is running(repair -pr).

Say, a record already exists in t like
pk=1, a=1, b=1, c=1

While repair is not running

Quorum Write:
update t set c = 2 where pk=1

Quorum Read:
select pk,a,b,c from t where pk=1 limit 1

Returns: (1, 1, 1, 2) as expected.

But if we do it while repair is running,

Quorum Write:
update t set c=3 where pk=1

Quorum Read, however, returns (1, null, null, 3) w/o values of a and b.

After repair is done, then the same Quorum Read returns the right values 
(1,1,1,3).

It does not happen to every row in t. The impacted rows are like 40 out of 300 
millions. But still how the consistency gets broken here? 

Thanks for your attention!

Li
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org
For additional commands, e-mail: user-h...@cassandra.apache.org

Reply via email to