🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Концепции
  • Home
  • Docs
  • Концепции

  • Реплика в памяти

Репликация в памяти

В этой теме описывается механизм реплик в памяти (репликаций) в Milvus, который позволяет реплицировать несколько сегментов в рабочей памяти для повышения производительности и доступности.

Информацию о том, как настроить реплики in-memory, см. в разделе Конфигурации, связанные с узлами запросов.

Обзор

Replica_Availiability Доступность_реплики

С помощью реплик in-memory Milvus может загружать один и тот же сегмент на несколько узлов запросов. Если один узел запроса вышел из строя или занят текущим поисковым запросом, когда приходит другой, система может отправить новые запросы на незанятый узел запроса, на котором есть репликация того же сегмента.

Производительность

Реплики в памяти позволяют задействовать дополнительные ресурсы процессора и памяти. Это очень полезно, если у вас относительно небольшой набор данных, но вы хотите увеличить пропускную способность чтения за счет дополнительных аппаратных ресурсов. Общая производительность QPS (запрос в секунду) и пропускная способность могут быть значительно улучшены.

Доступность

Реплики в памяти помогают Milvus быстрее восстанавливаться в случае сбоя узла запроса. Когда узел запроса выходит из строя, сегмент не нужно перезагружать на другой узел запроса. Вместо этого поисковый запрос может быть немедленно отправлен на новый узел запроса без необходимости повторной загрузки данных. При одновременном обслуживании нескольких копий сегментов система становится более устойчивой к сбоям.

Ключевые понятия

Реплики in-memory организованы в виде групп реплик. Каждая группа реплик содержит черепные реплики. Каждая реплика шарда имеет потоковую реплику и историческую реплику, которые соответствуют растущим и закрытым сегментам в шарде (т. е. каналу DML).

An illustration of how in-memory replica works Иллюстрация того, как работает реплика in-memory

Группа реплик

Группа реплик состоит из нескольких узлов запросов, которые отвечают за работу с историческими данными и репликами.

Осколочная реплика

Осколочная реплика состоит из потоковой и исторической реплик, принадлежащих одному осколку. Количество реплик шардов в группе реплик определяется количеством шардов в указанной коллекции.

Потоковая реплика

Потоковая реплика содержит все растущие сегменты из одного канала DML. Технически говоря, потоковая реплика должна обслуживаться только одним узлом запроса в одной реплике.

Историческая реплика

Историческая реплика содержит все запечатанные сегменты из одного и того же канала DML. Запечатанные сегменты одной исторической реплики могут быть распределены по нескольким узлам запросов в рамках одной группы реплик.

Лидер осколка

Лидер осколка - это узел запроса, обслуживающий потоковую реплику в реплике осколка.

Детали дизайна

Баланс

Новый сегмент, который необходимо загрузить, будет распределен по нескольким различным узлам запросов. Поисковый запрос может быть обработан, как только хотя бы одна реплика будет успешно загружена.

Кэш

Прокси-сервер поддерживает кэш, сопоставляющий сегменты с узлами запроса, и периодически обновляет его. Когда прокси получает запрос, Milvus получает из кэша все сегменты, которые нужно найти, и пытается равномерно распределить их по узлам запроса.

Для растущих сегментов прокси также поддерживает кэш "канал - узел запроса" и отправляет запросы на соответствующие узлы запроса.

Отказоустойчивость

Кэши на прокси не всегда актуальны. Некоторые сегменты или каналы могут быть перемещены на другие узлы запроса в момент поступления запроса. В этом случае прокси получит ответ об ошибке, обновит кэш и попытается назначить его другому узлу запроса.

Сегмент будет проигнорирован, если прокси не сможет найти его после обновления кэша. Это может произойти, если сегмент был уплотнен.

Если кэш не точен, прокси может пропустить некоторые сегменты. Узлы запроса с каналами DML (растущие сегменты) возвращают ответы на поиск вместе со списком надежных сегментов, с которыми прокси может сравнить и обновить кэш.

Усовершенствование

Прокси не может распределять поисковые запросы между узлами запросов абсолютно одинаково, и узлы запросов могут иметь разные ресурсы для обслуживания поисковых запросов. Чтобы избежать распределения ресурсов по принципу "длинного хвоста", прокси назначает активные сегменты на других узлах запроса незанятому узлу запроса, который также имеет эти сегменты.

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

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

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

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