> On Oct 27, 2017, at 3:08 AM, Artur Siekielski <a...@vhex.net> wrote:
> 
> I noticed that the DecoratedKey printed in the stack trace can be for a 
> different table. The arguments are a token and a partition key and they can 
> be the same for multiple tables. Is there a way to know for which table the 
> DigestMismatchException happens?
> 

No, the read repair stats we provide are not per table, so if it’s not in the 
log, it’s not apparent. Feel free to open a jira to ask for it to be added to 
the log message.

> Can the AsyncRepairRunner be triggered if read and writes for all other 
> tables are done with CL=LOCAL_QUORUM (RF=3)? I assumed in that case async 
> read repair is not done even if dclocal_read_repair_chance > 0. Could it be 
> that the async repair runs for that case and it's executed faster than the 
> background syncing to meet RF=3?
> 

Very likely. Async repair runner can be triggered if either 
(dclocal_)read_repair_chance is > 0. If you write at local_quorum, reads can 
definitely race (and even in that case, some writes can be dropped by load 
shedding or missed during network hiccups or GC pauses). 



> 
>> On 10/26/2017 12:19 PM, Artur Siekielski wrote:
>> Hi,
>> 
>> we have one table for which reads and writes are done with CL=ONE. The table 
>> contains counters. We wanted to disable async read repair for the table (to 
>> lessen cluster load and to avoid DigestMismatchExceptions in debug.log). 
>> After altering the table with read_repair_chance=0, 
>> dclocal_read_repair_chance=0, the Digest exceptions still happen:
>> 
>> 
>> DEBUG [ReadRepairStage:92] 2017-10-26 10:00:02,798 ReadCallback.java:242 - 
>> Digest mismatch:
>> org.apache.cassandra.service.DigestMismatchException: Mismatch for key 
>> DecoratedKey(5238932067721150894, 7da6f64695d74899a91bd691321de534) 
>> (33f950054869a91d1ea225eae342499a vs 70d054183b9b001de5f71139aa65b8d9)
>>         at 
>> org.apache.cassandra.service.DigestResolver.compareResponses(DigestResolver.java:92)
>>  ~[apache-cassandra-3.11.1.jar:3.11.1]
>>         at 
>> org.apache.cassandra.service.ReadCallback$AsyncRepairRunner.run(ReadCallback.java:233)
>>  ~[apache-cassandra-3.11.1.jar:3.11.1]
>>         at 
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>>  [na:1.8.0_141]
>>         at 
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>>  [na:1.8.0_141]
>>         at 
>> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:81)
>>  [apache-cassandra-3.11.1.jar:3.11.1]
>>         at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_141]
>> 
>> 
>> I have verified that the DecoratedKey arguments are for a row from the 
>> altered table (by checking token() of the partition key).
>> 
>> Shouldn't the settings disable AsyncRepairRunner for the table?
>> 
>> Is there an option to disable async read repair globally, or each table must 
>> be altered?
>> 
>> Cassandra version: 3.11.1
>> 
>> 
>> Thanks,
>> Artur
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org
>> For additional commands, e-mail: user-h...@cassandra.apache.org
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org
> For additional commands, e-mail: user-h...@cassandra.apache.org
> 

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

Reply via email to