Draft:Milvus (vector database)
This article, Draft:Milvus (vector database), has recently been created via the Articles for creation process. Please check to see if the reviewer has accidentally left this template after accepting the draft and take appropriate action as necessary.
Reviewer tools: Preload talk Inform author |
This article, Draft:Milvus (vector database), has recently been created via the Articles for creation process. Please check to see if the reviewer has accidentally left this template after accepting the draft and take appropriate action as necessary.
Reviewer tools: Preload talk Inform author |
![]() | |
Developer(s) | Zilliz |
---|---|
Initial release | October 19, 2019 |
Stable release | v2.4.12
/ September 26, 2024[1] . |
Repository | github |
Written in | C++, Go |
Operating system | Linux, macOS |
Platform | x86, ARM |
Type | Vector database |
License | Apache License 2.0 |
Website | milvus |
Milvus is a distributed vector database developed by Zilliz. It is available as both open-source software and a cloud service.
Milvus is an open-source project under LF AI & Data Foundation [2] distributed under the Apache License 2.0.
History
Milvus has been developed by Zilliz since 2017.
Milvus has joined Linux foundation as an incubation project in January 2020 and became a graduate in June 2021[2]. The details about its architecture and possible applications were presented on ACM SIGMOD Conference in 2021[3]
Features
Similarity search
Major similarity search related features that are available in the active 2.4.x Milvus branch[4]:
- In-memory, on-disk and GPU indices,
- Single query, batch query and range query search,
- Support of sparse vectors, binary vectors, JSON and arrays,
- FP32, FP16 and BF16 data types,
- Euclidean distance, inner product distance and cosine distance support,
- Support of HNSW index, Inverted-lists bases indices and a brute-force search.
- Re-ranking.
Milvus similarity search engine relies on heavily-modified forks of third-party open-source similarity search libraries, such as Faiss[5][6], DiskANN[7][8] and hnswlib[9].
Database
As a database, Milvus has the following features:[4]:
- Column-oriented database
- Supported data consistency levels[10]:
- Strong consistency ensures that users can read the latest version of data,
- Bounded staleness allows data inconsistency during a certain period of time,
- Session ensures that all data writes can be immediately perceived in reads during the same session,
- Eventual consistency ensures that replicas eventually converge to the same state given that no further write operations are done.
- Data sharding
- Streaming data ingestion, which allows to process and ingest data in real-time as it arrives,
- Dynamic schema, which allows inserting the data without a predefined schema,
- Storage/computing disaggregation, which splits the database system into several mutually independent layers,
- Multi-tenancy scenarios (database-oriented, collection-oriented, partition-oriented)[11]
- Memory-mapped data storage,
- Role-based access control,
- Multi-vector and hybrid search [12]
Deployment options
Milvus supports working in the following modes[13]:
- Embedded, which is achieved via a Python-based wrapper pymilvus[14]
- Standalone, which is designed for operating on a single machine. Docker-based images are preferred.
- Distributed, which can be deployed on a Kubernetes cluster.
GPU support
Milvus provides GPU accelerated index building and search using Nvidia CUDA technology[15][16] via Nvidia RAFT library[17], including a recent GPU-based graph indexing algorithm Nvidia CAGRA[18]
Integration
Milvus provides official SDK clients for Java, NodeJS, Python and Go[19]. An additional C# SDK client was contributed by Microsoft[4][20].
Milvus support integration with Prometheus and Grafana for monitoring and alerts.
Milvus provides connectors[4] for OpenAI models[21][22], HayStack[23], LangChain[24]
Milvus supports integration with IBM Watsonx.[25]
See also
Lua error in mw.title.lua at line 346: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').
References
- ^ "Release notes for Milvus v2.4.12". GitHub.
- ^ 2.0 2.1 "LF AI & Data Foundation Announces Graduation of Milvus Project". June 23, 2021.
- ^ "Milvus: A Purpose-Built Vector Data Management System". SIGMOD '21: Proceedings of the 2021 International Conference on Management of Data. June 18, 2021. pp. 2614–2627. doi:10.1145/3448016.3457550. ISBN 978-1-4503-8343-1.
- ^ 4.0 4.1 4.2 4.3 "Milvus overview". Retrieved September 23, 2024.
- ^ "Faiss". GitHub. Retrieved September 23, 2024.
- ^ Douze, Matthijs; Guzhva, Alexandr; Deng, Chengqi; Johnson, Jeff; Szilvasy, Gergely; Mazaré, Pierre-Emmanuel; Lomeli, Maria; Hosseini, Lucas; Jégou, Hervé (2024). "The Faiss library". arXiv:2401.08281 [cs.LG].
- ^ "DiskANN library". GitHub. Retrieved September 23, 2024.
- ^ "DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node" (PDF). Retrieved September 23, 2024.
- ^ "Hnswlib - fast approximate nearest neighbor search". GitHub. Retrieved September 23, 2024.
- ^ "Consistency levels in Milvus". Retrieved September 29, 2024.
- ^ "Multi-tenancy strategies". Retrieved September 29, 2024.
- ^ "Hybrid Search". Retrieved September 23, 2024.
- ^ "Deployment options".
- ^ "Python SDK for Milvus". GitHub.
- ^ "What's New In Milvus 2.3 Beta - 10X faster with GPUs". Retrieved September 29, 2024.
- ^ "Milvus 2.3 Launches with Support for Nvidia GPUs". 23 March 2023. Retrieved September 29, 2024.
- ^ "NVIDIA RAFT library". GitHub.
- ^ Ootomo, Hiroyuki; Naruse, Akira; Nolet, Corey; Wang, Ray; Feher, Tamas; Wang, Yong (August 2023). "CAGRA: Highly Parallel Graph Construction and Approximate Nearest Neighbor Search for GPUs". arXiv:2308.15136 [cs.DS].
- ^ "Install Milvus Go SDK". Retrieved September 29, 2024.
- ^ "Get Started with Milvus Vector DB in .NET". March 6, 2024. Retrieved September 29, 2024.
- ^ "Getting started with Milvus and OpenAI". Mar 28, 2023. Retrieved September 23, 2024.
- ^ "OpenAI and Milvus simple app". GitHub. Retrieved September 23, 2024.
- ^ "Integration HayStack + Milvus". Retrieved September 23, 2024.
- ^ "Milvus connector for LangChain". Retrieved September 23, 2024.
- ^ "IBM watsonx.data's integrated vector database: unify, prepare, and deliver your data for AI". IBM. April 9, 2024. Retrieved September 29, 2024.