Дополнительные возможности findface-tarantool-server

В этом разделе:

Дополнительные параметры конфигурации

Для того чтобы настроить взаимодействие между компонентом findface-sf-api и Tarantool, укажите дополнительные параметры в 3-м аргументе раздела FindFace.start в файле конфигурации findface-tarantool-server:

sudo vi /etc/tarantool/instances.enabled/FindFace.lua

FindFace.start("127.0.0.1", 8001, {license_ntls_server="127.0.0.1:3133", additional parameter 1, ..., additional parameter N})

## Example:
FindFace.start("127.0.0.1", 8001, {license_ntls_server="127.0.0.1:3133", facen_size = 576, log_requests = false})

Дополнительные параметры:

Параметр Значение по умолчанию Описание
log_requests true Включает запись запросов в лог (/var/log/tarantool/FindFace.log).
facen_size 576 Размер вектора признаков, зависит от используемой модели нейронной сети. Перед редактированием данного параметра обязательно проконсультируйтесь у наших экспертов по адресу support@ntechlab.com.
search_threads 1 Количество тредов, используемых для поиска по быстрому индексу.
replication nil Только для реплики базы данных Tarantool. IP-адрес ведущего сервера (мастера).
soft_delete_mode false Включает режим «мягкого удаления», при котором лица не удаляются из быстрого индекса, а скрываются в результатах поиска.

Режим «мягкого удаления»

Tarantool поддерживает так называемый режим «мягкого удаления», при котором лица физически не удаляются из быстрого индекса, а скрываются в результатах поиска. Данный режим рекомендуется активировать в связи со следующими преимуществами:

  • Время запуска Tarantool линейно зависит от количества лиц, удаленных из пространства Indexed (т. е. из быстрого индекса). Если режим «мягкого удаления» включен, лица физически не удаляются из быстрого индекса. Таким образом, удаление лиц не влияет на время запуска Tarantool.
  • Качество поиска по быстрому индексу также зависит от количества физически удаленных лиц. Оно не снижается в режиме «мягкого удаления».

Для активации режима «мягкого удаления» отредактируйте раздел FindFace.start следующим образом:

FindFace.start("127.0.0.1", 8001, {license_ntls_server="127.0.0.1:3133", soft_delete_mode = true})

Репликация базы данных Tarantool

Репликация позволяет множественным экземплярам Tarantool работать с копиями одной и той же базы данных. Копии базы данных синхронизируются, так как каждый экземпляр Tarantool может передавать изменения в остальные. Tarantool поддерживает репликацию master-slave (ведущий-ведомые). Вы можете добавлять или удалять данные только через ведущий экземпляр (мастер). Ведомые экземпляры (реплики) могут быть использованы только для поиска и просмотра данных.

Для того чтобы развернуть набор реплик Tarantool, обратитесь к официальной документации Tarantool.

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

  1. Запустите мастер.

  2. В файле конфигурации реплики укажите IP-адрес и слушающий порт мастера.

    FindFace.start("127.0.0.1", 48001, {replication = "127.0.0.1:33001"})
    
  3. Скопируйте последний снимок (snapshot) мастера (*.snap) в папку, указанную в параметре memtx_dir реплики.

    --Directory to store data
       memtx_dir = '/opt/ntech/var/lib/tarantool/default/snapshots'
    
  4. Скопируйте логи мастера в папку, указанную в параметре wal_dir реплики.

    --Directory to store data
         wal_dir = '/opt/ntech/var/lib/tarantool/default/xlogs'
    
  5. Запустите реплику. Вы можете запустить любое количество реплик под одним мастером.

Важно

Перед включением быстрого индекса на мастере (:use_index("/путь/к/<index>.idx")) скопируйте файл индекса (<index>.idx) на реплику по тому же пути. Затем выполните use_index на мастере.

Совет

Рекомендуется удалять все файлы индекса на реплике, кроме последнего, во избежание промежуточных обновлений индекса в случае сильного отставания реплики от мастера.

Совет

Для того чтобы ускорить синхронизацию мастера и реплики, вы также можете скопировать последний снимок (snapshot) мастера в реплику.