data-usage: Avoid crawling duplicated call (#8843)

This fix will also picks 3 and not 4 disks from a single erasure set.
This commit is contained in:
Anis Elleuch
2020-01-17 18:59:37 +01:00
committed by kannappanr
parent 2bb69033e5
commit 017067e11f
3 changed files with 7 additions and 10 deletions

View File

@@ -198,16 +198,18 @@ func (xl xlObjects) GetMetrics(ctx context.Context) (*Metrics, error) {
return &Metrics{}, NotImplemented{}
}
// crawlAndGetDataUsage picks three random disks to crawl and get data usage
func (xl xlObjects) crawlAndGetDataUsage(ctx context.Context, endCh <-chan struct{}) DataUsageInfo {
var randomDisks []StorageAPI
for _, d := range xl.getLoadBalancedDisks() {
if d == nil || !d.IsOnline() {
continue
}
if len(randomDisks) > 3 {
randomDisks = append(randomDisks, d)
if len(randomDisks) >= 3 {
break
}
randomDisks = append(randomDisks, d)
}
var dataUsageResults = make([]DataUsageInfo, len(randomDisks))