rocksdb/table
Andrew Kryczka 48e8baebc0 Decouple data iterator and range deletion iterator in TableCache
Summary:
Previously we used TableCache::NewIterator() for multiple purposes (data
block iterator and range deletion iterator), and returned non-ok status in
the data block iterator. In one case where the caller only used the range
deletion block iterator (9e7cf3469b/db/version_set.cc (L965-L973)),
we didn't check/free the data block iterator containing non-ok status, which
caused a valgrind error.

So, this diff decouples creation of data block and range deletion block iterators,
and updates the callers accordingly. Both functions can return non-ok status
in an InternalIterator. Since the non-ok status is returned in an iterator that the
callers will definitely use, it should be more usable/less error-prone.
Closes https://github.com/facebook/rocksdb/pull/1513

Differential Revision: D4181423

Pulled By: ajkr

fbshipit-source-id: 835b8f5
2016-11-15 17:24:28 -08:00
..
adaptive_table_factory.cc solve the problem of table_factory_to_write_=nullptr (#1342) 2016-09-20 10:11:51 -07:00
adaptive_table_factory.h Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
block_based_filter_block_test.cc Add statistics field to show total size of index and filter blocks in block cache 2016-06-03 10:47:47 -07:00
block_based_filter_block.cc BlockBasedTable::FullFilterKeyMayMatch() Should skip prefix bloom if full key bloom exists 2016-06-10 16:27:56 -07:00
block_based_filter_block.h BlockBasedTable::FullFilterKeyMayMatch() Should skip prefix bloom if full key bloom exists 2016-06-10 16:27:56 -07:00
block_based_table_builder.cc Change ioptions to store user_comparator, fix bug 2016-10-21 11:31:42 -07:00
block_based_table_builder.h Compaction Support for Range Deletion 2016-10-18 12:04:56 -07:00
block_based_table_factory.cc Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
block_based_table_factory.h Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
block_based_table_reader.cc sst_dump support for range deletion 2016-11-12 09:39:23 -08:00
block_based_table_reader.h sst_dump support for range deletion 2016-11-12 09:39:23 -08:00
block_builder.cc Miscellaneous performance improvements 2016-07-12 14:15:32 -07:00
block_builder.h TableBuilder / TableReader support for range deletion 2016-08-19 15:10:31 -07:00
block_prefix_index.cc Fix clang analyzer errors 2016-07-08 17:50:51 -07:00
block_prefix_index.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block_test.cc Support SST files with Global sequence numbers [reland] 2016-10-18 16:59:37 -07:00
block.cc Support SST files with Global sequence numbers [reland] 2016-10-18 16:59:37 -07:00
block.h Fix wrong comment (Maximum supported block size) 2016-11-04 11:24:14 -07:00
bloom_block.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
bloom_block.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
cuckoo_table_builder_test.cc New Statistics to track Compression/Decompression (#1197) 2016-07-19 09:44:03 -07:00
cuckoo_table_builder.cc Embed column family name in SST file 2016-04-06 23:10:32 -07:00
cuckoo_table_builder.h Embed column family name in SST file 2016-04-06 23:10:32 -07:00
cuckoo_table_factory.cc Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
cuckoo_table_factory.h Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
cuckoo_table_reader_test.cc DeleteRange Get support 2016-11-03 18:54:20 -07:00
cuckoo_table_reader.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
cuckoo_table_reader.h Remove ImmutableCFOptions from public API 2016-09-02 14:16:31 -07:00
filter_block.h BlockBasedTable::FullFilterKeyMayMatch() Should skip prefix bloom if full key bloom exists 2016-06-10 16:27:56 -07:00
flush_block_policy.cc Miscellaneous performance improvements 2016-07-12 14:15:32 -07:00
format.cc Insert range deletion meta-block into block cache 2016-11-05 09:24:26 -07:00
format.h Insert range deletion meta-block into block cache 2016-11-05 09:24:26 -07:00
full_filter_block_test.cc Add statistics field to show total size of index and filter blocks in block cache 2016-06-03 10:47:47 -07:00
full_filter_block.cc BlockBasedTable::FullFilterKeyMayMatch() Should skip prefix bloom if full key bloom exists 2016-06-10 16:27:56 -07:00
full_filter_block.h BlockBasedTable::FullFilterKeyMayMatch() Should skip prefix bloom if full key bloom exists 2016-06-10 16:27:56 -07:00
get_context.cc Decouple data iterator and range deletion iterator in TableCache 2016-11-15 17:24:28 -08:00
get_context.h Decouple data iterator and range deletion iterator in TableCache 2016-11-15 17:24:28 -08:00
internal_iterator.h fix assertion failure in Prev() 2016-10-13 17:36:48 -07:00
iter_heap.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
iterator_wrapper.h Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
iterator.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
merger_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
merger.cc revert Prev() in MergingIterator to use previous code in non-prefix-seek mode 2016-10-24 13:13:01 -07:00
merger.h revert Prev() in MergingIterator to use previous code in non-prefix-seek mode 2016-10-24 13:13:01 -07:00
meta_blocks.cc Support SST files with Global sequence numbers [reland] 2016-10-18 16:59:37 -07:00
meta_blocks.h New Statistics to track Compression/Decompression (#1197) 2016-07-19 09:44:03 -07:00
mock_table.cc DeleteRange flush support 2016-10-31 20:54:18 -07:00
mock_table.h Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
persistent_cache_helper.cc Added PersistentCache abstraction 2016-05-15 22:17:18 -07:00
persistent_cache_helper.h Added PersistentCache abstraction 2016-05-15 22:17:18 -07:00
plain_table_builder.cc Compaction Support for Range Deletion 2016-10-18 12:04:56 -07:00
plain_table_builder.h Embed column family name in SST file 2016-04-06 23:10:32 -07:00
plain_table_factory.cc store prefix_extractor_name in table 2016-08-26 11:46:32 -07:00
plain_table_factory.h Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
plain_table_index.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
plain_table_index.h Remove ImmutableCFOptions from public API 2016-09-02 14:16:31 -07:00
plain_table_key_coding.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
plain_table_key_coding.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
plain_table_reader.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
plain_table_reader.h Skip bottom-level filter block caching when hit-optimized 2015-12-23 10:15:07 -08:00
scoped_arena_iterator.h Compaction Support for Range Deletion 2016-10-18 12:04:56 -07:00
sst_file_writer_collectors.h Support SST files with Global sequence numbers [reland] 2016-10-18 16:59:37 -07:00
sst_file_writer.cc Fix SstFileWriter destructor 2016-11-12 20:11:19 -08:00
table_builder.h Add TableBuilderOptions::level and relevant changes (#1335) 2016-09-17 22:30:43 -07:00
table_properties_internal.h TableBuilder / TableReader support for range deletion 2016-08-19 15:10:31 -07:00
table_properties.cc Insert range deletion meta-block into block cache 2016-11-05 09:24:26 -07:00
table_reader_bench.cc DeleteRange Get support 2016-11-03 18:54:20 -07:00
table_reader.h TableBuilder / TableReader support for range deletion 2016-08-19 15:10:31 -07:00
table_test.cc Insert range deletion meta-block into block cache 2016-11-05 09:24:26 -07:00
two_level_iterator.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
two_level_iterator.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00