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.available/<shard-*>.lua
. В кластерной среде файл конфигурации настраивается отдельно для каждого шарда.
--
-- Please, read the tarantool documentation at https://www.tarantool.io/en/doc/1.10/
--
box.cfg{
-- THIS IS NOT HTTP API PORT, it's for admin operations
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/findface-security/tnt_schema.lua")
-- host:port to bind, HTTP API
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
выполняется с использованием следующих параметров:
Параметр |
Описание |
---|---|
|
Включает/отключает автоматическое восстановление базы данных Tarantool. Если автоматическое восстановление данных включено (true), каждый раз при возникновении ошибки во время чтения файла .snap или .xlog, Tarantool попытается прочитать как можно больше информации и восстановить файл, игнорируя битые записи. |
|
IP-адрес и порт сервера лицензирования |
|
Максимальный размер оперативной памяти в байтах, который может быть использован шардом Tarantool. Перед изменением данного параметра обратитесь к нашим экспертам за консультацией по адресу support@ntechlab.com. |
|
Структура базы данных для хранения биометрических параметров. Представляет собой набор полей, для каждого из которых указываются следующие параметры: |
Структура базы данных передается из файла /etc/findface-security/tnt_schema.lua
в параметр meta_scheme
. Подробнее см. Изменение структуры биометрической базы данных.