• C
    Deprecate option `periodic_compaction_seconds` for FIFO compaction (#11550) · df082c8d
    Changyu Bi 提交于
    Summary:
    both options `ttl` and `periodic_compaction_seconds` have the same meaning for FIFO compaction, which is redundant and can be confusing to use. For example, setting TTL to 0 does not disable TTL: user needs to also set periodic_compaction_seconds to 0. Another example is that dynamically setting `periodic_compaction_seconds` (surprisingly) has no effect on TTL compaction. This is because FIFO compaction picker internally only looks at value of `ttl`. The value of `ttl` is in `SanitizeOptions()` which take into account the value of `periodic_compaction_seconds`, but dynamically setting an option does not invoke this method.
    
    This PR clarifies the usage of both options for FIFO compaction: only `ttl` should be used, `periodic_compaction_seconds` will not have any effect on FIFO compaction.
    
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/11550
    
    Test Plan:
    - updated existing unit test `DBOptionsTest.SanitizeFIFOPeriodicCompaction`
    - checked existing values of both options in feature matrix: https://fburl.com/daiquery/xxd0gs9w. All current uses cases either have `periodic_compaction_seconds = 0` or have `periodic_compaction_seconds > ttl`, so should not cause change of behavior.
    
    Reviewed By: ajkr
    
    Differential Revision: D46902959
    
    Pulled By: cbi42
    
    fbshipit-source-id: a9ede235b276783b4906aaec443551fa62ceff4c
    df082c8d
advanced_options.h 52.8 KB