aboutsummaryrefslogtreecommitdiff
path: root/weed/filesys/wfs.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-05-21 13:02:18 -0700
committerChris Lu <chris.lu@gmail.com>2021-05-21 13:02:18 -0700
commit2f136a04a1805799bcb9fb9d0cec009084977760 (patch)
treeb7d9ce044e4cc2ab1816d6f605d12acbccb12f08 /weed/filesys/wfs.go
parente8b7d4ad64e47b7ca37aa4b2a8efc04f02a19a9b (diff)
downloadseaweedfs-2f136a04a1805799bcb9fb9d0cec009084977760.tar.xz
seaweedfs-2f136a04a1805799bcb9fb9d0cec009084977760.zip
organize a bit better for temp file directory
Diffstat (limited to 'weed/filesys/wfs.go')
-rw-r--r--weed/filesys/wfs.go26
1 files changed, 21 insertions, 5 deletions
diff --git a/weed/filesys/wfs.go b/weed/filesys/wfs.go
index 0307261a3..8f864a123 100644
--- a/weed/filesys/wfs.go
+++ b/weed/filesys/wfs.go
@@ -10,6 +10,7 @@ import (
"math/rand"
"os"
"path"
+ "path/filepath"
"sync"
"time"
@@ -54,6 +55,9 @@ type Option struct {
VolumeServerAccess string // how to access volume servers
Cipher bool // whether encrypt data on volume server
UidGidMapper *meta_cache.UidGidMapper
+
+ uniqueCacheDir string
+ uniqueCacheTempPageDir string
}
var _ = fs.FS(&WFS{})
@@ -98,14 +102,12 @@ func NewSeaweedFileSystem(option *Option) *WFS {
signature: util.RandomInt32(),
}
wfs.option.filerIndex = rand.Intn(len(option.FilerAddresses))
- cacheUniqueId := util.Md5String([]byte(option.MountDirectory + option.FilerGrpcAddresses[0] + option.FilerMountRootPath + util.Version()))[0:8]
- cacheDir := path.Join(option.CacheDir, cacheUniqueId)
+ wfs.option.setupUniqueCacheDirectory()
if option.CacheSizeMB > 0 {
- os.MkdirAll(cacheDir, os.FileMode(0777)&^option.Umask)
- wfs.chunkCache = chunk_cache.NewTieredChunkCache(256, cacheDir, option.CacheSizeMB, 1024*1024)
+ wfs.chunkCache = chunk_cache.NewTieredChunkCache(256, option.getUniqueCacheDir(), option.CacheSizeMB, 1024*1024)
}
- wfs.metaCache = meta_cache.NewMetaCache(path.Join(cacheDir, "meta"), util.FullPath(option.FilerMountRootPath), option.UidGidMapper, func(filePath util.FullPath) {
+ wfs.metaCache = meta_cache.NewMetaCache(path.Join(option.getUniqueCacheDir(), "meta"), util.FullPath(option.FilerMountRootPath), option.UidGidMapper, func(filePath util.FullPath) {
fsNode := NodeWithId(filePath.AsInode())
if err := wfs.Server.InvalidateNodeData(fsNode); err != nil {
@@ -271,6 +273,20 @@ func (wfs *WFS) getCurrentFiler() string {
return wfs.option.FilerAddresses[wfs.option.filerIndex]
}
+func (option *Option) setupUniqueCacheDirectory() {
+ cacheUniqueId := util.Md5String([]byte(option.MountDirectory + option.FilerGrpcAddresses[0] + option.FilerMountRootPath + util.Version()))[0:8]
+ option.uniqueCacheDir = path.Join(option.CacheDir, cacheUniqueId)
+ option.uniqueCacheTempPageDir = filepath.Join(option.uniqueCacheDir, "sw")
+ os.MkdirAll(option.uniqueCacheTempPageDir, os.FileMode(0777)&^option.Umask)
+}
+
+func (option *Option) getTempFilePageDir() string {
+ return option.uniqueCacheTempPageDir
+}
+func (option *Option) getUniqueCacheDir() string {
+ return option.uniqueCacheDir
+}
+
type NodeWithId uint64
func (n NodeWithId) Id() uint64 {