In snapshot.goListSnapshots(), 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
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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
In
snapshot.goListSnapshots(), for every remote snapshot not in the local DB,getManifestSize()is called which downloads and decodes the full manifest:With many remote snapshots, this will be extremely slow since each manifest is downloaded serially. Should either:
Ref: parent issue #1