Current state: Under Discussion
ISSUE: https://github.com/milvus-io/milvus/issues/12777
PRs:
Keywords: debug, run, Mac
Released:
Summary(required)
Separating Knowhere from Milvus project make Milvus easy to run on Mac or other laptops, due to decoupling knowhere that is the engine module make code structure more clear.
Motivation(required)
Compiling and running Milvus on Mac is a common requirement, which is helpful for work on the Mac laptop.
Public Interfaces(optional)
TODO
Design Details(required)
1. Current dependence graph
2. Decoupling
- The distributed layer doesn't directly depend on faiss and should access the unified interface of knowhere.
- Each index implementation should be independent.
- Move Knowhere to a new project.
- We'd better decouple libfiu from key code path, which should only use within test code.
2. Support compile on MAC
- Distributed layer
- Optimize compile phase make Query and segcore module depends on knowhere shared library.
- Reconstruct BinarySearchBruteForce and FloatSearchBruteForce functions within the query module by knowhere supported brute force search index.
- Support an alternative way to use libfiu which doesn't compile on Mac, or provide a optional to use libfiu when compile on Mac.
- Engine Layer(knowhere)
- Support a brute force search which is a kind of vector index and compiled on MAC & Ubuntu.
- Upgrade faiss to the latest version, because current version can not be compiled on Mac.