changeset 20834:426ae3e75ca5

cassandra: Added latency_aware_routing connect-parameter. There's currently no way to change the default settings for it.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Mon, 10 Oct 2016 13:40:41 +0300
parents bf755549bcb3
children f00c7e5eb7af
files src/lib-sql/driver-cassandra.c
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-sql/driver-cassandra.c	Mon Oct 10 13:59:57 2016 +0300
+++ b/src/lib-sql/driver-cassandra.c	Mon Oct 10 13:40:41 2016 +0300
@@ -56,6 +56,7 @@
 	CassConsistency read_fallback_consistency, write_fallback_consistency, delete_fallback_consistency;
 	CassLogLevel log_level;
 	bool debug_queries;
+	bool latency_aware_routing;
 	unsigned int protocol_version;
 	unsigned int num_threads;
 	unsigned int connect_timeout_secs, request_timeout_secs;
@@ -442,6 +443,8 @@
 				i_fatal("cassandra: Unknown log_level: %s", value);
 		} else if (strcmp(key, "debug_queries") == 0) {
 			db->debug_queries = TRUE;
+		} else if (strcmp(key, "latency_aware_routing") == 0) {
+			db->latency_aware_routing = TRUE;
 		} else if (strcmp(key, "version") == 0) {
 			if (str_to_uint(value, &db->protocol_version) < 0)
 				i_fatal("cassandra: Invalid version: %s", value);
@@ -569,6 +572,8 @@
 		cass_cluster_set_protocol_version(db->cluster, db->protocol_version);
 	if (db->num_threads != 0)
 		cass_cluster_set_num_threads_io(db->cluster, db->num_threads);
+	if (db->latency_aware_routing)
+		cass_cluster_set_latency_aware_routing(db->cluster, TRUE);
 	db->session = cass_session_new();
 	if (db->metrics_path != NULL)
 		db->to_metrics = timeout_add(1000, driver_cassandra_metrics_write, db);