aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)
}