Commit 0500cf97 authored by Marc Vef's avatar Marc Vef
Browse files

rocksdb disable write_ahead with configuration

parent e291fc0e
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -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(
+8 −0
Original line number Diff line number Diff line
@@ -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;
}
+4 −0
Original line number Diff line number Diff line
@@ -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:
@@ -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);
};


+3 −0
Original line number Diff line number Diff line
@@ -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
+4 −3
Original line number Diff line number Diff line
@@ -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) {
@@ -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) {
@@ -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