Обзор#
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.