dovecot-2.2: cassandra: Changed default consistency levels to lo...

dovecot at dovecot.org dovecot at dovecot.org
Mon Aug 31 19:27:02 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/7648b127ca37
changeset: 19048:7648b127ca37
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Aug 31 22:25:57 2015 +0300
description:
cassandra: Changed default consistency levels to local-quorum.
It is a much safer default than "one".

diffstat:

 src/lib-sql/driver-cassandra.c |  18 ++++++------------
 1 files changed, 6 insertions(+), 12 deletions(-)

diffs (52 lines):

diff -r c33868915764 -r 7648b127ca37 src/lib-sql/driver-cassandra.c
--- a/src/lib-sql/driver-cassandra.c	Mon Aug 31 21:31:46 2015 +0300
+++ b/src/lib-sql/driver-cassandra.c	Mon Aug 31 22:25:57 2015 +0300
@@ -45,9 +45,6 @@
 	struct sql_result *sync_result;
 
 	char *error;
-
-	unsigned int set_read_consistency:1;
-	unsigned int set_write_consistency:1;
 };
 
 struct cassandra_result {
@@ -336,6 +333,8 @@
 	string_t *hosts = t_str_new(64);
 
 	db->log_level = CASS_LOG_WARN;
+	db->read_consistency = CASS_CONSISTENCY_LOCAL_QUORUM;
+	db->write_consistency = CASS_CONSISTENCY_LOCAL_QUORUM;
 
 	args = t_strsplit_spaces(connect_string, " ");
 	for (; *args != NULL; args++) {
@@ -357,11 +356,9 @@
 		} else if (strcmp(key, "read_consistency") == 0) {
 			if (consistency_parse(value, &db->read_consistency) < 0)
 				i_fatal("cassandra: Unknown read_consistency: %s", value);
-			db->set_read_consistency = TRUE;
 		} else if (strcmp(key, "write_consistency") == 0) {
 			if (consistency_parse(value, &db->write_consistency) < 0)
 				i_fatal("cassandra: Unknown write_consistency: %s", value);
-			db->set_write_consistency = TRUE;
 		} else if (strcmp(key, "log_level") == 0) {
 			if (log_level_parse(value, &db->log_level) < 0)
 				i_fatal("cassandra: Unknown log_level: %s", value);
@@ -524,13 +521,10 @@
 	result->query = i_strdup(query);
 	result->row_pool = pool_alloconly_create("cassandra result", 512);
 	result->statement = cass_statement_new(query, 0);
-	if (result->write_query) {
-		if (db->set_write_consistency)
-			cass_statement_set_consistency(result->statement, db->write_consistency);
-	} else {
-		if (db->set_read_consistency)
-			cass_statement_set_consistency(result->statement, db->read_consistency);
-	}
+	if (result->write_query)
+		cass_statement_set_consistency(result->statement, db->write_consistency);
+	else
+		cass_statement_set_consistency(result->statement, db->read_consistency);
 	future = cass_session_execute(db->session, result->statement);
 	driver_cassandra_set_callback(future, db, query_callback, result);
 }


More information about the dovecot-cvs mailing list