refactor create rocksdb

This commit is contained in:
Scott E. Graves 2024-12-18 12:37:00 -06:00
parent eeea09f65a
commit bb983594d5
4 changed files with 18 additions and 19 deletions

View File

@ -42,9 +42,9 @@ private:
private: private:
std::unique_ptr<rocksdb::TransactionDB> db_{nullptr}; std::unique_ptr<rocksdb::TransactionDB> db_{nullptr};
rocksdb::ColumnFamilyHandle *default_family_{};
rocksdb::ColumnFamilyHandle *directory_family_{}; rocksdb::ColumnFamilyHandle *directory_family_{};
rocksdb::ColumnFamilyHandle *file_family_{}; rocksdb::ColumnFamilyHandle *file_family_{};
rocksdb::ColumnFamilyHandle *source_family_{};
private: private:
void create_or_open(bool clear); void create_or_open(bool clear);

View File

@ -43,7 +43,7 @@ private:
private: private:
std::unique_ptr<rocksdb::TransactionDB> db_{nullptr}; std::unique_ptr<rocksdb::TransactionDB> db_{nullptr};
rocksdb::ColumnFamilyHandle *default_family_{}; rocksdb::ColumnFamilyHandle *meta_family_{};
rocksdb::ColumnFamilyHandle *pinned_family_{}; rocksdb::ColumnFamilyHandle *pinned_family_{};
rocksdb::ColumnFamilyHandle *size_family_{}; rocksdb::ColumnFamilyHandle *size_family_{};
rocksdb::ColumnFamilyHandle *source_family_{}; rocksdb::ColumnFamilyHandle *source_family_{};

View File

@ -50,9 +50,9 @@ void rdb_file_db::create_or_open(bool clear) {
db_ = utils::create_rocksdb(cfg_, "file", families, handles, clear); db_ = utils::create_rocksdb(cfg_, "file", families, handles, clear);
std::size_t idx{}; std::size_t idx{};
default_family_ = handles.at(idx++); source_family_ = handles.at(idx++);
file_family_ = handles.at(idx++);
directory_family_ = handles.at(idx++); directory_family_ = handles.at(idx++);
file_family_ = handles.at(idx++);
} }
auto rdb_file_db::add_directory(const std::string &api_path, auto rdb_file_db::add_directory(const std::string &api_path,
@ -80,7 +80,7 @@ auto rdb_file_db::add_directory(const std::string &api_path,
return res; return res;
} }
return txn->Put(default_family_, source_path, api_path); return txn->Put(source_family_, source_path, api_path);
}); });
} }
@ -114,7 +114,7 @@ auto rdb_file_db::add_or_update_file(const i_file_db::file_data &data)
return res; return res;
} }
return txn->Put(default_family_, data.source_path, data.api_path); return txn->Put(source_family_, data.source_path, data.api_path);
}); });
} }
@ -129,7 +129,7 @@ auto rdb_file_db::create_iterator(rocksdb::ColumnFamilyHandle *family) const
auto rdb_file_db::count() const -> std::uint64_t { auto rdb_file_db::count() const -> std::uint64_t {
std::uint64_t ret{}; std::uint64_t ret{};
auto iter = create_iterator(default_family_); auto iter = create_iterator(source_family_);
for (iter->SeekToFirst(); iter->Valid(); iter->Next()) { for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
++ret; ++ret;
} }
@ -142,7 +142,7 @@ auto rdb_file_db::get_api_path(const std::string &source_path,
REPERTORY_USES_FUNCTION_NAME(); REPERTORY_USES_FUNCTION_NAME();
return perform_action(function_name, [&]() -> rocksdb::Status { return perform_action(function_name, [&]() -> rocksdb::Status {
return db_->Get(rocksdb::ReadOptions{}, default_family_, source_path, return db_->Get(rocksdb::ReadOptions{}, source_family_, source_path,
&api_path); &api_path);
}); });
} }
@ -153,7 +153,7 @@ auto rdb_file_db::get_directory_api_path(const std::string &source_path,
REPERTORY_USES_FUNCTION_NAME(); REPERTORY_USES_FUNCTION_NAME();
auto result = perform_action(function_name, [&]() -> rocksdb::Status { auto result = perform_action(function_name, [&]() -> rocksdb::Status {
auto res = db_->Get(rocksdb::ReadOptions{}, default_family_, source_path, auto res = db_->Get(rocksdb::ReadOptions{}, source_family_, source_path,
&api_path); &api_path);
if (not res.ok()) { if (not res.ok()) {
return res; return res;
@ -191,7 +191,7 @@ auto rdb_file_db::get_file_api_path(const std::string &source_path,
REPERTORY_USES_FUNCTION_NAME(); REPERTORY_USES_FUNCTION_NAME();
auto result = perform_action(function_name, [&]() -> rocksdb::Status { auto result = perform_action(function_name, [&]() -> rocksdb::Status {
auto res = db_->Get(rocksdb::ReadOptions{}, default_family_, source_path, auto res = db_->Get(rocksdb::ReadOptions{}, source_family_, source_path,
&api_path); &api_path);
if (not res.ok()) { if (not res.ok()) {
return res; return res;
@ -285,7 +285,7 @@ auto rdb_file_db::get_item_list() const -> std::vector<i_file_db::file_info> {
auto rdb_file_db::get_source_path(const std::string &api_path, auto rdb_file_db::get_source_path(const std::string &api_path,
std::string &source_path) const -> api_error { std::string &source_path) const -> api_error {
auto iter = create_iterator(default_family_); auto iter = create_iterator(source_family_);
for (iter->SeekToFirst(); iter->Valid(); iter->Next()) { for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
if (iter->value().ToString() != api_path) { if (iter->value().ToString() != api_path) {
continue; continue;
@ -366,7 +366,7 @@ auto rdb_file_db::remove_item(const std::string &api_path) -> api_error {
auto rdb_file_db::remove_item(const std::string &api_path, auto rdb_file_db::remove_item(const std::string &api_path,
const std::string &source_path, const std::string &source_path,
rocksdb::Transaction *txn) -> rocksdb::Status { rocksdb::Transaction *txn) -> rocksdb::Status {
auto res = txn->Delete(default_family_, source_path); auto res = txn->Delete(source_family_, source_path);
if (not res.ok()) { if (not res.ok()) {
return res; return res;
} }

View File

@ -50,7 +50,7 @@ void rdb_meta_db::create_or_open(bool clear) {
db_ = utils::create_rocksdb(cfg_, "provider_meta", families, handles, clear); db_ = utils::create_rocksdb(cfg_, "provider_meta", families, handles, clear);
std::size_t idx{}; std::size_t idx{};
default_family_ = handles.at(idx++); meta_family_ = handles.at(idx++);
pinned_family_ = handles.at(idx++); pinned_family_ = handles.at(idx++);
size_family_ = handles.at(idx++); size_family_ = handles.at(idx++);
source_family_ = handles.at(idx++); source_family_ = handles.at(idx++);
@ -80,7 +80,7 @@ auto rdb_meta_db::get_api_path(const std::string &source_path,
auto rdb_meta_db::get_api_path_list() const -> std::vector<std::string> { auto rdb_meta_db::get_api_path_list() const -> std::vector<std::string> {
std::vector<std::string> ret; std::vector<std::string> ret;
auto iter = create_iterator(default_family_); auto iter = create_iterator(meta_family_);
for (iter->SeekToFirst(); iter->Valid(); iter->Next()) { for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
ret.push_back(iter->key().ToString()); ret.push_back(iter->key().ToString());
} }
@ -98,8 +98,7 @@ auto rdb_meta_db::get_item_meta_json(const std::string &api_path,
{ {
std::string value; std::string value;
auto res = perform_action(function_name, [&]() -> rocksdb::Status { auto res = perform_action(function_name, [&]() -> rocksdb::Status {
return db_->Get(rocksdb::ReadOptions{}, default_family_, api_path, return db_->Get(rocksdb::ReadOptions{}, meta_family_, api_path, &value);
&value);
}); });
if (res != api_error::success) { if (res != api_error::success) {
return res; return res;
@ -207,7 +206,7 @@ auto rdb_meta_db::get_pinned_files() const -> std::vector<std::string> {
auto rdb_meta_db::get_total_item_count() const -> std::uint64_t { auto rdb_meta_db::get_total_item_count() const -> std::uint64_t {
std::uint64_t ret{}; std::uint64_t ret{};
auto iter = create_iterator(default_family_); auto iter = create_iterator(meta_family_);
for (iter->SeekToFirst(); iter->Valid(); iter->Next()) { for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
++ret; ++ret;
} }
@ -317,7 +316,7 @@ auto rdb_meta_db::remove_api_path(const std::string &api_path,
} }
} }
return txn->Delete(default_family_, api_path); return txn->Delete(meta_family_, api_path);
} }
auto rdb_meta_db::remove_item_meta(const std::string &api_path, auto rdb_meta_db::remove_item_meta(const std::string &api_path,
@ -491,7 +490,7 @@ auto rdb_meta_db::update_item_meta(const std::string &api_path, json json_data,
} }
} }
return set_status(txn->Put(default_family_, api_path, json_data.dump())); return set_status(txn->Put(meta_family_, api_path, json_data.dump()));
}; };
if (base_txn == nullptr) { if (base_txn == nullptr) {