rocksdb/utilities
Andrew Kryczka d659faad54 Level-based L0->L0 compaction
Summary:
Level-based L0->L0 compaction operates on spans of files that aren't currently being compacted. It reduces the number of L0 files, thus making write stall conditions harder to reach.

- L0->L0 is triggered when base level is unavailable due to pending compactions
- L0->L0 always outputs one file of at most `max_level0_burst_file_size` bytes.
- Subcompactions are disabled for L0->L0 since we want to output one file.
- Input files are chosen as the longest span of available files that will fit within the size limit. This minimizes number of files in L0.
Closes https://github.com/facebook/rocksdb/pull/2027

Differential Revision: D4760318

Pulled By: ajkr

fbshipit-source-id: 9d07183
2017-04-04 18:09:11 -07:00
..
backupable Move auto_roll_logger and filename out of db/ 2017-04-03 18:39:14 -07:00
blob_db Move auto_roll_logger and filename out of db/ 2017-04-03 18:39:14 -07:00
checkpoint Move auto_roll_logger and filename out of db/ 2017-04-03 18:39:14 -07:00
compaction_filters Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
convenience Move auto_roll_logger and filename out of db/ 2017-04-03 18:39:14 -07:00
date_tiered Move auto_roll_logger and filename out of db/ 2017-04-03 18:39:14 -07:00
document make all DB::Get overloads virtual 2017-03-30 23:39:14 -07:00
geodb Move auto_roll_logger and filename out of db/ 2017-04-03 18:39:14 -07:00
leveldb_options Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
lua Level-based L0->L0 compaction 2017-04-04 18:09:11 -07:00
memory Disable auto compactions in memory_test and re-enable the test (#1408) 2016-10-19 18:18:42 -07:00
merge_operators Add macros to include file name and line number during Logging 2017-03-15 19:39:12 -07:00
option_change_migration option_change_migration_test: force full compaction when needed 2016-11-15 22:09:34 -08:00
options Move auto_roll_logger and filename out of db/ 2017-04-03 18:39:14 -07:00
persistent_cache Fix build with MinGW 2017-03-30 16:54:52 -07:00
redis Eliminate use of 'using namespace std'. Also remove a number of ADL references to std functions. 2016-05-20 07:42:18 -07:00
simulator_cache Allow incrementing refcount on cache handles 2017-01-10 16:54:20 -08:00
spatialdb Remove disableDataSync option 2017-02-13 11:09:13 -08:00
table_properties_collectors Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
transactions Refactor WriteImpl (pipeline write part 1) 2017-04-04 10:24:32 -07:00
ttl Move auto_roll_logger and filename out of db/ 2017-04-03 18:39:14 -07:00
write_batch_with_index Make WriteBatchWithIndex moveble 2017-02-22 17:54:11 -08:00
col_buf_decoder.cc fix non-portable behavior in encoder 2017-01-20 16:39:22 -08:00
col_buf_decoder.h Fix clang build failure and refactor unit test 2016-08-02 15:16:39 -07:00
col_buf_encoder.cc Fix travis (compile for clang < 3.9) 2016-12-01 10:09:22 -08:00
col_buf_encoder.h Fix clang build failure and refactor unit test 2016-08-02 15:16:39 -07:00
column_aware_encoding_exp.cc Fix build on FreeBSD 2017-01-10 11:39:12 -08:00
column_aware_encoding_test.cc Fix clang build failure and refactor unit test 2016-08-02 15:16:39 -07:00
column_aware_encoding_util.cc Fix Windows build issues (#1253) 2016-08-02 17:15:18 -07:00
column_aware_encoding_util.h Remove ImmutableCFOptions from public API 2016-09-02 14:16:31 -07:00
env_librados_test.cc Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_librados.cc change UseDirectIO() to use_direct_io() 2017-01-13 12:09:15 -08:00
env_librados.md Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_mirror_test.cc env: add EnvMirror 2015-12-10 21:32:45 -05:00
env_mirror.cc direct io write support 2016-12-22 13:09:19 -08:00
env_timed_test.cc add TimedEnv 2017-04-04 11:24:12 -07:00
env_timed.cc add TimedEnv 2017-04-04 11:24:12 -07:00
merge_operators.h Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
object_registry_test.cc Generalize Env registration framework 2017-01-25 16:09:14 -08:00
util_merge_operators_test.cc Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00