mirror of
https://github.com/cubefs/cubefs.git
synced 2026-08-02 02:00:56 +00:00
perf(datanode): replace make with bytespool.#1000005968
Signed-off-by: Wu Huocheng <wuhuocheng@oppo.com>
This commit is contained in:
parent
75af3848b0
commit
167e4c488a
@ -738,14 +738,19 @@ func (e *Extent) autoComputeExtentCrc(extSize int64, crcFunc UpdateCrcFunc) (crc
|
||||
blockCnt += 1
|
||||
}
|
||||
log.LogDebugf("autoComputeExtentCrc. path %v extent %v extent size %v,blockCnt %v", e.filePath, e.extentID, extSize, blockCnt)
|
||||
crcData := make([]byte, blockCnt*util.PerBlockCrcSize)
|
||||
crcData := bytespool.Alloc(blockCnt * util.PerBlockCrcSize)
|
||||
bdata := bytespool.Alloc(util.BlockSize)
|
||||
defer func() {
|
||||
bytespool.Free(crcData)
|
||||
bytespool.Free(bdata)
|
||||
}()
|
||||
for blockNo := 0; blockNo < blockCnt; blockNo++ {
|
||||
blockCrc := binary.BigEndian.Uint32(e.header[blockNo*util.PerBlockCrcSize : (blockNo+1)*util.PerBlockCrcSize])
|
||||
if blockCrc != 0 {
|
||||
binary.BigEndian.PutUint32(crcData[blockNo*util.PerBlockCrcSize:(blockNo+1)*util.PerBlockCrcSize], blockCrc)
|
||||
continue
|
||||
}
|
||||
bdata := make([]byte, util.BlockSize)
|
||||
|
||||
offset := int64(blockNo * util.BlockSize)
|
||||
readN, err := e.file.ReadAt(bdata[:util.BlockSize], offset)
|
||||
if readN == 0 && err != nil {
|
||||
|
||||
@ -78,6 +78,7 @@ var (
|
||||
SnapShotFilePool = &sync.Pool{New: func() interface{} {
|
||||
return new(proto.File)
|
||||
}}
|
||||
emptyHeader = make([]byte, util.BlockHeaderSize)
|
||||
)
|
||||
|
||||
func GetSnapShotFileFromPool() (f *proto.File) {
|
||||
@ -1483,7 +1484,6 @@ func (s *ExtentStore) LoadExtentFromDisk(extentID uint64, putCache bool) (e *Ext
|
||||
log.LogWarnf("LoadExtentFromDisk. partition id %v extent %v err %v", s.partitionID, e, err1)
|
||||
}
|
||||
|
||||
emptyHeader := make([]byte, util.BlockHeaderSize)
|
||||
log.LogDebugf("LoadExtentFromDisk. partition id %v extentId %v, snapshotOff %v, append fp cnt %v",
|
||||
s.partitionID, extentID, e.snapshotDataOff, len(s.verifyExtentFpAppend))
|
||||
if e.snapshotDataOff > util.ExtentSize {
|
||||
|
||||
@ -24,6 +24,7 @@ import (
|
||||
"strconv"
|
||||
"sync/atomic"
|
||||
|
||||
"github.com/cubefs/cubefs/blobstore/util/bytespool"
|
||||
"github.com/cubefs/cubefs/proto"
|
||||
"github.com/cubefs/cubefs/util"
|
||||
"github.com/cubefs/cubefs/util/log"
|
||||
@ -142,7 +143,8 @@ func (s *ExtentStore) DeleteBlockCrc(extentID uint64) (err error) {
|
||||
}
|
||||
|
||||
func (s *ExtentStore) calcExtentCrc() (crc uint32, err error) {
|
||||
data := make([]byte, 16)
|
||||
data := bytespool.Alloc(16)
|
||||
defer bytespool.Free(data)
|
||||
_, err = s.metadataFp.ReadAt(data, 0)
|
||||
if err != nil {
|
||||
return
|
||||
@ -164,7 +166,8 @@ func (s *ExtentStore) PersistentBaseExtentCrc() (err error) {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
dataCrc := make([]byte, 8)
|
||||
dataCrc := bytespool.Alloc(8)
|
||||
defer bytespool.Free(dataCrc)
|
||||
binary.BigEndian.PutUint32(dataCrc, crc)
|
||||
_, err = s.metadataFp.WriteAt(dataCrc, BaseExtentCrcOffset)
|
||||
return
|
||||
@ -181,7 +184,8 @@ func (s *ExtentStore) CheckBaseExtentCrc() (err error) {
|
||||
}
|
||||
return
|
||||
}
|
||||
data := make([]byte, 4)
|
||||
data := bytespool.Alloc(4)
|
||||
defer bytespool.Free(data)
|
||||
if _, err = s.metadataFp.ReadAt(data, BaseExtentCrcOffset); err == io.EOF {
|
||||
return nil // not init before
|
||||
}
|
||||
@ -203,7 +207,8 @@ func (s *ExtentStore) GetPersistenceBaseExtentID() (extentID uint64, err error)
|
||||
s.extIDLock.Lock()
|
||||
defer s.extIDLock.Unlock()
|
||||
|
||||
data := make([]byte, 8)
|
||||
data := bytespool.Alloc(8)
|
||||
defer bytespool.Free(data)
|
||||
_, err = s.metadataFp.ReadAt(data, 0)
|
||||
if err != nil {
|
||||
return
|
||||
@ -248,7 +253,8 @@ func (s *ExtentStore) GetPreAllocSpaceExtentIDOnVerifyFile() (extentID uint64) {
|
||||
s.extIDLock.Lock()
|
||||
defer s.extIDLock.Unlock()
|
||||
|
||||
value := make([]byte, 8)
|
||||
value := bytespool.Alloc(8)
|
||||
defer bytespool.Free(value)
|
||||
_, err := s.metadataFp.ReadAt(value, BaseExtentEndIDOffset)
|
||||
if err != nil {
|
||||
return
|
||||
@ -313,7 +319,8 @@ func (s *ExtentStore) PreAllocSpaceOnVerfiyFile() (needPersist bool) {
|
||||
}
|
||||
|
||||
func (s *ExtentStore) PersistenceHasDeleteExtent(extentID uint64) (err error) {
|
||||
data := make([]byte, 8)
|
||||
data := bytespool.Alloc(8)
|
||||
defer bytespool.Free(data)
|
||||
binary.BigEndian.PutUint64(data, extentID)
|
||||
if _, err = s.normalExtentDeleteFp.Write(data); err != nil {
|
||||
return
|
||||
@ -322,7 +329,8 @@ func (s *ExtentStore) PersistenceHasDeleteExtent(extentID uint64) (err error) {
|
||||
}
|
||||
|
||||
func (s *ExtentStore) GetHasDeleteExtent() (extentDes []ExtentDeleted, err error) {
|
||||
data := make([]byte, 8)
|
||||
data := bytespool.Alloc(8)
|
||||
defer bytespool.Free(data)
|
||||
offset := int64(0)
|
||||
for {
|
||||
_, err = s.normalExtentDeleteFp.ReadAt(data, offset)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user