diff options
| author | Chris Lu <chris.lu@gmail.com> | 2018-12-07 01:25:01 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2018-12-07 01:25:01 -0800 |
| commit | 29f1673d9766f11b256ca1c0d653aaa7d99e13aa (patch) | |
| tree | 72c3967aa5338519effcd08c063e8d6f598fcdaa /weed/filesys/wfs.go | |
| parent | 6946c51430473739ae4819c30458ff7edd107bdd (diff) | |
| download | seaweedfs-29f1673d9766f11b256ca1c0d653aaa7d99e13aa.tar.xz seaweedfs-29f1673d9766f11b256ca1c0d653aaa7d99e13aa.zip | |
refactoring
Diffstat (limited to 'weed/filesys/wfs.go')
| -rw-r--r-- | weed/filesys/wfs.go | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/weed/filesys/wfs.go b/weed/filesys/wfs.go index e1f369e5b..bb655c256 100644 --- a/weed/filesys/wfs.go +++ b/weed/filesys/wfs.go @@ -40,10 +40,6 @@ type WFS struct { pathToHandleIndex map[string]int pathToHandleLock sync.Mutex - // cache grpc connections - grpcClients map[string]*grpc.ClientConn - grpcClientsLock sync.Mutex - stats statsCache } type statsCache struct { @@ -56,7 +52,6 @@ func NewSeaweedFileSystem(option *Option) *WFS { option: option, listDirectoryEntriesCache: ccache.New(ccache.Configure().MaxSize(int64(option.DirListingLimit) + 200).ItemsToPrune(100)), pathToHandleIndex: make(map[string]int), - grpcClients: make(map[string]*grpc.ClientConn), } } @@ -66,27 +61,11 @@ func (wfs *WFS) Root() (fs.Node, error) { func (wfs *WFS) withFilerClient(fn func(filer_pb.SeaweedFilerClient) error) error { - wfs.grpcClientsLock.Lock() - - existingConnection, found := wfs.grpcClients[wfs.option.FilerGrpcAddress] - if found { - wfs.grpcClientsLock.Unlock() - client := filer_pb.NewSeaweedFilerClient(existingConnection) + return util.WithCachedGrpcClient(func(grpcConnection *grpc.ClientConn) error { + client := filer_pb.NewSeaweedFilerClient(grpcConnection) return fn(client) - } - - grpcConnection, err := util.GrpcDial(wfs.option.FilerGrpcAddress) - if err != nil { - wfs.grpcClientsLock.Unlock() - return fmt.Errorf("fail to dial %s: %v", wfs.option.FilerGrpcAddress, err) - } - - wfs.grpcClients[wfs.option.FilerGrpcAddress] = grpcConnection - wfs.grpcClientsLock.Unlock() - - client := filer_pb.NewSeaweedFilerClient(grpcConnection) + }, wfs.option.FilerGrpcAddress) - return fn(client) } func (wfs *WFS) AcquireHandle(file *File, uid, gid uint32) (fileHandle *FileHandle) { |
