Software:Milvus (vector database)

From HandWiki
Milvus
File:Thumb
Developer(s)Zilliz
Initial releaseOctober 19, 2019; 4 years ago (2019-10-19)
Stable release
v2.4.12 / September 26, 2024; 15 days ago (2024-09-26).[1]
Repositorygithub.com/milvus-io/milvus
Written inC++, Go
Operating systemLinux, macOS
Platformx86, ARM
TypeVector database
LicenseApache License 2.0
Websitemilvus.io

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]:

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

References

  1. "Release notes for Milvus v2.4.12". https://github.com/milvus-io/milvus/releases/tag/v2.4.12. 
  2. 2.0 2.1 "LF AI & Data Foundation Announces Graduation of Milvus Project". June 23, 2021. https://lfaidata.foundation/blog/2021/06/23/lf-ai-data-foundation-announces-graduation-of-milvus-project/. 
  3. "Milvus: A Purpose-Built Vector Data Management System". June 18, 2021. pp. 2614–2627. doi:10.1145/3448016.3457550. ISBN 978-1-4503-8343-1. https://dl.acm.org/doi/pdf/10.1145/3448016.3457550. 
  4. 4.0 4.1 4.2 4.3 "Milvus overview". https://milvus.io/docs/overview.md. 
  5. "Faiss". https://github.com/facebookresearch/faiss. 
  6. 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].
  7. "DiskANN library". https://github.com/microsoft/DiskANN. 
  8. "DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node". https://suhasjs.github.io/files/diskann_neurips19.pdf. 
  9. "Hnswlib - fast approximate nearest neighbor search". https://github.com/nmslib/hnswlib. 
  10. "Consistency levels in Milvus". https://milvus.io/docs/consistency.md. 
  11. "Multi-tenancy strategies". https://milvus.io/docs/multi_tenancy.md. 
  12. "Hybrid Search". https://milvus.io/docs/multi-vector-search.md. 
  13. "Deployment options". https://milvus.io/docs/install-overview.md. 
  14. "Python SDK for Milvus". https://github.com/milvus-io/pymilvus. 
  15. "What's New In Milvus 2.3 Beta - 10X faster with GPUs". https://zilliz.com/blog/milvus-2-3-beta-new-features-and-updates. 
  16. "Milvus 2.3 Launches with Support for Nvidia GPUs". 23 March 2023. https://www.datanami.com/2023/03/23/milvus-2-3-launches-with-support-for-nvidia-gpus/. 
  17. "NVIDIA RAFT library". https://github.com/rapidsai/raft. 
  18. 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].
  19. "Install Milvus Go SDK". https://milvus.io/docs/install-go.md. 
  20. "Get Started with Milvus Vector DB in .NET". March 6, 2024. https://devblogs.microsoft.com/dotnet/get-started-milvus-vector-db-dotnet/. 
  21. "Getting started with Milvus and OpenAI". Mar 28, 2023. https://cookbook.openai.com/examples/vector_databases/milvus/getting_started_with_milvus_and_openai. 
  22. "OpenAI and Milvus simple app". https://github.com/Snaiel/OpenAI-Milvus-QA-Over-Docs. 
  23. "Integration HayStack + Milvus". https://haystack.deepset.ai/integrations/milvus-document-store. 
  24. "Milvus connector for LangChain". https://python.langchain.com/docs/integrations/vectorstores/milvus/. 
  25. "IBM watsonx.data's integrated vector database: unify, prepare, and deliver your data for AI". April 9, 2024. https://www.ibm.com/blog/announcement/ibm-watsonx-data-vector-database-ai-ready-data-management/.