package pathutil import ( "context" "fmt" "path/filepath" "github.com/milvus-io/milvus/pkg/v3/mlog" "github.com/milvus-io/milvus/pkg/v3/util/paramtable" ) type PathType int const ( GrowingMMapPath PathType = iota LocalChunkPath BM25Path RootCachePath FileResourcePath ExprCachePath ) const ( CachePathPrefix = "cache" GrowingMMapPathPrefix = "growing_mmap" LocalChunkPathPrefix = "local_chunk" BM25PathPrefix = "bm25" FileResourcePathPrefix = "file_resource" ExprCachePathPrefix = "expr_cache" ) 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 ExprCachePath: path = filepath.Join(path, fmt.Sprintf("%d", nodeID), ExprCachePathPrefix) case RootCachePath: } mlog.Info(context.TODO(), "Get path for", mlog.Any("pathType", pathType), mlog.FieldNodeID(nodeID), mlog.String("path", path)) return path }