rocksdb/tools
Andrew Kryczka e089db40f9 Skip bottom-level filter block caching when hit-optimized
Summary:
When Get() or NewIterator() trigger file loads, skip caching the filter block if
(1) optimize_filters_for_hits is set and (2) the file is on the bottommost
level. Also skip checking filters under the same conditions, which means that
for a preloaded file or a file that was trivially-moved to the bottom level, its
filter block will eventually expire from the cache.

- added parameters/instance variables in various places in order to propagate the config ("skip_filters") from version_set to block_based_table_reader
- in BlockBasedTable::Rep, this optimization prevents filter from being loaded when the file is opened simply by setting filter_policy = nullptr
- in BlockBasedTable::Get/BlockBasedTable::NewIterator, this optimization prevents filter from being used (even if it was loaded already) by setting filter = nullptr

Test Plan:
updated unit test:

  $ ./db_test --gtest_filter=DBTest.OptimizeFiltersForHits

will also run 'make check'

Reviewers: sdong, igor, paultuckfield, anthony, rven, kradhakrishnan, IslamAbdelRahman, yhchiang

Reviewed By: yhchiang

Subscribers: leveldb

Differential Revision: https://reviews.facebook.net/D51633
2015-12-23 10:15:07 -08:00
..
dump Update dump_tool and undump_tool to accept Options 2015-10-05 19:49:48 -07:00
rdb fix typos in comments 2015-12-11 01:54:48 +09:00
auto_sanity_test.sh fix typos in comments 2015-12-11 01:54:48 +09:00
benchmark.sh Fix benchmark report script 2015-08-22 12:18:00 -07:00
benchmark_leveldb.sh Add scripts to run leveldb benchmark 2015-04-27 19:32:56 -07:00
check_format_compatible.sh Script to check whether RocksDB can read DB generated by previous releases and vice versa 2015-04-08 16:04:59 -07:00
db_crashtest.py crash_test to trigger some less frequent crash point more frequently 2015-10-27 12:06:06 -07:00
db_repl_stress.cc "make format" against last 10 commits 2015-07-13 13:50:18 -07:00
db_sanity_test.cc Add ZSTD (not final format) compression type 2015-08-28 11:01:13 -07:00
db_stress.cc Fix up VS 15 build. 2015-12-08 08:38:21 -08:00
dbench_monitor Added simple monitoring script to monitor overusage of memory in db_bench 2015-02-11 18:40:11 -08:00
Dockerfile adding docker build script and dockerfile 2015-05-22 16:03:39 -07:00
generate_random_db.sh Script to check whether RocksDB can read DB generated by previous releases and vice versa 2015-04-08 16:04:59 -07:00
ldb.cc Make db_stress built for ROCKSDB_LITE 2014-11-14 10:20:51 -08:00
ldb_cmd.cc Reduce moving memory in LDB::ScanCommand 2015-11-19 22:26:37 -08:00
ldb_cmd.h Move ldb and sst_dump from utils to tools. 2015-10-14 17:08:28 -07:00
ldb_cmd_execute_result.h Move ldb and sst_dump from utils to tools. 2015-10-14 17:08:28 -07:00
ldb_cmd_test.cc Block tests under ROCKSDB_LITE 2015-10-15 10:51:00 -07:00
ldb_test.py Tests for ManifestDumpCommand and ListColumnFamiliesCommand 2015-09-08 14:23:42 -07:00
ldb_tool.cc Reduce moving memory in LDB::ScanCommand 2015-11-19 22:26:37 -08:00
pflag Added simple monitoring script to monitor overusage of memory in db_bench 2015-02-11 18:40:11 -08:00
reduce_levels_test.cc Move ldb and sst_dump from utils to tools. 2015-10-14 17:08:28 -07:00
rocksdb_dump_test.sh Update dump_tool and undump_tool to accept Options 2015-10-05 19:49:48 -07:00
run_flash_bench.sh Improve defaults for benchmarks 2015-08-20 18:59:10 -07:00
run_leveldb.sh Add scripts to run leveldb benchmark 2015-04-27 19:32:56 -07:00
sample-dump.dmp First version of rocksdb_dump and rocksdb_undump. 2015-06-19 16:24:36 -07:00
sst_dump.cc Make db_stress built for ROCKSDB_LITE 2014-11-14 10:20:51 -08:00
sst_dump_test.cc Move ldb and sst_dump from utils to tools. 2015-10-14 17:08:28 -07:00
sst_dump_tool.cc Skip bottom-level filter block caching when hit-optimized 2015-12-23 10:15:07 -08:00
sst_dump_tool_imp.h Move ldb and sst_dump from utils to tools. 2015-10-14 17:08:28 -07:00
verify_random_db.sh Script to check whether RocksDB can read DB generated by previous releases and vice versa 2015-04-08 16:04:59 -07:00
write_stress.cc Fix compilation problem on Windows. 2015-10-29 11:29:18 -07:00
write_stress_runner.py Write stress test 2015-10-28 16:15:07 -07:00