Ограничение количества коллекций

Экземпляр 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

quotaAndLimits:
    limits:
        maxCollectionNum: 65536
        maxCollectionNumPerDB: 65536

Чтобы изменить предел сбора, необходимо изменить все три параметра вместе:

ПараметрОписаниеЗначение по умолчанию
rootCoord.maxGeneralCapacityМаксимальное количество единиц коллекции (шардов × разделов), которое может содержать текущий экземпляр.65536
quotaAndLimits.limits.maxCollectionNumМаксимальное количество коллекций, разрешенных для всех баз данных в текущем экземпляре.65536
quotaAndLimits.limits.maxCollectionNumPerDBМаксимальное количество коллекций, допустимое в одной базе данных.65536

Например, увеличить ограничение до 200 000 коллекций:

rootCoord:
    maxGeneralCapacity: 200000

quotaAndLimits:
    limits:
        maxCollectionNum: 200000
        maxCollectionNumPerDB: 200000

Настройка только maxGeneralCapacity без настройки maxCollectionNum и maxCollectionNumPerDB не возымеет действия. Для увеличения лимита коллекций все три параметра должны быть установлены в одно и то же значение или выше.

Расчет количества коллекций

В коллекции можно создать несколько шардов и разделов. Осколки - это логические единицы, используемые для распределения операций записи данных между несколькими узлами данных. Разделы - это логические единицы, используемые для повышения эффективности поиска данных путем загрузки только подмножества данных коллекции. При подсчете количества коллекций в текущем экземпляре 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 вместе.

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?