[RocksDB] Expose DBStatistics

Summary: Make Statistics usable by client

Test Plan: make check; db_bench

Reviewers: dhruba

Reviewed By: dhruba

Differential Revision: https://reviews.facebook.net/D10899
This commit is contained in:
Haobo Xu 2013-05-23 11:34:58 -07:00
parent 760dd4750f
commit c2e2460f8a
4 changed files with 11 additions and 2 deletions

View File

@ -1817,7 +1817,7 @@ int main(int argc, char** argv) {
} else if (sscanf(argv[i], "--statistics=%d%c", &n, &junk) == 1 && } else if (sscanf(argv[i], "--statistics=%d%c", &n, &junk) == 1 &&
(n == 0 || n == 1)) { (n == 0 || n == 1)) {
if (n == 1) { if (n == 1) {
dbstats.reset(new leveldb::DBStatistics()); dbstats = leveldb::CreateDBStatistics();
FLAGS_statistics = true; FLAGS_statistics = true;
} }
} else if (sscanf(argv[i], "--writes=%d%c", &n, &junk) == 1) { } else if (sscanf(argv[i], "--writes=%d%c", &n, &junk) == 1) {

View File

@ -8,6 +8,7 @@
#include <cassert> #include <cassert>
#include <stdlib.h> #include <stdlib.h>
#include <vector> #include <vector>
#include <memory>
#include "leveldb/statistics.h" #include "leveldb/statistics.h"
#include "util/histogram.h" #include "util/histogram.h"
@ -48,6 +49,11 @@ class DBStatistics: public Statistics {
std::vector<Ticker> allTickers_; std::vector<Ticker> allTickers_;
std::vector<HistogramImpl> allHistograms_; std::vector<HistogramImpl> allHistograms_;
}; };
std::shared_ptr<Statistics> CreateDBStatistics() {
return std::make_shared<DBStatistics>();
}
} // namespace leveldb } // namespace leveldb
#endif // LEVELDB_STORAGE_DB_DB_STATISTICS_H_ #endif // LEVELDB_STORAGE_DB_DB_STATISTICS_H_

View File

@ -128,6 +128,9 @@ class Statistics {
}; };
// Create a concrete DBStatistics object
std::shared_ptr<Statistics> CreateDBStatistics();
// Ease of Use functions // Ease of Use functions
inline void RecordTick(std::shared_ptr<Statistics> statistics, inline void RecordTick(std::shared_ptr<Statistics> statistics,
Tickers ticker, Tickers ticker,

View File

@ -1081,7 +1081,7 @@ int main(int argc, char** argv) {
} else if (sscanf(argv[i], "--statistics=%d%c", &n, &junk) == 1 && } else if (sscanf(argv[i], "--statistics=%d%c", &n, &junk) == 1 &&
(n == 0 || n == 1)) { (n == 0 || n == 1)) {
if (n == 1) { if (n == 1) {
dbstats.reset(new leveldb::DBStatistics()); dbstats = leveldb::CreateDBStatistics();
} }
} else if (sscanf(argv[i], "--sync=%d%c", &n, &junk) == 1 && } else if (sscanf(argv[i], "--sync=%d%c", &n, &junk) == 1 &&
(n == 0 || n == 1)) { (n == 0 || n == 1)) {