导航:首页 > 源码编译 > 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源码相关的资料

热点内容
文件公私钥加密传输 浏览:663
python矩阵维度 浏览:925
华佗舌诊源码 浏览:895
解压压缩包有一个错误怎么办 浏览:964
怎么在手机上设立文件夹 浏览:232
云帮手服务器搭建教程 浏览:785
惠普默认存在哪个文件夹 浏览:493
建立桌面图标文件夹 浏览:86
python怎么跳过异常继续执行 浏览:315
单片机驱动可控硅 浏览:294
辽宁沈阳最新代理服务器ip地址 浏览:565
如何安装用友通服务器 浏览:827
python怎么将输入转为整数类型 浏览:608
最新影视app源码下载带截图 浏览:999
linuxlibssl 浏览:282
pip和python区别 浏览:549
如何查看服务器的网站 浏览:6
centos复制命令 浏览:288
30岁的运维学python 浏览:987
ospfpdf 浏览:715