Нефункциональные особенности#

Конфигурация для достижения описанных нефункциональных характеристик должна соответствовать описанной в разделе Аппаратное обеспечение

Доступность#

  • Поддержка кластерного режима с репликацией данных.

  • Автоматическое восстановление после сбоев узлов.

  • Работа даже при частичном разделении сети

  • 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) для предотвращения утечек.

Масштабируемость#

  • Горизонтальное масштабирование: добавление узлов для увеличения емкости и пропускной способности.

  • Динамическое шардирование: перераспределение данных при росте кластера.

  • Поддержка больших коллекций: миллиарды векторов в кластере.