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