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:
O nome e o local do arquivo devem ser exatamente como mencionados;
Deve haver exatamente um parâmetro de configuração por linha;
Cada parâmetro de configuração deve estar no formato
<parameter>=<value>
, sem quebras de linha;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.maxStatments
for 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.maxPoolSize
para 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.maxConnectionAge
será destruída e removida do pool. Isso difere de 10 anos, gbds.rdb.maxIdleTime
pois 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.idleConnectionTestPeriod
para 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 de
gbds.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
00
ouA3
) ou um intervalo hexadecimal de 2 caracteres (como00-01
ou4A-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 transactions
tabela.
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 quegbds.reextract.msextraction.ginger.number
o 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, 6002
e assim por diante.
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 transactions
coluna HBase <cf>:ginger-extractor-type
e na transactions
coluna 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
# 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?