Milvus Overview

分析并学习一个开源项目之初都应该带有目的, 带着目的去学习能更好地让自己成长以及更快地了解这个项目。为什么要学习并分析 Milvus:

  • DataNode 的写入过程中的多线程 Pipeline 设计和 异步checkpoint 机制,正好是我过去的工作内容的一部分,看看这部分设计,让我知道我自己的设计的不足

    DataNode 的 Pipeline 写入流程设计,是如何搭积木式的流转数据

  • Milvus 的 Stateless 严重依赖 ETCD,那么数据的 backuop/restore、容错、以及如何减少对 ETCD 的高频访问等都是具有借鉴意义

  • Milvus 巧妙的融合 GO + CPP,也是一个不错的学习点,自己目前工作内容主要就是 GO,但是核心算法确实 CPP 实现需要人工再用 Golang 再实现一遍,毫无意义且容易出错,如果能巧妙结合也是一个好的方向

  • Milvus 也是一个 向量数据库,也是想去了解下如何设计一个向量数据库,如何融合 FAISS。