Configuração de Migração

Arquivo de Configuração

Os parâmetros de configuração da migração do GBDS são definidos em um arquivo de configuração, contendo todos os parâmetros e seus respectivos valores. Os parâmetros omitidos assumem seus valores padrão. Esta seção descreve as propriedades do arquivo de configuração.

Localização do arquivo

O arquivo de configuração é /etc/griaule/conf/gbds-migration/gbds-migration.properties.

Propriedades do arquivo

O arquivo de configuração deve atender a alguns requisitos para ser interpretado corretamente pelo GBDS. Esses requisitos são:

  1. O nome e o local do arquivo devem ser exatamente como mencionados;

  2. Deve haver exatamente um parâmetro de configuração por linha;

  3. Cada parâmetro de configuração deve estar no formato <parameter>=<value>, sem quebras de linha;

  4. Cada valor deve ser separado por uma vírgula quando atribuído a um único parâmetro.

Parâmetros de configuração

Esta seção descreve cada parâmetro de configuração de migração do GBDS que pode ser listado no arquivo de configuração e como eles afetam a operação do sistema.

Geral

gbscluster.zookeeper.quorum

Define o nome do host e a porta pelos quais os servidores do Zookeeper podem ser encontrados. Cada valor deve ser separado por vírgulas se houver mais de um disponível.

Valor padrão:

<hostname>:<port>

Conexão RDB

gbds.rbd.driverClassName

Define o nome da classe para o banco de dados relacional a ser usado para armazenar latentes não resolvidos.

Valor padrão:

com.mysql.jdbc.Driver

gbds.rdb.url

Define a URL do banco de dados relacional a ser acessado.

Valor padrão:

jdbc:mysql://<hostname>:3306/gbds?useSSL=false&allowPublicKeyRetrieval=true

gbds.rdb.username

Define o nome de usuário a ser usado para acessar o banco de dados relacional.

Valor padrão:

<rdb-username>

gbds.rdb.password

Define a senha a ser usada para acessar o banco de dados relacional.

Valor padrão:

<rdb-base64-password>

gbds.rdb.dialect

Define o dialeto a ser usado no banco de dados relacional.

Valor padrão:

org.hibernate.dialect.MySQLDialect

gbds.rdb.showSql

Define se as instruções SQL devem ser incluídas nos logs do aplicativo.

Valor padrão:

false

Valores possíveis:

  • true

  • false

gbds.rdb.maxPoolSize

Número máximo de conexões que um pool manterá a qualquer momento.

Valor padrão:

100

gbds.rdb.minPoolSize

Número mínimo de conexões que um pool manterá em um determinado momento.

Valor padrão:

1

gbds.rdb.initialPoolSize

Número de conexões que um pool tentará adquirir na inicialização. Este valor deve estar no intervalo de gbds.rdb.minPoolSize a gbds.rdb.maxPoolSize.

Valor padrão:

2

gbds.rdb.maxStatments

Define o tamanho do cache global PreparedStatement do c3p0. Se gbds.rdb.maxStatmentsfor zero, o cache de instruções não será habilitado.

Este parâmetro controla o número total de instruções armazenadas em cache para todas as conexões. Se definido, deve ser um número bastante grande, pois cada conexão agrupada requer seu próprio conjunto distinto de instruções armazenadas em cache. Como guia, considere quantos PreparedStatements distintos são usados ​​com frequência em sua aplicação e multiplique esse número por gbds.rdb.maxPoolSizepara chegar a um valor apropriado.

Valor padrão:

0

gbds.rdb.maxIdleTime

Define, em segundos, o tempo que uma conexão pode permanecer em pool, mas sem uso, antes de ser descartada. Zero significa que conexões ociosas nunca expiram.

Valor padrão:

1800

gbds.rdb.maxConnectionAge

