decode_checkpoint_data

Function decode_checkpoint_data 

Source
fn decode_checkpoint_data(data: Bytes) -> Result<PbHummockVersionCheckpoint>
Expand description

Decodes checkpoint data, supporting both envelope (compressed) and legacy (raw) formats.

Format detection: our writer always sets checksum in the envelope, so checksum.is_some() reliably distinguishes envelope from legacy format. Legacy bytes may happen to decode as an envelope (field 1 wire-type mismatch is skipped, field 2 LEN matches payload), but will never have a checksum.

Decoding logic:

  1. Try to decode as HummockVersionCheckpointEnvelope
  2. If checksum.is_some():
    • Verify xxhash64 checksum
    • Decompress payload according to compression_algorithm
    • Decode decompressed bytes as PbHummockVersionCheckpoint
  3. If decode fails or checksum.is_none():
    • Decode bytes directly as legacy PbHummockVersionCheckpoint