導航:首頁 > 源碼編譯 > 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源碼相關的資料

熱點內容
惠普默認存在哪個文件夾 瀏覽:491
建立桌面圖標文件夾 瀏覽:84
python怎麼跳過異常繼續執行 瀏覽:315
單片機驅動可控硅 瀏覽:294
遼寧沈陽最新代理伺服器ip地址 瀏覽:565
如何安裝用友通伺服器 瀏覽:827
python怎麼將輸入轉為整數類型 瀏覽:608
最新影視app源碼下載帶截圖 瀏覽:998
linuxlibssl 瀏覽:282
pip和python區別 瀏覽:549
如何查看伺服器的網站 瀏覽:6
centos復制命令 瀏覽:288
30歲的運維學python 瀏覽:987
ospfpdf 瀏覽:715
安卓耳機聲音小怎麼設置 瀏覽:198
程序員升級win11後 瀏覽:596
雲伺服器怎麼調出控制面板 瀏覽:173
python正則表達式函數 瀏覽:634
把自己公司的源碼給別人 瀏覽:438
典韋真的要出程序員皮膚嗎 瀏覽:682