Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-14887

Incorrect number of acknowlegments in WriteTimeoutException message for EACH_QUORUM writes

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Low
    • Resolution: Duplicate
    • None
    • Legacy/Coordination
    • None
    • Low

    Description

      Since EACH_QUORUM writes require a certain number of acknowledgements from nodes in each DC and WriteTimeoutException only reports on the total number of acknowledgements received, the message can be misleading. Furthermore, if the total number of acknowledgements exceeds or equals the total number of required acknowledgements, which can happen with EACH_QUORUM writes, the number of acknowledgements is changed to required - 1 (lines 102-103, https://github.com/apache/cassandra/blob/cassandra-3.11/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java), which is incorrect.

      Consider a 2 DC cluster with 5 nodes in each cluster and a replication factor of 3 in each cluster (for the relevant keyspace). A write at consistency level EACH_QUORUM might receive acknowledments from 3 nodes in one DC and 1 node from the other DC before timing out. 

      Then the WriteTimeoutException message will specify that it received 3 acknowledments out of 4 required, which is incorrect and misleading. 

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              kasv Kasper Svendsen
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: