rocksdb/db
Siying Dong 9ea8bf90f1 DB::Put() to estimate write batch data size needed and pre-allocate buffer
Summary:
In one of CPU profiles, we see some CPU costs of string::reserve() inside Batch.Put(). This patch should be able to reduce some of the costs by allocating sufficient buffer before hand.

Since it is a trivial percentage of CPU costs, I didn't find a way to show the improvement in one of the benchmarks. I'll deploy it to same application and do the same CPU profiling to make sure those CPU costs are reduced.

Test Plan: make all check

Reviewers: haobo, kailiu, igor

Reviewed By: haobo

CC: leveldb, nkg-

Differential Revision: https://reviews.facebook.net/D15135
2014-01-14 11:24:43 -08:00
..
builder.cc [Performance Branch] If options.max_open_files set to be -1, cache table readers in FileMetadata for Get() and NewIterator() 2014-01-10 15:57:49 -08:00
builder.h Fixing the warning messages captured under mac os # Consider using git commit -m 'One line title' && arc diff. # You will save time by running lint and unit in the background. 2013-11-12 20:05:28 -08:00
c_test.c Rename leveldb to rocksdb in C api 2013-12-10 10:48:35 +02:00
c.cc C bindings: add a bunch of the newer options 2013-12-15 13:47:06 -08:00
corruption_test.cc Make "Table" pluggable 2013-10-28 17:54:09 -07:00
db_bench.cc Merge branch 'master' into performance 2013-12-27 12:23:17 -08:00
db_filesnapshot.cc Support multi-threaded DisableFileDeletions() and EnableFileDeletions() 2014-01-02 03:33:42 -08:00
db_impl_readonly.cc Introduce MergeContext to Lazily Initialize merge operand list 2013-12-11 11:37:28 -08:00
db_impl_readonly.h Support multi-threaded DisableFileDeletions() and EnableFileDeletions() 2014-01-02 03:33:42 -08:00
db_impl.cc DB::Put() to estimate write batch data size needed and pre-allocate buffer 2014-01-14 11:24:43 -08:00
db_impl.h Merge branch 'master' into performance 2014-01-07 11:04:21 -08:00
db_iter.cc Merge branch 'master' into performance 2013-12-06 14:15:42 -08:00
db_iter.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
db_statistics.cc Fix #26 by putting the implementation of CreateDBStatistics() to a cc file 2013-12-05 22:29:03 -08:00
db_statistics.h Fix #26 by putting the implementation of CreateDBStatistics() to a cc file 2013-12-05 22:29:03 -08:00
db_stats_logger.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
db_test.cc Add read/modify/write functionality to Put() api 2014-01-14 07:55:16 -08:00
dbformat_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
dbformat.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
dbformat.h Make "Table" pluggable 2013-10-28 17:54:09 -07: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
log_format.h Some minor refactoring on the code 2014-01-02 16:32:31 -08:00
log_reader.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
log_reader.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
log_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07: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 Replace vector with autovector 2014-01-02 16:43:35 -08:00
memtable_list.h Replace vector with autovector 2014-01-02 16:43:35 -08:00
memtable.cc Add read/modify/write functionality to Put() api 2014-01-14 07:55:16 -08:00
memtable.h Add read/modify/write functionality to Put() api 2014-01-14 07:55:16 -08:00
merge_context.h Introduce MergeContext to Lazily Initialize merge operand list 2013-12-11 11:37:28 -08:00
merge_helper.cc [RocksDB] Use raw pointer instead of shared pointer when passing Statistics object internally 2013-11-25 10:38:15 -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 Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
perf_context_test.cc Merge branch 'master' into performance 2013-12-06 14:15:42 -08:00
plain_table_db_test.cc Fix the valgrind issues 2014-01-03 11:48:31 -08:00
prefix_filter_iterator.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
prefix_test.cc [Performance Branch] Fix memory leak in HashLinkListRep.GetIterator() 2014-01-10 12:12:28 -08:00
repair.cc [Performance Branch] If options.max_open_files set to be -1, cache table readers in FileMetadata for Get() and NewIterator() 2014-01-10 15:57:49 -08:00
simple_table_db_test.cc Improve the "table stats" 2013-11-19 16:29:42 -08:00
skiplist_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
skiplist.h [RocksDB][Performance Branch] Make height and branching factor configurable for skiplist implementation 2013-11-26 21:59:36 -08:00
snapshot.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
table_cache.cc [Performance Branch] If options.max_open_files set to be -1, cache table readers in FileMetadata for Get() and NewIterator() 2014-01-10 15:57:49 -08:00
table_cache.h [Performance Branch] If options.max_open_files set to be -1, cache table readers in FileMetadata for Get() and NewIterator() 2014-01-10 15:57:49 -08:00
table_properties_collector_test.cc Add the property block for the plain table 2013-12-13 17:18:14 -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
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 Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
version_edit.cc Some minor refactoring on the code 2014-01-02 16:32:31 -08:00
version_edit.h [Performance Branch] If options.max_open_files set to be -1, cache table readers in FileMetadata for Get() and NewIterator() 2014-01-10 15:57:49 -08:00
version_set_reduce_num_levels.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
version_set_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
version_set.cc [Performance Branch] If options.max_open_files set to be -1, cache table readers in FileMetadata for Get() and NewIterator() 2014-01-10 15:57:49 -08:00
version_set.h [Performance Branch] If options.max_open_files set to be -1, cache table readers in FileMetadata for Get() and NewIterator() 2014-01-10 15:57:49 -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 Get rid of some shared_ptrs 2013-12-03 11:17:58 -08:00
write_batch.cc DB::Put() to estimate write batch data size needed and pre-allocate buffer 2014-01-14 11:24:43 -08:00