@@ -971,9 +971,9 @@ class LevelIterator final : public InternalIterator {
971
971
TableCache* table_cache, const ReadOptions& read_options,
972
972
const FileOptions& file_options, const InternalKeyComparator& icomparator,
973
973
const LevelFilesBrief* flevel, const MutableCFOptions& mutable_cf_options,
974
- bool should_sample, HistogramImpl* file_read_hist ,
975
- TableReaderCaller caller, bool skip_filters, int level ,
976
- RangeDelAggregator* range_del_agg,
974
+ bool should_sample, InternalStats* internal_stats ,
975
+ HistogramImpl* file_read_hist, TableReaderCaller caller ,
976
+ bool skip_filters, int level, RangeDelAggregator* range_del_agg,
977
977
const std::vector<AtomicCompactionUnitBoundary>* compaction_boundaries =
978
978
nullptr ,
979
979
bool allow_unprepared_value = false ,
@@ -987,6 +987,7 @@ class LevelIterator final : public InternalIterator {
987
987
flevel_(flevel),
988
988
mutable_cf_options_(mutable_cf_options),
989
989
prefix_extractor_(mutable_cf_options.prefix_extractor.get()),
990
+ internal_stats_(internal_stats),
990
991
file_read_hist_(file_read_hist),
991
992
caller_(caller),
992
993
file_index_(flevel_->num_files),
@@ -1149,7 +1150,8 @@ class LevelIterator final : public InternalIterator {
1149
1150
return table_cache_->NewIterator (
1150
1151
read_options_, file_options_, icomparator_, *file_meta.file_metadata ,
1151
1152
range_del_agg_, mutable_cf_options_,
1152
- nullptr /* don't need reference to table */ , file_read_hist_, caller_,
1153
+ nullptr /* don't need reference to table */ , internal_stats_,
1154
+ file_read_hist_, caller_,
1153
1155
/* arena=*/ nullptr , skip_filters_, level_,
1154
1156
/* max_file_size_for_l0_meta_pin=*/ 0 , smallest_compaction_key,
1155
1157
largest_compaction_key, allow_unprepared_value_, &read_seq_,
@@ -1180,6 +1182,7 @@ class LevelIterator final : public InternalIterator {
1180
1182
const MutableCFOptions& mutable_cf_options_;
1181
1183
const SliceTransform* prefix_extractor_;
1182
1184
1185
+ InternalStats* internal_stats_;
1183
1186
HistogramImpl* file_read_hist_;
1184
1187
TableReaderCaller caller_;
1185
1188
size_t file_index_;
@@ -1930,7 +1933,7 @@ InternalIterator* Version::TEST_GetLevelIterator(
1930
1933
auto level_iter = new (mem) LevelIterator (
1931
1934
cfd_->table_cache (), read_options, file_options_,
1932
1935
cfd_->internal_comparator (), &storage_info_.LevelFilesBrief (level),
1933
- mutable_cf_options_, should_sample_file_read (),
1936
+ mutable_cf_options_, should_sample_file_read (), cfd_-> internal_stats (),
1934
1937
cfd_->internal_stats ()->GetFileReadHist (level),
1935
1938
TableReaderCaller::kUserIterator , IsFilterSkipped (level), level,
1936
1939
nullptr /* range_del_agg */ , nullptr /* compaction_boundaries */ ,
@@ -2038,7 +2041,8 @@ void Version::AddIteratorsForLevel(const ReadOptions& read_options,
2038
2041
auto table_iter = cfd_->table_cache ()->NewIterator (
2039
2042
read_options, soptions, cfd_->internal_comparator (),
2040
2043
*file.file_metadata , /* range_del_agg=*/ nullptr , mutable_cf_options_,
2041
- nullptr , cfd_->internal_stats ()->GetFileReadHist (0 ),
2044
+ nullptr , cfd_->internal_stats (),
2045
+ cfd_->internal_stats ()->GetFileReadHist (0 ),
2042
2046
TableReaderCaller::kUserIterator , arena,
2043
2047
/* skip_filters=*/ false , /* level=*/ 0 , max_file_size_for_l0_meta_pin_,
2044
2048
/* smallest_compaction_key=*/ nullptr ,
@@ -2069,7 +2073,7 @@ void Version::AddIteratorsForLevel(const ReadOptions& read_options,
2069
2073
auto level_iter = new (mem) LevelIterator (
2070
2074
cfd_->table_cache (), read_options, soptions,
2071
2075
cfd_->internal_comparator (), &storage_info_.LevelFilesBrief (level),
2072
- mutable_cf_options_, should_sample_file_read (),
2076
+ mutable_cf_options_, should_sample_file_read (), cfd_-> internal_stats (),
2073
2077
cfd_->internal_stats ()->GetFileReadHist (level),
2074
2078
TableReaderCaller::kUserIterator , IsFilterSkipped (level), level,
2075
2079
/* range_del_agg=*/ nullptr ,
@@ -2111,7 +2115,7 @@ Status Version::OverlapWithLevelIterator(const ReadOptions& read_options,
2111
2115
ScopedArenaPtr<InternalIterator> iter (cfd_->table_cache ()->NewIterator (
2112
2116
read_options, file_options, cfd_->internal_comparator (),
2113
2117
*file->file_metadata , &range_del_agg, mutable_cf_options_, nullptr ,
2114
- cfd_->internal_stats ()->GetFileReadHist (0 ),
2118
+ cfd_->internal_stats (), cfd_-> internal_stats () ->GetFileReadHist (0 ),
2115
2119
TableReaderCaller::kUserIterator , &arena,
2116
2120
/* skip_filters=*/ false , /* level=*/ 0 , max_file_size_for_l0_meta_pin_,
2117
2121
/* smallest_compaction_key=*/ nullptr ,
@@ -2128,7 +2132,7 @@ Status Version::OverlapWithLevelIterator(const ReadOptions& read_options,
2128
2132
ScopedArenaPtr<InternalIterator> iter (new (mem) LevelIterator (
2129
2133
cfd_->table_cache (), read_options, file_options,
2130
2134
cfd_->internal_comparator (), &storage_info_.LevelFilesBrief (level),
2131
- mutable_cf_options_, should_sample_file_read (),
2135
+ mutable_cf_options_, should_sample_file_read (), cfd_-> internal_stats (),
2132
2136
cfd_->internal_stats ()->GetFileReadHist (level),
2133
2137
TableReaderCaller::kUserIterator , IsFilterSkipped (level), level,
2134
2138
&range_del_agg, nullptr , false ));
@@ -7084,7 +7088,7 @@ InternalIterator* VersionSet::MakeInputIterator(
7084
7088
read_options, file_options_compactions,
7085
7089
cfd->internal_comparator (), fmd, range_del_agg,
7086
7090
c->mutable_cf_options (),
7087
- /* table_reader_ptr=*/ nullptr ,
7091
+ /* table_reader_ptr=*/ nullptr , cfd-> internal_stats (),
7088
7092
/* file_read_hist=*/ nullptr , TableReaderCaller::kCompaction ,
7089
7093
/* arena=*/ nullptr ,
7090
7094
/* skip_filters=*/ false ,
@@ -7105,7 +7109,7 @@ InternalIterator* VersionSet::MakeInputIterator(
7105
7109
list[num++] = new LevelIterator (
7106
7110
cfd->table_cache (), read_options, file_options_compactions,
7107
7111
cfd->internal_comparator (), flevel, c->mutable_cf_options (),
7108
- /* should_sample=*/ false ,
7112
+ /* should_sample=*/ false , cfd-> internal_stats (),
7109
7113
/* no per level latency histogram=*/ nullptr ,
7110
7114
TableReaderCaller::kCompaction , /* skip_filters=*/ false ,
7111
7115
/* level=*/ static_cast <int >(c->level (which)), range_del_agg,
0 commit comments