LUNA Index Module v.5.57.0#
Изменения LIM
- В спецификацию сервиса Indexer добавлены версии API к маршрутам всех ресурсов кроме "/version" и "/healthcheck".
Исправленные ошибки LIM
-
Исправлена ошибка, при которой сервис Python Matcher Proxy использовал 100% CPU при использовании LIM.
-
Выполнение индексации при запуске теперь пропускается в случае, если с момента последней индексации не прошло время, указанное в параметре "planning_period" группы параметров "LIM_MANAGER_INDEXING".
Например, если "planning_period" = 600 секунд (10 минут) и через 5 минут после выполнения процедуры планирования LIM был перезапущен, то выполнение индексации при запуске не будет произведено.
-
Добавлена оффлайн версия сайта с онлайн-документацией в комплект поставки LUNA Index Module вместо предыдущих документов в формате HTML.
LUNA Index Module v.5.53.0#
Изменения LIM
-
Начиная с текущей версии LIM, необходимо использовать LUNA PLATFORM v.5.53.0 и выше. Более старые версии LUNA PLATFORM не поддерживаются текущей версией LIM.
-
Добавлены новые настройки соединения с Redis Sentinel.
В секции "sentinel" настроек "LIM_MANAGER_DB" и "LIM_MATCHER_DB" добавлены параметры "user" и "password".
Для настройки "REDIS_URL" данные авторизации необходимо вводить следующим образом:
redis+sentinel://sentinel_username:sentinel_password@sentinel0:26379,sentinel1:26378/indexed_matcher?username=master_username&password=master_password
.См. раздел "Использование Redis Sentinel" в руководстве администратора LIM для более подробной информации о Redis Sentinel.
-
В сервисы Indexer, Indexed Matcher и Index Manager добавлен новый запрос "get list of plugins", позволяющий получить список импортированных плагинов и их статус.
Исправленные ошибки LIM
- Исправлена зависание сервиса Indexed Matcher при включенном обновлении индекса (параметр "lim_matcher_refresh" > "enabled").
LUNA Index Module v.5.51.0#
-
Уменьшен размер Docker-образа lim-configs.
-
В группы настроек "LIM_MANAGER_DB" и "LIM_MATCHER_DB" добавлена новая настройка "db_number", позволяющая указать номер БД Redis.
В настройке можно указать номер от 0 до 15. Каждый номер соответствует отдельной базе данных, что позволяет разделить данные.
-
SDK обновлен до версии 5.16.0.
В LUNA Index Module добавлена поддержка 57-ой и 62-ой моделей нейронной сети для извлечения биометрических шаблонов лиц.
LUNA Index Module v.5.47.4#
-
Добавлена возможность использования Redis Sentinel.
В настройки сервисов Index Manager и Indexed Matcher добавлены новые группы параметров "LIM_MANAGER_DB.SENTINEL" и "LIM_MATCHER_DB.SENTINEL", содержащие следующие настройки:
- "master_name" - имя мастер-ноды Redis, которая будет отслеживаться и управляться Redis Sentinel (по умолчанию "index_manager" и "indexed_matcher").
- "sentinels" - список адресов слушателей Redis Sentinel (по умолчанию не задан).
Также использование Redis Sentinel поддержано в настройке "REDIS_URL" в группе настроек "LUNA_INDEXED_LIST_PLUGIN", которая отвечает за соединение плагина сравнения с Redis при высчитывании сложности запроса. Пример заполнения настройки "REDIS_URL":
redis+sentinel://localhost:26379,localhost:26378/indexed_matcher
. -
Увеличено значение по умолчанию для настроек "CONNECTION_POOL_SIZE" сервисов Index Manager и Indexed Matcher с 5 до 100.
-
В контейнерах сервисов LIM обновлена версия Python до 3.11.
Поддержка более старых версий Python прекращена.
Исправленные ошибки
-
Изменен приоритет ошибки вида "Couldn't find idx for
" c "ERROR" на "WARNING". Такая ошибка может возникнуть в случае, когда пользователь добавил новое лицо в список, а затем удалил его из списка в период между запусками обновлений индекса в памяти сервиса Indexed Matcher (по умолчанию 1 секунда).
См. подробную информацию о процессе обновления индекса в разделе "Обновление индекса в памяти" руководства администратора LIM.
LUNA Index Module v.5.38.1#
-
В настройки сервисов Indexer, Index Manager и Indexed Matcher добавлены группы настроек вида
<service_name_HTTP_SETTINGS
, содержащие настройки, отвечающие за обработку HTTP-подключений.Доступны следующие настройки:
request_timeout
- продолжительность времени между моментом, когда новое открытое TCP-соединение передается на сервер. Значение (в секундах) - целое число, по умолчанию 60.response_timeout
- продолжительность времени между моментом, когда сервер передает HTTP-запрос приложению, и моментом, когда HTTP-ответ отправляется клиенту. Значение (в секундах) - целое число, по умолчанию 600.request_max_size
- насколько большим может быть запрос. Значение (в байтах) - целое число, по умолчанию 1 Гб для всех сервисов.keep_alive_timeout
- тайм-аут поддержания активности HTTP. Значение (в секундах) - целое число, по умолчанию 15.
См. подробную информацию по следующей ссылке: https://sanic.dev/en/guide/deployment/configuration.html#builtin-values
-
Добавлен тег
socket_address
в точки мониторинга серии построения индекса. Тег содержит значение в формате<host>:<port>
.Это позволяет фиксировать адрес сервера для конкретного экземпляра Indexed Matcher для мониторинга.
-
Добавлено поле
duration
в точки мониторинга серии построения индекса с этапамиdrop_index
(удаление индекса из памяти Indexed Matcher) иload_index
(загрузка индекса в память Indexed Matcher). Данное поле означает длительность соответствующего этапа. -
В сервис Indexed Matcher добавлен новый ресурс "/indexes", позволяющий получить набор индексов, загруженных в память сервиса. Для каждого индекса выводится его метаинформация ("label", "index_id", "account_id", версия БШ и т.д).
-
Во все сервисы LIM добавлена настройка
FORMAT
, позволяющая указать формат логирования -default
(стандартный формат вывода логов) иjson
(вывод логов в формате json). -
Теперь если процесс построения индекса прерывается из-за нехватки памяти, то в логах сервиса Indexer будет выдана ошибка 26109
Build process killed. It's probably due to running out of memory and the OS was triggering the OOM killer
. -
В сервис Indexed Matcher добавлена проверка существования списка при запуске, загрузке нового индекса в память и обновлении индекса в памяти. Индекс без существующего списка будет удален из памяти сервиса.
-
Ускорены запросы на сравнение.
Ускорение было достигнуто за счет внутренних оптимизаций и изменения формата результата поля ответа. Раньше это был список следующих объектов
{"face_id": ..., "similarity": ...}
. Теперь результатом является список пар, где первый элемент пары — этоface_id
, второй элемент —similarity
.Примечание. Это изменение требует обязательного обновления сервиса Python Matcher Proxy.
-
В руководство администратора добавлены диаграммы последовательности основных процессов LUNA Index Module.
LUNA Index Module v.5.36.5#
-
Производительность сравнения по большому индексу была улучшена за счет некоторых внутренних оптимизаций.
-
Во всех сервисах LIM отключена запись логов в файл по умолчанию (настройка
log_to_file
каждого сервиса).
LUNA Index Module v.5.34.0#
-
Обновлено руководство по установке LUNA Index Module.
Теперь по умолчанию приведены команды для установки модуля в директории "/var/lib/luna/", а не в директории "/var/lib/luna/current/".
Хранилище индексов теперь создается в директории "/var/lib/luna/", для упрощения процесса обновления.
-
Добавлено руководство по обновлению LUNA Index Module.
-
LUNA Index Module теперь учитывает изменение версии биометрических шаблонов лиц. Это означает, что:
- сервис Indexer выполняет построение индекса из биометрических шаблонов версии, указанной в настройке "DEFAULT_FACE_DESCRIPTOR_VERSION сервиса Index Manager";
- сервис Index Manager автоматически перестраивает индекс, если в нем не содержится информация о версиях биометрических шаблонов;
- сервис Indexed Matcher загружает только те индексы, которые содержат биометрические шаблоны версии, указанной в настройке "DEFAULT_FACE_DESCRIPTOR_VERSION сервиса Index Manager".
В связи с этим, в метаструктуру индекса ("meta.json") добавлено обязательное поле "descriptor_version". В запросах о получении информации об индексах "get indexes" и "get most relevant indexes" также возвращается параметр "descriptor_version".
Важная информация по обновлению с предыдущей версий
После запуска сервиса Index Manager, он автоматически начнет перестраивание всех индексов, в которых отсутствует информация о биометрических шаблонах, т.е. всех индексов, созданных в предыдущей версии LIM. Перестройка индекса может занять длительное время, зависящее от количества лиц в списках. Для того, чтобы не выполнять длительный процесс перестроения индекса, можно добавить поле "descriptor_version" с соответствующей версией биометрического шаблона в файлы "meta.json" всех созданных ранее индексов перед запуском сервиса Index Manager.
Напоминание добавлено в раздел "Important information" нового руководства по обновлению LIM.
-
Теперь по умолчанию сервис Indexed Matcher следит за изменениями в списках с лицами. В случае внесения новых изменений в список, сервис Indexed Matcher обновляет соответствующие индексы у себя в памяти, путем постепенного добавления небольшого количества биометрических шаблонов.
Использование данного функционала регулируется настройкой "enabled" секции "LIM_MATCHER_REFRESH" сервиса Configurator.
При обновлении кэшированного индекса сервис Indexed Matcher останавливает сравнение по этому индексу, но продолжает принимать новые запросы на сравнение для этого индекса. Благодаря тому, что в кэшированный индекс добавляется небольшое количество биометрических шаблонов, процесс сравнения выполняется с минимальным прерыванием. Однако следует учитывать то, что если в список слишком часто вставляются элементы (десятки и сотни добавлений), то это может вызвать существенную деградацию в скорости работы, вплоть до почти полной остановки процесса сравнения.
Если используется данный функционал, то нет необходимости и не рекомендуется выполнять частые перестроения индекса. Соответственно, рекомендуется увеличить период процедуры планирования (настройка "planning_period" секции "LIM_MANAGER_INDEXING" сервиса Configurator). Однако добавление новых лиц в кэшированный индекс происходит медленнее, чем перестроение индекса, поэтому нет смысла использовать данную функцию если в список было добавлено очень большое количество лиц. В таком случае проще заново перестроить индекс.
См. подробную информацию в разделе "Cached index refreshing" в руководстве администратора LIM.
-
Оптимизирована загрузка биометрических шаблонов из сервиса Faces. Заголовок "Accept" изменен с
application/x-flutbuf
наapplication/x-msgpack
. -
Добавлен "прогрев" (тестовый матчинг) первого созданного индекса перед началом его использования. Для последующих индексов "прогрев" не выполняется.
"Прогрев" выполняется после того как индекс загружен в память сервиса Indexed Matcher и сервис ожидает запроса на сравнение.
-
Версия Python обновлена до 3.10. Поддержка остальных версий прекращена.
LUNA Index Module v.5.51.6#
-
Добавлена поддержка формата логирования ECS.
Для использования нового формата необходимо задать значение "ecs" в настройке "format" секции "LIM_service_LOGGER".
При использовании значения "ecs" в логах будут возвращаться следующие поля:
- "http.response.status_code" - содержит код состояния ответа HTTP (200, 404, 500 и т.д.);
- "http.response.execution_time" - содержит информацию о времени, затраченном на выполнение запроса и получение ответа;
- "http.request.method" - содержит метод HTTP-запроса (GET, POST, PUT и т.д.);
- "url.path" - содержит путь в URL-адресе запроса;
- "error.code" - содержит код ошибки, если запрос завершается с ошибкой.
-
Обновлены описания ошибок для запросов из группы "tasks" сервиса Index Manager.
Исправленные ошибки
- Исправлена ошибка, при который во время миграции настроек LIM сбрасывались настройки Redis.
LUNA Index Module v.5.51.4#
Исправленные ошибки
-
Исправлена проблема с установкой блокировки для поиска/обновления индекса, вызывавшая ошибку "internal server error".
-
Исправлена медленная работа сравнения по большим индексам при включенном обновлении индекса (настройка "LIM_MATCHER_REFRESH") и непрерывном добавлении лиц.