rocksdb/table
Sameet Agarwal e7c434c364 Add columnfamily option optimize_filters_for_hits to optimize for key hits only
Summary:
    Summary:
    Added a new option to ColumnFamllyOptions  - optimize_filters_for_hits. This option can be used in the case where most
    accesses to the store are key hits and we dont need to optimize performance for key misses.
    This is useful when you have a very large database and most of your lookups succeed.  The option allows the store to
     not store and use filters in the last level (the largest level which contains data). These filters can take a large amount of
     space for large databases (in memory and on-disk). For the last level, these filters are only useful for key misses and not
     for key hits. If we are not optimizing for key misses, we can choose to not store these filters for that level.

    This option is only provided for BlockBasedTable. We skip the filters when we are compacting

Test Plan:
1. Modified db_test toalso run tests with an additonal option (skip_filters_on_last_level)
 2. Added another unit test to db_test which specifically tests that filters are being skipped

Reviewers: rven, igor, sdong

Reviewed By: sdong

Subscribers: lgalanis, yoshinorim, MarkCallaghan, rven, dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D33717
2015-02-26 16:25:56 -08:00
..
adaptive_table_factory.cc Add columnfamily option optimize_filters_for_hits to optimize for key hits only 2015-02-26 16:25:56 -08:00
adaptive_table_factory.h Add columnfamily option optimize_filters_for_hits to optimize for key hits only 2015-02-26 16:25:56 -08:00
block_based_filter_block_test.cc rocksdb: Add missing override 2015-02-26 11:28:41 -08:00
block_based_filter_block.cc Remember whole key/prefix filtering on/off in SST file 2015-02-11 11:20:04 -08:00
block_based_filter_block.h Remember whole key/prefix filtering on/off in SST file 2015-02-11 11:20:04 -08:00
block_based_table_builder.cc Add columnfamily option optimize_filters_for_hits to optimize for key hits only 2015-02-26 16:25:56 -08:00
block_based_table_builder.h Add columnfamily option optimize_filters_for_hits to optimize for key hits only 2015-02-26 16:25:56 -08:00
block_based_table_factory.cc Add columnfamily option optimize_filters_for_hits to optimize for key hits only 2015-02-26 16:25:56 -08:00
block_based_table_factory.h Add columnfamily option optimize_filters_for_hits to optimize for key hits only 2015-02-26 16:25:56 -08:00
block_based_table_reader.cc Disable pre-fetching of index and filter blocks for sst_dump_tool. 2015-02-25 16:34:26 -08:00
block_based_table_reader.h Disable pre-fetching of index and filter blocks for sst_dump_tool. 2015-02-25 16:34:26 -08:00
block_builder.cc Turn on -Wshorten-64-to-32 and fix all the errors 2014-11-11 16:47:22 -05:00
block_builder.h delete unused Comparator 2014-09-04 09:10:13 +08:00
block_hash_index_test.cc rocksdb: Add missing override 2015-02-26 11:28:41 -08:00
block_hash_index.cc Turn on -Wshorten-64-to-32 and fix all the errors 2014-11-11 16:47:22 -05:00
block_hash_index.h Turn on -Wshadow 2014-10-31 11:59:54 -07:00
block_prefix_index.cc Turn on -Wshorten-64-to-32 and fix all the errors 2014-11-11 16:47:22 -05:00
block_prefix_index.h fix a few compile warnings 2014-09-04 23:06:23 +08:00
block_test.cc Turn on -Wshorten-64-to-32 and fix all the errors 2014-11-11 16:47:22 -05:00
block.cc Turn on -Wshorten-64-to-32 and fix all the errors 2014-11-11 16:47:22 -05:00
block.h Turn on -Wshorten-64-to-32 and fix all the errors 2014-11-11 16:47:22 -05:00
bloom_block.cc table/bloom_block.*: pass func parameter by reference 2014-09-30 23:30:31 +02:00
bloom_block.h Enforce write buffer memory limit across column families 2014-12-02 12:09:20 -08:00
cuckoo_table_builder_test.cc Turn on -Wshorten-64-to-32 and fix all the errors 2014-11-11 16:47:22 -05:00
cuckoo_table_builder.cc Support footer versions bigger than 1 2015-01-13 14:33:04 -08:00
cuckoo_table_builder.h Turn on -Wshorten-64-to-32 and fix all the errors 2014-11-11 16:47:22 -05:00
cuckoo_table_factory.cc Add columnfamily option optimize_filters_for_hits to optimize for key hits only 2015-02-26 16:25:56 -08:00
cuckoo_table_factory.h Add columnfamily option optimize_filters_for_hits to optimize for key hits only 2015-02-26 16:25:56 -08:00
cuckoo_table_reader_test.cc Add rocksdb::ToString() to address cases where std::to_string is not available. 2014-11-24 20:44:49 -08:00
cuckoo_table_reader.cc Turn on -Wshorten-64-to-32 and fix all the errors 2014-11-11 16:47:22 -05:00
cuckoo_table_reader.h use GetContext to replace callback function pointer 2014-09-29 11:09:09 -07:00
filter_block.h Dump routine to BlockBasedTableReader 2014-12-23 13:24:07 -08:00
flush_block_policy.cc move block based table related options BlockBasedTableOptions 2014-08-25 14:22:05 -07:00
format.cc New BlockBasedTable version -- better compressed block format 2015-01-14 16:24:24 -08:00
format.h New BlockBasedTable version -- better compressed block format 2015-01-14 16:24:24 -08:00
full_filter_block_test.cc rocksdb: Add missing override 2015-02-26 11:28:41 -08:00
full_filter_block.cc Remember whole key/prefix filtering on/off in SST file 2015-02-11 11:20:04 -08:00
full_filter_block.h Remember whole key/prefix filtering on/off in SST file 2015-02-11 11:20:04 -08:00
get_context.cc use GetContext to replace callback function pointer 2014-09-29 11:09:09 -07:00
get_context.h use GetContext to replace callback function pointer 2014-09-29 11:09:09 -07:00
iter_heap.h Turn on -Wmissing-prototypes 2014-04-09 21:17:14 -07:00
iterator_wrapper.h Turn -Wshadow back on 2014-11-06 11:14:28 -08:00
iterator.cc rocksdb: Add missing override 2015-02-26 11:28:41 -08:00
merger_test.cc rocksdb: Add missing override 2015-02-26 11:28:41 -08:00
merger.cc rocksdb: Add missing override 2015-02-26 11:28:41 -08:00
merger.h In DB::NewIterator(), try to allocate the whole iterator tree in an arena 2014-06-02 17:44:57 -07:00
meta_blocks.cc Support footer versions bigger than 1 2015-01-13 14:33:04 -08:00
meta_blocks.h Fix iOS compile with -Wshorten-64-to-32 2014-11-13 14:39:30 -05:00
mock_table.cc Add columnfamily option optimize_filters_for_hits to optimize for key hits only 2015-02-26 16:25:56 -08:00
mock_table.h Add columnfamily option optimize_filters_for_hits to optimize for key hits only 2015-02-26 16:25:56 -08:00
plain_table_builder.cc Support footer versions bigger than 1 2015-01-13 14:33:04 -08:00
plain_table_builder.h Turn on -Wshorten-64-to-32 and fix all the errors 2014-11-11 16:47:22 -05:00
plain_table_factory.cc Add columnfamily option optimize_filters_for_hits to optimize for key hits only 2015-02-26 16:25:56 -08:00
plain_table_factory.h Add columnfamily option optimize_filters_for_hits to optimize for key hits only 2015-02-26 16:25:56 -08:00
plain_table_index.cc Block plain_table_index.cc in ROCKSDB_LITE 2014-11-24 20:47:27 -08:00
plain_table_index.h Block plain_table_index.cc in ROCKSDB_LITE 2014-11-24 20:47:27 -08:00
plain_table_key_coding.cc rocksdb: Fixed 'Dead assignment' and 'Dead initialization' scan-build warnings 2015-02-23 14:10:09 -08:00
plain_table_key_coding.h typo improvement 2014-09-06 23:21:26 +08:00
plain_table_reader.cc rocksdb: Add missing override 2015-02-26 11:28:41 -08:00
plain_table_reader.h rocksdb: Add missing override 2015-02-26 11:28:41 -08:00
table_builder.h First phase API clean up 2014-02-03 00:30:43 -08:00
table_properties_internal.h Fix iOS compile with -Wshorten-64-to-32 2014-11-13 14:39:30 -05:00
table_properties.cc Add rocksdb::ToString() to address cases where std::to_string is not available. 2014-11-24 20:44:49 -08:00
table_reader_bench.cc Make db_stress built for ROCKSDB_LITE 2014-11-14 10:20:51 -08:00
table_reader.h Dump routine to BlockBasedTableReader 2014-12-23 13:24:07 -08:00
table_test.cc rocksdb: Add missing override 2015-02-26 11:28:41 -08:00
two_level_iterator.cc rocksdb: Add missing override 2015-02-26 11:28:41 -08:00
two_level_iterator.h Turn on -Wshadow 2014-10-31 11:59:54 -07:00