mirror of
https://github.com/facebook/rocksdb.git
synced 2024-11-28 05:43:50 +00:00
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:
|
||
---|---|---|
.. | ||
blob_constants.h | ||
blob_contents.cc | ||
blob_contents.h | ||
blob_counting_iterator.h | ||
blob_counting_iterator_test.cc | ||
blob_fetcher.cc | ||
blob_fetcher.h | ||
blob_file_addition.cc | ||
blob_file_addition.h | ||
blob_file_addition_test.cc | ||
blob_file_builder.cc | ||
blob_file_builder.h | ||
blob_file_builder_test.cc | ||
blob_file_cache.cc | ||
blob_file_cache.h | ||
blob_file_cache_test.cc | ||
blob_file_completion_callback.h | ||
blob_file_garbage.cc | ||
blob_file_garbage.h | ||
blob_file_garbage_test.cc | ||
blob_file_meta.cc | ||
blob_file_meta.h | ||
blob_file_reader.cc | ||
blob_file_reader.h | ||
blob_file_reader_test.cc | ||
blob_garbage_meter.cc | ||
blob_garbage_meter.h | ||
blob_garbage_meter_test.cc | ||
blob_index.h | ||
blob_log_format.cc | ||
blob_log_format.h | ||
blob_log_sequential_reader.cc | ||
blob_log_sequential_reader.h | ||
blob_log_writer.cc | ||
blob_log_writer.h | ||
blob_read_request.h | ||
blob_source.cc | ||
blob_source.h | ||
blob_source_test.cc | ||
db_blob_basic_test.cc | ||
db_blob_compaction_test.cc | ||
db_blob_corruption_test.cc | ||
db_blob_index_test.cc | ||
prefetch_buffer_collection.cc | ||
prefetch_buffer_collection.h |