Перейти к содержанию

Обзор#

LUNA Vinder Module — модуль, предназначенный для организации гибкого и высокопроизводительного матчинга по событиям.

При работе с миллионами/миллиардами биометрических шаблонов прямое использование единой базы данных LUNA PLATFORM для задач сравнения создаёт ряд ограничений:

  • сложно эффективно работать с разными подмножествами данных — если нужно выполнять сравнение только среди событий определённого типа или источника, база данных всё равно будет просматривать всю таблицу;
  • параллельные массовые запросы на сравнение создают нагрузку на базу данных, что может негативно сказаться на её основных функциях;
  • невозможно контролировать, какие атрибуты хранить и индексировать для разных сценариев сравнения.

LUNA Vinder Module решает эти проблемы путём создания отдельных специализированных копий данных — проекций. Ключевое преимущество такого подхода заключается в том, что данные можно группировать по определённым характеристикам в отдельные проекции и выбирать, какие атрибуты в них хранить. Источником данных остаётся основная база данных, а проекции — это "рабочие копии", оптимизированные для конкретных сценариев сравнения.

Основной принцип работы LUNA Vinder Module

Проекция создаётся с помощью сервиса Projector на основе источника данных, фильтров, определяющих, какие события включать в проекцию, и полей targets. На этом этапе Projector создаёт "пустую" проекцию — это определение того, какие данные должны быть в этой проекции, но сами данные ещё не загружены. Для созданной проекции в сервисе Configurator настраивается один или несколько индексов — древовидных структур, определяющих, по каким полям возможна фильтрация при сравнении. После настройки индекса сервис Matcher загружает данные проекции в оперативную память, строит индексы и становится готовым к обработке запросов.

Когда пользователь отправляет запрос на сравнение через API, он перенаправляется в сервис Python Matcher Proxy. Встроенный в него плагин сравнения определяет, где выполнять сравнение — в сервисе Python Matcher или в сервисе Matcher модуля LUNA Vinder Module. После выполнения сравнения ответ возвращается пользователю.

Данный документ содержит следующие основные разделы:

  • Основные положения. В разделе приведено:

    • описание проекций и индекса
    • описание процесса сравнения

    Рекомендуется начать знакомство с LVM с данного раздела.

  • Плагин сравнения для Python Matcher Proxy. В разделе приведено описание работы плагина сравнения, встроенного в сервис Python Matcher Proxy, необходимого для выполнения сравнения.

  • Мониторинг. В разделе приведено описание процесса мониторинга для сервисов LVM.
  • Диаграммы последовательности. В разделе приведены диаграммы последовательности для основных операций LVM.
  • Ошибки API. В разделе приведено расширенное описание возвращаемых ошибок сервисами LVM.
  • Описание параметров сервисов. В разделе приведено описание настроек всех сервисов LVM.