Skip to content
  • Levi Tamasi's avatar
    Split BlobFileState into an immutable and a mutable part (#6502) · f5bc3b99
    Levi Tamasi authored
    Summary:
    It's never too soon to refactor something. The patch splits the recently
    introduced (`VersionEdit` related) `BlobFileState` into two classes
    `BlobFileAddition` and `BlobFileGarbage`. The idea is that once blob files
    are closed, they are immutable, and the only thing that changes is the
    amount of garbage in them. In the new design, `BlobFileAddition` contains
    the immutable attributes (currently, the count and total size of all blobs, checksum
    method, and checksum value), while `BlobFileGarbage` contains the mutable
    GC-related information elements (count and total size of garbage blobs). This is a
    better fit for the GC logic and is more consistent with how SST files are handled.
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/6502
    
    Test Plan: `make check`
    
    Differential Revision: D20348352
    
    Pulled By: ltamasi
    
    fbshipit-source-id: ff93f0121e80ab15e0e0a6525ba0d6af16a0e008
    f5bc3b99