diff --git a/db/db_bench.cc b/db/db_bench.cc index 157ea34bfc..c743f4f2bc 100644 --- a/db/db_bench.cc +++ b/db/db_bench.cc @@ -742,6 +742,7 @@ class Benchmark { "COMPACTION OUT FILE SYNC MICROS"); PrintHistogram(WAL_FILE_SYNC_MICROS, "WAL FILE SYNC MICROS"); PrintHistogram(MANIFEST_FILE_SYNC_MICROS, "Manifest SYNC MICROS"); + PrintHistogram(TABLE_OPEN_IO_MICROS, "Table Open IO Micros"); } } diff --git a/db/table_cache.cc b/db/table_cache.cc index 9764119d3a..90b64b0a53 100644 --- a/db/table_cache.cc +++ b/db/table_cache.cc @@ -9,6 +9,7 @@ #include "leveldb/statistics.h" #include "table/table.h" #include "util/coding.h" +#include "util/stop_watch.h" namespace leveldb { @@ -57,6 +58,7 @@ Status TableCache::FindTable(const EnvOptions& toptions, if (options_->advise_random_on_open) { file->Hint(RandomAccessFile::RANDOM); } + StopWatch sw(env_, options_->statistics, TABLE_OPEN_IO_MICROS); s = Table::Open(*options_, toptions, std::move(file), file_size, &table); } diff --git a/include/leveldb/statistics.h b/include/leveldb/statistics.h index bbd774a71a..4dc0667001 100644 --- a/include/leveldb/statistics.h +++ b/include/leveldb/statistics.h @@ -73,8 +73,10 @@ enum Histograms { COMPACTION_OUTFILE_SYNC_MICROS = 4, WAL_FILE_SYNC_MICROS = 5, MANIFEST_FILE_SYNC_MICROS = 6, - DB_MULTIGET = 7, - HISTOGRAM_ENUM_MAX = 8 + // TIME SPENT IN IO DURING TABLE OPEN + TABLE_OPEN_IO_MICROS = 7, + DB_MULTIGET = 8, + HISTOGRAM_ENUM_MAX = 9 }; struct HistogramData {