From 54d6b3c30f27e34f5d55827ea54efaf8a95add4f Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Tue, 7 Jul 2020 23:18:44 -0700 Subject: [PATCH] filer: support running multiple mount to different filers avoiding duplicated cache fix https://github.com/chrislusf/seaweedfs/issues/1382 --- weed/filesys/wfs.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/weed/filesys/wfs.go b/weed/filesys/wfs.go index 93f72ad65..8dffa6555 100644 --- a/weed/filesys/wfs.go +++ b/weed/filesys/wfs.go @@ -84,15 +84,17 @@ func NewSeaweedFileSystem(option *Option) *WFS { }, }, } + cacheUniqueId := util.Md5([]byte(option.FilerGrpcAddress))[0:4] + cacheDir := path.Join(option.CacheDir, cacheUniqueId) if option.CacheSizeMB > 0 { - os.MkdirAll(option.CacheDir, 0755) - wfs.chunkCache = chunk_cache.NewChunkCache(256, option.CacheDir, option.CacheSizeMB) + os.MkdirAll(cacheDir, 0755) + wfs.chunkCache = chunk_cache.NewChunkCache(256, cacheDir, option.CacheSizeMB) grace.OnInterrupt(func() { wfs.chunkCache.Shutdown() }) } - wfs.metaCache = meta_cache.NewMetaCache(path.Join(option.CacheDir, "meta")) + wfs.metaCache = meta_cache.NewMetaCache(path.Join(cacheDir, "meta")) startTime := time.Now() if err := meta_cache.InitMetaCache(wfs.metaCache, wfs, wfs.option.FilerMountRootPath); err != nil { glog.V(0).Infof("failed to init meta cache: %v", err)