[volume] Reduce the number of buffers for uploading one chunk (#5458)

This commit is contained in:
Konstantin Lebedev
2024-04-11 16:47:21 +05:00
committed by GitHub
parent 6dae685f9c
commit 5189a09de0
5 changed files with 50 additions and 17 deletions

View File

@@ -7,16 +7,10 @@ import (
"github.com/seaweedfs/seaweedfs/weed/storage/backend"
. "github.com/seaweedfs/seaweedfs/weed/storage/types"
"github.com/seaweedfs/seaweedfs/weed/util"
"github.com/seaweedfs/seaweedfs/weed/util/buffer_pool"
"math"
"sync"
)
var bufPool = sync.Pool{
New: func() interface{} {
return new(bytes.Buffer)
},
}
func (n *Needle) prepareWriteBuffer(version Version, writeBytes *bytes.Buffer) (Size, int64, error) {
writeBytes.Reset()
switch version {
@@ -132,8 +126,8 @@ func (n *Needle) Append(w backend.BackendStorageFile, version Version) (offset u
return
}
bytesBuffer := bufPool.Get().(*bytes.Buffer)
defer bufPool.Put(bytesBuffer)
bytesBuffer := buffer_pool.SyncPoolGetBuffer()
defer buffer_pool.SyncPoolPutBuffer(bytesBuffer)
size, actualSize, err = n.prepareWriteBuffer(version, bytesBuffer)