diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-03-22 22:12:57 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-03-22 22:12:57 -0700 |
| commit | d48dd0c73855a0c459ddf2ab4225675b5df31728 (patch) | |
| tree | 3f91859a31ce6332b5d5044693194ac22260dc8a | |
| parent | 8eb14967ef45732d5efbdf3b5cab97e3b2f65527 (diff) | |
| download | seaweedfs-d48dd0c73855a0c459ddf2ab4225675b5df31728.tar.xz seaweedfs-d48dd0c73855a0c459ddf2ab4225675b5df31728.zip | |
use []byte directly instead of bytes.Buffer
| -rw-r--r-- | weed/filer/filechunk_manifest.go | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/weed/filer/filechunk_manifest.go b/weed/filer/filechunk_manifest.go index da530257a..b4bfc6842 100644 --- a/weed/filer/filechunk_manifest.go +++ b/weed/filer/filechunk_manifest.go @@ -97,20 +97,20 @@ func fetchChunk(lookupFileIdFn wdclient.LookupFileIdFunctionType, fileId string, func retriedFetchChunkData(urlStrings []string, cipherKey []byte, isGzipped bool, isFullChunk bool, isCheck bool, offset int64, size int) ([]byte, error) { var err error - var buffer bytes.Buffer var shouldRetry bool + receivedData := make([]byte, 0, size) for waitTime := time.Second; waitTime < util.RetryWaitTime; waitTime += waitTime / 2 { for _, urlString := range urlStrings { + receivedData = receivedData[:0] shouldRetry, err = util.ReadUrlAsStream(urlString+"?readDeleted=true", cipherKey, isGzipped, isFullChunk, offset, size, func(data []byte) { - buffer.Write(data) + receivedData = append(receivedData, data...) }) if !shouldRetry { break } if err != nil { glog.V(0).Infof("read %s failed, err: %v", urlString, err) - buffer.Reset() } else { break } @@ -123,7 +123,8 @@ func retriedFetchChunkData(urlStrings []string, cipherKey []byte, isGzipped bool } } - return buffer.Bytes(), err + return receivedData, err + } func MaybeManifestize(saveFunc SaveDataAsChunkFunctionType, inputChunks []*filer_pb.FileChunk) (chunks []*filer_pb.FileChunk, err error) { |
