(cs CurrentSnapshot, p Parameters)
| 614 | } |
| 615 | |
| 616 | func getRangeToCompact(cs CurrentSnapshot, p Parameters) (low, high int, compactRange bool) { |
| 617 | latestSettled := cs.lastSettledEpochNumber() |
| 618 | if latestSettled < 0 { |
| 619 | return -1, -1, false |
| 620 | } |
| 621 | |
| 622 | firstNonRangeCompacted := 0 |
| 623 | if rangeSetsLen := len(cs.LongestRangeCheckpointSets); rangeSetsLen > 0 { |
| 624 | firstNonRangeCompacted = cs.LongestRangeCheckpointSets[rangeSetsLen-1].MaxEpoch + 1 |
| 625 | } |
| 626 | |
| 627 | if latestSettled-firstNonRangeCompacted < p.FullCheckpointFrequency { |
| 628 | return -1, -1, false |
| 629 | } |
| 630 | |
| 631 | return firstNonRangeCompacted, latestSettled, true |
| 632 | } |
| 633 | |
| 634 | func (e *Manager) loadUncompactedEpochs(ctx context.Context, first, last int) (map[int][]blob.Metadata, error) { |
| 635 | var mu sync.Mutex |
no test coverage detected