Begrenzung der Anzahl der Sammlungen
Eine Milvus-Instanz erlaubt bis zu 65.536 Sammlungen. Zu viele Sammlungen können jedoch zu Leistungsproblemen führen. Daher ist es empfehlenswert, die Anzahl der in einer Milvus-Instanz erstellten Sammlungen zu begrenzen.
Dieser Leitfaden enthält Anweisungen, wie Sie die Anzahl der Sammlungen in einer Milvus-Instanz begrenzen können.
Die Konfiguration hängt von der Art und Weise ab, wie Sie die Milvus-Instanz installieren.
Für Milvus-Instanzen, die mit Helm Charts installiert wurden
Fügen Sie die Konfiguration in die Datei
values.yamlunter dem Abschnittconfigein. Einzelheiten finden Sie unter Konfigurieren von Milvus mit Helm Charts.Für Milvus-Instanzen, die mit Docker Compose installiert wurden
Fügen Sie die Konfiguration in die Datei
milvus.yamlein, die Sie zum Starten der Milvus-Instanz verwendet haben. Einzelheiten finden Sie unter Konfigurieren von Milvus mit Docker Compose.Für Milvus-Instanzen, die mit Operator installiert wurden
Fügen Sie die Konfiguration in den Abschnitt
spec.componentsder benutzerdefinierten RessourceMilvusein. Weitere Informationen finden Sie unter Konfigurieren von Milvus mit Operator.
Konfigurationsoptionen
rootCoord:
maxGeneralCapacity: 65536
quotaAndLimits:
limits:
maxCollectionNum: 65536
maxCollectionNumPerDB: 65536
Um die Sammelgrenze zu ändern, müssen Sie alle drei Parameter zusammen ändern:
| Parameter | Beschreibung | Standardwert |
|---|---|---|
rootCoord.maxGeneralCapacity | Maximale Anzahl von Sammeleinheiten (Shards × Partitionen), die die aktuelle Instanz enthalten kann. | 65536 |
quotaAndLimits.limits.maxCollectionNum | Maximale Anzahl von Sammlungen, die für alle Datenbanken der aktuellen Instanz zulässig sind. | 65536 |
quotaAndLimits.limits.maxCollectionNumPerDB | Maximal zulässige Anzahl von Sammlungen in einer einzelnen Datenbank. | 65536 |
Beispiel: Anhebung des Limits auf 200.000 Sammlungen:
rootCoord:
maxGeneralCapacity: 200000
quotaAndLimits:
limits:
maxCollectionNum: 200000
maxCollectionNumPerDB: 200000
Wenn Sie nur maxGeneralCapacity einstellen, ohne auch maxCollectionNum und maxCollectionNumPerDB zu ändern, wird dies nicht wirksam. Alle drei Parameter müssen auf denselben oder einen höheren Wert eingestellt werden, um die Sammlungsgrenze zu erhöhen.
Berechnen der Anzahl der Sammlungen
In einer Sammlung können Sie mehrere Shards und Partitionen einrichten. Shards sind logische Einheiten, die dazu dienen, Datenschreiboperationen auf mehrere Datenknoten zu verteilen. Partitionen sind logische Einheiten, die dazu dienen, die Effizienz der Datenabfrage zu verbessern, indem nur eine Teilmenge der Sammlungsdaten geladen wird. Wenn Sie die Anzahl der Sammlungen in der aktuellen Milvus-Instanz berechnen, müssen Sie auch die Shards und Partitionen zählen.
Nehmen wir zum Beispiel an, dass Sie bereits 100 Sammlungen erstellt haben, von denen 60 2 Shards und 4 Partitionen und die restlichen 40 Sammlungen 1 Shard und 12 Partitionen enthalten. Die Gesamtzahl der Sammeleinheiten (berechnet als shards × partitions) kann wie folgt ermittelt werden:
60 (collections) x 2 (shards) x 4 (partitions) + 40 (collections) x 1 (shard) x 12 (partitions) = 960
In diesem Beispiel entspricht die berechnete Gesamtzahl von 960 Sammeleinheiten der aktuellen Nutzung. Die maxGeneralCapacity definiert die maximale Anzahl von Sammeleinheiten, die eine Instanz unterstützen kann, die standardmäßig auf 65536 eingestellt ist. Das bedeutet, dass die Instanz bis zu 65.536 Sammeleinheiten aufnehmen kann. Wenn die Gesamtzahl diese Grenze überschreitet, zeigt das System die folgende Fehlermeldung an:
failed checking constraint: sum_collections(parition*shard) exceeding the max general capacity:
Um diesen Fehler zu vermeiden, können Sie entweder die Anzahl der Shards oder Partitionen in bestehenden oder neuen Sammlungen reduzieren, einige Sammlungen löschen oder die Sammlungsgrenze erhöhen, indem Sie maxGeneralCapacity, maxCollectionNum und maxCollectionNumPerDB zusammen ändern.