Define, em segundos, o tempo máximo de vida de uma conexão. Uma conexão com mais de 10 anos gbds.rdb.maxConnectionAgeserá destruída e removida do pool. Isso difere de 10 anos, gbds.rdb.maxIdleTimepois se refere à idade absoluta. Mesmo uma conexão que não tenha ficado muito tempo ociosa será removida do pool se exceder 10 anos gbds.rdb.maxConnectionAge. Zero significa que não há idade absoluta máxima aplicada.

Valor padrão:

1800

gbds.rdb.statementCacheNumDeferredCloseThreads

Se definido como um valor maior que 0, o cache de instruções rastreará quando as Conexões estiverem em uso e destruirá as Instruções somente quando suas Conexões pai não estiverem em uso. Embora o fechamento de uma Instrução enquanto a Conexão pai estiver em uso esteja formalmente dentro das especificações, alguns bancos de dados e/ou drivers JDBC, principalmente o Oracle, não lidam bem com esse caso e congelam, levando a deadlocks. Definir este parâmetro como um valor positivo deve eliminar o problema. Este parâmetro só deve ser definido se você observar que as tentativas do c3p0 de fechar() as instruções em cache congelam (geralmente, você verá APPARENT DEADLOCKS nos seus logs). Se definido, este parâmetro quase sempre deve ser definido como 1.

Valor padrão:

1

gbds.rdb.acquireIncrement

Determina quantas conexões por vez o c3p0 tentará adquirir quando o pool estiver esgotado.

Valor padrão:

10

gbds.rdb.testConnectionOnCheckout

Se verdadeiro, uma operação será executada em cada verificação de conexão para verificar se a conexão é válida. Testar conexões na verificação é a forma mais simples e confiável de testar conexões, mas para melhor desempenho, considere verificar as conexões periodicamente usando gbds.rdb.idleConnectionTestPeriod.

Valor padrão:

false

gbds.rdb.testConnectionOnCheckin

Se verdadeiro, uma operação será executada de forma assíncrona em cada verificação de conexão para verificar se a conexão é válida. Use em combinação com gbds.rdb.idleConnectionTestPeriodpara testes de conexão bastante confiáveis ​​e sempre assíncronos.

Valor padrão:

true

Valores possíveis:

  • true

  • false

gbds.rdb.acquireRetryAttempts

Define quantas vezes c3p0 tentará obter uma nova conexão do banco de dados antes de desistir. Se este valor for menor ou igual a zero, c3p0 continuará tentando obter uma conexão indefinidamente.

Valor padrão:

10

gbds.rdb.idleConnectionTestPeriod

Se este for um número maior que 0, o c3p0 testará todas as conexões ociosas, agrupadas, mas não verificadas, a cada este número de segundos.

Valor padrão:

30

Famílias de colunas HBase

Família de colunas padrão

Esses parâmetros são divididos por modalidade biométrica. São famílias de colunas usadas para operações de leitura de modelos.

gbds.hbase.templates.fingerprint.cf.name
gbds.hbase.templates.palmprint.cf.name
gbds.hbase.templates.face.cf.name
gbds.hbase.templates.iris.cf.name
gbds.hbase.templates.newborn-palmprint.cf.name

O valor padrão para esses parâmetros é tpts.

Família de colunas de fallback

Esses parâmetros referem-se à família de colunas usada anteriormente para armazenar os modelos biométricos, separados por modalidade biométrica.

gbds.hbase.templates.fallback.fingerprint.cf.name
gbds.hbase.templates.fallback.palmprint.cf.name
gbds.hbase.templates.fallback.face.cf.name
gbds.hbase.templates.fallback.iris.cf.name
gbds.hbase.templates.fallback.newborn-palmprint.cf.name

Os valores padrão representam a família de colunas usada antes de alterar esses parâmetros e são, respectivamente: fingerprints, palmprints, faces, iris, newborn-palmprints.

Reextrator GBDS

Geral

gbds.reextract.nodeNumber

Número de nós executando o Reextrator. Ele determina o intervalo de varredura no HBase com base no total de nós.

Valor padrão:

1

Valor mínimo:

1

Valor máximo:

Valor degbds.reextract.totalNodes

gbds.reextract.totalNodes

Total de nós executando o Reextractor.

