summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/gfdb/gfdb_data_store.c
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs/src/gfdb/gfdb_data_store.c')
-rw-r--r--libglusterfs/src/gfdb/gfdb_data_store.c165
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 */