Akanksha Mahajan
04b2c16f9b
Fix bug in rocksdb internal automatic prefetching (#9234)
Summary:
After introducing adaptive_readahead, the original flow got
broken. Readahead size was set to 0 because of which rocksdb wasn't be
able to do automatic prefetching which it enables after seeing
sequential reads. This PR fixes it.
----------------------------------------------------------------------------------------------------
Before this patch:
b_bench -use_existing_db=true -db=/tmp/prefix_scan -benchmarks="seekrandom" -key_size=32 -value_size=512 -num=5000000 -use_direct_reads=true -seek_nexts=327680 -duration=120 -ops_between_duration_checks=1
Initializing RocksDB Options from the specified file
Initializing RocksDB Options from command-line flags
RocksDB: version 6.27
Date: Tue Nov 30 11:56:50 2021
CPU: 24 * Intel Core Processor (Broadwell)
CPUCache: 16384 KB
Keys: 32 bytes each (+ 0 bytes user-defined timestamp)
Values: 512 bytes each (256 bytes after compression)
Entries: 5000000
Prefix: 0 bytes
Keys per prefix: 0
RawSize: 2594.0 MB (estimated)
FileSize: 1373.3 MB (estimated)
Write rate: 0 bytes/second
Read rate: 0 ops/second
Compression: Snappy
Compression sampling rate: 0
Memtablerep: SkipListFactory
Perf Level: 1
WARNING: Assertions are enabled; benchmarks unnecessarily slow
------------------------------------------------
DB path: [/tmp/prefix_scan]
seekrandom : 5356367.174 micros/op 0 ops/sec; 29.4 MB/s (23 of 23 found)
----------------------------------------------------------------------------------------------------
After the patch:
./db_bench -use_existing_db=true -db=/tmp/prefix_scan -benchmarks="seekrandom" -key_size=32 -value_size=512 -num=5000000 -use_direct_reads=true -seek_nexts=327680 -duration=120 -ops_between_duration_checks=1
Initializing RocksDB Options from the specified file
Initializing RocksDB Options from command-line flags
RocksDB: version 6.27
Date: Tue Nov 30 14:38:33 2021
CPU: 24 * Intel Core Processor (Broadwell)
CPUCache: 16384 KB
Keys: 32 bytes each (+ 0 bytes user-defined timestamp)
Values: 512 bytes each (256 bytes after compression)
Entries: 5000000
Prefix: 0 bytes
Keys per prefix: 0
RawSize: 2594.0 MB (estimated)
FileSize: 1373.3 MB (estimated)
Write rate: 0 bytes/second
Read rate: 0 ops/second
Compression: Snappy
Compression sampling rate: 0
Memtablerep: SkipListFactory
Perf Level: 1
WARNING: Assertions are enabled; benchmarks unnecessarily slow
------------------------------------------------
DB path: [/tmp/prefix_scan]
seekrandom : 456504.277 micros/op 2 ops/sec; 359.8 MB/s (264 of 264 found)
Pull Request resolved: https://github.com/facebook/rocksdb/pull/9234
Test Plan:
Ran ./db_bench -db=/data/mysql/rocksdb/prefix_scan
-benchmarks="fillseq" -key_size=32 -value_size=512 -num=5000000 -use_d
irect_io_for_flush_and_compaction=true -target_file_size_base=16777216
and then ./db_bench -use_existing_db=true
-db=/data/mysql/rocksdb/prefix_scan -benchmarks="seekrandom"
-key_size=32 -value_siz
e=512 -num=5000000 -use_direct_reads=true -seek_nexts=327680
-duration=120 -ops_between_duration_checks=1
and compared the results.
Reviewed By: anand1976
Differential Revision: D32743965
Pulled By: akankshamahajan15
fbshipit-source-id: b950fba68c91963b7deb5c20acdf471bc60251f5
2021-11-30 22:53:10 -08:00
..
2021-03-17 20:44:49 -07:00
2021-11-03 12:21:27 -07:00
2021-03-15 04:34:11 -07:00
2021-11-30 22:53:10 -08:00
2021-11-30 22:53:10 -08:00
2021-11-19 17:53:47 -08:00
2021-07-30 12:16:44 -07:00
2021-11-03 12:21:27 -07:00
2021-10-16 10:04:32 -07:00
2021-09-15 15:09:48 -07:00
2021-09-15 15:09:48 -07:00
2021-11-30 22:53:10 -08:00
2021-03-26 21:31:16 -07:00
2021-11-18 17:11:19 -08:00
2021-11-18 17:11:19 -08:00
2021-08-09 12:51:14 -07:00
2021-03-09 20:12:38 -08:00
2021-11-10 16:20:04 -08:00
2021-01-04 16:01:01 -08:00
2021-01-04 16:01:01 -08:00
2021-10-05 10:51:59 -07:00
2021-11-18 17:11:19 -08:00
2021-09-29 04:04:40 -07:00
2021-03-17 20:44:49 -07:00
2021-11-18 17:11:19 -08:00
2021-11-18 17:11:19 -08:00