Valor padrão:

1

gbds.reextract.totalScanRegions

Número total de regiões para interromper as varreduras.

Valor padrão:

256(regiões 00-FF)

gbds.reextract.scanners.number

Número de scanners. Um scanner digitaliza a partir do HBase um intervalo baseado em gbds.reextract.nodeNumber, gbds.reextract.totalNodes, e gbds.reextract.totalScanRegions.

Valor padrão:

5

gbds.reextract.workers.number

Número de trabalhadores. Um trabalhador mantém uma extração de modelo de transação.

Valor padrão:

5

gbds.reextract.writers.number

Número de escritores. Um escritor obtém o resultado da extração e grava novamente na transação e nas pessoas, se necessário.

Valor padrão:

5

gbds.reextract.range

Configuração de alcance externo. Limita o alcance automático.

  • O intervalo pode ser um hexadecimal de 2 caracteres (como 00ou A3) ou um intervalo hexadecimal de 2 caracteres (como 00-01ou 4A-50).

  • Sempre 2 caracteres hexadecimais.

  • Se ausente, o GBS Reextractor executará a partição automática como de costume.

gbds.reextract.validate.extraction

Sinalizador para validar modelos reextraídos criados anteriormente.

  • Em cada transação:

    • Quando selecionado para extrair, o GBS Reextractor não o validará.

    • Quando ele foi extraído antes, mas não validado, o GBS Reextractor o validará.

    • Quando for extraído e validado, o GBS Reextractor o ignorará.

    • A validação é salva no HBase na coluna transaction:<cf>-validated.

  • Para garantir que uma transação seja validada em uma chamada após a extração, lembre-se de apagar o arquivo SQLite ou configurar gbds.reextract.sqlite.resetOnStart=true . Caso contrário, todo o intervalo ao qual a transação pertence será ignorado.

Dessa forma, a reextração e a validação podem ser feitas em diferentes chamadas do GBS Reextractor, dando tempo para o HBase gravar e consolidar modelos na transactionstabela.

Valor padrão:

true

Valores possíveis:

  • true

  • false

Fila de Pipeline

gbds.reextract.workers.inqueueMaxSize

Tamanho da fila do scanner para o worker. Quanto maior o tamanho, mais varreduras são realizadas e mantidas nos workers, mas mais memória é alocada.

Valor padrão:

100

gbds.reextract.writers.inqueueMaxSize

Tamanho da fila do trabalhador para o escritor. Quanto maior o tamanho, mais varreduras são realizadas e mantidas nos escritores, mas mais memória é alocada.

Valor padrão:

100

Modalidade para Reextrair Flags

gbds.reextract.modality.finger

Determina se os dedos devem ser reextraídos.

Valor padrão:

true

Valores possíveis:

  • true

  • false

gbds.reextract.modality.face

Determina se os rostos devem ser reextraídos.

Valor padrão:

true

Valores possíveis:

  • true

  • false

gbds.reextract.modality.palm

Determina se as palmas devem ser reextraídas.

Valor padrão:

false

Valores possíveis:

  • true

  • false

gbds.reextract.modality.iris

Determina se as íris devem ser reextraídas.

Valor padrão:

false

Valores possíveis:

  • true

  • false

gbds.reextract.modality.newborn-palm

Determina se as palmas das mãos dos recém-nascidos devem ser reextraídas.

Valor padrão:

false

Valores possíveis:

  • true

  • false

Microsserviços de extração de modelos

gbds.reextract.msextraction.ginger.number

Define quantas instâncias de microsserviços de extração de impressão digital, impressão palmar, recém-nascido e modelo de controle de sequência estarão disponíveis. Se esta configuração for definida como 0, os microsserviços de extração para essas modalidades não serão iniciados.

Valor padrão:

10(múltiplos de 10 recomendados)

gbds.reextract.msextraction.face.number

Define quantas instâncias de microsserviços de extração de modelo facial estarão disponíveis. Se esta configuração estiver definida como 0, os microsserviços de extração para esta modalidade não serão iniciados.

