We are running a cassandra cluster containing 10 nodes without replicated data, each nodes are local. Each node owns round a about 10 % of the complete data.
Each node owns parts of the TOKENs (without any replication).
We use the Java driver with default configuration. As we can see one node is not directly (connection: Java client --> node) requested. One node is not connected from the client and receives no requests / responses directly from the client (requests will be transmitted and answered via internal Cluster GOSSIP-protocol to the coordinator of the request). 9 nodes are directly receiving the requests based on the TOKEN-Map of the driver.
So it seems a BUG in the Load-Balancer, not directly sending the requests to the node owing the token and using an other coordinator node. This kind of requests needs more time to answer.
What we've tried to change the behavior:
Reducing / Extending the cluster with more nodes: Every time one is not directly requested
Extend the -Ddatastax-java-driver.advanced.connection.pool.local.size to 20 or more: One node doesn't contain 20 connections (per Java client); Other nodes have more than 20 connections per Java client
Linux cassandra nodes 3.11.7
Datastax Java Driver 4.8
Did you mean to create this JIRA on the java driver project? Please let me know and I will move this to the correct JIRA project.
Sorry I created the item in the wrong project. It’s duplicated with JAVA-2897