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

热点内容
编译器内联 浏览:910
圆形相框是什么app 浏览:479
安卓微信如何设置文字加长 浏览:764
中科编译科技公司高新技术企业 浏览:770
win7文件夹选项功能 浏览:90
微信文件夹为什么会被锁定 浏览:994
加密系列号 浏览:458
电冰箱换压缩机要注意什么 浏览:795
平板的访客模式如何加密 浏览:139
钉钉加密有用吗 浏览:112
加密u盘好还是不加密的 浏览:349
微观经济学平狄克第八版pdf 浏览:404
linux查看实时流量 浏览:557
如何存档到服务器 浏览:548
flash编程书籍推荐 浏览:836
php获得数组键值 浏览:402
香港云服务器操作 浏览:303
wpe最新源码 浏览:857
自己购买云主服务器推荐 浏览:422
个人所得税java 浏览:761