rocksdb/db
Yueh-Hsuan Chiang 6c66918645 Speed up DB::Open() and Version creation by limiting the number of FileMetaData initialization.
Summary:
This diff speeds up DB::Open() and Version creation by limiting the number of FileMetaData initialization. The behavior of Version::UpdateAccumulatedStats() is changed as follows:

* It only initializes the first 20 uninitialized FileMetaData from file.  This guarantees the size of the latest 20 files will always be compensated when they have any deletion entries.  Previously it may initialize all FileMetaData by loading all files at DB::Open().
* In case none the first 20 files has any data entry, UpdateAccumulatedStats() will initialize the FileMetaData of the oldest file.

Test Plan: db_test

Reviewers: igor, sdong, ljin

Reviewed By: ljin

Subscribers: leveldb

Differential Revision: https://reviews.facebook.net/D24255
2014-10-17 14:58:30 -07:00
..
builder.cc introduce ImmutableOptions 2014-09-04 16:18:36 -07:00
builder.h introduce ImmutableOptions 2014-09-04 16:18:36 -07:00
c_test.c fix valgrind error in c_test caused by BlockBasedTableOptions 2014-08-26 09:57:25 -07:00
c.cc Remove allow_thread_local 2014-09-24 13:12:16 -07:00
column_family_test.cc Ignore missing column families 2014-09-02 13:29:05 -07:00
column_family.cc dynamic soft_rate_limit and hard_rate_limit 2014-10-16 17:21:31 -07:00
column_family.h make compaction related options changeable 2014-10-01 16:19:16 -07:00
compaction_picker.cc make compaction related options changeable 2014-10-01 16:19:16 -07:00
compaction_picker.h Fixed compile warning on Mac caused by unused variables. 2014-10-02 01:03:08 -07:00
compaction.cc make compaction related options changeable 2014-10-01 16:19:16 -07:00
compaction.h make compaction related options changeable 2014-10-01 16:19:16 -07:00
corruption_test.cc corruption_test.cc: pass parameter by reference 2014-09-30 23:30:31 +02:00
cuckoo_table_db_test.cc cuckoo_table_db_test.cc: add flush after delete 2014-09-30 17:53:49 +02:00
db_bench.cc db_bench: set thread pool size according to max_background_flushes 2014-10-09 20:38:15 -07:00
db_filesnapshot.cc rename options_ to db_options_ in DBImpl to avoid confusion 2014-09-05 11:48:17 -07:00
db_impl_debug.cc WriteThread 2014-09-12 16:23:58 -07:00
db_impl_readonly.cc perf_context.get_from_output_files_time is set for MultiGet() and ReadOnly DB too. 2014-10-02 17:02:50 -07:00
db_impl_readonly.h CompactedDBImpl 2014-09-25 11:14:01 -07:00
db_impl.cc Log MutableCFOptions in SetOptions 2014-10-16 17:22:28 -07:00
db_impl.h make max_write_buffer_number dynamic 2014-10-16 16:57:59 -07:00
db_iter_test.cc reduce references to cfd->options() in DBImpl 2014-09-08 15:04:34 -07:00
db_iter.cc db/db_iter.cc: remove unused variable 2014-10-01 10:49:08 +02:00
db_iter.h reduce references to cfd->options() in DBImpl 2014-09-08 15:04:34 -07:00
db_test.cc Fix Mac compile error: C++11 forbids default arguments for lambda expressions 2014-10-17 14:47:26 -07:00
dbformat_test.cc Use IterKey instead of string in Block::Iter to reduce malloc 2014-07-23 12:31:11 -07:00
dbformat.cc remove_internal_filter_policy 2014-08-28 17:06:29 -07:00
dbformat.h fix a few compile warnings 2014-09-04 23:06:23 +08:00
deletefile_test.cc db/deletefile_test.cc: remove unused variable 2014-10-01 10:49:08 +02:00
file_indexer_test.cc Allow user to specify DB path of output file of manual compaction 2014-07-21 19:06:00 -07:00
file_indexer.cc Allow user to specify DB path of output file of manual compaction 2014-07-21 19:06:00 -07:00
file_indexer.h Allow user to specify DB path of output file of manual compaction 2014-07-21 19:06:00 -07:00
filename_test.cc Support purging logs from separate log directory 2014-08-14 13:22:50 -07:00
filename.cc fix more compile warnings 2014-09-05 14:14:37 +08:00
filename.h Support purging logs from separate log directory 2014-08-14 13:22:50 -07:00
flush_scheduler.cc Don't return (or dereference) dangling pointer 2014-10-02 14:33:16 -07:00
flush_scheduler.h Push model for flushing memtables 2014-09-10 18:46:09 -07:00
forward_iterator.cc ForwardIterator: update prev_key_ only if prefix hasn't changed 2014-10-01 17:10:48 -07:00
forward_iterator.h ForwardIterator: update prev_key_ only if prefix hasn't changed 2014-10-01 17:10:48 -07:00
internal_stats.cc Total memtables size counter 2014-10-17 09:26:27 -07:00
internal_stats.h Total memtables size counter 2014-10-17 09:26:27 -07:00
log_and_apply_bench.cc make compaction related options changeable 2014-10-01 16:19:16 -07:00
log_format.h Some minor refactoring on the code 2014-01-02 16:32:31 -08:00
log_reader.cc Make Log::Reader more robust 2014-02-28 13:19:47 -08:00
log_reader.h Fix UnmarkEOF for partial blocks 2014-01-27 14:49:10 -08:00
log_test.cc Make it compile on Debian/GCC 4.7 2014-03-14 22:44:35 +00: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 make compaction related options changeable 2014-10-01 16:19:16 -07:00
memtable_list.h make compaction related options changeable 2014-10-01 16:19:16 -07:00
memtable.cc db/memtable.cc: remove unused variable merge_result 2014-09-30 23:30:33 +02:00
memtable.h SetOptions() for memtable related options 2014-09-17 12:49:13 -07:00
merge_context.h Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
merge_helper.cc Fixed the crash when merge_operator is not properly set after reopen. 2014-07-30 17:24:36 -07:00
merge_helper.h Fixed the crash when merge_operator is not properly set after reopen. 2014-07-30 17:24:36 -07:00
merge_operator.cc Some small cleaning up to make some compiling environment happy 2014-03-26 18:11:41 -07:00
merge_test.cc Temporary remove the last test in merge_test 2014-07-31 11:20:49 -07:00
perf_context_test.cc perf_context.get_from_output_files_time is set for MultiGet() and ReadOnly DB too. 2014-10-02 17:02:50 -07:00
plain_table_db_test.cc introduce ImmutableOptions 2014-09-04 16:18:36 -07:00
prefix_test.cc HashLinkList memtable switches a bucket to a skip list to reduce performance outliers 2014-07-01 17:14:15 -07:00
repair.cc make compaction related options changeable 2014-10-01 16:19:16 -07:00
skiplist_test.cc Clean up arena API 2014-01-30 22:10:10 -08:00
skiplist.h Consolidate SliceTransform object ownership 2014-03-10 12:56:46 -07:00
snapshot.h fix a few compile warnings 2014-09-04 23:06:23 +08:00
table_cache.cc use GetContext to replace callback function pointer 2014-09-29 11:09:09 -07:00
table_cache.h use GetContext to replace callback function pointer 2014-09-29 11:09:09 -07:00
table_properties_collector_test.cc fix asan check 2014-09-05 09:53:04 -07:00
table_properties_collector.cc Extract metaindex block from block-based table 2013-12-05 16:34:16 -08:00
table_properties_collector.h TablePropertiesCollectorFactory 2014-05-13 12:30:55 -07:00
transaction_log_impl.cc Fixed a file-not-found issue when a log file is moved to archive. 2014-05-12 17:50:21 -07:00
transaction_log_impl.h RocksDBLite 2014-04-15 13:39:26 -07:00
version_edit_test.cc Support Multiple DB paths (without having an interface to expose to users) 2014-07-02 21:14:44 -07:00
version_edit.cc Support Multiple DB paths (without having an interface to expose to users) 2014-07-02 21:14:44 -07:00
version_edit.h Speed up DB::Open() and Version creation by limiting the number of FileMetaData initialization. 2014-10-17 14:58:30 -07:00
version_set_test.cc Fix clang compiler warnings 2014-07-20 22:57:20 +08:00
version_set.cc Speed up DB::Open() and Version creation by limiting the number of FileMetaData initialization. 2014-10-17 14:58:30 -07:00
version_set.h Speed up DB::Open() and Version creation by limiting the number of FileMetaData initialization. 2014-10-17 14:58:30 -07:00
write_batch_internal.h Push model for flushing memtables 2014-09-10 18:46:09 -07:00
write_batch_test.cc make compaction related options changeable 2014-10-01 16:19:16 -07:00
write_batch.cc Push model for flushing memtables 2014-09-10 18:46:09 -07:00
write_controller_test.cc Push- instead of pull-model for managing Write stalls 2014-09-08 11:20:25 -07:00
write_controller.cc Push- instead of pull-model for managing Write stalls 2014-09-08 11:20:25 -07:00
write_controller.h Fix #284 2014-09-13 14:14:10 -07:00
write_thread.cc WriteThread 2014-09-12 16:23:58 -07:00
write_thread.h WriteThread 2014-09-12 16:23:58 -07:00