Limitar o número de colecções

Uma instância Milvus permite até 65.536 colecções. No entanto, um número excessivo de colecções pode resultar em problemas de desempenho. Por isso, recomenda-se limitar o número de colecções criadas numa instância do Milvus.

Este guia fornece instruções sobre como definir limites para o número de colecções numa instância do Milvus.

A configuração varia consoante a forma como instala a instância do Milvus.

  • Para instâncias do Milvus instaladas usando Helm Charts

    Adicione a configuração ao ficheiro values.yaml na secção config. Para obter detalhes, consulte Configurar o Milvus com Helm Charts.

  • Para instâncias do Milvus instaladas com o Docker Compose

    Adicione a configuração ao ficheiro milvus.yaml que utilizou para iniciar a instância do Milvus. Para obter detalhes, consulte Configurar o Milvus com o Docker Compose.

  • Para instâncias do Milvus instaladas com o Operator

    Adicione a configuração à secção spec.components do recurso personalizado Milvus. Para obter detalhes, consulte Configurar o Milvus com o Operator.

Opções de configuração

rootCoord:
    maxGeneralCapacity: 65536

quotaAndLimits:
    limits:
        maxCollectionNum: 65536
        maxCollectionNumPerDB: 65536

Para alterar o limite de recolha, é necessário modificar os três parâmetros em conjunto:

ParâmetroDescriçãoValor por defeito
rootCoord.maxGeneralCapacityNúmero máximo de unidades de coleção (shards × partições) que a instância atual pode conter.65536
quotaAndLimits.limits.maxCollectionNumNúmero máximo de colecções permitidas em todas as bases de dados da instância atual.65536
quotaAndLimits.limits.maxCollectionNumPerDBNúmero máximo de colecções permitidas numa única base de dados.65536

Por exemplo, para aumentar o limite para 200.000 colecções:

rootCoord:
    maxGeneralCapacity: 200000

quotaAndLimits:
    limits:
        maxCollectionNum: 200000
        maxCollectionNumPerDB: 200000

Definir apenas maxGeneralCapacity sem ajustar também maxCollectionNum e maxCollectionNumPerDB não terá efeito. Todos os três parâmetros devem ser definidos para o mesmo valor ou superior para aumentar o limite de colecções.

Cálculo do número de colecções

Numa coleção, pode configurar vários shards e partições. Os fragmentos são unidades lógicas utilizadas para distribuir operações de escrita de dados entre vários nós de dados. As partições são unidades lógicas utilizadas para melhorar a eficiência da recuperação de dados, carregando apenas um subconjunto dos dados da coleção. Ao calcular o número de colecções na instância atual do Milvus, também é necessário contar os shards e as partições.

Por exemplo, vamos supor que já criou 100 colecções, com 2 fragmentos e 4 partições em 60 delas e com 1 fragmento e 12 partições nas restantes 40 colecções. O número total de unidades de coleção (calculado como shards × partitions) pode ser determinado da seguinte forma:

60 (collections) x 2 (shards) x 4 (partitions) + 40 (collections) x 1 (shard) x 12 (partitions) = 960

Neste exemplo, o total calculado de 960 unidades de recolha representa a utilização atual. O endereço maxGeneralCapacity define o número máximo de unidades de coleta que uma instância pode suportar, que é definido como 65536 por padrão. Isso significa que a instância pode acomodar até 65.536 unidades de coleta. Se o número total exceder esse limite, o sistema exibirá a seguinte mensagem de erro:

failed checking constraint: sum_collections(parition*shard) exceeding the max general capacity:

Para evitar esse erro, é possível reduzir o número de fragmentos ou partições em coleções novas ou existentes, excluir algumas coleções ou aumentar o limite de coleções modificando maxGeneralCapacity, maxCollectionNum e maxCollectionNumPerDB juntos.

Try Managed Milvus for Free

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

Get Started
Feedback

Esta página foi útil?