diff options
| author | Joseph Fernandes <josferna@redhat.com> | 2015-12-15 18:29:06 +0530 |
|---|---|---|
| committer | Dan Lambright <dlambrig@redhat.com> | 2015-12-22 07:14:10 -0800 |
| commit | 439de31320315872d988720991e9baaead8712db (patch) | |
| tree | af9003c4b83ad4983c2597c44f5c476664934074 /libglusterfs/src/gfdb/gfdb_data_store.c | |
| parent | 074158e7081ff0118c719aac7cf1bcde92ee8f7d (diff) | |
ctr/sql: Providing for vol set for sqlcachesize and sqlWALsize and skip recording path
1. Providing vol set option for cache size and wal autocheck point
so that performance can be tuned.
2. Removed recording of file path in the db. Trimming database columns.
Path need not be stored in the db, as PARGFID, GFID, Basename is suffice
to derive the path during migration.
Change-Id: I2cb590451a6d244bc91fe66c6dbffe2c2059dfb8
BUG: 1293034
Signed-off-by: Joseph Fernandes <josferna@redhat.com>
Reviewed-on: http://review.gluster.org/12972
Reviewed-by: N Balachandran <nbalacha@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Dan Lambright <dlambrig@redhat.com>
Tested-by: Dan Lambright <dlambrig@redhat.com>
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 */ |
