• P
    New backup meta schema, with file temperatures (#9660) · cff0d1e8
    Peter Dillinger 提交于
    Summary:
    The primary goal of this change is to add support for backing up and
    restoring (applying on restore) file temperature metadata, without
    committing to either the DB manifest or the FS reported "current"
    temperatures being exclusive "source of truth".
    
    To achieve this goal, we need to add temperature information to backup
    metadata, which requires updated backup meta schema. Fortunately I
    prepared for this in https://github.com/facebook/rocksdb/issues/8069, which began forward compatibility in version
    6.19.0 for this kind of schema update. (Previously, backup meta schema
    was not extensible! Making this schema update public will allow some
    other "nice to have" features like taking backups with hard links, and
    avoiding crc32c checksum computation when another checksum is already
    available.) While schema version 2 is newly public, the default schema
    version is still 1. Until we change the default, users will need to set
    to 2 to enable features like temperature data backup+restore. New
    metadata like temperature information will be ignored with a warning
    in versions before this change and since 6.19.0. The metadata is
    considered ignorable because a functioning DB can be restored without
    it.
    
    Some detail:
    * Some renaming because "future schema" is now just public schema 2.
    * Initialize some atomics in TestFs (linter reported)
    * Add temperature hint support to SstFileDumper (used by BackupEngine)
    
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/9660
    
    Test Plan:
    related unit test majorly updated for the new functionality,
    including some shared testing support for tracking temperatures in a FS.
    
    Some other tests and testing hooks into production code also updated for
    making the backup meta schema change public.
    
    Reviewed By: ajkr
    
    Differential Revision: D34686968
    
    Pulled By: pdillinger
    
    fbshipit-source-id: 3ac1fa3e67ee97ca8a5103d79cc87d872c1d862a
    cff0d1e8
db_test_util.h 42.4 KB