rocksdb/table
Islam AbdelRahman d719b095dc Introduce PinnedIteratorsManager (Reduce PinData() overhead / Refactor PinData)
Summary:
While trying to reuse PinData() / ReleasePinnedData() .. to optimize away some memcpys I realized that there is a significant overhead for using PinData() / ReleasePinnedData if they were called many times.
This diff refactor the pinning logic by introducing PinnedIteratorsManager a centralized component that will be created once and will be notified whenever we need to Pin an Iterator. This implementation have much less overhead than the original implementation

Test Plan:
make check -j64
COMPILE_WITH_ASAN=1 make check -j64

Reviewers: yhchiang, sdong, andrewkr

Reviewed By: andrewkr

Subscribers: andrewkr, dhruba

Differential Revision: https://reviews.facebook.net/D56493
2016-04-26 12:41:07 -07:00
..
adaptive_table_factory.cc Fix null-pointer-dereference detected by Infer (https://github.com/facebook/infer) 2016-04-25 20:09:36 +01:00
adaptive_table_factory.h Pass column family ID to table property collector 2015-10-09 14:36:51 -07:00
block_based_filter_block_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block_based_filter_block.cc Revert "Revert "Fixed the bug when both whole_key_filtering and prefix_extractor are set."" 2016-02-22 16:33:26 -08:00
block_based_filter_block.h Revert "Revert "Fixed the bug when both whole_key_filtering and prefix_extractor are set."" 2016-02-22 16:33:26 -08:00
block_based_table_builder.cc Add comparator, merge operator, property collectors to SST file properties (again) 2016-04-21 10:16:28 -07:00
block_based_table_builder.h Embed column family name in SST file 2016-04-06 23:10:32 -07:00
block_based_table_factory.cc Embed column family name in SST file 2016-04-06 23:10:32 -07:00
block_based_table_factory.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block_based_table_reader.cc BlockBasedTable::PrefixMayMatch() to skip index checking if we can't find a filter block. 2016-04-13 19:06:48 -07:00
block_based_table_reader.h Adding pin_l0_filter_and_index_blocks_in_cache feature and related fixes. 2016-04-01 10:42:39 -07:00
block_builder.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block_builder.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block_hash_index_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block_hash_index.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block_hash_index.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block_prefix_index.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block_prefix_index.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block.h Introduce PinnedIteratorsManager (Reduce PinData() overhead / Refactor PinData) 2016-04-26 12:41:07 -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 Embed column family name in SST file 2016-04-06 23:10:32 -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 Embed column family name in SST file 2016-04-06 23:10:32 -07:00
cuckoo_table_factory.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
cuckoo_table_reader_test.cc Embed column family name in SST file 2016-04-06 23:10:32 -07:00
cuckoo_table_reader.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
cuckoo_table_reader.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
filter_block.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
flush_block_policy.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
format.cc Introduce XPRESS compresssion on Windows. (#1081) 2016-04-19 22:54:24 -07:00
format.h Introduce XPRESS compresssion on Windows. (#1081) 2016-04-19 22:54:24 -07:00
full_filter_block_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
full_filter_block.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
full_filter_block.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
get_context.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
get_context.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
internal_iterator.h Introduce PinnedIteratorsManager (Reduce PinData() overhead / Refactor PinData) 2016-04-26 12:41:07 -07:00
iter_heap.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
iterator_wrapper.h Introduce PinnedIteratorsManager (Reduce PinData() overhead / Refactor PinData) 2016-04-26 12:41:07 -07:00
iterator.cc Rename iterator property "rocksdb.iterator.is.key.pinned" => "rocksdb.iterator.is-key-pinned" 2016-03-01 13:47:12 -08:00
merger_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
merger.cc Introduce PinnedIteratorsManager (Reduce PinData() overhead / Refactor PinData) 2016-04-26 12:41:07 -07:00
merger.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
meta_blocks.cc Add comparator, merge operator, property collectors to SST file properties (again) 2016-04-21 10:16:28 -07:00
meta_blocks.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
mock_table.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
mock_table.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
plain_table_builder.cc Embed column family name in SST file 2016-04-06 23:10:32 -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 Embed column family name in SST file 2016-04-06 23:10:32 -07:00
plain_table_factory.h Fix build broken by previous commit of "option helper refactor" 2015-11-17 16:52:54 -08: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 Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08: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 Skip bottom-level filter block caching when hit-optimized 2015-12-23 10:15:07 -08: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 Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
sst_file_writer.cc Embed column family name in SST file 2016-04-06 23:10:32 -07:00
table_builder.h Embed column family name in SST file 2016-04-06 23:10:32 -07:00
table_properties_internal.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
table_properties.cc Add comparator, merge operator, property collectors to SST file properties (again) 2016-04-21 10:16:28 -07:00
table_reader_bench.cc Embed column family name in SST file 2016-04-06 23:10:32 -07:00
table_reader.h Adding pin_l0_filter_and_index_blocks_in_cache feature and related fixes. 2016-04-01 10:42:39 -07:00
table_test.cc Add comparator, merge operator, property collectors to SST file properties (again) 2016-04-21 10:16:28 -07:00
two_level_iterator.cc Introduce PinnedIteratorsManager (Reduce PinData() overhead / Refactor PinData) 2016-04-26 12:41:07 -07:00
two_level_iterator.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00