26#include "chain/storage/proto/rocksdb_config.pb.h"
28#include "rocksdb/db.h"
29#include "rocksdb/write_batch.h"
35 const std::string& path, std::optional<RocksDBInfo> config = std::nullopt);
37 std::optional<RocksDBInfo> config = std::nullopt);
41 ResRocksDB(std::optional<RocksDBInfo> config_data = std::nullopt);
43 int SetValue(
const std::string& key,
const std::string& value)
override;
44 std::string
GetValue(
const std::string& key)
override;
46 std::string
GetRange(
const std::string& min_key,
47 const std::string& max_key)
override;
50 int version)
override;
52 int version)
override;
55 std::map<std::string, std::pair<std::string, int>>
GetAllItems()
override;
56 std::map<std::string, std::pair<std::string, int>>
GetKeyRange(
57 const std::string& min_key,
const std::string& max_key)
override;
60 std::vector<std::pair<std::string, int>>
GetHistory(
const std::string& key,
62 int max_version)
override;
64 const std::string& key,
int top_number)
override;
66 bool Flush()
override;
69 void CreateDB(
const std::string& path);
72 std::unique_ptr<::rocksdb::DB> db_ =
nullptr;
73 ::rocksdb::WriteBatch batch_;
74 unsigned int num_threads_ = 1;
75 unsigned int write_buffer_size_ = 64 << 20;
76 unsigned int write_batch_size_ = 1;
std::pair< std::string, int > GetValueWithVersion(const std::string &key, int version) override
int SetValue(const std::string &key, const std::string &value) override
std::map< std::string, std::pair< std::string, int > > GetKeyRange(const std::string &min_key, const std::string &max_key) override
std::vector< std::pair< std::string, int > > GetHistory(const std::string &key, int min_version, int max_version) override
int SetValueWithVersion(const std::string &key, const std::string &value, int version) override
std::string GetValue(const std::string &key) override
std::string GetAllValues(void) override
std::vector< std::pair< std::string, int > > GetTopHistory(const std::string &key, int top_number) override
std::string GetRange(const std::string &min_key, const std::string &max_key) override
std::map< std::string, std::pair< std::string, int > > GetAllItems() override
std::unique_ptr< Storage > storage
std::unique_ptr< Storage > NewResRocksDB(const std::string &path, std::optional< RocksDBInfo > config)