cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jignesh Dhruv (JIRA)" <>
Subject [jira] Created: (CASSANDRA-1487) Bug in calculating QUORUM
Date Thu, 09 Sep 2010 16:35:33 GMT
Bug in calculating QUORUM

                 Key: CASSANDRA-1487
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.7 beta 1
            Reporter: Jignesh Dhruv


It seems that there is a bug in calculating QUORUM in src/java/org/apache/cassandra/service/

Currently the QUORUM formula in place will return correct QUORUM if replication factor <=
3. However if you have a Replication Factor > 3, it will return incorrect result.

--- src/java/org/apache/cassandra/service/    (revision 995482)
+++ src/java/org/apache/cassandra/service/    (working copy)
@@ -109,7 +109,7 @@
             case ANY:
                 return 1;
             case QUORUM:
-                return (DatabaseDescriptor.getQuorum(table)/ 2) + 1;
+                return DatabaseDescriptor.getQuorum(table);
             case ALL:
                 return DatabaseDescriptor.getReplicationFactor(table);
In QuorumResponseHandler:determineBlockFor()
DatabaseDescriptor.getQuorum(table) is already returning a quorum value which is further divided
by 2 and a one is added.

So say if your RF=6, it is suppose to check 4 replicas, (6/2)+1-4 but it ends up checking
only 3 replicas as DatabaseDescriptor.getQuorum returns 4, so determineBlockFor will return

Let me know if you have any questions.


This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message