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
..
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-26 11:28:41 -08:00
2015-01-26 11:48:07 -08:00
2014-01-27 14:49:10 -08:00
2015-02-26 11:28:41 -08:00
2015-02-18 11:49:31 -08:00
2015-02-27 17:06:06 -08:00
2015-02-26 11:28:41 -08:00
2015-01-13 12:27:28 -08:00
2014-11-06 11:14:28 -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-26 11:28:41 -08:00
2014-11-06 11:14:28 -08:00
2015-02-06 08:44:30 -08:00
2014-10-31 11:59:54 -07:00
2015-02-06 08:44:30 -08:00
2015-02-26 11:28:41 -08:00
2014-11-10 17:39:38 -05:00
2015-02-26 11:28:41 -08:00
2014-09-13 14:14:10 -07:00
2014-09-12 16:23:58 -07:00