monitor write pattern: avoid timing due to locking

This commit is contained in:
chrislu 2021-12-28 01:10:35 -08:00
parent 80db8b13d8
commit 2422556456
2 changed files with 3 additions and 4 deletions

View file

@ -3,7 +3,6 @@ package filesys
import (
"context"
"fmt"
"github.com/chrislusf/seaweedfs/weed/filesys/page_writer"
"io"
"math"
"net/http"
@ -21,7 +20,7 @@ import (
type FileHandle struct {
// cache file has been written to
dirtyPages page_writer.DirtyPages
dirtyPages *PageWriter
entryViewCache []filer.VisibleInterval
reader io.ReaderAt
contentType string
@ -177,6 +176,8 @@ func (fh *FileHandle) Write(ctx context.Context, req *fuse.WriteRequest, resp *f
fh.Add(1)
defer fh.Done()
fh.dirtyPages.writerPattern.MonitorWriteAt(req.Offset, len(req.Data))
fh.Lock()
defer fh.Unlock()

View file

@ -35,8 +35,6 @@ func newPageWriter(file *File, chunkSize int64) *PageWriter {
func (pw *PageWriter) AddPage(offset int64, data []byte) {
pw.writerPattern.MonitorWriteAt(offset, len(data))
glog.V(4).Infof("%v AddPage [%d, %d) streaming:%v", pw.f.fullpath(), offset, offset+int64(len(data)), pw.writerPattern.IsStreamingMode())
chunkIndex := offset / pw.chunkSize