milvus/internal/util/pathutil/path_util.go
Chun Han da156981c6
feat: milvus support posix-compatible mode(milvus-io#43942) (#43944)
related: #43942

Signed-off-by: MrPresent-Han <chun.han@gmail.com>
Co-authored-by: MrPresent-Han <chun.han@gmail.com>
2025-08-27 16:29:50 +08:00

45 lines
1.0 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
)
const (
CachePathPrefix = "cache"
GrowingMMapPathPrefix = "growing_mmap"
LocalChunkPathPrefix = "local_chunk"
BM25PathPrefix = "bm25"
)
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 RootCachePath:
}
log.Info("Get path for", zap.Any("pathType", pathType), zap.Int64("nodeID", nodeID), zap.String("path", path))
return path
}