refactor create rocksdb
This commit is contained in:
parent
eeea09f65a
commit
bb983594d5
@ -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);
|
||||||
|
@ -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_{};
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user