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:
- Try to decode as
HummockVersionCheckpointEnvelope - If
checksum.is_some():- Verify xxhash64 checksum
- Decompress payload according to
compression_algorithm - Decode decompressed bytes as
PbHummockVersionCheckpoint
- If decode fails or
checksum.is_none():- Decode bytes directly as legacy
PbHummockVersionCheckpoint
- Decode bytes directly as legacy