milvus/internal/util/pathutil/path_util.go
aoiasd 354ab2f55e
enhance: sync file resource to querynode and datanode (#44480)
relate:https://github.com/milvus-io/milvus/issues/43687
Support use file resource with sync mode.
Auto download or remove file resource to local when user add or remove
file resource.
Sync file resource to node when find new node session.

---------

Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>
2025-12-04 16:23:11 +08:00

49 lines
1.2 KiB
Go

package pathutil
import (
"fmt"
"path/filepath"
"go.uber.org/zap"
"github.com/milvus-io/milvus/pkg/v2/log"
"github.com/milvus-io/milvus/pkg/v2/util/paramtable"
)
type PathType int
const (
GrowingMMapPath PathType = iota
LocalChunkPath
BM25Path
RootCachePath
FileResourcePath
)
const (
CachePathPrefix = "cache"
GrowingMMapPathPrefix = "growing_mmap"
LocalChunkPathPrefix = "local_chunk"
BM25PathPrefix = "bm25"
FileResourcePathPrefix = "file_resource"
)
func GetPath(pathType PathType, nodeID int64) string {
rootPath := paramtable.Get().LocalStorageCfg.Path.GetValue()
path := filepath.Join(rootPath, CachePathPrefix)
switch pathType {
case GrowingMMapPath:
path = filepath.Join(path, fmt.Sprintf("%d", nodeID), GrowingMMapPathPrefix)
case LocalChunkPath:
path = filepath.Join(path, fmt.Sprintf("%d", nodeID), LocalChunkPathPrefix)
case BM25Path:
path = filepath.Join(path, fmt.Sprintf("%d", nodeID), BM25PathPrefix)
case FileResourcePath:
path = filepath.Join(path, fmt.Sprintf("%d", nodeID), FileResourcePathPrefix)
case RootCachePath:
}
log.Info("Get path for", zap.Any("pathType", pathType), zap.Int64("nodeID", nodeID), zap.String("path", path))
return path
}