コレクション数の制限
Milvusインスタンスでは、最大65,536コレクションまで可能です。しかし、コレクション数が多すぎるとパフォーマンスに問題が生じる場合があります。そのため、Milvusインスタンスで作成されるコレクションの数を制限することをお勧めします。
このガイドでは、Milvusインスタンス内のコレクション数に制限を設定する方法を説明します。
設定はMilvusインスタンスのインストール方法によって異なります。
Helm Chartsを使用してインストールしたMilvusインスタンスの場合
values.yamlファイルのconfigセクションに設定を追加します。詳細については、Helm Chartsを使用したMilvusの設定を参照してください。Docker Composeを使用してインストールしたMilvusインスタンスの場合
Milvusインスタンスの起動に使用した
milvus.yamlファイルに設定を追加します。詳細については、Docker Composeを使用したMilvusの設定を参照してください。Operatorを使用してインストールしたMilvusインスタンスの場合
Milvusカスタムリソースのspec.componentsセクションに設定を追加します。詳細については、「Operatorを使用したMilvusの設定」を参照してください。
設定オプション
rootCoord:
maxGeneralCapacity: 65536
quotaAndLimits:
limits:
maxCollectionNum: 65536
maxCollectionNumPerDB: 65536
収集の上限を変更するには、3つのパラメータを一緒に変更する必要があります:
| パラメータ | パラメータ 説明 | デフォルト値 |
|---|---|---|
rootCoord.maxGeneralCapacity | 現在のインスタンスが保持できるコレクション・ユニット(シャード×パーティション)の最大数。 | 65536 |
quotaAndLimits.limits.maxCollectionNum | 現在のインスタンスのすべてのデータベースで許可されるコレクションの最大数。 | 65536 |
quotaAndLimits.limits.maxCollectionNumPerDB | 単一のデータベースで許可されるコレクションの最大数。 | 65536 |
例えば、上限を200,000コレクションに増やす場合:
rootCoord:
maxGeneralCapacity: 200000
quotaAndLimits:
limits:
maxCollectionNum: 200000
maxCollectionNumPerDB: 200000
maxCollectionNum とmaxCollectionNumPerDB も調整せずにmaxGeneralCapacity だけを設定しても、効果はありません。コレクションの上限を増やすには、3つのパラメータをすべて同じ値以上に設定する必要があります。
コレクション数の計算
コレクションでは、複数のシャードとパーティションを設定できます。シャードは、データの書き込み操作を複数のデータ・ノードに分散するために使用される論理単位です。パーティションは、コレクションデータのサブセットのみをロードすることで、データ検索の効率を向上させるために使用される論理単位です。現在のMilvusインスタンスのコレクション数を計算する場合、シャードとパーティションも数える必要があります。
例えば、すでに100コレクションを作成し、そのうちの60コレクションに2シャードと4パーティションがあり、残りの40コレクションに1シャードと12パーティションがあるとします。コレクションユニットの総数(shards × partitions として計算)は、次のように決定できます:
60 (collections) x 2 (shards) x 4 (partitions) + 40 (collections) x 1 (shard) x 12 (partitions) = 960
この例では、計算された合計960コレクションユニットが現在の使用量を表します。maxGeneralCapacity は、インスタンスがサポートできるコレクションユニットの最大数を定義します。これは、デフォルトで65536 に設定されています。これは、インスタンスが最大65,536コレクション・ユニットに対応できることを意味します。合計数がこの制限を超えると、システムは以下のエラー・メッセージを表示します:
failed checking constraint: sum_collections(parition*shard) exceeding the max general capacity:
このエラーを回避するには、既存または新規コレクションのシャード数またはパーティション数を減らすか、一部のコレクションを削除するか、maxGeneralCapacity 、maxCollectionNum 、maxCollectionNumPerDB を一緒に修正してコレクションの上限を増やします。