fix(object): buffer optimization when calculate md5sum

Signed-off-by: morphes1995 <morphes1995@gmail.com>
This commit is contained in:
morphes1995 2025-01-02 19:47:44 +08:00 committed by Victor1319
parent b0cd15e1c4
commit 4a96eeb26e
2 changed files with 4 additions and 13 deletions

View File

@ -82,7 +82,6 @@ func (t *TransitionMgr) migrate(e *proto.ScanDentry) (err error) {
readSize int
rest int
buf = make([]byte, 2*util.BlockSize)
hashBuf = make([]byte, 2*util.BlockSize)
)
for {
@ -112,8 +111,7 @@ func (t *TransitionMgr) migrate(e *proto.ScanDentry) (err error) {
readOffset += readN
writeOffset += writeN
// copy to md5 buffer, and then write to md5
copy(hashBuf, buf[:readN])
md5Hash.Write(hashBuf[:readN])
md5Hash.Write(buf[:readN])
}
if err == io.EOF {
err = nil

View File

@ -1379,11 +1379,11 @@ func (v *Volume) ebsWrite(inode uint64, reader io.Reader, h hash.Hash, storageCl
func (v *Volume) streamWrite(inode uint64, reader io.Reader, h hash.Hash, storageClass uint32) (size uint64, err error) {
var (
buf = make([]byte, 2*util.BlockSize)
teeReader = io.TeeReader(reader, h)
readN, writeN, offset int
hashBuf = make([]byte, 2*util.BlockSize)
)
for {
readN, err = reader.Read(buf)
readN, err = teeReader.Read(buf)
if err != nil && err != io.EOF {
return
}
@ -1411,10 +1411,6 @@ func (v *Volume) streamWrite(inode uint64, reader io.Reader, h hash.Hash, storag
offset += writeN
// copy to md5 buffer, and then write to md5
size += uint64(writeN)
copy(hashBuf, buf[:readN])
if h != nil {
h.Write(hashBuf[:readN])
}
}
if err == io.EOF {
err = nil
@ -2826,7 +2822,6 @@ func (v *Volume) CopyFile(sv *Volume, sourcePath, targetPath, metaDirective stri
readSize int
rest int
buf = make([]byte, 2*util.BlockSize)
hashBuf = make([]byte, 2*util.BlockSize)
)
var sctx context.Context
@ -2872,9 +2867,7 @@ func (v *Volume) CopyFile(sv *Volume, sourcePath, targetPath, metaDirective stri
}
readOffset += readN
writeOffset += writeN
// copy to md5 buffer, and then write to md5
copy(hashBuf, buf[:readN])
md5Hash.Write(hashBuf[:readN])
md5Hash.Write(buf[:readN])
}
if err == io.EOF {
err = nil