Valor padrão:

1(10 vezes menos do que gbds.reextract.msextraction.ginger.numbero recomendado)

gbds.reextract.msextraction.initialPort

Este parâmetro define o número da porta inicial para os microsserviços de extração de modelo.

Cada instância de microsserviço aumentará seu número de porta em 1. Por exemplo, considerando a porta padrão 6000, a primeira instância usará a porta 6000, a segunda usará a porta 6001, a terceira, 6002e assim por diante.

Não entre em conflito com portas de microsserviços de extração de modelo de API (mais de 30.000), portas de microsserviços de extração de qualidade (31.000) e portas de microsserviços de correspondência GBDS (32.000).

Certifique-se de permitir as portas de firewall que o microsserviço usará.

Valor padrão:

6000

gbds.reextract.msextraction.maxTries

Define o número máximo de tentativas de extração que o GBDS realizará em uma única característica biométrica antes de retornar um erro.

Valor padrão:

3

gbds.reextract.msextraction.linkLibSegfault

Liga/desliga o depurador de biblioteca de falhas de segmentação no microsserviço de extração

Valor padrão:

true

gbds.reextract.msextraction.checkTimeoutSecs

Tempo limite em segundos para verificar se o microsserviço de extração de modelo está ativo.

Valor padrão:

30

gbds.reextract.msextraction.logLevel

Nível de log do microsserviço de extração de modelo.

Valor padrão:

INFO

Valores possíveis:

  • INFO

  • TIME

  • DEBUG

gbds.reextract.msextraction.timeout

Tempo limite em segundos para chamada única ao microsserviço de extração de modelo.

Valor padrão:

60

gbds.reextract.msextraction.fingerprints.extractor.type

Este parâmetro define o tipo de predefinição do extrator ginger a ser usado pela Migração GBDS no modo --reextract, também conhecido como Reextrator GBDS. O Reextrator salvará no HBase e no RDB o tipo de extrator ginger que foi usado da mesma forma que a API faz, na transactionscoluna HBase <cf>:ginger-extractor-typee na transactionscoluna RDB ginger_extractor_type.

Valor padrão:

GRIAULE_2024

Valores possíveis:

  • GRIAULE_FAST: uma versão mais simples e rápida do GRIAULE_BASIC (nunca usada na API).

  • GRIAULE_BASIC: extração padrão para Verify.

  • GRIAULE_2020: extração padrão antiga para Inscrever, Atualizar.

  • GRIAULE_2024: nova extração padrão para Inscrever, Atualizar.

  • GRIAULE_2018: use GRIAULE_2018 (mais lento).

Famílias de colunas HBase de reextração

gbds.reextract.cf.finger

Nome da família da coluna de dedos para receber o modelo extraído em transações e pessoas.

Valor padrão:

fingerprint-reextract-1

gbds.reextract.cf.palm

Nome da família da coluna Palm para receber o modelo extraído em transações e pessoas.

Valor padrão:

palmprint-write

gbds.reextract.cf.face

Nome da família da coluna de rosto para receber o modelo extraído em transações e pessoas.

Valor padrão:

face-reextract-1

gbds.reextract.cf.iris

Nome da família da coluna Iris para receber o modelo extraído em transações e pessoas.

Valor padrão:

iris-write

gbds.reextract.cf.newborn-palm

Nome de família de coluna de palmeira de recém-nascido para receber modelo extraído em transações e pessoas.

Valor padrão:

newborn-palmprint-write

SQLite

gbds.reextract.sqlite.filePath

Caminho do arquivo para o banco de dados local SQLite.

Valor padrão:

/home/<username>/reextract.db

gbds.reextract.sqlite.resetOnStart

Sinalizador para redefinir o SQLite na inicialização.

Valor padrão:

false

Valores possíveis:

  • true

  • false

Exemplo de arquivo de Configuração

Substitua <hostname>, <rdb-username>, <rdb-base64-password>e <username>pelos valores corretos. Além disso, se zookeepere mysqlestiverem sendo executados em portas diferentes das padrão, substitua os números das portas.

