Limitare il numero di raccolte

Un'istanza Milvus consente fino a 65.536 raccolte. Tuttavia, un numero eccessivo di raccolte può causare problemi di prestazioni. Pertanto, si consiglia di limitare il numero di raccolte create in un'istanza Milvus.

Questa guida fornisce istruzioni su come impostare i limiti al numero di raccolte in un'istanza Milvus.

La configurazione varia a seconda del modo in cui si installa l'istanza Milvus.

  • Per le istanze Milvus installate utilizzando Helm Charts

    Aggiungete la configurazione al file values.yaml nella sezione config. Per i dettagli, consultare Configurazione di Milvus con Helm Charts.

  • Per le istanze Milvus installate usando Docker Compose

    Aggiungere la configurazione al file milvus.yaml utilizzato per avviare l'istanza Milvus. Per i dettagli, fate riferimento a Configurare Milvus con Docker Compose.

  • Per le istanze Milvus installate con Operator

    Aggiungere la configurazione alla sezione spec.components della risorsa personalizzata Milvus. Per i dettagli, vedere Configurazione di Milvus con Operator.

Opzioni di configurazione

rootCoord:
    maxGeneralCapacity: 65536

quotaAndLimits:
    limits:
        maxCollectionNum: 65536
        maxCollectionNumPerDB: 65536

Per modificare il limite di raccolta, è necessario modificare tutti e tre i parametri insieme:

ParametroDescrizioneValore predefinito
rootCoord.maxGeneralCapacityNumero massimo di unità di raccolta (shard × partizioni) che l'istanza corrente può contenere.65536
quotaAndLimits.limits.maxCollectionNumNumero massimo di raccolte consentite in tutti i database dell'istanza corrente.65536
quotaAndLimits.limits.maxCollectionNumPerDBNumero massimo di raccolte consentite in un singolo database.65536

Ad esempio, per aumentare il limite a 200.000 raccolte:

rootCoord:
    maxGeneralCapacity: 200000

quotaAndLimits:
    limits:
        maxCollectionNum: 200000
        maxCollectionNumPerDB: 200000

L'impostazione del solo maxGeneralCapacity senza regolare anche maxCollectionNum e maxCollectionNumPerDB non avrà effetto. Tutti e tre i parametri devono essere impostati sullo stesso valore o su un valore superiore per aumentare il limite delle raccolte.

Calcolo del numero di raccolte

In una raccolta è possibile impostare più shard e partizioni. Gli shard sono unità logiche utilizzate per distribuire le operazioni di scrittura dei dati tra più nodi di dati. Le partizioni sono unità logiche utilizzate per migliorare l'efficienza del recupero dei dati caricando solo un sottoinsieme dei dati della raccolta. Quando si calcola il numero di raccolte nell'istanza Milvus corrente, è necessario contare anche gli shard e le partizioni.

Ad esempio, supponiamo di aver già creato 100 raccolte, con 2 shard e 4 partizioni in 60 di esse e con 1 shard e 12 partizioni nelle altre 40 raccolte. Il numero totale di unità di raccolta (calcolato come shards × partitions) può essere determinato come segue:

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

In questo esempio, il totale calcolato di 960 unità di raccolta rappresenta l'utilizzo attuale. Il parametro maxGeneralCapacity definisce il numero massimo di unità di raccolta che un'istanza può supportare, che per impostazione predefinita è 65536. Ciò significa che l'istanza può ospitare fino a 65.536 unità di raccolta. Se il numero totale supera questo limite, il sistema visualizza il seguente messaggio di errore:

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

Per evitare questo errore, è possibile ridurre il numero di shard o partizioni nelle raccolte esistenti o in quelle nuove, eliminare alcune raccolte o aumentare il limite di raccolta modificando insieme maxGeneralCapacity, maxCollectionNum e maxCollectionNumPerDB.

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?