Support for multi-availability zone load balancing
Description
The java driver load balancing in 4.x removed whitelisting which was helpful. For instance, most customers have something like this:
az 1: app > cassandra rack 1
az 2: app > cassandra rack 2
az 3: app > cassandra rack 3
With whitelisting, load balancing was guaranteed to go from app in az 1 to rack 1 nodes based on the configuration provided. That kept the latencies down due to cross-network latencies. That isn’t as easy in the 4.x version. We should have some sort of rack aware load balancing, or way to choose nodes that are fully local and not in the other az’s.
We do have something similar, but it would be helpful to have something more point blank in the application.conf that whitelists specific nodes. Here’s what we’re doing now:
The java driver load balancing in 4.x removed whitelisting which was helpful. For instance, most customers have something like this:
az 1: app > cassandra rack 1
az 2: app > cassandra rack 2
az 3: app > cassandra rack 3
With whitelisting, load balancing was guaranteed to go from app in az 1 to rack 1 nodes based on the configuration provided. That kept the latencies down due to cross-network latencies. That isn’t as easy in the 4.x version. We should have some sort of rack aware load balancing, or way to choose nodes that are fully local and not in the other az’s.
We do have something similar, but it would be helpful to have something more point blank in the application.conf that whitelists specific nodes. Here’s what we’re doing now: