Igor Canadi db03739340 options.level_compaction_dynamic_level_bytes to allow RocksDB to pick size bases of levels dynamically.
Summary:
When having fixed max_bytes_for_level_base, the ratio of size of largest level and the second one can range from 0 to the multiplier. This makes LSM tree frequently irregular and unpredictable. It can also cause poor space amplification in some cases.

In this improvement (proposed by Igor Kabiljo), we introduce a parameter option.level_compaction_use_dynamic_max_bytes. When turning it on, RocksDB is free to pick a level base in the range of (options.max_bytes_for_level_base/options.max_bytes_for_level_multiplier, options.max_bytes_for_level_base] so that real level ratios are close to options.max_bytes_for_level_multiplier.

Test Plan: New unit tests and pass tests suites including valgrind.

Reviewers: MarkCallaghan, rven, yhchiang, igor, ikabiljo

Reviewed By: ikabiljo

Subscribers: yoshinorim, ikabiljo, dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D31437
2015-03-02 22:40:41 -08:00
..
2014-11-21 14:11:40 -08:00
2014-11-07 15:04:30 -08:00
2015-02-26 11:28:41 -08:00
2014-08-19 09:52:54 -04:00
2014-08-19 06:48:21 -07:00
2015-02-26 11:28:41 -08:00
2015-02-26 11:28:41 -08:00
2014-11-14 11:38:26 -08:00
2014-11-14 11:38:26 -08:00
2014-11-20 10:49:32 -08:00
2014-08-28 12:46:05 -04:00
2014-08-28 12:46:05 -04:00
2015-02-26 11:28:41 -08:00
2015-02-26 14:19:51 -08:00
2015-02-26 15:19:17 -08:00
2014-09-21 22:20:00 +08:00
2015-02-26 11:28:41 -08:00
2015-02-26 11:28:41 -08:00
2015-02-26 11:28:41 -08:00
2015-02-27 17:06:06 -08:00
2015-02-26 11:28:41 -08:00
2014-07-25 15:17:06 -07:00
2015-02-26 11:28:41 -08:00
2015-01-23 18:10:52 -08:00
2014-07-28 12:10:49 -07:00
2013-12-03 12:42:15 -08:00
2014-07-28 12:22:37 -07:00
2014-11-21 11:05:28 -05:00
2014-09-08 22:24:40 -07:00
2015-02-26 11:28:41 -08:00
2014-10-31 11:59:54 -07:00
2015-02-18 11:49:31 -08:00
2015-02-26 15:19:17 -08:00
2014-05-01 14:09:32 -04:00
2014-05-01 14:09:32 -04:00