diff options
| author | chrislu <chris.lu@gmail.com> | 2021-12-24 22:38:22 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2021-12-24 22:38:22 -0800 |
| commit | 083d8e9ecede84ea359962136c28ebda0ba1323b (patch) | |
| tree | 85899215a275d5edbf20c806bf6123f2c78b991b /weed/filesys/page_writer_pattern.go | |
| parent | 255a1c7dcd009524c34cb8c3d6fce59c6d9a03cb (diff) | |
| download | seaweedfs-083d8e9ecede84ea359962136c28ebda0ba1323b.tar.xz seaweedfs-083d8e9ecede84ea359962136c28ebda0ba1323b.zip | |
add stream writer
this should improve streaming write performance, which is common in many cases, e.g., copying large files.
This is additional to improved random read write operations: https://github.com/chrislusf/seaweedfs/wiki/FUSE-Mount/_compare/3e69d193805c79802f4f8f6cc63269b7a9a911f3...19084d87918f297cac15e2471c19306176e0771f
Diffstat (limited to 'weed/filesys/page_writer_pattern.go')
| -rw-r--r-- | weed/filesys/page_writer_pattern.go | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/weed/filesys/page_writer_pattern.go b/weed/filesys/page_writer_pattern.go index 44b69cda7..51c63d472 100644 --- a/weed/filesys/page_writer_pattern.go +++ b/weed/filesys/page_writer_pattern.go @@ -4,19 +4,17 @@ type WriterPattern struct { isStreaming bool lastWriteOffset int64 chunkSize int64 - fileName string } // For streaming write: only cache the first chunk // For random write: fall back to temp file approach // writes can only change from streaming mode to non-streaming mode -func NewWriterPattern(fileName string, chunkSize int64) *WriterPattern { +func NewWriterPattern(chunkSize int64) *WriterPattern { return &WriterPattern{ isStreaming: true, lastWriteOffset: -1, chunkSize: chunkSize, - fileName: fileName, } } @@ -39,3 +37,8 @@ func (rp *WriterPattern) IsStreamingMode() bool { func (rp *WriterPattern) IsRandomMode() bool { return !rp.isStreaming } + +func (rp *WriterPattern) Reset() { + rp.isStreaming = true + rp.lastWriteOffset = -1 +} |
