Loading lfs/src/adafs_ops/mdata_ops.cpp +0 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,6 @@ using namespace std; // TODO error handling. int write_all_metadata(const Metadata& md, const fuse_ino_t inode) { auto inode_key = fmt::FormatInt(inode).str(); db_put_mdata(db_build_mdata_key( inode_key, std::get<to_underlying(Md_fields::atime)>(md_field_map)), md.atime()); db_put_mdata(db_build_mdata_key( Loading lfs/src/classes/fs_data.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -124,3 +124,11 @@ void FsData::txn_rdb_options(const rocksdb::OptimisticTransactionOptions& tx_rdb FsData::txn_rdb_options_ = tx_rdb_options; } const rocksdb::WriteOptions& FsData::rdb_write_options() const { return rdb_write_options_; } void FsData::rdb_write_options(const rocksdb::WriteOptions& rdb_write_options) { FsData::rdb_write_options_ = rdb_write_options; } lfs/src/classes/fs_data.h +4 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ private: std::shared_ptr<rocksdb::OptimisticTransactionDB> txn_rdb_; rocksdb::Options rdb_options_; rocksdb::OptimisticTransactionOptions txn_rdb_options_; // needed for snapshots rocksdb::WriteOptions rdb_write_options_; std::string rdb_path_; public: Loading Loading @@ -108,6 +109,9 @@ public: void txn_rdb_options(const rocksdb::OptimisticTransactionOptions& tx_rdb_options); const rocksdb::WriteOptions& rdb_write_options() const; void rdb_write_options(const rocksdb::WriteOptions& rdb_write_options); }; Loading lfs/src/configure.hpp +3 −0 Original line number Diff line number Diff line Loading @@ -16,4 +16,7 @@ // If access permissions should be checked while opening a file //#define CHECK_ACCESS // Write-ahead logging of rocksdb //#define RDB_WOL #endif //FS_CONFIGURE_H lfs/src/db/db_ops.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ unsigned int db_get_mdata<unsigned int>(const string& key) { bool db_delete_mdata(const string& key) { auto db = ADAFS_DATA->rdb(); return db->Delete(WriteOptions(), key).ok(); return db->Delete(ADAFS_DATA->rdb_write_options(), key).ok(); } bool db_dentry_exists(const fuse_ino_t p_inode, const string& name, string& val) { Loading @@ -50,7 +50,7 @@ bool db_mdata_exists(const fuse_ino_t inode) { bool db_put_dentry(const string& key, const string& val) { auto db = ADAFS_DATA->rdb(); return db->Put(WriteOptions(), key, val).ok(); return db->Put(ADAFS_DATA->rdb_write_options(), key, val).ok(); } void db_get_dentries(vector<Dentry>& dentries, const fuse_ino_t dir_inode) { Loading Loading @@ -92,7 +92,8 @@ pair<bool, fuse_ino_t> db_delete_dentry_get_inode(const fuse_ino_t p_inode, cons db->Get(ReadOptions(), key, &val); auto pos = val.find("_"); return make_pair(db->Delete(WriteOptions(), key).ok() ? 0 : 1, static_cast<fuse_ino_t>(stoul(val.substr(0, pos)))); return make_pair(db->Delete(ADAFS_DATA->rdb_write_options(), key).ok() ? 0 : 1, static_cast<fuse_ino_t>(stoul(val.substr(0, pos)))); } /** Loading Loading
lfs/src/adafs_ops/mdata_ops.cpp +0 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,6 @@ using namespace std; // TODO error handling. int write_all_metadata(const Metadata& md, const fuse_ino_t inode) { auto inode_key = fmt::FormatInt(inode).str(); db_put_mdata(db_build_mdata_key( inode_key, std::get<to_underlying(Md_fields::atime)>(md_field_map)), md.atime()); db_put_mdata(db_build_mdata_key( Loading
lfs/src/classes/fs_data.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -124,3 +124,11 @@ void FsData::txn_rdb_options(const rocksdb::OptimisticTransactionOptions& tx_rdb FsData::txn_rdb_options_ = tx_rdb_options; } const rocksdb::WriteOptions& FsData::rdb_write_options() const { return rdb_write_options_; } void FsData::rdb_write_options(const rocksdb::WriteOptions& rdb_write_options) { FsData::rdb_write_options_ = rdb_write_options; }
lfs/src/classes/fs_data.h +4 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ private: std::shared_ptr<rocksdb::OptimisticTransactionDB> txn_rdb_; rocksdb::Options rdb_options_; rocksdb::OptimisticTransactionOptions txn_rdb_options_; // needed for snapshots rocksdb::WriteOptions rdb_write_options_; std::string rdb_path_; public: Loading Loading @@ -108,6 +109,9 @@ public: void txn_rdb_options(const rocksdb::OptimisticTransactionOptions& tx_rdb_options); const rocksdb::WriteOptions& rdb_write_options() const; void rdb_write_options(const rocksdb::WriteOptions& rdb_write_options); }; Loading
lfs/src/configure.hpp +3 −0 Original line number Diff line number Diff line Loading @@ -16,4 +16,7 @@ // If access permissions should be checked while opening a file //#define CHECK_ACCESS // Write-ahead logging of rocksdb //#define RDB_WOL #endif //FS_CONFIGURE_H
lfs/src/db/db_ops.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ unsigned int db_get_mdata<unsigned int>(const string& key) { bool db_delete_mdata(const string& key) { auto db = ADAFS_DATA->rdb(); return db->Delete(WriteOptions(), key).ok(); return db->Delete(ADAFS_DATA->rdb_write_options(), key).ok(); } bool db_dentry_exists(const fuse_ino_t p_inode, const string& name, string& val) { Loading @@ -50,7 +50,7 @@ bool db_mdata_exists(const fuse_ino_t inode) { bool db_put_dentry(const string& key, const string& val) { auto db = ADAFS_DATA->rdb(); return db->Put(WriteOptions(), key, val).ok(); return db->Put(ADAFS_DATA->rdb_write_options(), key, val).ok(); } void db_get_dentries(vector<Dentry>& dentries, const fuse_ino_t dir_inode) { Loading Loading @@ -92,7 +92,8 @@ pair<bool, fuse_ino_t> db_delete_dentry_get_inode(const fuse_ino_t p_inode, cons db->Get(ReadOptions(), key, &val); auto pos = val.find("_"); return make_pair(db->Delete(WriteOptions(), key).ok() ? 0 : 1, static_cast<fuse_ino_t>(stoul(val.substr(0, pos)))); return make_pair(db->Delete(ADAFS_DATA->rdb_write_options(), key).ok() ? 0 : 1, static_cast<fuse_ino_t>(stoul(val.substr(0, pos)))); } /** Loading