mirror of https://github.com/facebook/rocksdb.git
9a034801ce
Summary:
**Context/Summary:**
- Similar to https://github.com/facebook/rocksdb/pull/11288 but for user read such as `Get(), MultiGet(), DBIterator::XXX(), Verify(File)Checksum()`.
- For this, I refactored some user-facing `MultiGet` calls in `TransactionBase` and various types of `DB` so that it does not call a user-facing `Get()` but `GetImpl()` for passing the `ReadOptions::io_activity` check (see PR conversation)
- New user read stats breakdown are guarded by `kExceptDetailedTimers` since measurement shows they have 4-5% regression to the upstream/main.
- Misc
- More refactoring: with https://github.com/facebook/rocksdb/pull/11288, we complete passing `ReadOptions/IOOptions` to FS level. So we can now replace the previously [added](https://github.com/facebook/rocksdb/pull/9424) `rate_limiter_priority` parameter in `RandomAccessFileReader`'s `Read/MultiRead/Prefetch()` with `IOOptions::rate_limiter_priority`
- Also, `ReadAsync()` call time is measured in `SST_READ_MICRO` now
Pull Request resolved: https://github.com/facebook/rocksdb/pull/11444
Test Plan:
- CI fake db crash/stress test
- Microbenchmarking
**Build** `make clean && ROCKSDB_NO_FBCODE=1 DEBUG_LEVEL=0 make -jN db_basic_bench`
- google benchmark version:
|
||
---|---|---|
.. | ||
block_cache_tier.cc | ||
block_cache_tier.h | ||
block_cache_tier_file.cc | ||
block_cache_tier_file.h | ||
block_cache_tier_file_buffer.h | ||
block_cache_tier_metadata.cc | ||
block_cache_tier_metadata.h | ||
hash_table.h | ||
hash_table_bench.cc | ||
hash_table_evictable.h | ||
hash_table_test.cc | ||
lrulist.h | ||
persistent_cache_bench.cc | ||
persistent_cache_test.cc | ||
persistent_cache_test.h | ||
persistent_cache_tier.cc | ||
persistent_cache_tier.h | ||
persistent_cache_util.h | ||
volatile_tier_impl.cc | ||
volatile_tier_impl.h |