Akanksha Mahajan
db0435772f
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-12-01 09:19:55 -08:00
..
2020-07-07 17:26:16 -07:00
2020-06-29 14:53:17 -07:00
2021-05-21 17:11:32 -07:00
2021-11-04 13:35:38 -07:00
2021-11-04 13:35:38 -07:00
2021-11-19 17:31:01 -08:00
2021-11-04 09:09:34 -07:00
2021-11-18 09:42:20 -08:00
2021-09-29 04:04:40 -07:00
2021-11-10 16:20:04 -08:00
2021-12-01 09:19:55 -08:00
2021-06-18 09:35:59 -07:00
2021-09-29 04:04:40 -07:00
2021-11-19 17:53:47 -08:00
2021-11-19 17:53:47 -08:00
2021-10-19 12:36:21 -07:00
2021-10-19 12:36:21 -07:00
2021-05-24 08:37:00 -07:00
2021-11-18 11:43:44 -08:00
2021-12-01 09:19:55 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2021-11-18 11:43:44 -08:00
2021-09-10 10:00:26 -07:00
2021-09-09 18:58:01 -07:00
2021-09-29 04:04:40 -07:00
2021-06-18 09:35:59 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2021-05-17 18:28:39 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2021-06-18 09:35:59 -07:00
2020-02-20 12:09:57 -08:00
2021-11-18 09:42:20 -08:00
2021-08-20 18:00:16 -07:00
2021-11-18 11:43:44 -08:00
2021-11-18 11:43:44 -08:00
2021-07-12 09:04:59 -07:00
2021-05-21 17:11:32 -07:00
2021-11-04 13:35:38 -07:00
2021-11-18 09:42:20 -08:00
2021-05-05 14:00:17 -07:00
2020-06-29 14:53:17 -07:00
2021-09-07 21:19:27 -07:00
2020-09-29 09:49:04 -07:00
2021-06-18 09:35:59 -07:00
2020-03-12 21:41:50 -07:00
2021-05-05 14:00:17 -07:00
2020-02-20 12:09:57 -08:00
2021-05-21 18:29:12 -07:00
2021-11-04 13:35:38 -07:00
2021-11-18 11:43:44 -08:00
2021-11-04 13:35:38 -07:00
2021-11-10 16:20:04 -08:00
2021-12-01 09:19:55 -08:00
2021-11-18 11:43:44 -08:00
2021-10-27 17:23:04 -07:00
2021-11-18 11:43:44 -08:00
2020-09-14 17:01:01 -07:00
2021-09-29 04:04:40 -07:00
2020-06-29 14:53:17 -07:00