aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-10-07 23:58:32 -0700
committerChris Lu <chris.lu@gmail.com>2020-10-07 23:58:32 -0700
commiteed492b73b67fe761a95b8752ba369fbc44587b9 (patch)
treedd447725cb131bf85a144e270570f3b046b1bc23
parentec08a1670b6db6a1ad1300728f06493d8066da9b (diff)
downloadseaweedfs-eed492b73b67fe761a95b8752ba369fbc44587b9.tar.xz
seaweedfs-eed492b73b67fe761a95b8752ba369fbc44587b9.zip
randomize file locations
-rw-r--r--weed/filer/reader_at.go13
1 files changed, 9 insertions, 4 deletions
diff --git a/weed/filer/reader_at.go b/weed/filer/reader_at.go
index 74f037557..2a46c1ca6 100644
--- a/weed/filer/reader_at.go
+++ b/weed/filer/reader_at.go
@@ -3,14 +3,14 @@ package filer
import (
"context"
"fmt"
- "github.com/golang/groupcache/singleflight"
- "io"
- "sync"
-
"github.com/chrislusf/seaweedfs/weed/glog"
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
"github.com/chrislusf/seaweedfs/weed/util/chunk_cache"
"github.com/chrislusf/seaweedfs/weed/wdclient"
+ "github.com/golang/groupcache/singleflight"
+ "io"
+ "math/rand"
+ "sync"
)
type ChunkReadAt struct {
@@ -64,6 +64,11 @@ func LookupFn(filerClient filer_pb.FilerClient) LookupFileIdFunctionType {
targetUrls = append(targetUrls, targetUrl)
}
+ for i := len(targetUrls) - 1; i > 0; i-- {
+ j := rand.Intn(i + 1)
+ targetUrls[i], targetUrls[j] = targetUrls[j], targetUrls[i]
+ }
+
return
}
}