BlogsMilvusMilvus Deployment Modes

Milvus Deployment Modes

Milvus Deployment Modes

8
posts
2020–2024

Milvus 2.0 introduces a new approach to configuration management when using Docker Compose. Users can now modify the `milvus.yaml` file locally and map it into the Docker containers for both standalone and cluster deployments. This allows for dynamic application of configuration changes, including log format and log file paths, without needing to rebuild images or restart services in a complex manner. The process involves downloading the default configuration and docker-compose files, making loc. This post details setting up Milvus in Google Colaboratory by compiling from source code, bypassing Docker, and running basic operations via the Python SDK, demonstrating an alternative deployment and usage pattern.

2024

What Milvus version to start with

2/19/2024

This post introduces and differentiates the three primary Milvus deployment modes: Milvus Lite, Milvus Standalone, and Milvus Cluster. It details the features, capabilities, applications, limitations, and essential components of each mode, providing guidance on selecting the appropriate version based on dataset size, traffic volume, and scalability requirements. Milvus Lite is presented as a single binary for easy integration with tools like Google Colab and Jupyter Notebook. Milvus Standalone is described as a single-server instance with core vector database features, suitable for smaller deployments. Milvus Cluster is detailed as a distributed system composed of eight microservices and three third-party dependencies (etcd, MinIO, Pulsar), designed for large-scale, highly available production environments.

2023

Introducing Milvus Lite: the Lightweight Version of Milvus

5/23/2023

Introduces Milvus Lite, a lightweight, self-contained version of Milvus that can be integrated as a Python library or run as a CLI-based standalone server. It details installation via pip, usage as a Python module with `default_server.start()` and `connections.connect()`, and as a CLI server with `milvus-server`. Debug modes are available via `debug_server.run()` or `milvus-server --debug`. Data and log persistence can be configured using `default_server.set_base_dir()` or `milvus-server --data`. Configuration is demonstrated using Python APIs (`default_server.config.set`) and CLI flags (`milvus-server --system-log-level`).

2022

Using Embedded Milvus to Instantly Install and Run Milvus with Python

8/15/2022

Introduces Embedded Milvus as a Python-specific installation and runtime method. It requires no external dependencies (etcd, MinIO, Pulsar) and can be started/stopped within a Python application. Data and logs are persisted. It is designed for development, testing, and quick experiments, with a clear recommendation against production use. Installation is via `pip install milvus`. The post also includes instructions for starting, stopping, and provides a comparison table of Milvus deployment modes.

Announcing General Availability of Milvus 2.0

1/25/2022

Milvus 2.0 GA release introduces several key engineering capabilities: entity deletion by primary key, automatic load balancing for query and data nodes, handoff tasks for improving search performance by indexing sealed growing segments, data compaction for merging small segments and cleaning logical deleted data, and support for embedded etcd and local data storage in standalone mode to reduce external dependencies. It also announces the availability of multi-language SDKs (Python, Node.js, Java, Go) and the Milvus K8s Operator for simplified deployment and management on Kubernetes. Future development will focus on string type support, TTL, ACL management, multi-memory replicas for segments, performance enhancements, broader platform support (MacOS, ARM), and embedded PyMilvus.

2021

Run Milvus 2.0 on Windows

11/19/2021

This post provides detailed instructions for compiling Milvus 2.0 from source code on Windows, including prerequisites like MinGW64/MSYS toolchain, cloning the `windows-dev` branch, installing dependencies via `scripts/install_deps_msys.sh`, and compiling using `make` and `scripts/package_windows.sh`. It also outlines the process of installing from a pre-compiled binary package, which involves unzipping the package, starting MinIO and etcd services, and then starting the Milvus service.

How to Modify Milvus Advanced Configurations

11/8/2021

This post details the process of modifying advanced configurations for Milvus deployed on Kubernetes. It explains how to update ConfigMap objects for parameters not directly exposed by the Helm chart, and subsequently modify Deployment YAMLs to mount these updated configurations into the pods. It provides specific examples and verification steps using `kubectl exec`. The post also mentions that future releases will consolidate configurations and improve Helm chart support.

Technical Sharing:Apply Configuration Changes on Milvus 2.0 using Docker Compose

10/22/2021

This post details a practical method for applying configuration changes to Milvus 2.0 deployments using Docker Compose. It outlines the steps for both standalone and cluster setups, including downloading and modifying the `milvus.yaml` and `docker-compose.yml` files, and mapping local configuration files to the container paths. Specific examples are provided for changing log formats and log file locations. This addresses a known limitation in Milvus 2.0 RC where configuration changes were not automatically detected after installation.

2020

Set Up Milvus in Google Colaboratory for Easy ML Application Building

12/23/2020

This post details how to set up and run Milvus in Google Colaboratory by compiling from source code, as Docker is not supported in the Colab environment. It provides step-by-step instructions for downloading source code, installing dependencies, building Milvus, launching the server, and performing basic operations using the `pymilvus` Python SDK, including connecting to the server, creating collections, partitions, and indexes, inserting and flushing data, loading and searching, retrieving collection/index information, getting vectors by ID, managing configurations, and deleting resources.