MCPcopy
hub / github.com/kopia/kopia / loadRangeCheckpoints

Method loadRangeCheckpoints

internal/epoch/epoch_manager.go:538–568  ·  view source on GitHub ↗
(ctx context.Context, cs *CurrentSnapshot)

Source from the content-addressed store, hash-verified

536}
537
538func (e *Manager) loadRangeCheckpoints(ctx context.Context, cs *CurrentSnapshot) error {
539 blobs, err := blob.ListAllBlobs(ctx, e.st, RangeCheckpointIndexBlobPrefix)
540 if err != nil {
541 return errors.Wrap(err, "error loading full checkpoints")
542 }
543
544 contentlog.Log2(ctx, e.log,
545 "ranges",
546 logparam.Int("numRanges", len(blobs)),
547 blobparam.BlobMetadataList("blobs", blobs))
548
549 var rangeCheckpointSets []*RangeMetadata
550
551 for epoch1, m := range groupByEpochRanges(blobs) {
552 for epoch2, bms := range m {
553 if comp := completeset.FindFirst(bms); comp != nil {
554 erm := &RangeMetadata{
555 MinEpoch: epoch1,
556 MaxEpoch: epoch2,
557 Blobs: comp,
558 }
559
560 rangeCheckpointSets = append(rangeCheckpointSets, erm)
561 }
562 }
563 }
564
565 cs.LongestRangeCheckpointSets = findLongestRangeCheckpoint(rangeCheckpointSets)
566
567 return nil
568}
569
570func (e *Manager) loadSingleEpochCompactions(ctx context.Context, cs *CurrentSnapshot) error {
571 blobs, err := blob.ListAllBlobs(ctx, e.st, SingleEpochCompactionBlobPrefix)

Callers 1

refreshAttemptLockedMethod · 0.95

Calls 7

ListAllBlobsFunction · 0.92
Log2Function · 0.92
IntFunction · 0.92
BlobMetadataListFunction · 0.92
FindFirstFunction · 0.92
groupByEpochRangesFunction · 0.85

Tested by

no test coverage detected