Load balancing
The DSE driver uses a custom load balancing policy, defined in dse-reference.conf
:
datastax-java-driver {
basic.load-balancing-policy {
class = DseLoadBalancingPolicy
}
}
It is based on DefaultLoadBalancingPolicy
in the OSS driver, and reuses many of the same concepts:
token awareness, local datacenter only, and optional node filtering. Therefore it is recommended to
first review the explanations in the OSS driver
manual.
In addition, DseLoadBalancingPolicy
uses an algorithm that improves overall latency behavior when
compared to round robin, and has built-in slow node avoidance that takes the responsiveness and
uptime of each replica into account when forming the query plan.
Like the OSS policy, the local datacenter can be defined either in the configuration:
datastax-java-driver.basic.load-balancing-policy {
local-datacenter = datacenter1
}
Or programmatically when building the session:
DseSession session = DseSession.builder()
.withLocalDatacenter("datacenter1")
.build();