Ограничение количества коллекций
Экземпляр Milvus допускает до 65 536 коллекций. Однако слишком большое количество коллекций может привести к проблемам с производительностью. Поэтому рекомендуется ограничить количество коллекций, создаваемых в экземпляре Milvus.
В этом руководстве приведены инструкции по установке ограничений на количество коллекций в экземпляре Milvus.
Конфигурация зависит от способа установки экземпляра Milvus.
Для экземпляров Milvus, установленных с помощью Helm Charts
Добавьте конфигурацию в файл
values.yaml
в разделеconfig
. Подробнее см. в разделе Настройка Milvus с помощью Helm Charts.Для экземпляров Milvus, установленных с помощью Docker Compose
Добавьте конфигурацию в файл
milvus.yaml
, который вы использовали для запуска экземпляра Milvus. Подробнее см. в разделе Настройка Milvus с помощью Docker Compose.Для экземпляров Milvus, установленных с помощью Operator
Добавьте конфигурацию в раздел
spec.components
пользовательского ресурсаMilvus
. Подробнее см. в разделе Настройка Milvus с помощью Operator.
Параметры конфигурации
rootCoord:
maxGeneralCapacity: 65536
Параметр maxGeneralCapacity
задает максимальное количество коллекций, которое может содержать текущий экземпляр Milvus. Значение по умолчанию - 65536
.
Расчет количества коллекций
В коллекции можно создать несколько шардов и разделов. Осколки - это логические единицы, используемые для распределения операций записи данных между несколькими узлами данных. Разделы - это логические единицы, используемые для повышения эффективности поиска данных путем загрузки только подмножества данных коллекции. При подсчете количества коллекций в текущем экземпляре 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
.