Zhongyi Xie
a703432808
MaxFileSizeForLevel: adjust max_file_size for dynamic level compaction
Summary:
`MutableCFOptions::RefreshDerivedOptions` always assume base level is L1, which is not true when `level_compaction_dynamic_level_bytes=true` and Level based compaction is used.
This PR fixes this by recomputing `max_file_size` at query time (in `MaxFileSizeForLevel`)
Fixes https://github.com/facebook/rocksdb/issues/3229
In master:
```
Level Files Size(MB)
--------------------
0 14 846
1 0 0
2 0 0
3 0 0
4 0 0
5 15 366
6 11 481
Cumulative compaction: 3.83 GB write, 2.27 GB read
```
In branch:
```
Level Files Size(MB)
--------------------
0 9 544
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
6 445 935
Cumulative compaction: 2.91 GB write, 1.46 GB read
```
db_bench command used:
```
./db_bench --benchmarks="fillrandom,deleterandom,fillrandom,levelstats,stats" --statistics -deletes=5000 -db=tmp -compression_type=none --num=20000 -value_size=100000 -level_compaction_dynamic_level_bytes=true -target_file_size_base=2097152 -target_file_size_multiplier=2
```
Closes https://github.com/facebook/rocksdb/pull/3755
Differential Revision: D7721381
Pulled By: miasantreble
fbshipit-source-id: 39afb8503190bac3b466adf9bbf2a9b3655789f8
2018-05-03 16:42:13 -07:00
..
2017-12-01 10:42:05 -08:00
2017-08-03 15:56:46 -07:00
2018-01-29 12:56:42 -08:00
2018-01-29 12:56:42 -08:00
2018-03-20 18:57:55 -07:00
2018-04-12 17:59:16 -07:00
2018-03-23 12:43:06 -07:00
2016-09-28 11:53:15 -07:00
2017-12-01 10:42:05 -08:00
2018-05-03 16:42:13 -07:00
2017-07-15 16:11:23 -07:00
2018-04-30 12:27:34 -07:00
2018-04-12 17:59:16 -07:00
2017-07-15 16:11:23 -07:00
2018-05-01 13:42:46 -07:00
2017-08-03 15:56:46 -07:00
2015-05-22 16:03:39 -07:00
2017-08-03 15:56:46 -07:00
2018-04-07 21:56:42 -07:00
2018-04-15 17:26:26 -07:00
2018-04-12 17:59:16 -07:00
2018-01-29 12:56:42 -08:00
2018-03-05 13:13:41 -08:00
2018-04-12 17:59:16 -07:00
2017-08-03 15:56:46 -07:00
2018-04-15 17:26:26 -07:00
2018-01-29 12:56:42 -08:00
2018-02-15 17:27:24 -08:00
2018-01-29 12:56:42 -08:00
2017-08-03 15:56:46 -07:00
2017-08-03 15:56:46 -07:00
2015-06-19 16:24:36 -07:00
2018-04-15 17:26:26 -07:00
2017-08-11 16:03:44 -07:00
2018-03-05 13:13:41 -08:00
2018-04-12 17:59:16 -07:00
2017-08-03 15:56:46 -07:00
2018-01-29 12:56:42 -08:00
2018-02-09 14:12:43 -08:00