Bringing together the Apache Cassandra experts from the community and DataStax.

Want to learn? Have a question? Want to share your expertise? You are in the right place!

Not sure where to begin? Getting Started

 

question

vkayanala_42513 avatar image
vkayanala_42513 asked ·

Why is the consistency level changing from LOCAL_QUORUM to TWO?

Hi Support,

Our applications are configured to LOCAL_QUORUM on both reads and writes. Lately, we are noticing

com.datastax.driver.core.exceptions.WriteFailureException: Cassandra failure during write query at consistency TWO (2 responses were required but only 1 replica responded, 1 failed). 

Not sure where this CL TWO coming from!

Along with this, noticing this below warn in system.log when CL TWO happened.

WARN [MessagingService-Incoming-/x.x.x.x] 2020-05-13 05:47:55,216 MessagingService.java:848 - Backpressure rejection while receiving WRITES.BATCH_STORE from /x.x.x.x

Thank You.

cassandra
10 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

1 Answer

yukim avatar image
yukim answered ·

Are you writing data with batch (BEGIN BATCH ... APPLY BATCH)?

When doing batch, Cassandra first writes batch log to several nodes in the cluster in case of failure. When you are writing data with CL of more than ONE, then batch log writing will use CL of TWO to replicate the batch log.

The error indicates it couldn't replicate batch log.


BTW if you are using Materialized View, updating MV uses batch as well, so that can be the case as well.

3 comments Share
10 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Thanks for the clarification. I forgot to consider the failed batch log writes which makes sense from WriteFailureException which is returned by the coordinator when the replica write fails for batch writes.

0 Likes 0 · ·

@yukim We are doing single partition batches. I have read that "No batchlog mechanism is necessary for single partition batching". Source: https://docs.datastax.com/en/cql-oss/3.3/cql/cql_using/useBatch.html


Our batch query is like this: BATCH of 1 (with 1 others) : INSERT INTO from_link (from_id,link_type,to_id) VALUES (?,?,?);

and not using MV's.

0 Likes 0 · ·

What does this mean?

BATCH of 1 (with 1 others)
0 Likes 0 · ·