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 } }