diff options
| author | Konstantin Lebedev <lebedev_k@tochka.com> | 2020-12-01 16:03:34 +0500 |
|---|---|---|
| committer | Konstantin Lebedev <lebedev_k@tochka.com> | 2020-12-01 16:03:34 +0500 |
| commit | 03620776ece3175dac979b05c491d26d14faef0f (patch) | |
| tree | 4fce7d0a55c3fa7f5b7c43e9d90d5e194c439239 /weed/filesys | |
| parent | 4e55baf5b109cfe5cf9f65c44cd92c542b4acf5e (diff) | |
| parent | 005a6123e98170b2bdf99eb5b8a67ca3cea94190 (diff) | |
| download | seaweedfs-03620776ece3175dac979b05c491d26d14faef0f.tar.xz seaweedfs-03620776ece3175dac979b05c491d26d14faef0f.zip | |
Merge branch 'upstream_master' into store_s3cred
Diffstat (limited to 'weed/filesys')
| -rw-r--r-- | weed/filesys/filehandle.go | 7 | ||||
| -rw-r--r-- | weed/filesys/wfs_filer_client.go | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/weed/filesys/filehandle.go b/weed/filesys/filehandle.go index 54410a0ba..abe77f063 100644 --- a/weed/filesys/filehandle.go +++ b/weed/filesys/filehandle.go @@ -110,6 +110,12 @@ func (fh *FileHandle) readFromChunks(buff []byte, offset int64) (int64, error) { return 0, io.EOF } + if offset+int64(len(buff)) <= int64(len(fh.f.entry.Content)) { + totalRead := copy(buff, fh.f.entry.Content[offset:]) + glog.V(4).Infof("file handle read cached %s [%d,%d] %d", fh.f.fullpath(), offset, offset+int64(totalRead), totalRead) + return int64(totalRead), nil + } + var chunkResolveErr error if fh.f.entryViewCache == nil { fh.f.entryViewCache, chunkResolveErr = filer.NonOverlappingVisibleIntervals(filer.LookupFn(fh.f.wfs), fh.f.entry.Chunks) @@ -149,6 +155,7 @@ func (fh *FileHandle) Write(ctx context.Context, req *fuse.WriteRequest, resp *f copy(data, req.Data) } + fh.f.entry.Content = nil fh.f.entry.Attributes.FileSize = uint64(max(req.Offset+int64(len(data)), int64(fh.f.entry.Attributes.FileSize))) glog.V(4).Infof("%v write [%d,%d) %d", fh.f.fullpath(), req.Offset, req.Offset+int64(len(req.Data)), len(req.Data)) diff --git a/weed/filesys/wfs_filer_client.go b/weed/filesys/wfs_filer_client.go index dd76f5669..ef4213af1 100644 --- a/weed/filesys/wfs_filer_client.go +++ b/weed/filesys/wfs_filer_client.go @@ -12,7 +12,7 @@ var _ = filer_pb.FilerClient(&WFS{}) func (wfs *WFS) WithFilerClient(fn func(filer_pb.SeaweedFilerClient) error) error { - err := util.Retry("filer grpc", func() error { + err := util.Retry("filer grpc "+wfs.option.FilerGrpcAddress, func() error { return pb.WithCachedGrpcClient(func(grpcConnection *grpc.ClientConn) error { client := filer_pb.NewSeaweedFilerClient(grpcConnection) return fn(client) |
