aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2023-01-15 21:10:08 -0800
committerchrislu <chris.lu@gmail.com>2023-01-15 21:10:08 -0800
commitc24678153c922ee31e421c15620d1e5fe50e8ba8 (patch)
treecb2c8cf1e68cf4483ee46c7758df4c3782ced6a5
parent2885ba0e508075762d732468334890c51f419aed (diff)
downloadseaweedfs-c24678153c922ee31e421c15620d1e5fe50e8ba8.tar.xz
seaweedfs-c24678153c922ee31e421c15620d1e5fe50e8ba8.zip
use memory chunks only for sequential writes
-rw-r--r--weed/mount/page_writer/upload_pipeline.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/weed/mount/page_writer/upload_pipeline.go b/weed/mount/page_writer/upload_pipeline.go
index f326445a3..e1aa43fe2 100644
--- a/weed/mount/page_writer/upload_pipeline.go
+++ b/weed/mount/page_writer/upload_pipeline.go
@@ -94,7 +94,8 @@ func (up *UploadPipeline) SaveDataAt(p []byte, off int64, isSequential bool, tsN
up.moveToSealed(up.writableChunks[candidateChunkIndex], candidateChunkIndex)
// fmt.Printf("flush chunk %d with %d bytes written\n", logicChunkIndex, oldestTs)
}
- if len(up.writableChunks) < up.writableChunkLimit &&
+ if isSequential &&
+ len(up.writableChunks) < up.writableChunkLimit &&
atomic.LoadInt64(&memChunkCounter) < 4*int64(up.writableChunkLimit) {
pageChunk = NewMemChunk(logicChunkIndex, up.ChunkSize)
} else {