Skip to content

enhance: introduce intermediate checkpoint state to minimize recovery time #78

@tinswzy

Description

@tinswzy

In the current recovery flow using MinIO as the storage backend, fencing and finalization require scanning and processing all blocks of a segment to ensure there are no holes in the block sequence and to reconstruct the sparse index.

When a segment contains close to 1000 blocks and object storage operations are relatively slow (e.g. some cloud object stores), the recovery cost can be significant:

  • Each S3 read costs ~20–80 ms
  • 1000 blocks ⇒ 20–80 seconds just for fence & finalize
  • This makes recovery time scale linearly with block count
  • Worst case: recovery becomes the dominant latency during restart or failover

This is especially problematic for:

  • Cloud object storage (S3 / OSS / GCS)
  • Large or long-lived segments
  • Frequent restarts or crash recovery scenarios

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions