Browse Source

set initial write time to avoid race condition with delayed chunks

Chris Lu 4 years ago
parent
commit
06e6341097
1 changed files with 3 additions and 7 deletions
  1. 3 7
      weed/filesys/dirty_page.go

+ 3 - 7
weed/filesys/dirty_page.go

@@ -6,6 +6,7 @@ import (
 	"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
 	"io"
 	"sync"
+	"time"
 )
 
 type ContinuousDirtyPages struct {
@@ -81,6 +82,7 @@ func (pages *ContinuousDirtyPages) saveExistingLargestPageToStorage() (hasSavedD
 
 func (pages *ContinuousDirtyPages) saveToStorage(reader io.Reader, offset int64, size int64) {
 
+	mtime := time.Now().UnixNano()
 	pages.writeWaitGroup.Add(1)
 	go func() {
 		defer pages.writeWaitGroup.Done()
@@ -94,19 +96,13 @@ func (pages *ContinuousDirtyPages) saveToStorage(reader io.Reader, offset int64,
 			pages.chunkSaveErrChan <- err
 			return
 		}
+		chunk.Mtime = mtime
 		pages.collection, pages.replication = collection, replication
 		pages.f.addChunks([]*filer_pb.FileChunk{chunk})
 		pages.chunkSaveErrChan <- nil
 	}()
 }
 
-func maxUint64(x, y uint64) uint64 {
-	if x > y {
-		return x
-	}
-	return y
-}
-
 func max(x, y int64) int64 {
 	if x > y {
 		return x