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

热点内容
安卓弯头数据线怎么写好评 浏览:412
海南加密视频怎么选 浏览:746
linux判断是否为文件 浏览:937
手机处理器编译器 浏览:704
ug曲线点倒角编程 浏览:928
当算法把人驯服 浏览:710
字母r编程 浏览:576
编译openwrt添加型号 浏览:275
快眼看app哪里下载 浏览:11
手机上门禁卡加密怎么处理 浏览:857
2019年税务师教材pdf 浏览:503
android支付宝源码 浏览:942
建造师加密锁怎么办 浏览:301
邮箱在线文档怎么设文件夹 浏览:878
区块链编译eth 浏览:785
安卓手机软件如何给照片加发光点 浏览:980
结构性存款在app哪里 浏览:971
iphone如何快速打开app 浏览:801
好玩的程序员笑话 浏览:82
linux下如何搭建web服务器 浏览:223