diff options
Diffstat (limited to 'libglusterfs/src/gfdb/gfdb_data_store.c')
-rw-r--r-- | libglusterfs/src/gfdb/gfdb_data_store.c | 165 |
1 files changed, 96 insertions, 69 deletions
diff --git a/libglusterfs/src/gfdb/gfdb_data_store.c b/libglusterfs/src/gfdb/gfdb_data_store.c index ffa3fb67905..9c042f9e82e 100644 --- a/libglusterfs/src/gfdb/gfdb_data_store.c +++ b/libglusterfs/src/gfdb/gfdb_data_store.c @@ -147,8 +147,7 @@ delete_conn_node (gfdb_conn_node_t *_conn_node) } else { if (IS_FIRST_NODE(db_conn_list, _conn_node)) { db_conn_list = list_entry (db_conn_list->conn_list.next, - gfdb_conn_node_t, - conn_list); + gfdb_conn_node_t, conn_list); } list_del(&_conn_node->conn_list); GF_FREE (_conn_node); @@ -176,8 +175,9 @@ out: /*Internal function: Used initialize/map db operation of * specified type of db plugin*/ static int -init_db_operations (gfdb_db_type_t gfdb_db_type, - gfdb_db_operations_t *gfdb_db_operations) { +init_db_operations (gfdb_db_type_t gfdb_db_type, + gfdb_db_operations_t *gfdb_db_operations) +{ int ret = -1; @@ -268,7 +268,7 @@ init_db (dict_t *args, gfdb_db_type_t gfdb_db_type) /*Calling the init_db_op of the respected db type*/ GF_ASSERT (db_operations_t->init_db_op); ret = db_operations_t->init_db_op (args, &_conn_node->gfdb_connection. - gf_db_connection); + gf_db_connection); if (ret) { gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0, LG_MSG_INIT_DB_FAILED, "Failed initializing database"); @@ -314,7 +314,7 @@ alloc_failed: int fini_db (gfdb_conn_node_t *_conn_node) { - int ret = -1; + int ret = -1; gfdb_db_operations_t *db_operations_t = NULL; CHECK_CONN_NODE_GOTO (_conn_node, empty); @@ -324,7 +324,7 @@ fini_db (gfdb_conn_node_t *_conn_node) GF_ASSERT (db_operations_t->fini_db_op); ret = db_operations_t->fini_db_op(&_conn_node->gfdb_connection. - gf_db_connection); + gf_db_connection); if (ret) { gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0, LG_MSG_CLOSE_CONNECTION_FAILED, "Failed close the db " @@ -366,9 +366,9 @@ out: * -ve value in case of failure*/ int insert_record (gfdb_conn_node_t *_conn_node, - gfdb_db_record_t *gfdb_db_record) + gfdb_db_record_t *gfdb_db_record) { - int ret = 0; + int ret = 0; gfdb_db_operations_t *db_operations_t = NULL; void *gf_db_connection = NULL; @@ -380,7 +380,7 @@ insert_record (gfdb_conn_node_t *_conn_node, if (db_operations_t->insert_record_op) { ret = db_operations_t->insert_record_op (gf_db_connection, - gfdb_db_record); + gfdb_db_record); if (ret) { gf_msg (GFDB_DATA_STORE, _gfdb_log_level (GF_LOG_ERROR, gfdb_db_record->ignore_errors), 0, @@ -407,9 +407,9 @@ insert_record (gfdb_conn_node_t *_conn_node, * -ve value in case of failure*/ int delete_record (gfdb_conn_node_t *_conn_node, - gfdb_db_record_t *gfdb_db_record) + gfdb_db_record_t *gfdb_db_record) { - int ret = 0; + int ret = 0; gfdb_db_operations_t *db_operations_t = NULL; void *gf_db_connection = NULL; @@ -421,7 +421,7 @@ delete_record (gfdb_conn_node_t *_conn_node, if (db_operations_t->delete_record_op) { ret = db_operations_t->delete_record_op (gf_db_connection, - gfdb_db_record); + gfdb_db_record); if (ret) { gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0, LG_MSG_DELETE_FAILED, "Delete operation " @@ -447,9 +447,11 @@ delete_record (gfdb_conn_node_t *_conn_node, * Returns : if successful return 0 or * -ve value in case of failure*/ int -find_all(gfdb_conn_node_t *_conn_node, gf_query_callback_t query_callback, - void *_query_cbk_args) { - int ret = 0; +find_all (gfdb_conn_node_t *_conn_node, + gf_query_callback_t query_callback, + void *_query_cbk_args) +{ + int ret = 0; gfdb_db_operations_t *db_operations_t = NULL; void *gf_db_connection = NULL; @@ -460,8 +462,8 @@ find_all(gfdb_conn_node_t *_conn_node, gf_query_callback_t query_callback, if (db_operations_t->find_all_op) { ret = db_operations_t->find_all_op (gf_db_connection, - query_callback, - _query_cbk_args); + query_callback, + _query_cbk_args); if (ret) { gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0, LG_MSG_FIND_OP_FAILED, "Find all operation " @@ -488,12 +490,13 @@ find_all(gfdb_conn_node_t *_conn_node, gf_query_callback_t query_callback, * Returns : if successful return 0 or * -ve value in case of failure*/ int -find_unchanged_for_time(gfdb_conn_node_t *_conn_node, - gf_query_callback_t query_callback, - void *_query_cbk_args, - gfdb_time_t *for_time) { +find_unchanged_for_time(gfdb_conn_node_t *_conn_node, + gf_query_callback_t query_callback, + void *_query_cbk_args, + gfdb_time_t *for_time) +{ - int ret = 0; + int ret = 0; gfdb_db_operations_t *db_operations_t = NULL; void *gf_db_connection = NULL; @@ -505,10 +508,8 @@ find_unchanged_for_time(gfdb_conn_node_t *_conn_node, if (db_operations_t->find_unchanged_for_time_op) { ret = db_operations_t->find_unchanged_for_time_op - (gf_db_connection, - query_callback, - _query_cbk_args, - for_time); + (gf_db_connection, query_callback, + _query_cbk_args, for_time); if (ret) { gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0, LG_MSG_FIND_OP_FAILED, "Find unchanged " @@ -533,12 +534,13 @@ find_unchanged_for_time(gfdb_conn_node_t *_conn_node, * Returns : if successful return 0 or * -ve value in case of failure*/ int -find_recently_changed_files(gfdb_conn_node_t *_conn_node, - gf_query_callback_t query_callback, - void *_query_cbk_args, - gfdb_time_t *from_time) { +find_recently_changed_files(gfdb_conn_node_t *_conn_node, + gf_query_callback_t query_callback, + void *_query_cbk_args, + gfdb_time_t *from_time) +{ - int ret = 0; + int ret = 0; gfdb_db_operations_t *db_operations_t = NULL; void *gf_db_connection = NULL; @@ -550,10 +552,8 @@ find_recently_changed_files(gfdb_conn_node_t *_conn_node, if (db_operations_t->find_recently_changed_files_op) { ret = db_operations_t->find_recently_changed_files_op ( - gf_db_connection, - query_callback, - _query_cbk_args, - from_time); + gf_db_connection, query_callback, + _query_cbk_args, from_time); if (ret) { gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0, LG_MSG_FIND_OP_FAILED, @@ -590,9 +590,9 @@ find_unchanged_for_time_freq(gfdb_conn_node_t *_conn_node, gfdb_time_t *for_time, int write_freq_thresold, int read_freq_thresold, - gf_boolean_t _clear_counters) { - - int ret = 0; + gf_boolean_t _clear_counters) +{ + int ret = 0; gfdb_db_operations_t *db_operations_t = NULL; void *gf_db_connection = NULL; @@ -604,13 +604,10 @@ find_unchanged_for_time_freq(gfdb_conn_node_t *_conn_node, if (db_operations_t->find_unchanged_for_time_freq_op) { ret = db_operations_t->find_unchanged_for_time_freq_op( - gf_db_connection, - query_callback, - _query_cbk_args, - for_time, - write_freq_thresold, - read_freq_thresold, - _clear_counters); + gf_db_connection, query_callback, + _query_cbk_args, for_time, + write_freq_thresold, read_freq_thresold, + _clear_counters); if (ret) { gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0, LG_MSG_FIND_OP_FAILED, @@ -646,9 +643,10 @@ find_recently_changed_files_freq(gfdb_conn_node_t *_conn_node, gfdb_time_t *from_time, int write_freq_thresold, int read_freq_thresold, - gf_boolean_t _clear_counters) { + gf_boolean_t _clear_counters) +{ - int ret = 0; + int ret = 0; gfdb_db_operations_t *db_operations_t = NULL; void *gf_db_connection = NULL; @@ -660,13 +658,10 @@ find_recently_changed_files_freq(gfdb_conn_node_t *_conn_node, if (db_operations_t->find_recently_changed_files_freq_op) { ret = db_operations_t->find_recently_changed_files_freq_op( - gf_db_connection, - query_callback, - _query_cbk_args, - from_time, - write_freq_thresold, - read_freq_thresold, - _clear_counters); + gf_db_connection, query_callback, + _query_cbk_args, from_time, + write_freq_thresold, read_freq_thresold, + _clear_counters); if (ret) { gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0, LG_MSG_FIND_OP_FAILED, @@ -691,9 +686,10 @@ find_recently_changed_files_freq(gfdb_conn_node_t *_conn_node, **/ int -clear_files_heat (gfdb_conn_node_t *conn_node) { - int ret = 0; - gfdb_db_operations_t *db_operations = NULL; +clear_files_heat (gfdb_conn_node_t *conn_node) +{ + int ret = 0; + gfdb_db_operations_t *db_operations = NULL; void *gf_db_connection = NULL; CHECK_CONN_NODE(conn_node); @@ -705,7 +701,7 @@ clear_files_heat (gfdb_conn_node_t *conn_node) { ret = db_operations->clear_files_heat_op (gf_db_connection); if (ret) { gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0, - LG_MSG_FIND_OP_FAILED, + LG_MSG_INSERT_OR_UPDATE_FAILED, "Clear files heat operation failed"); } } @@ -728,8 +724,8 @@ clear_files_heat (gfdb_conn_node_t *conn_node) { int get_db_version (gfdb_conn_node_t *conn_node, char **version) { - int ret = 0; - gfdb_db_operations_t *db_operations = NULL; + int ret = 0; + gfdb_db_operations_t *db_operations = NULL; void *gf_db_connection = NULL; CHECK_CONN_NODE(conn_node); @@ -739,7 +735,7 @@ get_db_version (gfdb_conn_node_t *conn_node, char **version) if (db_operations->get_db_version) { ret = db_operations->get_db_version (gf_db_connection, - version); + version); if (ret < 0) { gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0, LG_MSG_FIND_OP_FAILED, @@ -751,11 +747,11 @@ get_db_version (gfdb_conn_node_t *conn_node, char **version) } int -get_db_setting (gfdb_conn_node_t *conn_node, char *param_key, +get_db_params (gfdb_conn_node_t *conn_node, char *param_key, char **param_value) { - int ret = -1; - gfdb_db_operations_t *db_operations = NULL; + int ret = -1; + gfdb_db_operations_t *db_operations = NULL; void *gf_db_connection = NULL; CHECK_CONN_NODE(conn_node); @@ -763,9 +759,10 @@ get_db_setting (gfdb_conn_node_t *conn_node, char *param_key, db_operations = &conn_node->gfdb_connection.gfdb_db_operations; gf_db_connection = conn_node->gfdb_connection.gf_db_connection; - if (db_operations->get_db_setting) { - ret = db_operations->get_db_setting (gf_db_connection, - param_key, param_value); + if (db_operations->get_db_params) { + ret = db_operations->get_db_params (gf_db_connection, + param_key, + param_value); if (ret < 0) { gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0, LG_MSG_FIND_OP_FAILED, @@ -777,6 +774,35 @@ get_db_setting (gfdb_conn_node_t *conn_node, char *param_key, } +int +set_db_params (gfdb_conn_node_t *conn_node, char *param_key, + char *param_value) +{ + int ret = -1; + gfdb_db_operations_t *db_operations = NULL; + void *gf_db_connection = NULL; + + CHECK_CONN_NODE(conn_node); + + db_operations = &conn_node->gfdb_connection.gfdb_db_operations; + gf_db_connection = conn_node->gfdb_connection.gf_db_connection; + + if (db_operations->set_db_params) { + ret = db_operations->set_db_params (gf_db_connection, + param_key, + param_value); + if (ret < 0) { + gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0, + LG_MSG_INSERT_OR_UPDATE_FAILED, + "Failed to set database setting"); + } + } + + return ret; +} + + + static const char *get_db_path_key() @@ -795,7 +821,8 @@ void get_gfdb_methods (gfdb_methods_t *methods) find_recently_changed_files_freq; methods->clear_files_heat = clear_files_heat; methods->get_db_version = get_db_version; - methods->get_db_setting = get_db_setting; + methods->get_db_params = get_db_params; + methods->set_db_params = set_db_params; methods->get_db_path_key = get_db_path_key; /* Query Record related functions */ |