rocksdb/table
Feng Zhu 8f09d53fd1 remove malloc when create data and index iterator in Get
Summary:
  Define Block::Iter to be an independent class to be used by block_based_table_reader
  When creating data and index iterator, update an existing iterator rather than new one
  Thus malloc and free could be reduced

Benchmark,
Base:
commit 76286ee67e
commands:
--db=/dev/shm/rocksdb --num_levels=6 --key_size=20 --prefix_size=20 --keys_per_prefix=0 --value_size=100 --write_buffer_size=134217728 --max_write_buffer_number=2 --target_file_size_base=33554432 --max_bytes_for_level_base=1073741824 --verify_checksum=false --max_background_compactions=4 --use_plain_table=0 --memtablerep=prefix_hash --open_files=-1 --mmap_read=1 --mmap_write=0 --bloom_bits=10 --bloom_locality=1 --memtable_bloom_bits=500000 --compression_type=lz4 --num=2621440 --use_hash_search=1 --block_size=1024 --block_restart_interval=1 --use_existing_db=1 --threads=1 --benchmarks=readrandom —disable_auto_compactions=1

malloc: 3.30% -> 1.42%
free: 3.59%->1.61%

Test Plan:
  make all check
  run db_stress
  valgrind ./db_test ./table_test

Reviewers: ljin, yhchiang, dhruba, igor, sdong

Reviewed By: sdong

Subscribers: leveldb

Differential Revision: https://reviews.facebook.net/D20655
2014-07-30 16:34:35 -07:00
..
adaptive_table_factory.cc Change order of parameters in adaptive table factory 2014-06-18 07:04:37 +02:00
adaptive_table_factory.h Change order of parameters in adaptive table factory 2014-06-18 07:04:37 +02:00
block_based_table_builder.cc Fix compressed cache 2014-07-16 06:45:49 -07:00
block_based_table_builder.h Don't compress block bigger than 2GB 2014-06-09 12:26:09 -07:00
block_based_table_factory.cc Materialize the hash index 2014-05-15 14:09:03 -07:00
block_based_table_factory.h Materialize the hash index 2014-05-15 14:09:03 -07:00
block_based_table_reader.cc remove malloc when create data and index iterator in Get 2014-07-30 16:34:35 -07:00
block_based_table_reader.h remove malloc when create data and index iterator in Get 2014-07-30 16:34:35 -07:00
block_builder.cc [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
block_builder.h [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
block_hash_index_test.cc Materialize the hash index 2014-05-15 14:09:03 -07:00
block_hash_index.cc Materialize the hash index 2014-05-15 14:09:03 -07:00
block_hash_index.h Materialize the hash index 2014-05-15 14:09:03 -07:00
block_prefix_index.cc [RocksDB] Fix unit test 2014-06-19 01:37:21 -07:00
block_prefix_index.h [RocksDB] Reduce memory footprint of the blockbased table hash index. 2014-06-18 18:16:07 -07:00
block_test.cc Materialize the hash index 2014-05-15 14:09:03 -07:00
block.cc remove malloc when create data and index iterator in Get 2014-07-30 16:34:35 -07:00
block.h remove malloc when create data and index iterator in Get 2014-07-30 16:34:35 -07:00
bloom_block.cc Adding option to save PlainTable index and bloom filter in SST file. 2014-07-18 16:58:13 -07:00
bloom_block.h Adding option to save PlainTable index and bloom filter in SST file. 2014-07-18 16:58:13 -07:00
cuckoo_table_builder_test.cc Implementation of CuckooTableReader 2014-07-25 16:37:32 -07:00
cuckoo_table_builder.cc Minor changes to CuckooTableBuilder 2014-07-28 17:14:25 -07:00
cuckoo_table_builder.h Minor changes to CuckooTableBuilder 2014-07-28 17:14:25 -07:00
cuckoo_table_factory.h Addressing TODOs in CuckooTableBuilder 2014-07-24 10:07:41 -07:00
cuckoo_table_reader_test.cc Minor changes to CuckooTableBuilder 2014-07-28 17:14:25 -07:00
cuckoo_table_reader.cc Implementation of CuckooTableReader 2014-07-25 16:37:32 -07:00
cuckoo_table_reader.h Implementation of CuckooTableReader 2014-07-25 16:37:32 -07:00
filter_block_test.cc [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
filter_block.cc Consolidate SliceTransform object ownership 2014-03-10 12:56:46 -07:00
filter_block.h [CF] Rethinking ColumnFamilyHandle and fix to dropping column families 2014-02-12 13:47:09 -08:00
flush_block_policy.cc Remove the terrible hack in for flush_block_policy_factory 2014-02-28 16:39:27 -08:00
format.cc Fix iOS compile 2014-05-07 17:48:31 -07:00
format.h xxHash 2014-05-01 14:09:32 -04:00
iter_heap.h Turn on -Wmissing-prototypes 2014-04-09 21:17:14 -07:00
iterator_wrapper.h In DB::NewIterator(), try to allocate the whole iterator tree in an arena 2014-06-02 17:44:57 -07:00
iterator.cc In DB::NewIterator(), try to allocate the whole iterator tree in an arena 2014-06-02 17:44:57 -07:00
merger.cc In DB::NewIterator(), try to allocate the whole iterator tree in an arena 2014-06-02 17:44:57 -07: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 Adding option to save PlainTable index and bloom filter in SST file. 2014-07-18 16:58:13 -07:00
meta_blocks.h Adding option to save PlainTable index and bloom filter in SST file. 2014-07-18 16:58:13 -07:00
plain_table_builder.cc Adding option to save PlainTable index and bloom filter in SST file. 2014-07-18 16:58:13 -07:00
plain_table_builder.h Adding option to save PlainTable index and bloom filter in SST file. 2014-07-18 16:58:13 -07:00
plain_table_factory.cc Adding option to save PlainTable index and bloom filter in SST file. 2014-07-18 16:58:13 -07:00
plain_table_factory.h Adding option to save PlainTable index and bloom filter in SST file. 2014-07-18 16:58:13 -07:00
plain_table_index.cc Fix db_bench 2014-07-21 10:31:33 -07:00
plain_table_index.h Fix db_bench 2014-07-21 10:31:33 -07:00
plain_table_key_coding.cc initialize decoded_internal_key_valid 2014-07-03 23:13:08 -07:00
plain_table_key_coding.h fix make shared_lib compilation error 2014-06-19 10:12:26 -07:00
plain_table_reader.cc Fix db_bench 2014-07-21 10:31:33 -07:00
plain_table_reader.h Fix clang compiler warnings 2014-07-20 22:57:20 +08:00
table_builder.h First phase API clean up 2014-02-03 00:30:43 -08:00
table_properties.cc Fix SIGFAULT when running sst_dump on v2.6 db 2014-04-21 17:49:47 -07:00
table_reader_bench.cc Add PlainTableOptions 2014-07-18 00:08:38 -07:00
table_reader.h Remove seek compaction 2014-06-20 10:23:02 +02:00
table_test.cc Add PlainTableOptions 2014-07-18 00:08:38 -07:00
two_level_iterator.cc In DB::NewIterator(), try to allocate the whole iterator tree in an arena 2014-06-02 17:44:57 -07:00
two_level_iterator.h In DB::NewIterator(), try to allocate the whole iterator tree in an arena 2014-06-02 17:44:57 -07:00