Нефункциональные особенности#
Конфигурация для достижения описанных нефункциональных характеристик должна соответствовать описанной в разделе Аппаратное обеспечение
Доступность#
Поддержка кластерного режима с репликацией данных.
Автоматическое восстановление после сбоев узлов.
Работа даже при частичном разделении сети
Health-check API для мониторинга статуса кластера.
Обеспечение одинакового доступа к API в кластерной среде независимо от конкретного экземпляра (инстанса), к которому обращается клиент.
Устанавливаемость#
Минимальные зависимости:
Самодостаточный бинарный файл (не требует внешних СУБД).
Минимальные системные требования (Linux, x86_64/aarch64).
Эффективное использование дискового пространства при хранении данных.
Целостность#
WAL (Write-Ahead Log) — гарантия сохранности данных даже при аварийном отключении.
Поддержка ACID-свойств для операций с коллекциями.
Проверка целостности индексов и метаданных.
Надежное длительное хранение и согласованность ротации API-ключа как в среде одиночной установки (с одним экземпляром), так и в кластерном окружении.
Защита от неконсистентности данных при split brain в распределенном кластере за счет блокировки операций записи и модификации на узлах, потерявших связь с кворумом, предотвращая тем самым расхождение реплик в условиях сетевого разделения.
Надежное длительное хранение и согласованность ролей и назначений ролей на пользователей как в среде одиночной установки (с одним экземпляром), так и в кластерном окружении.
Производительность#
Оптимизация алгоритмов HNSW и IVF-PQ для быстрого поиск в больших коллекциях.
Кеширование часто запрашиваемых данных.
Параллелизм обработки запросов на уровне CPU.
Динамические параметры: настройка параметров коллекций (размер векторов, количество реплик, тип метрики) через API.
Режимы хранения: выбор между in-memory и disk-based хранением.
Надежность#
Отказоустойчивое хранение: данные реплицируются между узлами.
Снепшоты (snapshots) для резервного копирования.
Предсказуемое поведение при высокой нагрузке (нет «проседаний» производительности).
Режим восстановления (Recovery Mode) для восстановления после сбоев диска/памяти.
Строгий режим (Strict Mode) для предотвращения ошибок.
Информирование о текущем режиме функционирования узла. Автоматическое применение режима обслуживания ко всем новым узлам, добавляемым в кластер, и сохраняется до явного отмены.
Автоматическое переключение в режим read-only при потере кворума, сохраняя при этом способность выдавать JWT-токены, что обеспечивает непрерывность аутентификации пользователей даже в условиях сетевых сбоев.
Устойчивость#
Автоматическое восстановление после сбоев (реплики берут на себя нагрузку).
Балансировка нагрузки и автоматическое перераспределение шардов.
Обработка временных сетевых проблем без потери данных.
Безопасность#
TLS 1.2/TLS 1.3 для шифрования трафика (REST/gRPC).
API-ключ и JWT для аутентификации.
RBAC (в Enterprise-версии) для контроля доступа.
Аудит операций (логирование изменений).
Изоляция контейнеров (Docker) для предотвращения утечек.
Масштабируемость#
Горизонтальное масштабирование: добавление узлов для увеличения емкости и пропускной способности.
Динамическое шардирование: перераспределение данных при росте кластера.
Поддержка больших коллекций: миллиарды векторов в кластере.