ListSnapshots downloads manifests synchronously for unknown remote snapshots #8

Open
opened 2026-02-08 17:16:22 +01:00 by clawbot · 0 comments
Collaborator

In snapshot.go ListSnapshots(), for every remote snapshot not in the local DB, getManifestSize() is called which downloads and decodes the full manifest:

totalSize, err := v.getManifestSize(snapshotID)

With many remote snapshots, this will be extremely slow since each manifest is downloaded serially. Should either:

  • Cache manifest sizes locally
  • Download manifests concurrently
  • Use S3 object metadata/size instead of parsing manifests

Ref: parent issue #1

In `snapshot.go` `ListSnapshots()`, for every remote snapshot not in the local DB, `getManifestSize()` is called which downloads and decodes the full manifest: ```go totalSize, err := v.getManifestSize(snapshotID) ``` With many remote snapshots, this will be extremely slow since each manifest is downloaded serially. Should either: - Cache manifest sizes locally - Download manifests concurrently - Use S3 object metadata/size instead of parsing manifests Ref: parent issue #1
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: sneak/vaultik#8
No description provided.