diff options
author | Joseph Fernandes <josferna@redhat.com> | 2015-06-20 14:38:12 +0530 |
---|---|---|
committer | Dan Lambright <dlambrig@redhat.com> | 2015-06-26 16:05:20 -0700 |
commit | 26ef697318a7fec5ed82b000e3be4e30cfb16b50 (patch) | |
tree | a83e0c745e12016482bffb883361e507dd04275f /libglusterfs/src/gfdb/gfdb_sqlite3_helper.c | |
parent | 254218fa39d9317f759b4bfb4433478586eda0e3 (diff) |
tier/ctr: Ignore creation of T file and Ctr Lookup heal improvememnts
1) Ignore creation of T file in ctr_mknod
2) Ignore lookup for T file in ctr_lookup
3) Ctr_lookup:
a. If the gfid and pgfid in empty dont record
b. Decreased log level for multiple heal attempts
c. Inode/File heal happens after an expiry period, which is configurable.
d. Hardlink heal happens after an expiry period, which is configurable.
Change-Id: Id8eb5092e78beaec22d05f5283645081619e2452
BUG: 1235269
Signed-off-by: Joseph Fernandes <josferna@redhat.com>
Reviewed-on: http://review.gluster.org/11334
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Dan Lambright <dlambrig@redhat.com>
Tested-by: Dan Lambright <dlambrig@redhat.com>
Diffstat (limited to 'libglusterfs/src/gfdb/gfdb_sqlite3_helper.c')
-rw-r--r-- | libglusterfs/src/gfdb/gfdb_sqlite3_helper.c | 49 |
1 files changed, 33 insertions, 16 deletions
diff --git a/libglusterfs/src/gfdb/gfdb_sqlite3_helper.c b/libglusterfs/src/gfdb/gfdb_sqlite3_helper.c index f3e0e9711a9..40ee24c9627 100644 --- a/libglusterfs/src/gfdb/gfdb_sqlite3_helper.c +++ b/libglusterfs/src/gfdb/gfdb_sqlite3_helper.c @@ -9,7 +9,7 @@ */ #include "gfdb_sqlite3_helper.h" -#include "libglusterfs-messages.h" + #define GFDB_SQL_STMT_SIZE 256 @@ -309,7 +309,8 @@ gf_sql_insert_link (gf_sql_connection_t *sql_conn, char *pargfid, char *basename, char *basepath, - gf_boolean_t link_consistency) + gf_boolean_t link_consistency, + gf_boolean_t ignore_errors) { int ret = -1; sqlite3_stmt *insert_stmt = NULL; @@ -332,8 +333,11 @@ gf_sql_insert_link (gf_sql_connection_t *sql_conn, ret = sqlite3_prepare (sql_conn->sqlite3_db_conn, insert_str, -1, &insert_stmt, 0); if (ret != SQLITE_OK) { - gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, - LG_MSG_PREPARE_FAILED, "Failed preparing insert " + gf_msg (GFDB_STR_SQLITE3, + _gfdb_log_level (GF_LOG_ERROR, ignore_errors), + 0, + LG_MSG_PREPARE_FAILED, + "Failed preparing insert " "statment %s : %s", insert_str, sqlite3_errmsg (sql_conn->sqlite3_db_conn)); ret = -1; @@ -343,8 +347,11 @@ gf_sql_insert_link (gf_sql_connection_t *sql_conn, /*Bind gfid*/ ret = sqlite3_bind_text (insert_stmt, 1, gfid, -1, NULL); if (ret != SQLITE_OK) { - gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, - LG_MSG_BINDING_FAILED, "Failed binding gfid %s : %s", + gf_msg (GFDB_STR_SQLITE3, + _gfdb_log_level (GF_LOG_ERROR, ignore_errors), + 0, + LG_MSG_BINDING_FAILED, + "Failed binding gfid %s : %s", gfid, sqlite3_errmsg (sql_conn->sqlite3_db_conn)); ret = -1; goto out; @@ -353,8 +360,10 @@ gf_sql_insert_link (gf_sql_connection_t *sql_conn, /*Bind pargfid*/ ret = sqlite3_bind_text (insert_stmt, 2, pargfid, -1, NULL); if (ret != SQLITE_OK) { - gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, - LG_MSG_BINDING_FAILED, "Failed binding parent gfid %s " + gf_msg (GFDB_STR_SQLITE3, + _gfdb_log_level (GF_LOG_ERROR, ignore_errors), + 0, LG_MSG_BINDING_FAILED, + "Failed binding parent gfid %s " ": %s", pargfid, sqlite3_errmsg (sql_conn->sqlite3_db_conn)); ret = -1; @@ -364,8 +373,9 @@ gf_sql_insert_link (gf_sql_connection_t *sql_conn, /*Bind basename*/ ret = sqlite3_bind_text (insert_stmt, 3, basename, -1, NULL); if (ret != SQLITE_OK) { - gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, - LG_MSG_BINDING_FAILED, + gf_msg (GFDB_STR_SQLITE3, + _gfdb_log_level (GF_LOG_ERROR, ignore_errors), + 0, LG_MSG_BINDING_FAILED, "Failed binding basename %s : %s", basename, sqlite3_errmsg (sql_conn->sqlite3_db_conn)); ret = -1; @@ -375,8 +385,10 @@ gf_sql_insert_link (gf_sql_connection_t *sql_conn, /*Bind basepath*/ ret = sqlite3_bind_text (insert_stmt, 4, basepath, -1, NULL); if (ret != SQLITE_OK) { - gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, - LG_MSG_BINDING_FAILED, "Failed binding basepath %s : " + gf_msg (GFDB_STR_SQLITE3, + _gfdb_log_level (GF_LOG_ERROR, ignore_errors), 0, + LG_MSG_BINDING_FAILED, + "Failed binding basepath %s : " "%s", basepath, sqlite3_errmsg (sql_conn->sqlite3_db_conn)); ret = -1; @@ -385,8 +397,11 @@ gf_sql_insert_link (gf_sql_connection_t *sql_conn, /*Execute the prepare statement*/ if (sqlite3_step (insert_stmt) != SQLITE_DONE) { - gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, LG_MSG_EXEC_FAILED, - "Failed executing the prepared stmt %s %s %s %s %s : %s", + gf_msg (GFDB_STR_SQLITE3, + _gfdb_log_level (GF_LOG_ERROR, ignore_errors), + 0, LG_MSG_EXEC_FAILED, + "Failed executing the prepared " + "stmt %s %s %s %s %s : %s", gfid, pargfid, basename, basepath, insert_str, sqlite3_errmsg (sql_conn->sqlite3_db_conn)); ret = -1; @@ -777,7 +792,8 @@ gf_sql_insert_wind (gf_sql_connection_t *sql_conn, gfid_str, pargfid_str, gfdb_db_record->file_name, gfdb_db_record->file_path, - gfdb_db_record->link_consistency); + gfdb_db_record->link_consistency, + gfdb_db_record->ignore_errors); if (ret) { gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, LG_MSG_INSERT_FAILED, "Failed " @@ -836,7 +852,8 @@ gf_sql_insert_wind (gf_sql_connection_t *sql_conn, gfid_str, pargfid_str, gfdb_db_record->file_name, gfdb_db_record->file_path, - gfdb_db_record->link_consistency); + gfdb_db_record->link_consistency, + gfdb_db_record->ignore_errors); if (ret) { gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, LG_MSG_INSERT_FAILED, |