rocksdb/table
Andrew Kryczka b79a965f7c Smaller tail readahead when not reading index/filters (#4159)
Summary:
In all cases during `BlockBasedTable::Open`, we issue at least three read requests to the file's tail: (1) footer, (2) metaindex block, and (3) properties block. Depending on the config, we may also read other metablocks like filter and index.

This PR issues smaller readahead when we expect to do only the three necessary reads mentioned above. Then, 4KB should be enough (ignoring the case where there are lots of user-defined properties). We can keep doing 512KB readahead when additional reads are expected.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4159

Differential Revision: D8924002

Pulled By: ajkr

fbshipit-source-id: cfc713275de4d05ce11f18571f1d72e27ccd3356
2018-07-24 09:43:42 -07:00
..
adaptive_table_factory.cc Comment out unused variables 2018-03-05 13:13:41 -08:00
adaptive_table_factory.h Comment out unused variables 2018-03-05 13:13:41 -08:00
block_based_filter_block_test.cc Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
block_based_filter_block.cc PrefixMayMatch: remove unnecessary check for prefix_extractor_ (#4067) 2018-06-27 20:42:43 -07:00
block_based_filter_block.h Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
block_based_table_builder.cc Charging block cache more accurately (#4073) 2018-06-29 08:57:20 -07:00
block_based_table_builder.h run make format for PR 3838 (#3954) 2018-06-05 12:58:02 -07:00
block_based_table_factory.cc Pin mmap files in ReadOnlyDB (#4053) 2018-06-27 17:13:34 -07:00
block_based_table_factory.h Pin top-level index on partitioned index/filter blocks (#4037) 2018-06-22 15:27:46 -07:00
block_based_table_reader.cc Smaller tail readahead when not reading index/filters (#4159) 2018-07-24 09:43:42 -07:00
block_based_table_reader.h Refactor BlockIter (#4121) 2018-07-12 17:27:31 -07:00
block_builder.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
block_builder.h Change RocksDB License 2017-07-15 16:11:23 -07:00
block_fetcher.cc Fix a bug caused by not copying the block trailer. (#4096) 2018-07-06 13:12:39 -07:00
block_fetcher.h Pin mmap files in ReadOnlyDB (#4053) 2018-06-27 17:13:34 -07:00
block_prefix_index.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
block_prefix_index.h Change RocksDB License 2017-07-15 16:11:23 -07:00
block_test.cc Separate some IndexBlockIter logic from BlockIter (#4136) 2018-07-16 10:13:18 -07:00
block.cc Refactor IndexBlockIter (#4141) 2018-07-16 17:13:10 -07:00
block.h Refactor IndexBlockIter (#4141) 2018-07-16 17:13:10 -07:00
bloom_block.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
bloom_block.h Change RocksDB License 2017-07-15 16:11:23 -07:00
cleanable_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
cuckoo_table_builder_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
cuckoo_table_builder.cc Enable MSVC W4 with a few exceptions. Fix warnings and bugs 2017-10-19 10:57:12 -07:00
cuckoo_table_builder.h Change RocksDB License 2017-07-15 16:11:23 -07:00
cuckoo_table_factory.cc Comment out unused variables 2018-03-05 13:13:41 -08:00
cuckoo_table_factory.h comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
cuckoo_table_reader_test.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
cuckoo_table_reader.cc Make BlockBasedTableIterator compaction-aware (#4048) 2018-06-25 13:19:27 -07:00
cuckoo_table_reader.h Make BlockBasedTableIterator compaction-aware (#4048) 2018-06-25 13:19:27 -07:00
filter_block.h use user_key and iterate_upper_bound to determine compatibility of bloom filters (#3899) 2018-06-26 15:57:26 -07:00
flush_block_policy.cc Align SST file data blocks to avoid spanning multiple pages 2018-03-26 20:26:10 -07:00
format.cc run make format for PR 3838 (#3954) 2018-06-05 12:58:02 -07:00
format.h Charging block cache more accurately (#4073) 2018-06-29 08:57:20 -07:00
full_filter_bits_builder.h Skip duplicate bloom keys when whole_key and prefix are mixed 2018-04-24 10:58:16 -07:00
full_filter_block_test.cc Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
full_filter_block.cc Charging block cache more accurately (#4073) 2018-06-29 08:57:20 -07:00
full_filter_block.h Charging block cache more accurately (#4073) 2018-06-29 08:57:20 -07:00
get_context.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
get_context.h WriteUnPrepared Txn: Disable seek to snapshot optimization (#3955) 2018-06-27 12:23:07 -07:00
index_builder.cc Test range deletions with more configurations (#4021) 2018-07-11 15:57:49 -07:00
index_builder.h Test range deletions with more configurations (#4021) 2018-07-11 15:57:49 -07:00
internal_iterator.h Change and clarify the relationship between Valid(), status() and Seek*() for all iterators. Also fix some bugs 2018-05-17 02:56:56 -07:00
iter_heap.h Make InternalKeyComparator final and directly use it in merging iterator 2017-09-11 12:04:21 -07:00
iterator_wrapper.h Change and clarify the relationship between Valid(), status() and Seek*() for all iterators. Also fix some bugs 2018-05-17 02:56:56 -07:00
iterator.cc Comment out unused variables 2018-03-05 13:13:41 -08:00
merger_test.cc Make InternalKeyComparator final and directly use it in merging iterator 2017-09-11 12:04:21 -07:00
merging_iterator.cc Fix regression bug of Prev() with upper bound (#3989) 2018-06-12 16:57:36 -07:00
merging_iterator.h fix DBImpl::NewInternalIterator super-version leak on failure 2017-10-11 14:57:43 -07:00
meta_blocks.cc Separate some IndexBlockIter logic from BlockIter (#4136) 2018-07-16 10:13:18 -07:00
meta_blocks.h Should only decode restart points for uncompressed blocks (#3996) 2018-06-15 19:26:58 -07:00
mock_table.cc Make BlockBasedTableIterator compaction-aware (#4048) 2018-06-25 13:19:27 -07:00
mock_table.h Make BlockBasedTableIterator compaction-aware (#4048) 2018-06-25 13:19:27 -07:00
partitioned_filter_block_test.cc Pin mmap files in ReadOnlyDB (#4053) 2018-06-27 17:13:34 -07:00
partitioned_filter_block.cc Refactor BlockIter (#4121) 2018-07-12 17:27:31 -07:00
partitioned_filter_block.h Extend format 3 to partitioned index/filters (#3958) 2018-06-06 16:58:16 -07:00
persistent_cache_helper.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
persistent_cache_helper.h Change RocksDB License 2017-07-15 16:11:23 -07:00
persistent_cache_options.h Change RocksDB License 2017-07-15 16:11:23 -07:00
plain_table_builder.cc Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
plain_table_builder.h Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
plain_table_factory.cc Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
plain_table_factory.h Comment out unused variables 2018-03-05 13:13:41 -08:00
plain_table_index.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
plain_table_index.h Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
plain_table_key_coding.cc Comment out unused variables 2018-03-05 13:13:41 -08:00
plain_table_key_coding.h Change RocksDB License 2017-07-15 16:11:23 -07:00
plain_table_reader.cc Make BlockBasedTableIterator compaction-aware (#4048) 2018-06-25 13:19:27 -07:00
plain_table_reader.h Make BlockBasedTableIterator compaction-aware (#4048) 2018-06-25 13:19:27 -07:00
scoped_arena_iterator.h Change RocksDB License 2017-07-15 16:11:23 -07:00
sst_file_writer_collectors.h Comment out unused variables 2018-03-05 13:13:41 -08:00
sst_file_writer.cc Support range deletion tombstones in IngestExternalFile SSTs (#3778) 2018-07-13 22:43:09 -07:00
table_builder.h Pin mmap files in ReadOnlyDB (#4053) 2018-06-27 17:13:34 -07:00
table_properties_internal.h Eliminate some redundant block reads. 2018-01-10 17:11:58 -08:00
table_properties.cc Add table property tracking number of range deletions (#4016) 2018-06-26 20:27:35 -07:00
table_reader_bench.cc Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
table_reader.h Make BlockBasedTableIterator compaction-aware (#4048) 2018-06-25 13:19:27 -07:00
table_test.cc Separate some IndexBlockIter logic from BlockIter (#4136) 2018-07-16 10:13:18 -07:00
two_level_iterator.cc Change and clarify the relationship between Valid(), status() and Seek*() for all iterators. Also fix some bugs 2018-05-17 02:56:56 -07:00
two_level_iterator.h fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00