summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngo Huerner <ingo_huerner@mentor.com>2017-03-29 09:16:31 +0200
committerIngo Huerner <ingo_huerner@mentor.com>2017-03-29 09:16:31 +0200
commit445fc7836f886964a48947b1302db4dc4e7172d3 (patch)
tree99b2cb17cb91572e18888e5a97bee041d73656cd
parentb4bb5e120b71438bad2c45934e10b3058a0b7ee2 (diff)
downloadpersistence-common-object-445fc7836f886964a48947b1302db4dc4e7172d3.tar.gz
Added fdatasync for writethrough keys to make sure data will be synced to non-volatile memory device
-rw-r--r--src/key-value-store/pers_low_level_db_access.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/key-value-store/pers_low_level_db_access.c b/src/key-value-store/pers_low_level_db_access.c
index 0d843fc..f1c1a42 100644
--- a/src/key-value-store/pers_low_level_db_access.c
+++ b/src/key-value-store/pers_low_level_db_access.c
@@ -1004,6 +1004,8 @@ static sint_t DeleteDataFromKissDB(sint_t dbHandler, pconststr_t key)
DLT_STRING("Error Message: "); DLT_STRING(strerror(errno)));
}
}
+
+ fdatasync(pLldbHandler->kissDb.fd);
}
Kdb_unlock(&pLldbHandler->kissDb.shared->rwlock);
}
@@ -1076,6 +1078,8 @@ static sint_t DeleteDataFromKissRCT(sint_t dbHandler, pconststr_t key)
DLT_STRING("Error Message: "); DLT_STRING(strerror(errno)));
}
}
+
+ fdatasync(pLldbHandler->kissDb.fd);
}
Kdb_unlock(&pLldbHandler->kissDb.shared->rwlock);
}
@@ -1295,6 +1299,8 @@ static sint_t SetDataInKissLocalDB(sint_t dbHandler, pconststr_t key, pconststr_
DLT_LOG(persComLldbDLTCtx, DLT_LOG_ERROR,
DLT_STRING(__FUNCTION__); DLT_STRING(":"); DLT_STRING("KISSDB_put: key=<"); DLT_STRING(metaKey); DLT_STRING(">, "); DLT_STRING("WriteThrough to file failed with retval=<"); DLT_INT(bytesWritten); DLT_STRING(">"));
}
+
+ fdatasync(pLldbHandler->kissDb.fd);
}
}
Kdb_unlock(&pLldbHandler->kissDb.shared->rwlock);
@@ -1380,6 +1386,8 @@ static sint_t SetDataInKissRCT(sint_t dbHandler, pconststr_t key, PersistenceCon
DLT_LOG(persComLldbDLTCtx, DLT_LOG_ERROR,
DLT_STRING(__FUNCTION__); DLT_STRING(":"); DLT_STRING("KISSDB_put: RCT key=<"); DLT_STRING(metaKey); DLT_STRING(">, "); DLT_STRING("WriteThrough to file failed with retval=<"); DLT_INT(bytesWritten); DLT_STRING(">"));
}
+
+ fdatasync(pLldbHandler->kissDb.fd);
}
}
Kdb_unlock(&pLldbHandler->kissDb.shared->rwlock);