aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-01-17 03:19:00 -0800
committerchrislu <chris.lu@gmail.com>2022-01-17 03:19:00 -0800
commitf710d5ffcaced286062dcbe99bf5fcebdb73efc0 (patch)
tree6d8cbc4f2c0595a94e6dc2e2e4bd031d0b6b606c
parentfc0628c0381fcf571cf46ff699e2b79dc8c99bb0 (diff)
downloadseaweedfs-f710d5ffcaced286062dcbe99bf5fcebdb73efc0.tar.xz
seaweedfs-f710d5ffcaced286062dcbe99bf5fcebdb73efc0.zip
a little speed up
-rw-r--r--weed/filesys/dirty_pages_mem_chunk.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/weed/filesys/dirty_pages_mem_chunk.go b/weed/filesys/dirty_pages_mem_chunk.go
index 9740842cf..98b3929ac 100644
--- a/weed/filesys/dirty_pages_mem_chunk.go
+++ b/weed/filesys/dirty_pages_mem_chunk.go
@@ -18,6 +18,7 @@ type MemoryChunkPages struct {
collection string
replication string
uploadPipeline *page_writer.UploadPipeline
+ hasWrites bool
}
func newMemoryChunkPages(file *File, chunkSize int64) *MemoryChunkPages {
@@ -33,6 +34,7 @@ func newMemoryChunkPages(file *File, chunkSize int64) *MemoryChunkPages {
}
func (pages *MemoryChunkPages) AddPage(offset int64, data []byte) {
+ pages.hasWrites = true
glog.V(4).Infof("%v memory AddPage [%d, %d)", pages.f.fullpath(), offset, offset+int64(len(data)))
pages.uploadPipeline.SaveDataAt(data, offset)
@@ -41,6 +43,9 @@ func (pages *MemoryChunkPages) AddPage(offset int64, data []byte) {
}
func (pages *MemoryChunkPages) FlushData() error {
+ if !pages.hasWrites {
+ return nil
+ }
pages.saveChunkedFileToStorage()
pages.writeWaitGroup.Wait()
if pages.lastErr != nil {
@@ -50,6 +55,9 @@ func (pages *MemoryChunkPages) FlushData() error {
}
func (pages *MemoryChunkPages) ReadDirtyDataAt(data []byte, startOffset int64) (maxStop int64) {
+ if !pages.hasWrites {
+ return
+ }
return pages.uploadPipeline.MaybeReadDataAt(data, startOffset)
}