🚀 Try Zilliz Cloud, the fully managed Milvus, for free—experience 10x faster performance! Try Now>>

milvus-logo
LFAI
Home
  • Conceitos

Estratégias multi-tenancy

Em muitos casos de utilização, os programadores pretendem executar um cluster Milvus e servir vários inquilinos, tais como um par de equipas de produtos ou milhões de utilizadores finais. Este guia explica algumas estratégias diferentes para alcançar o multi-tenancy no Milvus.

O Milvus foi concebido para suportar o multi-tenancy ao nível da base de dados, coleção ou partição. O objetivo do multi-tenancy é separar os dados e os recursos uns dos outros. A implementação de multi-tenancy a diferentes níveis pode atingir diferentes graus de isolamento, mas também envolve diferentes despesas. Explicamos de seguida as suas vantagens e desvantagens.

Multitenancy orientado para a base de dados

Desde a versão 2.2.9 do Milvus, é possível criar múltiplas bases de dados num único cluster Milvus. Esta funcionalidade permite obter um multi-tenancy orientado para a base de dados, atribuindo uma base de dados a cada inquilino, para que estes possam criar as suas próprias colecções. Esta abordagem proporciona o melhor isolamento de dados e recursos para os inquilinos, mas está limitada a 64 bases de dados num cluster, no máximo.

Multitenancy orientado para colecções

Existem duas formas possíveis de conseguir um multi-tenancy orientado para colecções.

Uma coleção para todos os inquilinos

A utilização de uma única coleção para implementar o multilocatário, adicionando um campo de inquilino para distinguir entre inquilinos, é uma opção simples. Ao efetuar pesquisas ANN para um locatário específico, adicione uma expressão de filtro para filtrar todas as entidades que pertencem a outros locatários. Esta é a forma mais simples de alcançar o multi-tenancy. No entanto, tenha em atenção que o desempenho do filtro pode tornar-se o ponto de estrangulamento das pesquisas ANN. Para melhorar o desempenho da pesquisa, pode otimizar com o multi-tenancy orientado para a partição abaixo.

Uma coleção por inquilino

Outra abordagem consiste em criar uma coleção para cada inquilino para armazenar os seus próprios dados, em vez de armazenar os dados de todos os inquilinos numa única coleção. Isso proporciona melhor isolamento de dados e desempenho de consulta. No entanto, não se esqueça de que esta abordagem requer mais recursos na programação e está limitada a 10.000 colecções num cluster, no máximo.

Multilocação orientada para partições

Há duas maneiras de obter multilocação orientada por partição:

Uma partição por inquilino

Gerir uma única coleção é muito mais fácil do que gerir várias colecções. Em vez de criar várias colecções, considere atribuir uma partição a cada locatário para obter um isolamento de dados e uma gestão de memória flexíveis. O desempenho de pesquisa do multilocatário orientado para a partição é muito melhor do que o multilocatário orientado para a coleção. No entanto, tenha em atenção que o número de inquilinos da coleção não deve exceder o número máximo de partições que uma coleção pode conter.

Multilocação baseada em chaves de partição

O Milvus 2.2.9 introduz uma nova funcionalidade chamada chave de partição. Aquando da criação de uma coleção, nomeie um campo de inquilino e torne-o no campo de chave de partição. Milvus irá armazenar entidades numa partição de acordo com o valor hash do campo chave da partição. Ao efetuar pesquisas ANN, o Milvus apenas pesquisa a partição que contém a chave de partição. Isto reduzirá largamente o âmbito da pesquisa, obtendo assim um melhor desempenho do que sem a chave de partição.

Esta estratégia reduz o limite do número máximo de inquilinos que uma coleção Milvus pode suportar e simplifica bastante a gestão de recursos, uma vez que o Milvus gere automaticamente as partições por si.

Recapitulando, é possível usar uma ou algumas das estratégias de multilocação acima para formar sua própria solução. A tabela a seguir faz comparações entre essas estratégias em termos de isolamento de dados, desempenho de pesquisa e número máximo de locatários.

Isolamento de dadosDesempenho da pesquisaNúmero máximo de locatáriosCenários recomendados
Orientada para a base de dadosForteForte64Para aqueles que necessitam que as colecções variem com os projectos, especialmente adequado para o isolamento de dados entre departamentos na sua organização.
Uma coleção para todosFracaMédiaN/APara aqueles que têm recursos limitados e não são sensíveis ao isolamento de dados.
Uma coleção por inquilinoForteForteMenos de 10.000Para aqueles que têm menos de 10.000 inquilinos por cluster.
Uma partição por locatárioMédiaForte4,096Para aqueles que têm menos de 4.096 locatários por coleção.
Baseado em chave de partiçãoMédiaForte10,000,000+Para aqueles que prevêem um rápido aumento de inquilinos para milhões.

O que vem a seguir

Geriro esquemadas bases de dados

Traduzido porDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Esta página foi útil?