Revision 4a21b1402cb454f6e68d4c6f288d73700b3ff9db authored by Islam AbdelRahman on 01 December 2016, 21:30:01 UTC, committed by Facebook Github Bot on 01 December 2016, 21:39:14 UTC
Summary: Reduce number of comparisons in heap by caching which child node in the first level is smallest (left_child or right_child) So next time we can compare directly against the smallest child I see that the total number of calls to comparator drops significantly when using this optimization Before caching (~2mil key comparison for iterating the DB) ``` $ DEBUG_LEVEL=0 make db_bench -j64 && ./db_bench --benchmarks="readseq" --db="/dev/shm/heap_opt" --use_existing_db --disable_auto_compactions --cache_size=1000000000 --perf_level=2 readseq : 0.338 micros/op 2959201 ops/sec; 327.4 MB/s user_key_comparison_count = 2000008 ``` After caching (~1mil key comparison for iterating the DB) ``` $ DEBUG_LEVEL=0 make db_bench -j64 && ./db_bench --benchmarks="readseq" --db="/dev/shm/heap_opt" --use_existing_db --disable_auto_compactions --cache_size=1000000000 --perf_level=2 readseq : 0.309 micros/op 3236801 ops/sec; 358.1 MB/s user_key_comparison_count = 1000011 ``` It also improves Closes https://github.com/facebook/rocksdb/pull/1600 Differential Revision: D4256027 Pulled By: IslamAbdelRahman fbshipit-source-id: 76fcc66
1 parent e39d080
File | Mode | Size |
---|---|---|
.gitignore | -rw-r--r-- | 6 bytes |
API.md | -rw-r--r-- | 6.0 KB |
README.md | -rw-r--r-- | 1.1 KB |
binding.gyp | -rw-r--r-- | 549 bytes |
db_wrapper.cc | -rw-r--r-- | 15.8 KB |
db_wrapper.h | -rw-r--r-- | 2.0 KB |
rdb | -rwxr-xr-x | 154 bytes |
rdb.cc | -rw-r--r-- | 248 bytes |
unit_test.js | -rw-r--r-- | 3.1 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...