Load balancing in CPP-RS Driver is implemented on top of Rust Driver's DefaultPolicy. This results in a few differences in behaviour that are worth mentions in cassandra.h and in the documentation.
Differences
-
There's no round-robin in DefaultPolicy - instead, replicas are randomly chosen.
This is deliberate, as it prevents imbalance inherent to round-robin. If some node were down, then round-robin would make the next node in the ring/tablet list receive both its own load and all load of the down node. Random selection of replica from the set of alive replicas solves the imbalance issue.
Symptoms:
cass_cluster_set_load_balance_round_robin does not set round-robin load balancing.
-
more difference TODO
Load balancing in CPP-RS Driver is implemented on top of Rust Driver's DefaultPolicy. This results in a few differences in behaviour that are worth mentions in
cassandra.hand in the documentation.Differences
There's no round-robin in DefaultPolicy - instead, replicas are randomly chosen.
This is deliberate, as it prevents imbalance inherent to round-robin. If some node were down, then round-robin would make the next node in the ring/tablet list receive both its own load and all load of the down node. Random selection of replica from the set of alive replicas solves the imbalance issue.
Symptoms:
cass_cluster_set_load_balance_round_robindoes not set round-robin load balancing.more difference TODO