Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Correctness
-
Normal
-
Low Hanging Fruit
-
User Report
-
All
-
None
-
Description
org.apache.cassandra.service.AbstractWriteResponseHandler:
private final void decrementResponseOrExpired() { int decrementedValue = responsesAndExpirations.decrementAndGet(); if (decrementedValue == 0) { // The condition being signaled is a valid proxy for the CL being achieved // Only mark it as failed if the requested CL was achieved. if (!condition.isSignalled() && requestedCLAchieved) { replicaPlan.keyspace().metric.writeFailedIdealCL.inc(); } else { replicaPlan.keyspace().metric.idealCLWriteLatency.addNano(nanoTime() - queryStartNanoTime); } } }
Actual result: responsesAndExpirations is a total number of replicas across all DCs which does not depend on the ideal CL, so the metric value for replicaPlan.keyspace().metric.idealCLWriteLatency is updated when we get the latest response/timeout for all replicas.
Expected result: replicaPlan.keyspace().metric.idealCLWriteLatency is updated when we get enough responses from replicas according to the ideal CL.
Attachments
Attachments
Issue Links
- relates to
-
CASSANDRA-13289 Make it possible to monitor an ideal consistency level separate from actual consistency level
- Resolved
- links to