Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Normal
Description
It looks like the logic in the if statment in TokenAllocation.getStrategy() is broken.
if (replicas >= racks) {...} else if (racks == 1) {...} else throw new ConfigurationException(String.format("Token allocation failed: the number of racks %d in datacenter %s is lower than its replication factor %d.", racks, dc, replicas));
I think the first if statment should be (replicas <= racks), otherwise this will be true if we have fewer racks then replicas and I guess that should result in an exception.
Also the if and the else if blocks should change place, it should be
if (racks == 1) {...} else if (replicas <= racks) {...} else
If replicas==1 and racks==1 I think you want the StrategyAdapter from (racks==1).
Attachments
Issue Links
- is related to
-
CASSANDRA-7032 Improve vnode allocation
- Resolved