考虑拓展性
一旦 RAG 应用的 MVP 能够跑通,您就该开始为生产部署做准备了。这一过程需要我们预测未来的数据增长,并合理设计架构从而适应这些不断增加的数据量和用户流量。
为了确保应用能够有效扩展,需要注意的是,由于数据存储在一个大型的 Collection 索引中,这种方式可能导致两个主要问题——索引速度变慢和由于频繁更新数据导致的索引质量下降。这些问题最终会降低搜索质量。
Milvus 可以通过将整个数据集划分为可管理的 Segment 来应对扩展性的挑战,可以在 Segment 变得不稳定时执行延迟更新或压缩 Segment,从而保持始终出色的搜索质量。这种分段有助于负载均衡,帮助我们将查询均匀分布到所有处理 node 上。
使用 Partition 进行多租管理也有助于提高可扩展性和性能。这种方法有效地组织了数据,并通过限制适当用户的数据可见性来增强数据安全和隐私。此外,Milvus 可以高效管理单个 Collection 中多达一百亿条数据。
对于少于 10,000 个租户的多租应用,通过 Collection 管理数据可以更有效控制数据。
Partition key 可以通过动态分段数据来有效支持数百万用户的服务,从而支持无限更多的租户。
Milvus 是一个专为处理大量查询设计的分布式系统。只需添加更多节点就可以显著提升性能,为你的应用打开无限可能。对于最初不需要大量资源的小型数据集,增加内存储备(通常是当前分配的两到三倍)可以有效地将每秒查询数(QPS)翻倍。这种可扩展的框架确保了随着数据的增长,您的数据库能力也能随之增长,从而确保整个系统的高效和可靠性能。