rocksdb/db
Siying Dong 33042669f6 Reduce malloc of iterators in Get() code paths
Summary:
This patch optimized Get() code paths by avoiding malloc of iterators. Iterator creation is moved to mem table rep implementations, where a callback is called when any key is found. This is the same practice as what we do in (SST) table readers.

db_bench result for readrandom following a writeseq, with no compression, single thread and tmpfs, we see throughput improved to 144958 from 139027, about 3%.

Test Plan: make all check

Reviewers: dhruba, haobo, igor

Reviewed By: haobo

CC: leveldb, yhchiang

Differential Revision: https://reviews.facebook.net/D14685
2014-02-11 10:32:51 -08:00
..
builder.cc Put table factory back to public api 2014-02-03 19:51:20 -08:00
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
c_test.c Rename leveldb to rocksdb in C api 2013-12-10 10:48:35 +02:00
c.cc C API: add rocksdb_env_set_high_priority_background_threads 2013-12-31 15:14:18 -08:00
compaction_picker.cc Fix printf format 2014-02-03 10:25:37 -08:00
compaction_picker.h Make VersionSet::ReduceNumberOfLevels() static 2014-01-24 14:57:04 -08:00
compaction.cc Unfriending classes 2014-01-22 10:55:16 -08:00
compaction.h Unfriending classes 2014-01-22 10:55:16 -08:00
corruption_test.cc Fix corruption_test failure caused by auto-enablement of checksum verification. 2014-01-31 17:16:38 -08:00
db_bench.cc Support for LZ4 compression. 2014-02-08 14:15:51 -08:00
db_filesnapshot.cc Move functions from VersionSet to Version 2014-01-15 16:18:04 -08:00
db_impl_readonly.cc use super_version in NewIterator() and MultiGet() function 2014-02-03 13:13:36 -08:00
db_impl_readonly.h CompactRange() to return status 2014-01-23 16:41:46 -08:00
db_impl.cc Add LIBRARY back to make dbg 2014-02-10 20:15:09 -08:00
db_impl.h Merge branch 'master' into performance 2014-02-05 21:21:00 -08:00
db_iter.cc [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
db_iter.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
db_stats_logger.cc Move functions from VersionSet to Version 2014-01-15 16:18:04 -08:00
db_test.cc Support for LZ4 compression. 2014-02-08 14:15:51 -08:00
dbformat_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
dbformat.cc [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
dbformat.h [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
deletefile_test.cc Start DeleteFileTest with clean plate 2013-11-15 16:30:23 -08:00
filename_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
filename.cc Unify DeleteFile and DeleteWalFiles 2013-10-25 08:32:14 -07:00
filename.h Unify DeleteFile and DeleteWalFiles 2013-10-25 08:32:14 -07:00
internal_stats.cc InternalStatistics 2014-01-29 20:40:41 -08:00
internal_stats.h InternalStatistics 2014-01-29 20:40:41 -08:00
log_format.h Some minor refactoring on the code 2014-01-02 16:32:31 -08:00
log_reader.cc Fix UnmarkEOF for partial blocks 2014-01-27 14:49:10 -08:00
log_reader.h Fix UnmarkEOF for partial blocks 2014-01-27 14:49:10 -08:00
log_test.cc Fix UnmarkEOF for partial blocks 2014-01-27 14:49:10 -08:00
log_writer.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
log_writer.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
memtable_list.cc Merge branch 'master' into performance 2014-01-28 10:35:55 -08:00
memtable_list.h Merge branch 'master' into performance 2014-01-28 10:35:55 -08:00
memtable.cc Reduce malloc of iterators in Get() code paths 2014-02-11 10:32:51 -08:00
memtable.h Reduce malloc of iterators in Get() code paths 2014-02-11 10:32:51 -08:00
merge_context.h Introduce MergeContext to Lazily Initialize merge operand list 2013-12-11 11:37:28 -08:00
merge_helper.cc Statistics code cleanup 2014-01-17 12:46:06 -08:00
merge_helper.h [RocksDB] Use raw pointer instead of shared pointer when passing Statistics object internally 2013-11-25 10:38:15 -08:00
merge_operator.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
merge_test.cc Use ASSERT_EQ() instead of assert() in merge_test 2014-01-11 09:25:47 -08:00
perf_context_test.cc Merge branch 'master' into performance 2013-12-06 14:15:42 -08:00
plain_table_db_test.cc First phase API clean up 2014-02-03 00:30:43 -08:00
prefix_filter_iterator.h Moving Some includes from options.h to forward declaration 2014-01-24 17:16:22 -08:00
prefix_test.cc [Performance Branch] Fix memory leak in HashLinkListRep.GetIterator() 2014-01-10 12:12:28 -08:00
repair.cc [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
simple_table_db_test.cc Make table properties shareable 2014-02-07 19:26:49 -08:00
skiplist_test.cc Clean up arena API 2014-01-30 22:10:10 -08:00
skiplist.h Reduce malloc of iterators in Get() code paths 2014-02-11 10:32:51 -08:00
snapshot.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
table_cache.cc [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
table_cache.h Put table factory back to public api 2014-02-03 19:51:20 -08:00
table_properties_collector_test.cc Make table properties shareable 2014-02-07 19:26:49 -08:00
table_properties_collector.cc Extract metaindex block from block-based table 2013-12-05 16:34:16 -08:00
table_properties_collector.h Extract metaindex block from block-based table 2013-12-05 16:34:16 -08:00
tailing_iter.cc Moving Some includes from options.h to forward declaration 2014-01-24 17:16:22 -08:00
tailing_iter.h Tailing iterator 2014-01-23 16:26:08 -08:00
transaction_log_impl.cc Fix the string format issue 2013-11-12 21:05:39 -08:00
transaction_log_impl.h Making the transaction log iterator more robust 2013-11-04 20:49:03 -08:00
version_edit_test.cc Remove compaction pointers 2014-01-16 14:06:53 -08:00
version_edit.cc Merge branch 'master' into performance 2014-01-16 14:31:18 -08:00
version_edit.h Merge branch 'master' into performance 2014-01-16 14:31:18 -08:00
version_set_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
version_set.cc Merge branch 'master' into performance 2014-02-05 21:21:00 -08:00
version_set.h Reduce malloc of iterators in Get() code paths 2014-02-11 10:32:51 -08:00
write_batch_internal.h In-place updates for equal keys and similar sized values 2013-10-31 11:27:12 -07:00
write_batch_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
write_batch.cc Merge branch 'master' into performance 2014-01-23 16:32:49 -08:00