rocksdb/db
Igor Canadi 7dcadb1d37 Don't let flush preempt compaction in certain cases
Summary:
I have an application configured with 16 background threads. Write rates are high. L0->L1 compactions is very slow and it limits the concurrency of the system. While it's happening, other 15 threads are idle. However, when there is a need of a flush, that one thread busy with L0->L1 is doing flush, instead of any other 15 threads that are just sitting there.

This diff prevents that. If there are threads that are idle, we don't let flush preempt compaction.

Test Plan: Will run stress test

Reviewers: ljin, sdong, yhchiang

Reviewed By: sdong, yhchiang

Subscribers: dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D22299
2014-09-02 08:34:54 -07:00
..
builder.cc Remove a check for merge operator in builder.cc 2014-07-31 14:22:21 -07:00
builder.h integrate rate limiter into rocksdb 2014-07-08 12:31:49 -07:00
c_test.c fix valgrind error in c_test caused by BlockBasedTableOptions 2014-08-26 09:57:25 -07:00
c.cc improve OptimizeForPointLookup() 2014-08-26 14:15:00 -07:00
column_family_test.cc move block based table related options BlockBasedTableOptions 2014-08-25 14:22:05 -07:00
column_family.cc move block based table related options BlockBasedTableOptions 2014-08-25 14:22:05 -07:00
column_family.h move block based table related options BlockBasedTableOptions 2014-08-25 14:22:05 -07:00
compaction_picker.cc Fix concurrency issue in CompactionPicker 2014-08-22 11:32:40 -07:00
compaction_picker.h Changes to support unity build: 2014-08-11 13:22:47 -04:00
compaction.cc Changes to support unity build: 2014-08-11 13:22:47 -04:00
compaction.h Changes to support unity build: 2014-08-11 13:22:47 -04:00
corruption_test.cc move block based table related options BlockBasedTableOptions 2014-08-25 14:22:05 -07:00
cuckoo_table_db_test.cc Adding a user comparator for comparing Uint64 slices. 2014-08-27 10:39:31 -07:00
db_bench.cc Adding a user comparator for comparing Uint64 slices. 2014-08-27 10:39:31 -07:00
db_filesnapshot.cc Add is-file-deletions-enabled property 2014-08-26 16:26:29 -07:00
db_impl_debug.cc Allow user to specify DB path of output file of manual compaction 2014-07-21 19:06:00 -07:00
db_impl_readonly.cc Don't do memtable lookup in db_impl_readonly if memtables are empty while opening db. 2014-08-26 17:19:03 -07:00
db_impl_readonly.h Fix ios compile 2014-08-28 12:46:05 -04:00
db_impl.cc Don't let flush preempt compaction in certain cases 2014-09-02 08:34:54 -07:00
db_impl.h Add is-file-deletions-enabled property 2014-08-26 16:26:29 -07:00
db_iter_test.cc Fix clang compiler warnings 2014-07-20 22:57:20 +08:00
db_iter.cc Add histogram for DB_SEEK 2014-08-13 15:56:37 -07:00
db_iter.h In DB::NewIterator(), try to allocate the whole iterator tree in an arena 2014-06-02 17:44:57 -07:00
db_test.cc Merge pull request #237 from tdfischer/tdfischer/faster-timeout-test 2014-08-28 20:40:10 -04: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 remove_internal_filter_policy 2014-08-28 17:06:29 -07:00
deletefile_test.cc Start DeleteFileTest with clean plate 2013-11-15 16:30:23 -08: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 Support purging logs from separate log directory 2014-08-14 13:22:50 -07:00
filename.h Support purging logs from separate log directory 2014-08-14 13:22:50 -07:00
forward_iterator.cc ForwardIterator: reset incomplete iterators on Seek() 2014-08-29 16:21:29 -07:00
forward_iterator.h ForwardIterator: reset incomplete iterators on Seek() 2014-08-29 16:21:29 -07:00
internal_stats.cc Add is-file-deletions-enabled property 2014-08-26 16:26:29 -07:00
internal_stats.h Add is-file-deletions-enabled property 2014-08-26 16:26:29 -07:00
log_and_apply_bench.cc Fix ldb dump_manifest 2014-07-30 10:17:48 -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 Support Multiple DB paths (without having an interface to expose to users) 2014-07-02 21:14:44 -07:00
memtable_list.h Support Multiple DB paths (without having an interface to expose to users) 2014-07-02 21:14:44 -07:00
memtable.cc Don't do memtable lookup in db_impl_readonly if memtables are empty while opening db. 2014-08-26 17:19:03 -07:00
memtable.h ReadOptions.total_order_seek to allow total order seek for block-based table when hash index is enabled 2014-08-25 16:14:30 -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 Missing includes 2014-03-14 13:02:20 -07:00
plain_table_db_test.cc Add DB property "rocksdb.estimate-table-readers-mem" 2014-08-06 11:39:46 -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 ReadOptions.total_order_seek to allow total order seek for block-based table when hash index is enabled 2014-08-25 16:14:30 -07:00
simple_table_db_test.cc print table options 2014-08-25 14:24:09 -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 Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
table_cache.cc Add DB property "rocksdb.estimate-table-readers-mem" 2014-08-06 11:39:46 -07:00
table_cache.h Add DB property "rocksdb.estimate-table-readers-mem" 2014-08-06 11:39:46 -07:00
table_properties_collector_test.cc move block based table related options BlockBasedTableOptions 2014-08-25 14:22:05 -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 Avoid retrying to read property block from a table when it does not exist. 2014-08-15 12:17:44 -07:00
version_set_test.cc Fix clang compiler warnings 2014-07-20 22:57:20 +08:00
version_set.cc Avoid retrying to read property block from a table when it does not exist. 2014-08-15 12:17:44 -07:00
version_set.h Add DB property "rocksdb.estimate-table-readers-mem" 2014-08-06 11:39:46 -07:00
write_batch_internal.h JSON (Document) API sketch 2014-07-10 09:31:42 -07:00
write_batch_test.cc WriteBatchWithIndex: a wrapper of WriteBatch, with a searchable index 2014-08-18 16:37:38 -07:00
write_batch.cc WriteBatchWithIndex: a wrapper of WriteBatch, with a searchable index 2014-08-18 16:37:38 -07:00