An Engineering Perspective: Why Milvus is a Compelling Option for Your Apps?
Vector databases are essential for modern data management and are prevalent in building applications ranging from recommendation systems and chatbots to artificial general intelligence (AGI) and retrieval augmented generation (RAG). In this dynamic landscape, Milvus is the pioneer, and its recent release, Milvus 2.3, introduces numerous exciting new features and enhancements.
In this blog, we will explore Milvus 2.3 from an engineering perspective and share insights into why Milvus 2.3 is an excellent choice for newcomers and existing users from three crucial angles: database selection, development experience, and system reliability.
Balancing performance, cost, and scalability
When selecting a vector database, most users consider three primary factors: performance, cost, and scalability. The previous Milvus 2.x series prioritized scalability, making them adaptable to various environments and capable of storing and searching billions of vectors. Milvus 2.3 takes a step further in optimizing its scaling by enabling seamless transitions from millions to billions of vectors, utilizing its cloud-native storage-compute separation.
Milvus 2.3 also provides users with multiple deployment options for performance and cost, including GPU, CPU (ARM64 and x86) docker options, and Kubernetes (Milvus Operator and Helm) options.
Users who prioritize performance can select Milvus 2.3 with the GPU docker, which offers 3 to 10 times faster performance than CPU option.
Cost-sensitive users can choose the ARM64 option of Milvus, which is more budget-friendly while maintaining reasonable performance.
Milvus 2.3 also supports MMap, a UNIX system call that maps files and other objects into memory, thus significantly increasing single-machine data capacity with reduced costs. Based on our testing results, with the support of MMap, Milvus can double its data capacity while limiting performance degradation to within 20%. We will continue to optimize this feature in the upcoming Milvus 2.3.1, aiming to expand the data capacity up to 20 times larger than it is currently.
Empowering developers with simplicity
Modern applications demand more than primary vector searching functionalities like insertion, deletion, and retrieval. For example, different applications require different queries, such as top-k vector queries, distance-based queries, and attributes-filtered queries. Moreover, these apps may demand other methods for calculating vector distance, including the Euclidean distance (L2), Inner product (IP), and Cosine similarity (COSINE).
Milvus 2.3 has enhanced its API to cater to all these diversified requirements, making development more straightforward. For instance, the new upsert feature simplifies data management by combining data insertion and updates into a single line of code. The ScaNN index provides high-performance indexing, offering faster query speed than older versions.
Milvus also supports data integration with other products by providing migration tools and incremental data capture capabilities to streamline data management.
Ensuring stability and second-level availability
Milvus has proven reliable and available for production environments thanks to its continuous optimization.
The 2.1.x series introduced memory replication, significantly improving its system stability. The 2.2.x series added fault isolation capabilities for resource groups, enhancing its system resiliency. Building on the successes of previous versions, Milvus 2.3 introduces the Look Aside Load Balancer, which provides even faster detection of node events and ensures second-level failover and resource expansion.
Milvus 2.3 also includes better memory management, enhanced rolling upgrades, and support for a more significant number of tables in a single cluster, resulting in additional overall system stability improvements.
Conclusion
In a rapidly evolving landscape of vector databases, Milvus 2.3 stands out as a beacon of excellence. It offers everything users need in a modern vector database: high performance, scalability, availability, stability, and cost-effectiveness.
As technology continues to advance, so does Milvus. We will continue to optimize Milvus tirelessly and introduce cutting-edge features in upcoming versions, such as expression deletion, seamless Azure cloud deployment, enhanced array support, default/null value optimization, and dynamic column addition. Stay tuned.
This journey is not one that we embark upon alone. We invite the entire community to actively explore Milvus, share your insights, and contribute to the ongoing evolution of this remarkable technology.
- Balancing performance, cost, and scalability
- Empowering developers with simplicity
- Ensuring stability and second-level availability
- Conclusion
Content
Start Free, Scale Easily
Try the fully-managed vector database built for your GenAI applications.
Try Zilliz Cloud for Free