findface-tarantool-server
¶
Сервис findface-tarantool-server
обеспечивает взаимодействие между сервисом findface-sf-api
и биометрической базой данных Tarantool следующим образом:
Совет
Подробнее см. официальную документацию Tarantool.
findface-tarantool-server
получает отfindface-sf-api
данные для записи в базу данных (например, об обнаруженных лицах).- По запросу от
findface-sf-api
findface-tarantool-server
выполняет поиск по базе данных и возвращает его результат.
Для увеличения скорости поиска на каждом сервере с базой данных Tarantool могут быть созданы многочисленные сегменты («шарды») findface-tarantool-server
. Их параллельное функционирование приводит к значительному увеличению производительности (в 70-100 раз).
Полный список функций:
- сохранение лиц в базу биометрических данных,
- выполнение поиска по базе биометрических данных,
- реализация прямых запросов в базу данных Tarantool (см. Прямые API-запросы к базе данных Tarantool).
Настройка компонента findface-tarantool-server
выполняется через файл конфигурации /etc/tarantool/instances.enabled/<shard-*>.lua
. В кластерной среде файл конфигурации настраивается отдельно для каждого шарда.
--
-- Please, read the tarantool cfg doc:
-- https://tarantool.org/doc/reference/configuration/index.html#box-cfg-params
--
box.cfg{
--port to listen, direct tarantool access
--Only need for admin operations
--THIS IS NOT PORT YOU NEED FOR facenapi/sf-api
listen = '127.0.0.1:32001',
--Directory to store data
vinyl_dir = '/opt/ntech/var/lib/tarantool/shard-001',
work_dir = '/opt/ntech/var/lib/tarantool/shard-001',
memtx_dir = '/opt/ntech/var/lib/tarantool/shard-001/snapshots',
wal_dir = '/opt/ntech/var/lib/tarantool/shard-001/xlogs',
--Maximum mem usage in bytes
memtx_memory = 200 * 1024 * 1024,
checkpoint_interval = 3600*4,
checkpoint_count = 3,
--uncomment only if you know what you are doing!!! and don't forget box.snapshot()
-- wal_mode = 'none',
--if true, tarantool tries to continue if there is an error while reading a snapshot/xlog files: skips invalid records, reads as much data as possible and re-builds the file
-- force_recovery = true,
}
pcall(function() box.schema.user.grant('guest', 'execute,read,write', 'universe') end)
dofile("/etc/ffsecurity/tnt_schema.lua")
-- host,port to bind for http server
FindFace = require("FindFace")
FindFace.start("127.0.0.1", 8101, {
license_ntls_server="127.0.0.1:3133",
meta_indexes=meta_indexes,
meta_scheme = meta_scheme
})
Пользовательская настройка findface-tarantool-server
выполняется с использованием следующих параметров:
Параметр | Описание |
---|---|
memtx_memory |
Максимальный размер оперативной памяти в байтах, который может быть использован шардом Tarantool. Перед изменением данного параметра обратитесь к нашим экспертам за консультацией по адресу support@ntechlab.com. |
force_recovery |
Включает/отключает автоматическое восстановление базы данных Tarantool. Если автоматическое восстановление данных включено (true), каждый раз при возникновении ошибки во время чтения файла .snap или .xlog, Tarantool попытается прочитать как можно больше информации и восстановить файл, игнорируя битые записи. |
license_ntls_server |
IP-адрес и порт сервера лицензирования findface-ntls . |
meta_scheme |
Структура базы данных для хранения биометрических параметров. Представляет собой набор полей, для каждого из которых указываются следующие параметры: id : id поля, name : название поля, должно совпадать с названием соответствующего параметра лица, field_type : тип данных, default : значение по умолчанию. Если значение по умолчанию для поля больше ‘1e14 – 1’, то его следует записывать в виде строки, т. е. “123123” вместо 123123. |
Структура базы данных передается из файла /etc/ffsecurity/tnt_schema.lua
в параметр meta_scheme
.