1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

Save rocksdb statistics to file every minute (#932)

* Save rocksdb statistics to file every minute

* Add flag to disable collecting rocksdb statistics
This commit is contained in:
Marat 2024-03-20 12:21:40 +01:00 committed by GitHub
parent bf9848c60f
commit 7a6bfa7e7a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 85 additions and 11 deletions

View file

@ -59,9 +59,8 @@ RocksDb RocksDb::clone() const {
return RocksDb{db_, statistics_};
}
Result<RocksDb> RocksDb::open(std::string path) {
Result<RocksDb> RocksDb::open(std::string path, std::shared_ptr<rocksdb::Statistics> statistics) {
rocksdb::OptimisticTransactionDB *db;
auto statistics = rocksdb::CreateDBStatistics();
{
rocksdb::Options options;
@ -94,6 +93,18 @@ Result<RocksDb> RocksDb::open(std::string path) {
return RocksDb(std::shared_ptr<rocksdb::OptimisticTransactionDB>(db), std::move(statistics));
}
std::shared_ptr<rocksdb::Statistics> RocksDb::create_statistics() {
return rocksdb::CreateDBStatistics();
}
std::string RocksDb::statistics_to_string(const std::shared_ptr<rocksdb::Statistics> statistics) {
return statistics->ToString();
}
void RocksDb::reset_statistics(const std::shared_ptr<rocksdb::Statistics> statistics) {
statistics->Reset();
}
std::unique_ptr<KeyValueReader> RocksDb::snapshot() {
auto res = std::make_unique<RocksDb>(clone());
res->begin_snapshot().ensure();

View file

@ -38,7 +38,7 @@ class RocksDb : public KeyValue {
public:
static Status destroy(Slice path);
RocksDb clone() const;
static Result<RocksDb> open(std::string path);
static Result<RocksDb> open(std::string path, std::shared_ptr<rocksdb::Statistics> statistics = nullptr);
Result<GetStatus> get(Slice key, std::string &value) override;
Status set(Slice key, Slice value) override;
@ -60,6 +60,10 @@ class RocksDb : public KeyValue {
std::unique_ptr<KeyValueReader> snapshot() override;
std::string stats() const override;
static std::shared_ptr<rocksdb::Statistics> create_statistics();
static std::string statistics_to_string(const std::shared_ptr<rocksdb::Statistics> statistics);
static void reset_statistics(const std::shared_ptr<rocksdb::Statistics> statistics);
RocksDb(RocksDb &&);
RocksDb &operator=(RocksDb &&);
~RocksDb();