Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 4115cf6

Browse files
committedMar 3, 2023
draft
1 parent 8dfcfd4 commit 4115cf6

File tree

7 files changed

+16
-3
lines changed

7 files changed

+16
-3
lines changed
 

‎HISTORY.md

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
### New Features
1010
* Add statistics rocksdb.secondary.cache.filter.hits, rocksdb.secondary.cache.index.hits, and rocksdb.secondary.cache.filter.hits
11+
* Add new stat rocksdb.table.prefetch.tail.read.bytes to report number of bytes read in prefetching contents from the end of SST tables during table open
1112

1213
## 8.0.0 (02/19/2023)
1314
### Behavior changes

‎include/rocksdb/statistics.h

+4
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,10 @@ enum Histograms : uint32_t {
533533
// Wait time for aborting async read in FilePrefetchBuffer destructor
534534
ASYNC_PREFETCH_ABORT_MICROS,
535535

536+
// Number of bytes read in prefetching contents from the end of SST tables
537+
// during table open
538+
TABLE_PREFETCH_TAIL_READ_BYTES,
539+
536540
HISTOGRAM_ENUM_MAX
537541
};
538542

‎java/rocksjni/portal.h

+4
Original file line numberDiff line numberDiff line change
@@ -5609,6 +5609,8 @@ class HistogramTypeJni {
56095609
return 0x37;
56105610
case ASYNC_PREFETCH_ABORT_MICROS:
56115611
return 0x38;
5612+
case ROCKSDB_NAMESPACE::Histograms::TABLE_PREFETCH_TAIL_READ_BYTES:
5613+
return 0x39;
56125614
case ROCKSDB_NAMESPACE::Histograms::HISTOGRAM_ENUM_MAX:
56135615
// 0x1F for backwards compatibility on current minor version.
56145616
return 0x1F;
@@ -5725,6 +5727,8 @@ class HistogramTypeJni {
57255727
return ROCKSDB_NAMESPACE::Histograms::NUM_LEVEL_READ_PER_MULTIGET;
57265728
case 0x38:
57275729
return ROCKSDB_NAMESPACE::Histograms::ASYNC_PREFETCH_ABORT_MICROS;
5730+
case 0x39:
5731+
return ROCKSDB_NAMESPACE::Histograms::TABLE_PREFETCH_TAIL_READ_BYTES;
57285732
case 0x1F:
57295733
// 0x1F for backwards compatibility on current minor version.
57305734
return ROCKSDB_NAMESPACE::Histograms::HISTOGRAM_ENUM_MAX;

‎java/src/main/java/org/rocksdb/HistogramType.java

+2
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,8 @@ public enum HistogramType {
162162

163163
ASYNC_READ_BYTES((byte) 0x33),
164164

165+
TABLE_PREFETCH_TAIL_READ_BYTES((byte) 0x39),
166+
165167
// 0x1F for backwards compatibility on current minor version.
166168
HISTOGRAM_ENUM_MAX((byte) 0x1F);
167169

‎monitoring/statistics.cc

+1
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ const std::vector<std::pair<Histograms, std::string>> HistogramsNameMap = {
272272
{MULTIGET_IO_BATCH_SIZE, "rocksdb.multiget.io.batch.size"},
273273
{NUM_LEVEL_READ_PER_MULTIGET, "rocksdb.num.level.read.per.multiget"},
274274
{ASYNC_PREFETCH_ABORT_MICROS, "rocksdb.async.prefetch.abort.micros"},
275+
{TABLE_PREFETCH_TAIL_READ_BYTES, "rocksdb.table.prefetch.tail.read.bytes"},
275276
};
276277

277278
std::shared_ptr<Statistics> CreateDBStatistics() {

‎table/block_based/block_based_table_reader.cc

+3-2
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,7 @@ Status BlockBasedTable::Open(
591591
if (!ioptions.allow_mmap_reads) {
592592
s = PrefetchTail(ro, file.get(), file_size, force_direct_prefetch,
593593
tail_prefetch_stats, prefetch_all, preload_all,
594-
&prefetch_buffer);
594+
&prefetch_buffer, ioptions.stats);
595595
// Return error in prefetch path to users.
596596
if (!s.ok()) {
597597
return s;
@@ -802,7 +802,7 @@ Status BlockBasedTable::PrefetchTail(
802802
const ReadOptions& ro, RandomAccessFileReader* file, uint64_t file_size,
803803
bool force_direct_prefetch, TailPrefetchStats* tail_prefetch_stats,
804804
const bool prefetch_all, const bool preload_all,
805-
std::unique_ptr<FilePrefetchBuffer>* prefetch_buffer) {
805+
std::unique_ptr<FilePrefetchBuffer>* prefetch_buffer, Statistics* stats) {
806806
size_t tail_prefetch_size = 0;
807807
if (tail_prefetch_stats != nullptr) {
808808
// Multiple threads may get a 0 (no history) when running in parallel,
@@ -852,6 +852,7 @@ Status BlockBasedTable::PrefetchTail(
852852
s = (*prefetch_buffer)
853853
->Prefetch(opts, file, prefetch_off, prefetch_len,
854854
ro.rate_limiter_priority);
855+
RecordInHistogram(stats, TABLE_PREFETCH_TAIL_READ_BYTES, prefetch_len);
855856
}
856857
return s;
857858
}

‎table/block_based/block_based_table_reader.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ class BlockBasedTable : public TableReader {
444444
const ReadOptions& ro, RandomAccessFileReader* file, uint64_t file_size,
445445
bool force_direct_prefetch, TailPrefetchStats* tail_prefetch_stats,
446446
const bool prefetch_all, const bool preload_all,
447-
std::unique_ptr<FilePrefetchBuffer>* prefetch_buffer);
447+
std::unique_ptr<FilePrefetchBuffer>* prefetch_buffer, Statistics* stats);
448448
Status ReadMetaIndexBlock(const ReadOptions& ro,
449449
FilePrefetchBuffer* prefetch_buffer,
450450
std::unique_ptr<Block>* metaindex_block,

0 commit comments

Comments
 (0)
Please sign in to comment.