• C
    Trivially move files down when opening db with level_compaction_dynamic_l… (#11321) · 60132016
    Changyu Bi 提交于
    Summary:
    …evel_bytes
    
     During DB open, if a column family uses level compaction with level_compaction_dynamic_level_bytes=true, trivially move its files down in the LSM such that the bottommost files are in Lmax, the second from bottommost level files are in Lmax-1 and so on. This is aimed to make it easier to migrate level_compaction_dynamic_level_bytes from false to true.  Before this change, a full manual compaction is suggested for such migration. After this change, user can just restart DB to turn on this option. db_crashtest.py is updated to randomly choose value for level_compaction_dynamic_level_bytes.
    
    Note that there may still be too many unnecessary levels if a user is migrating from universal compaction or level compaction with a smaller level multiplier. A full manual compaction may still be needed in that case before some PR that automatically drain unnecessary levels like https://github.com/facebook/rocksdb/issues/3921 lands. Eventually we may want to change the default value of option level_compaction_dynamic_level_bytes to true.
    
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/11321
    
    Test Plan:
    1. Added unit tests.
    2. Crash test: ran a variation of db_crashtest.py (like 32516507e77521ae887e45091b69139e32e8efb7) that turns level_compaction_dynamic_level_bytes on and off and switches between LC and UC for the same DB.
    
    TODO: Update `OptionChangeMigration`, either after this PR or https://github.com/facebook/rocksdb/issues/3921.
    
    Reviewed By: ajkr
    
    Differential Revision: D44341930
    
    Pulled By: cbi42
    
    fbshipit-source-id: 013de19a915c6a0502be569f07c4cc8f1c3c6be2
    60132016
可在Tags中查看这些版本中当前仓库的状态.
HISTORY.md 276.0 KB