Split crystal_thresh into crystal_thresh + fragment_thresh
So now crystal_thresh only controls when fragments are compacted into
blocks, while fragment_thresh controls when blocks are broken into
fragments. Setting fragment_thresh=-1 will follow crystal_thresh and
keeps the previous behavior.
These were already two separate pieces of logic, so it makes sense to
provide two separate knobs for tuning.
Setting fragment_thresh lower than crystal_thresh has some potential to
reduce hysteresis in cases where random writes push blocks close to
crystal_thresh. It will be interesting to explore this more when
benchmarking.
---
The additional config option adds a bit of code/ctx, but hopefully that
will go away in the future config rework:
code stack ctx
before: 35584 2480 636
after: 35600 (+0.0%) 2480 (+0.0%) 640 (+0.6%)
This commit is contained in:
@@ -5,8 +5,11 @@ after = 'test_files'
|
||||
# test with different fragment sizes
|
||||
defines.FRAGMENT_SIZE = [1, 16, 64]
|
||||
|
||||
# test with different crystal sizes
|
||||
defines.CRYSTAL_SIZE = [512]
|
||||
# test with different crystallization thresholds
|
||||
defines.CRYSTAL_THRESH = [512]
|
||||
|
||||
# test with different fragment thresholds
|
||||
defines.FRAGMENT_THRESH = [-1]
|
||||
|
||||
# test with different prog sizes
|
||||
defines.PROG_SIZE = [1, 16]
|
||||
|
||||
Reference in New Issue
Block a user