milvus元数据在etcd的存储解析

milvus元数据在etcd的存储解析

数据以key-value形式存在。

大致包含如下一些种类:

  • database
  • collection
  • field
  • partition
  • index
  • segment-index
  • resource_group
  • session

database

创建一个数据库会产生2个key,但value是相同的。

key规则:

  • 前缀/root-coord/database/db-info/{dbID}

  • 前缀/snapshots/root-coord/database/db-info/{dbID}_ts{时间戳}

默认数据库名为default,dbID为1。

ID和时间戳都是一串数字,由physicalTime+logicalTime组成。

创建一个名为testdb01的数据库,产生的2个key如下:

by-dev/meta/root-coord/database/db-info/444381061892856434

by-dev/meta/snapshots/root-coord/database/db-info/444381061892856434_ts444383983389376515

444381061892856434为dbid。这个ID可以进行tso解析。

value结构如下:

在这里插入图片描述

在这里插入图片描述

将此结构体使用protobuf序列化后存入到etcd,因此etcd存储的是二进制数据。

collection

创建一个collection会产生2个key,但value是相同的。

key规则:

  • 前缀/root-coord/database/collection-info/{dbID}/{collectionID}

  • 前缀/snapshots/root-coord/database/collection-info/{dbID}/{collectionID}_ts{时间戳}

可以反映出collection属于哪个DB。

在testdb01下创建一个名为testcol01的collection,产生如下2个key:

  • by-dev/meta/root-coord/database/collection-info/444381061892856434/444384207423931210

  • by-dev/meta/snapshots/root-coord/database/collection-info/444381061892856434/444384207423931210_ts444384251124908036

value结构如下:

在这里插入图片描述

在这里插入图片描述

将此结构体序列化后存入到etcd,因此etcd存储的是二进制数据。

field

创建collection的时候会创建field,一个field会产生2个key,但value是相同的。

key规则:

  • 前缀/root-coord/fields/{collectionID}/{fieldID}

  • 前缀/snapshots/root-coord/fields/{collectionID}/{fieldID}_ts{时间戳}

可以反映field属于哪个collection。虽然并未反应出属于哪个db,但是collectionID是唯一的,也可以通过collectionID判断出属于那个db。这样不同的db下面有相同名称的collection就可以区别了。

一个field就是一个字段。

创建一个名为testcol01的collection,包含2个field(hid和embedding)产生的key如下:

hid字段:

  • by-dev/meta/root-coord/fields/444384207423938951/100

  • by-dev/meta/snapshots/root-coord/fields/444384207423938951/100_ts444384154740064260

embedding字段:

  • by-dev/meta/root-coord/fields/444384207423938951/101

  • by-dev/meta/snapshots/root-coord/fields/444384207423938951/101_ts444384154740064260

value结构如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

将此结构体序列化后存入到etcd,因此etcd存储的是二进制数据。

partition

创建一个分区会产生2个key,但value是相同的。

key规则:

  • 前缀/root-coord/partitions/{collectionID}/{partitionID}

  • 前缀/snapshots/root-coord/partitions/{collectionID}/{partitionID}_ts{时间戳}

可以反映partition属于哪个collection。

一个collection可以包含多个partition。

默认partition名为:_default。

可配置(milvus.yml):common.defaultPartitionName

在名为testcol01的collection下包含1个partition,产生如下2个key:

  • by-dev/meta/root-coord/partitions/444384963133177989/444384963133177990

  • by-dev/meta/snapshots/root-coord/partitions/444384963133177989/444384963133177990_ts444384154740064260

value结构如下:

在这里插入图片描述

在这里插入图片描述

将此结构体序列化后存入到etcd,因此etcd存储的是二进制数据。

index

创建index会产生2个类型的key。一个是index,一个是segment-index。

key规则:

  • 前缀/field-index/{collectionID}/{IndexID}

可以反映index属于哪个collection。Index的value可以反映索引建立在哪个field。

不能反映属于哪个partition、哪个segment。

创建一个名为idx_embedding的索引,产生1个类型的key如下:

  • by-dev/meta/field-index/444384207423931210/444425876914135276

value结构如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

将此结构体序列化后存入到etcd,因此etcd存储的是二进制数据。

segment-index

创建index会产生2个类型的key。一个是index,一个是segment-index。

key规则:

  • 前缀/segment-index/{collectionID}/{partitionID}/{segmentID}/{buildID}

创建一个名为idx_embedding的索引,产生1个类型的key如下:

  • by-dev/meta/segment-index/444517122896489678/444517122896489679/444517122896489694/444521062292259541

value结构如下:

在这里插入图片描述

在这里插入图片描述

将此结构体序列化后存入到etcd,因此etcd存储的是二进制数据。

resource_group

资源组可以用来进行查询节点的物理隔离。

在多collection环境中,为每个资源组分配适当数量的查询节点,应用到collection中

key规则:

  • 前缀/queryCoord-ResourceGroup/{rgName}

创建一个名为rg的资源组,产生如下1个key:

  • by-dev/meta/queryCoord-ResourceGroup/rg

value结构如下:

在这里插入图片描述

在这里插入图片描述

将此结构体序列化后存入到etcd,因此etcd存储的是二进制数据。

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shulu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值