Componentes principais
Um cluster Milvus é composto por cinco componentes principais e três dependências de terceiros. Cada componente pode ser implantado de forma independente no Kubernetes:
Componentes do Milvus
- Coordenador: o modo mestre-escravo pode ser ativado para fornecer alta disponibilidade.
- Proxy: um ou mais por cluster
- Nó de streaming: um ou mais por cluster
- Nó de consulta: um ou mais por cluster
- Nó de dados: um ou mais por cluster
Dependências de terceiros
- Meta Store: Armazena metadados para vários componentes no milvus, por exemplo, etcd.
- Armazenamento de Objetos: Responsável pela persistência de dados de grandes ficheiros no milvus, tais como ficheiros de índice e de registo binário, por exemplo, S3
- Armazenamento WAL: Fornece o serviço Write-Ahead Log (WAL) para o milvus, por exemplo, woodpecker.
- No modo de disco zero do woodpecker, o WAL utiliza diretamente o armazenamento de objectos e o meta-armazenamento sem outra implementação, reduzindo as dependências de terceiros.
Modos de implementação do Milvus
Existem dois modos de execução do Milvus:
Autónomo
Uma única instância do Milvus que executa todos os componentes num único processo, o que é adequado para pequenos conjuntos de dados e baixa carga de trabalho. Adicionalmente, no modo autónomo, podem ser escolhidas implementações mais simples do WAL, tais como woodpecker e rocksmq, para eliminar a necessidade de dependências de armazenamento WAL de terceiros.
Arquitetura autónoma
Atualmente, não é possível efetuar uma atualização online de uma instância Milvus autónoma para um cluster Milvus, mesmo que o backend de armazenamento WAL suporte o modo de cluster.
Cluster
Um modo de implementação distribuído do Milvus em que cada componente é executado de forma independente e pode ser escalado para obter elasticidade. Esta configuração é adequada para grandes conjuntos de dados e cenários de alta carga.
Arquitetura distribuída
O que vem a seguir
- Leia Computing/Storage Disaggregation para entender o mecanismo e o princípio de design do Milvus.