• P
    Support for Column family specific paths. · 446b32cf
    Phani Shekhar Mantripragada 提交于
    Summary:
    In this change, an option to set different paths for different column families is added.
    This option is set via cf_paths setting of ColumnFamilyOptions. This option will work in a similar fashion to db_paths setting. Cf_paths is a vector of Dbpath values which contains a pair of the absolute path and target size. Multiple levels in a Column family can go to different paths if cf_paths has more than one path.
    To maintain backward compatibility, if cf_paths is not specified for a column family, db_paths setting will be used. Note that, if db_paths setting is also not specified, RocksDB already has code to use db_name as the only path.
    
    Changes :
    1) A new member "cf_paths" is added to ImmutableCfOptions. This is set, based on cf_paths setting of ColumnFamilyOptions and db_paths setting of ImmutableDbOptions.  This member is used to identify the path information whenever files are accessed.
    2) Validation checks are added for cf_paths setting based on existing checks for db_paths setting.
    3) DestroyDB, PurgeObsoleteFiles etc. are edited to support multiple cf_paths.
    4) Unit tests are added appropriately.
    Closes https://github.com/facebook/rocksdb/pull/3102
    
    Differential Revision: D6951697
    
    Pulled By: ajkr
    
    fbshipit-source-id: 60d2262862b0a8fd6605b09ccb0da32bb331787d
    446b32cf
table_cache.cc 16.9 KB