阅读量:4
目录
背景
前面的概述比较笼统,只是给出了milvus 的基本设计理念。下面将细致的讲解每部分组件的功能及设计思路,用法,希望你能得到使用或设计灵感。今天主要谈谈 milvus 在存储 meta 和 value 时,采用的 etcd 的存储方式及架构。其实etcd 不仅用于Milvus,也可以用在其他分部署环境中,但Milvus 将他的作用发挥到淋漓尽致,本身 etcd 是一个分布式,高可用的kvs(key-value-storage)的架构。现在结合 Milvus,看下他的内部存储结构。
下面将从etcd 的概念,特性以及如何在milvus 中使用。并结合代码,从文件组织结构,解析,到与代码的映射关系,进行系统讲解。
etcd 简介
基本概念
etcd是一个高可用的分布式键值存储系统,它使用Go语言编写,并通过Raft一致性算法确保数据的分布式一致性。在etcd中,数据以键值对(Key-Value Pair)的形式存储,其中Key是唯一的标识符,而Value是与该Key相关联的数据。
数据存储特性
- 一致性:etcd基于Raft算法,能够确保分布式系统内部数据存储的一致