# GENERAL
gbscluster.zookeeper.quorum=<hostname>:2181

# RDB CONNECTION
gbds.rdb.driverClassName=com.mysql.jdbc.Driver
gbds.rdb.url=jdbc:mysql://<hostname>:3306/gbds?useSSL=false&allowPublicKeyRetrieval=true
gbds.rdb.username=<rdb-username>
gbds.rdb.password=<rdb-base64-password>
gbds.rdb.dialect=org.hibernate.dialect.MySQLDialect
gbds.rdb.showSql=false
gbds.rdb.maxPoolSize=100
gbds.rdb.minPoolSize=1
gbds.rdb.initialPoolSize=2
gbds.rdb.maxStatments=0
gbds.rdb.maxIdleTime=1800
gbds.rdb.maxConnectionAge=1800
gbds.rdb.statementCacheNumDeferredCloseThreads=1
gbds.rdb.acquireIncrement=10
gbds.rdb.testConnectionOnCheckout=false
gbds.rdb.testConnectionOnCheckin=true
gbds.rdb.acquireRetryAttempts=10
gbds.rdb.idleConnectionTestPeriod=30

# HBASE COLUMN FAMILIES - STANDARD
gbds.hbase.templates.fingerprint.cf.name=tpts
gbds.hbase.templates.palmprint.cf.name=tpts
gbds.hbase.templates.face.cf.name=tpts
gbds.hbase.templates.iris.cf.name=tpts
gbds.hbase.templates.newborn-palmprint.cf.name=tpts

# HBASE COLUMN FAMILIES - FALLBACK
gbds.hbase.templates.fallback.fingerprint.cf.name=fingerprints
gbds.hbase.templates.fallback.palmprint.cf.name=palmprints
gbds.hbase.templates.fallback.face.cf.name=faces
gbds.hbase.templates.fallback.iris.cf.name=iris
gbds.hbase.templates.fallback.newborn-palmprint.cf.name=newborn-palmprints

# REEXTRACTOR - GENERAL
gbds.reextract.nodeNumber=1
gbds.reextract.totalNodes=1
gbds.reextract.totalScanRegions=256
gbds.reextract.scanners.number=5
gbds.reextract.workers.number=5
gbds.reextract.writers.number=5
gbds.reextract.validate.extraction=false

# REEXTRACTOR - PIPELINE QUEUE
gbds.reextract.workers.inqueueMaxSize=100
gbds.reextract.writers.inqueueMaxSize=100

# REEXTRACTOR - MODALITY TO REEXTRACT FLAGS
gbds.reextract.modality.finger=true
gbds.reextract.modality.face=true
gbds.reextract.modality.palm=false
gbds.reextract.modality.iris=false
gbds.reextract.modality.newborn-palm=false

# REEXTRACTOR - TEMPLATE EXTRACTION MICROSERVICE
gbds.reextract.msextraction.ginger.number=10
gbds.reextract.msextraction.face.number=1
gbds.reextract.msextraction.initialPort=6000
gbds.reextract.msextraction.maxTries=3
gbds.reextract.msextraction.linkLibSegfault=true
gbds.reextract.msextraction.checkTimeoutSecs=30
gbds.reextract.msextraction.logLevel=INFO
gbds.reextract.msextraction.timeout=60
gbds.reextract.msextraction.fingerprints.extractor.type=GRIAULE_2024

# REEXTRACTOR - REEXTRACTION HBASE COLUMN FAMILIES
gbds.reextract.cf.finger=fingerprint-reextract-1
gbds.reextract.cf.palm=palmprint-write
gbds.reextract.cf.face=face-reextract-1
gbds.reextract.cf.iris=iris-write
gbds.reextract.cf.newborn-palm=newborn-palmprint-write

# REEXTRACTOR - SQLITE
gbds.reextract.sqlite.filePath=/home/<username>/reextract.db
gbds.reextract.sqlite.resetOnStart=false

Atualizado

Isto foi útil?