导航:首页 > 源码编译 > milvus源码

milvus源码

发布时间:2025-04-28 16:24:53

1. CreateCollection API执行流程_milvus源码解析

在分析milvus源码中的CreateCollection API执行流程时,我们需要详细拆解从客户端请求到数据最终存储在etcd的过程。在milvus版本v2.3.2中,CreateCollection API的执行流程大致分为以下几个关键步骤:

首先,客户端SDK接收用户创建集合(collection)的请求,并将此请求封装为createCollectionTask,随后将其放入ddQueue队列。

随后,此任务在proxy内依次执行PreExecute、Execute和PostExecute三个方法。PreExecute阶段进行参数校验等预处理工作,Execute阶段则是真正执行逻辑,而PostExecute阶段完成执行后的清理工作,通常不做任何操作并返回nil。

在Execute方法中,proxy调用rootCoord的CreateCollection接口,此接口进一步封装请求为rootcoord里的createCollectionTask。

接下来,rootCoord的CreateCollection接口执行CreateCollectionTask的Prepare、Execute和NotifyDone方法。核心操作在Execute阶段,其中涉及到多个步骤,包括expireCacheStep、addCollectionMetaStep、watchChannelsStep、changeCollectionStateStep等。在这些步骤中,重点是addCollectionMetaStep,负责etcd元数据的操作。

在addCollectionMetaStep的Execute方法中,s.core.meta.AddCollection方法被调用。此方法在etcd中创建了多个与集合相关的key-value对,这些key值按照特定规则构建,反映了集合、分区和字段之间的关系。

具体而言,集合信息通过key `root-coord/database/collection-info/1/445652621026918798` 存储在etcd中,value为protobuf序列化的etcdpb.CollectionInfo,这表示集合由ID、DbId、schema等组成,schema中不记录字段、分区ID或名称等信息。etcd以二进制形式存储这些数据。

分区信息通过类似 `root-coord/partitions/445653146967736660/445653146967736661` 的路径存储,value为etcdpb.PartitionInfo,同样采用protobuf序列化后存储在etcd中。此信息包括partitionID、partitionName、collectionId等。

字段信息通过 `root-coord/fields/445653146967736660/100` 的路径存储,value为schemapb.FieldSchema,包含字段ID、名称、描述、数据类型等信息。

在执行完毕后,将所有key-value对批量写入etcd,最终完成集合的创建。

总结而言,CreateCollection API的执行流程涉及多个组件协作,从客户端请求开始,经过proxy和rootCoord的处理,最终在etcd中存储集合、分区和字段的元数据,实现了集合的创建。整个流程中,etcd作为关键的数据存储层,提供了持久化和高可用性保障。

阅读全文

与milvus源码相关的资料

热点内容
为什么安卓耳机转接不可数据传输 浏览:809
高德地图总是显示离线数据解压中 浏览:879
淘二手车最好的app是哪个 浏览:119
一句话描述加密货币的前100名 浏览:785
python二维集合赋值 浏览:145
android图形化开发 浏览:947
易语言rc4算法 浏览:552
源码项目网 浏览:817
批量加密发送工资条 浏览:472
php抓取远程图片到本地 浏览:617
社保人证app在哪里下载 浏览:133
vf表单编程 浏览:377
程序员最怕的十个词 浏览:168
天津云服务器租用物理机 浏览:506
揉耳朵解压入眠 浏览:953
python求列表最大的元素 浏览:552
dos命令列出所有文件夹 浏览:816
pdf注释导出 浏览:636
androidpng按钮 浏览:814
在哪里app查汽车违章 浏览:551