1. Arquivo de Configuração

Os parâmetros de configuração do GBDS3 são definidos em um arquivo de configuração contendo todos os parâmetros e seus respectivos valores. Parâmetros que são omitidos assumem seus valores padrões. Essa seção descreve as propriedades do arquivo de configuração.

Esse documento está atualizado para a versão 4.6.9 do GBDS.

1.1. Localização do Arquivo

O arquivo de configuração está localizado em: /etc/griaule/conf/gbds/application.conf.

1.2. Propriedades do Arquivo

O arquivo de configuração deve seguir alguns requerimentos para que possa ser interpretado corretamente pelo GBDS. Esses requerimentos são:

  1. O nome do arquivo e sua localização devem ser exatamente iguais ao descrito na seção Localização do Arquivo
  2. Deve haver somente um parâmetro de configuração por linha.
  3. Cada parâmetro de configuração deve ter forma {parâmetro}={valor}, sem quebras de linha;
  4. Cada valor deve ser separado por uma vírgula quando atribuído a um mesmo parâmetro.

2. Parâmetros de Configuração do Akka

Os parâmetros de configuração do Akka são estruturados como um bloco no começo do arquivo de configuração, como mostrado abaixo:

See also

Acesse a Documentação do Akka para obter mais informações sobre esses parâmetros.

akka {
    loglevel = "WARNING"
    stdout-loglevel = "INFO"
    loggers = ["akka.event.slf4j.Slf4jLogger"]
    logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
    actor {
        guardian-supervisor-strategy = "com.griaulebiometrics.gbds.driver.topology.GBDSGuardianSupervisionStrategy"
        provider = "cluster"

        allow-java-serialization = on
        serialize-creators = off

        serializers {
            kryo = io.altoo.akka.serialization.kryo.KryoSerializer
            proto = akka.remote.serialization.ProtobufSerializer
        }
        serialization-bindings {
            "com.griaulebiometrics.akka.utils.message.KryoSerializableMessage" = kryo
        }

        default-dispatcher {
            type = "Dispatcher"
            executor = "default-executor"
            default-executor {
                fallback = "fork-join-executor"
            }
            fork-join-executor {
                parallelism-min = 8
                parallelism-factor = 1.0
                parallelism-max = 64
            }
        }
    }

    remote {
        artery.enabled = "on"
        artery.transport = "tcp"
        artery.canonical {
            hostname = "gbds2"
            port = 2551
        }
        artery.advanced {
            image-liveless-timeout = 20s
            client-liveness-timeout = 10s
            maximum-frame-size = 30MiB
            maximum-large-frame-size = 100MiB
            buffer-pool-size = 128
            large-buffer-pool-size = 32
        }
        use-dispatcher = "akka.remote.default-remote-dispatcher"
        transport-failure-detector {
            implementation-class = "akka.remote.DeadlineFailureDetector"
            heartbeat-interval = 120s
            acceptable-heartbeat-pause = 300s
        }
        watch-failure-detector {
            implementation-class = "akka.remote.PhiAccrualFailureDetector"
            heartbeat-interval = 300s
            threshold = 10.0
            max-sample-size = 200
            min-std-deviation = 100s
            acceptable-heartbeat-pause = 300s
            unreachable-nodes-reaper-interval = 10s
            expected-response-after = 120s
        }
    }

    cluster {
        seed-nodes = [
            ##NODES##
            "akka://main@<hostname1>:2551",
            "akka://main@<hostname2>:2551",
            "akka://main@<hostname3>:2551",
            "akka://main@<hostname4>:2551"
            ##LASTNODE##
        ]
        roles =["manager"]
        # Number of nodes that must be up before starting cluster
        role.manager.min-nr-of-members=4
        failure-detector.min-std-deviation = 1000 ms
        failure-detector.threshold = 50.0
        failure-detector.acceptable-heartbeat-pause = 900s
        use-dispatcher = akka.cluster.cluster-dispatcher
        singleton {
            singleton-name = "offsetmanager"
            hand-over-retry-interval = 1s
            min-number-of-hand-over-retries = 15
        }
        singleton-proxy {
            singleton-name = ${akka.cluster.singleton.singleton-name}
            singleton-identification-interval = 1s
            buffer-size = 1000
        }
        cluster-dispatcher {
            type = "Dispatcher"
            executor = "fork-join-executor"
            fork-join-executor {
                parallelism-min = 2
                parallelism-max = 4
            }
        }
    }
}

prio-dispatcher {
    mailbox-type = "com.griaulebiometrics.gbds.driver.mailbox.PriorityMailbox"
    type = "Dispatcher"
    executor = "default-executor"
    default-executor {
        fallback = "fork-join-executor"
    }
    fork-join-executor {
        parallelism-min = 8
        parallelism-factor = 1.0
        parallelism-max = 64
    }
}

akka-kryo-serialization {
    type = graph
    id-strategy = default
    resolve-subclasses = true
    implicit-registration-logging = false
    kryo-initializer = "com.griaulebiometrics.akka.utils.message.KryoInitializer"
}

Warning

É fortemente recomendado que não se altere nenhum parâmetro de configuração do Akka sem orientação adequada para evitar mau funcionamento da aplicação.

Se for necessário atualizar as configurações de seu ambiente, contate o suporte da griaule pelo e-mail support@griaule.com para mais informações.

2.1. loglevel

Esse parâmetro define o nível de informação que será mantido nos logs do sistema. Os valores devem ser definidos entre aspas duplas.

Valor Padrão:

"WARNING"

Valores Possíveis:

"OFF"

"ERROR"

"WARNING"

"INFO"

"DEBUG"

2.2. stdout-loglevel

Esse parâmetro define o nível de informação que será mantido pelo logger básico que é iniciado durante a inicialização do ActorSystem. Esse logger imprime a mensagem de log para stdout (System.out). Os valores devem ser definidos entre aspas duplas.

Valor Padrão:

"INFO"

Valores Possíveis:

"OFF"

"ERROR"

"WARNING"

"INFO"

"DEBUG"

2.3. loggers

Esse parâmetro define, entre colchetes, as entidades de logger que serão usadas para registro no tempo de boot.

Valor Padrão:

"akka.event.slf4j.Slf4jLogger"

2.4. logging-filter

Esse parâmetro define o filtro de eventos de log que será usado pelo LoggingAdaptar antes de publicar os eventos de log para o eventStream.

Valor Padrão:

"akka.event.slf4j.Slf4jLoggingFilter"

2.5. actor

2.5.1. guardian-supervisor-strategy

Esse parâmetro define a classe que será usada pelo guardião para obter seu supervisorStrategy

Valor Padrão:

"com.griaulebiometrics.gbds.driver.topology.GBDSGuardianSupervisionStrategy"

2.5.2. provider

Esse parâmetro define o ActorProvider que será usado.

Valor Padrão:

"cluster"

Valores Possíveis:

local

remote

cluster

2.5.3. serializers

Esse parâmetro define as entradas para os serializadores e suas ligações.

Os serializadores usados são:

kryo = io.altoo.akka.serialization.kryo.KryoSerializer proto = akka.remote.serialization.ProtobufSerializer

E sua ligação é:

"com.griaulebiometrics.akka.utils.message.KryoSerializableMessage" = kryo

2.6. remote

2.6.1. artery

Esse parâmetro define a configuração para o Artery baseada no driver de transporte.

Valores padrões:

transport = "tcp"

enabled = "on"

advanced.image-liveless-timeout = 20s

advanced.client-liveness-timeout = 10s

advanced.maximum-frame-size = 30MiB

advanced.buffer-pool-size = 128

advanced.maximum-large-frame-size = 100MiB

advanced.large-buffer-pool-size = 32

canonical.hostname = "gbds2"

canonical.port = 2551

2.7. cluster

2.7.1. seed-nodes

Esse parâmetro define os nós que se juntarão automaticamente na inicialização. Cada valor deve ser adicionado entre aspas duplas e separado por vírgulas dentro de colchetes.

Valor Exemplo:

["akka://main@<hostname1>:2551"]

2.7.2. roles

Esse parâmetro define as funções (roles) desse membro. Cada valor deve ser adicionado entre aspas duplas e separados por vírgulas dentro de colchetes.

Valor Padrão:

["manager"]

2.7.3. role.manager.min-nr-of-members

Esse parâmetro define o número mínimo de nós que devem estar ativos antes da inicialização do cluster.

Valor Padrão:

4

2.7.4. singleton

2.7.4.1. singleton-name

Esse parâmetro define o nome do ator do singleton filho.

Valor Padrão:

offsetmanager

2.7.4.2. hand-over-retry-interval

Quando um nó está começando a ser o mais velho, ele manda um pedido de repasse ao nó anteriormente mais velho, que deve estar saindo do cluster. Esse parâmetro define o tempo, em segundos, para tentar o reenvio do pedido até que o nó anteriormente mais velho confirme que o pedido de repasse começou ou que o membro anteriormente mais velho seja removido do cluster.

Valor Padrão:

1s

2.7.4.3. min-number-of-hand-over-retries

Esse parâmetro define o número mínimo de tentativas de reenviar o pedido de repasse para o nó anteriormente mais velho.

Valor Padrão:

15

2.7.5. singleton-proxy

2.7.5.1. singleton-name

Esse parâmetro define o nome do ator singleton que é inicializado pelo ClusterSingletonManager.

Valor Padrão:

${akka.cluster.singleton.singleton-name}

2.7.5.2. singleton-identification-interval

Esse parâmetro define o intervalo, em segundos, no qual o proxy tenta resolver a instância singleton.

Valor Padrão:

1s

2.7.5.3. buffer-size

Se a localização do singleton é desconhecida, o proxy irá armazenar a quantidade de mensagens definida nesse parâmetro em um buffer e as entregará quando o singleton for identificado. Quando o buffer estiver cheio, as mensagens mais antigas serão descartadas e as novas mensagens serão enviadas pelo proxy.

Valor Padrão:

1000

Valores Possíveis:

1 to 10000

3. Parâmetros de Configuração

Essa seção descreve cada um dos parâmetros de configuração dos GBDS3 que podem ser listados no arquivo de configuração e como eles afetam a operação do sistema.

3.1. gbds.log.diagnose

Adiciona logs à fila do Kafka a cada atividade de consumo.

Valor Padrão:

true

3.2. gbds.cluster.kafka.task.topic

Esse parâmetro define o tópico do Kafka onde as tarefas serão alocadas.

Valor Padrão:

gbds-tasks

3.3. gbds.cluster.kafka.max-tasks-per-poll

Número de tarefas realizadas no kafka em cada busca. O consumo de tarefas no kafka é feito pesquisando a fila, e a pesquisa recupera um certo número de registros a cada vez. Cada registro é uma tarefa no GBDS. Essa configuração limita quantos registros são feitos em cada poll.

Valor Padrão:

1

Valores Possíveis:

1 to 1000

3.4. gbds.cluster.zookeeper.quorum

Esse parâmetro define o hostname e a porta que os servers do zookeeper podem ser achados. Se mais de um valor estiver disponível, cada valor deve ser separado por vírgulas

Valor Padrão:

<hostname>:<port>

3.5. gbds.cluster.tasks.window-size-for-avoiding-duplicate-tasks

Esse parâmetro configura o tamanho da fila com as últimas “N” tarefas processadas/em processamento. Se uma tarefa for duplicada para processamento e ainda estiver na fila, ela é ignorada.

Valor Padrão:

1000

3.6. gbds.cluster.kafka.quorum

Esse parâmetro define o endereço do Kafka broker e deve refletir nas configurações do Kafka.

Valor Padrão:

<hostname>:6667

3.7. gbds.node.matchers.start.parameters

Esse parâmetro define as configurações iniciais para os node matchers quando a aplicação estiver iniciando.

Valor Padrão:

"-Dakka.remote.netty.tcp.port=0 -Dakka.cluster.roles.0=matcher -Dlog4j.configuration=file:/etc/griaule/conf/gbds/gbds-log4j.xml -XX:MaxMetaspaceSize=256m -Xmx1024m"

3.8. gbds.node.matchers.actor-system-start.timeout

Esse parâmetro define o timeout, em segundos, para inicializar cada ActorSystem remoto que irá rodar um matcher.

Valor Padrão:

30s

3.9. gbds.node.matchers.start.timeout

Esse parâmetro define o timeout, em segundos, para abrir um matcher no ActorSystem remoto.

Valor Padrão:

20s

3.10. gbds.node.matchers.number

Esse parâmetro define o número de matchers que será usado nesse nó do GBDS.

Caso os microsserviços de match estejam habilitados, 3 instâncias do microsserviço serão iniciadas para cada 1 definido nessa configuração.

Valor Padrão:

1

3.11. gbds.node.sinks.number

Esse parâmetro define o número de sinks que será usado nesse nó do GBDS.

Valor Padrão:

1

3.12. gbds.node.actor-start.timeout

Esse parâmetro define o timeout, em segundos, para inicialização de todos atores nesse nó do GBDS.

Valor Padrão:

60s

3.13. gbds.node.max-loaded-tasks

Esse parâmetro define o número máximo de tarefas que podem coexistir simultaneamente no GBDS. Quando esse número é alcançado, nenhuma tarefa será lida até alguma anterior ser enviada.

Valor Padrão:

100

Valores Possíveis:

1 a 20000

3.14. gbds.node.wait-time-when-maxed-tasks:

Esse parâmetro define o tempo para esperar antes de ler mais tarefas do Kafka.

Valor Padrão:

1s

Valores Possíveis:

0s a 5s

3.15. gbds.node.hbase-template-loaders.number

Esse parâmetro define o número de template loaders do HBase.

Valor Padrão::

1

3.16. gbds.node.rdb-template-loaders.number

Esse parâmetro define o número de template loaders do RDB.

Valor Padrão::

1

3.17. gbds.biometric.fingerprint.cab.skip-non-cab

Esse parâmetro é uma flag para ignorar templates não-cab.

Valor Padrão::

true

3.18. gbds.matchers.metrics.enabled

Esse parâmetro habilita as métricas de matcher.

Valor Padrão::

true

3.19. gbds.biometric.face.identify.enabled

Esse parâmetro habilita a operação de identificação para faces.

Valor Padrão::

true

3.20. gbds.biometric.face.enroll.enabled

Esse parâmetro habilita cadastro de faces.

Valor Padrão::

true

3.21. gbds.biometric.fingerprint.cab.search-without-cab

Esse parâmetro é uma flag para realizar procuras sem cab.

Valor Padrão::

false

3.22. gbds.fingerprint.post-matching.enabled

Esse parâmetro habilita o post matching para digitais.

Valor Padrão::

true

3.23. gbds.face.post-matching.enabled

Esse parâmetro habilita o post matching para face.

Valor Padrão::

true

3.24. gbds.cluster.quorum.quorum-check-delay

Esse parâmetro define o atraso, em segundos, para realizar a decisão de “Desligar[1] um membro do cluster que esteja inalcançável ou removido.

[1]Desligar, neste caso, se refere a marcar o nó como inacessível, de forma que o restante do sistema adapte seu funcionamento para o caso com um nó a menos.

O contador de atraso inicia e reinicia sempre que houver mudanças nos estados dos membros do cluster.

Valor Padrão:

5s

3.25. gbds.boot.completed-message-ack.timeout

Esse parâmetro define o quão longo, em segundos, o ator de inicialização (boot), aguardará o recebimento de um ack para a CompletedBootMessage de um NodeManager

Se o ack não for recebido, a mensagem será reenviada.

Valor Padrão:

3s

3.26. gbds.boot.people.node-nr-scanners

Número de atores de varredura paralela que varrerão pessoas registradas durante a inicialização do sistema em cada nó.

Valor Padrão:

1

3.27. gbds.boot.shuffler-message-ack.timeout

Quanto tempo o ator do shuffler esperará por um acknowledge. Caso o acknowledge não seja recebido, a mensagem será reenviada.

Valor Padrão:

90s

3.28. gbds.boot.scan.ignoreErrorsOnRegion

Determina se regiões do HBase com falha devem ser ignoradas durante o boot.

Valor Padrão:

true

Valores Possíveis:

true

false

3.29. gbds.boot.scan.ignoreErrorsOnRegion.maxTries

Define o número máximo de tentativas antes de ignorar uma região com falha no boot.

Valor Padrão:

5

3.30. gbds.boot.scan.maxRowsPerNode

Usando esta configuração, o GBDS irá parar o scan de pessoas em um nó assim que alcançar este número de linhas.

Valor Padrão:

0

3.31. gbds.boot.scan-delayer.rows

Define o número de linhas a serem escaneadas antes do delay.

Valor Padrão:

0

3.32. gbds.boot.scan-delayer.secs

Define o tempo de delay para aguardar a cada bloco de linhas escaneado.

Valor Padrão:

0

3.33. gbds.ul.boot.scan.enabled

Define se o boot de UL deve ser ignorado.

Valor Padrão:

true

Valores Possíveis:

true

false

3.34. gbds.boot.scan.ignoreErrorsOnRegion

Define se regiões ruins devem ser ignoradas durante o boot de UL.

Valor Padrão:

true

Valores Possíveis:

true

false

3.35. gbds.boot.matcher.creation.sleepTime.ms

Define o tempo de sleep entre a criação dos matchers.

Valor Padrão:

500

Valor Mínimo:

0

Valor Máximo:

30000

3.36. gbds.biometric.fingerprint.enabled

Esse parâmetro é usado para determinar se a digital é o objeto de busca prioritário.

Valor Padrão:

true

Valores Possíveis:

true

false

3.37. gbds.biometric.fingerprint.exception.enabled

Esse parâmetro define se as digitais devem ser consideradas na geração de exceções de cadastro (enrollment).

Valor Padrão:

true

Valores Possíveis:

true

false

3.38. gbds.biometric.fingerprint.identify.threshold

Esse parâmetro define a pontuação mínima de coincidências para uma comparação de digitais ser considerada um casamento (match) durante a operação de busca.

Valor Padrão:

30

3.39. gbds.biometric.fingerprint.exception.threshold

Esse parâmetro define a pontuação mínima de coincidência para uma comparação de digitais ser considerada um casamento (match) durante a operação de cadastro, gerando uma exceção.

Valor Padrão:

40

3.40. gbds.biometric.fingerprint.exception.enroll.min-matches-for-exception

Esse parâmetro define o número mínimo de casamentos entre dedos necessário para gerar uma exceção durante uma operação de cadastro.

Valor Padrão:

2

3.41. gbds.biometric.fingerprint.cab.identify.threshold

Esse parâmetro define o limiar para casamentos usando a análise de CAB. Esse parâmetro não é usado se a verificação de CAB não está habilitada.

Valor Padrão:

5

3.42. gbds.biometric.fingerprint.latent.threshold

Esse parâmetro define a pontuação mínima para considerar uma busca de latente um casamento.

Valor Padrão:

10

3.43. gbds.biometric.fingerprint.identify.index.delta-zero

Esse parâmetro define o índice de configuração para Delta Zero. Os coeficientes Delta são usados para otimizar buscas.

Valor Padrão:

-1 (desabilitado)

3.44. gbds.biometric.fingerprint.identify.index.delta-one

Esse parâmetro define a o índice de configuração de Delta Um. Os coeficientes Delta são usados para otimizar buscas.

Valor Padrão:

-1 (desabilitado)

3.45. gbds.latent.candidates.max-number

Esse parâmetro define o tamanho máximo da lista de candidatos retornada em buscas de latentes.

Valor Padrão:

1000

3.46. gbds.biometric.palmprint.enabled

Esse parâmetro é usado para determinar se impressões palmares são objetos de busca primária.

Valor Padrão:

false

Valores Possíveis:

true

false

3.47. gbds.biometric.palmprint.exception.enabled

Esse parâmetro define se impressões palmares devem ser consideradas para gerar exceções de cadastro (enroll).

Valor Padrão:

false

Valores Possíveis:

true

false

3.48. gbds.biometric.palmprint.interdigital.identify.threshold

Esse parâmetro define a pontuação mínima de coincidência para a comparação entre interdigitais de palmar ser considerada um casamento durante operações de busca.

Valor Padrão:

70

3.49. gbds.biometric.palmprint.thenar.identify.threshold

Esse parâmetro define a pontuação mínima de coincidência para a comparação entre tenares de palmar ser considerada um casamento durante operações de busca.

Valor Padrão:

70

3.50. gbds.biometric.palmprint.hypothenar.identify.threshold

Esse parâmetro define a pontuação mínima de coincidência para a comparação entre hipotenares de palmar ser considerada um casamento durante operações de busca.

Valor Padrão:

70

3.51. gbds.biometric.face.enabled

Esse parâmetro é usado para determinar se faces são usadas como objetos primários de busca.

Valor Padrão:

false

Valores Possíveis:

true

false

3.52. gbds.biometric.face.exception.enabled

Esse parâmetro define se imagens faciais devem ser consideradas na geração de exceções de cadastro (enroll).

Valor Padrão:

false

Valores Possíveis:

true

false

3.53. gbds.biometric.face.identify.threshold

Esse parâmetro define a pontuação mínima de coincidência para a comparação entre faces ser considera um casamento durante uma operação de busca.

Valor Padrão:

60

3.54. gbds.biometric.face.exception.threshold

Esse parâmetro define o limiar que será usado quando comparando biometrias faciais durante a operação de identificação. Definir um valor alto para esse parâmetro pode, possivelmente, aumentar o número de ocorrências de falso negativo.

Valor Padrão:

60

3.55. gbds.biometric.face.exception.minimum.coincident-fingers.ignore.face

Esse parâmetro define o número mínimo de dedos coincidentes necessário para descartar o resultado da comparação de face na geração de uma exceção de cadastro (enroll).

Valor Padrão:

4

3.56. gbds.biometric.face.template.format

Define o formato do template para face.

Os valores possíveis são: TPT_FORMAT_1 ou TPT_FORMAT_2.

Important

Os formatos de face não são intercambiáveis. Faces que tiveram enroll feito em um formato não darão match com faces feitas em outro formato.

Danger

O valor dessa configuração deve ser o mesmo nos arquivos application.conf e gbdsapi.properties

3.57. gbds.biometric.iris.enabled

Esse parâmetro é usado para determinar se a íris é definida como objeto primário de busca.

Valor Padrão:

false

Valores Possíveis:

true

false

3.58. gbds.biometric.iris.exception.enabled

Esse parâmetro define se a íris deve ser considera na geração de exceções de cadastro (enroll).

Valor Padrão:

false

Valores Possíveis:

true

false

3.59. gbds.biometric.iris.exception.threshold

Esse parâmetro define a pontuação mínima de coincidência para uma comparação de íris ser considerada um casamento durante uma operação de cadastro, gerando uma exceção.

Valor Padrão:

62

3.60. gbds.biometric.iris.identify.threshold

Esse parâmetro define a pontuação mínima de coincidência para uma comparação de íris ser considerada um casamento durante uma operação de busca.

Valor Padrão:

62

3.61. gbds.latent.reverse-latent-match.enabled

Esse parâmetro define se o cadastro e busca de latentes não resolvidas estão habilitados. É usado para aplicações forenses.

Valor Padrão:

false

Valores Possíveis:

true

false

3.62. gbds.latent.fingerprint.identify.threshold

Esse parâmetro define a pontuação mínima para considerar uma busca de impressão digital latente como casamento.

Valor Padrão:

12

3.63. gbds.latent.additional-search.enabled

Esse parâmetro define se buscas adicionais estão ativas para busca de latentes. Buscas adicionais realizarão uma comparação adicional para pares coincidentes entre um limiar definido.

Valor Padrão:

false

Valores Possíveis:

true

false

3.64. gbds.latent.additional-search.fingerprint.execution-lower-bound

Esse parâmetro define a pontuação mínima de coincidência para a qual buscas adicionais devem ser feitas.

Valor Padrão:

15

3.65. gbds.latent.additional-search.fingerprint.execution-upper-bound

Esse parâmetro define a pontuação máxima para a qual buscas adicionais devem ser feitas.

Valor Padrão:

120

3.66. gbds.latent.primary-classification.enabled

Esse parâmetro define se classificações primárias devem ser utilizadas para buscas de latentes.

Valor Padrão:

false

Valores Possíveis:

true

false

3.67. gbds.latent.primary-classification.same-class.fingerprint.threshold

Esse parâmetro define o limiar mínimo para comparar digitais da mesma classe e considerar um casamento durante buscas de latentes.

Valor Padrão:

15

3.68. gbds.latent.primary-classification.different-class.fingerprint.threshold

Esse parâmetro define o limiar mínimo para considerar um casamento entre classes diferentes de dedos durante buscas de latentes.

Valor Padrão:

40

3.69. gbds.latent.primary-classification.unknown-class.should-use-different-class-threshold

Esse parâmetro define se o limiar de coincidência de uma classe diferente deve ser usado para busca de latentes quando há uma classificação primária desconhecida.

Valor Padrão:

true

Valores Possíveis:

true

false

3.70. gbds.latent.ul.fingerprint.identify.threshold

Esse parâmetro define o limiar padrão para busca de latentes não resolvidas.

Valor Padrão:

4

3.71. gbds.latent.ul.palmprint.identify.threshold

Esse parâmetro define o limiar padrão para busca de latentes palmares não resolvidas.

Valor Padrão:

4

3.72. gbds.latent.postmatching.enabled

Esse parâmetro define se o postmatching está ativo para buscas reversas de latente, buscas regulares de latente e buscas contra latentes não resolvidas já registradas.

Valor Padrão:

false

Valores Possíveis:

true

false

3.73. gbds.rdb.driverClassName

Esse parâmetro define o nome de classe para o banco de dados relacional que será usado para armazenar as latentes não resolvidas. Esse valor deve ser definido entre aspas duplas.

Valor Padrão:

"com.mysql.jdbc.Driver"

3.74. gbds.rdb.url

Esse parâmetro define a URL do banco de dados relacional a ser acessado. Esse valor deve ser definido entre aspas duplas.

Valor Padrão:

"jdbc:mysql://<address>:<port>/gbds"

3.75. gbds.rdb.username

Esse parâmetro define o usuário a ser usado no banco de dados relacional. Esse valor deve ser definido entre aspas duplas.

Valor Padrão:

"root"

3.76. gbds.rdb.password

Esse valor define a senha a ser usada para acessar o banco de dados relacional. Esse valor deve ser definido entre aspas duplas.

3.77. gbds.rdb.dialect

Esse parâmetro define o dialeto a ser usado no banco de dados relacional. Esse valor deve ser definido entre aspas duplas.

Valor Padrão:

"org.hibernate.dialect.MySQLDialect"

3.78. gbds.rdb.showSql

Esse parâmetro define se as declarações do SQL devem ser incluídas nos logs da aplicação.

Valor Padrão:

true

Valores Possíveis:

true

false

3.79. gbds.rdb.maxPoolSize

Esse parâmetro define o número máximo de conexões que uma pool irá manter.

Valor Padrão:

100

3.80. gbds.rdb.minPoolSize

Esse parâmetro define o número mínimo de conexões que uma pool irá manter.

Valor Padrão:

1

3.81. gbds.rdb.initialPoolSize

Esse parâmetro define o número de conexões que uma pool tentará adquirir na inicialização. Esse valor deve ser um valor entre gbds.rdb.minPoolSize e gbds.rdb.maxPoolSize.

Valor Padrão:

2

3.82. gbds.rdb.maxStatments

Esse parâmetro define o tamanho do cache global do PreparedStatement do c3p0. Se tanto o gbds.rdb.maxStatments e o gbds.rdb.maxStatementsPerConnection forem zero, o statement caching não será habilitado. Se o gbds.rdb.maxStatments for zero, mas gbds.rdb.maxStatementsPerConnection for diferente de zero, o statement caching será habilitado, mas nenhum limite global será forçado, apenas o máximo por conexão.

Esse parâmetro controla o número total de statements em cache para todas conexões. Se maior que zero, deve ser um número significativamente grande, pois cada conexão em pool requer seu próprio conjunto distinto de statements em cache. Como um guia, considere quantos PreparedStatements distintos são usados frequentemente em sua aplicação, então multiplique esse número por gbds.rdb.maxPoolSize para chegar a um valor apropriado.

Valor Padrão:

0

3.83. gbds.rdb.maxIdleTime

Esse parâmetro define, em segundos, quanto tempo a conexão pode ser agrupada, mas não utilizada antes de ser descartada. Zero significa que as conexões inativas nunca expiram.

Valor Padrão:

1800

3.84. gbds.rdb.maxConnectionAge

Esse parâmetro define, em segundos, o tempo de vida de uma conexão. Uma conexão anterior a gbds.rdb.maxConnectionAge será destruída e removida do pool. Isso difere de gbds.rdb.maxIdleTime porque se refere à idade absoluta. Mesmo uma conexão que não esteve muito ociosa será removida do pool se exceder gbds.rdb.maxConnectionAge. Zero significa que nenhuma idade máxima absoluta é aplicada.

Valor Padrão:

1800

3.85. gbds.rdb.statementCacheNumDeferredCloseThreads

Se configurado com um valor maior que 0, o statement cache rastreará quando as conexões estiverem em uso e apenas destruirá os statements quando suas Conexões-pai não estiverem em uso. Embora o fechamento de um statement enquanto a conexão-pai está em uso esteja formalmente dentro das especificações, alguns bancos de dados e/ou drivers JDBC, mais notavelmente Oracle, não lidam bem com o caso e congelam, levando a deadlocks. Definir este parâmetro com um valor positivo deve eliminar o problema. Este parâmetro só deve ser definido se você observar que as tentativas de c3p0 para fechar (close()) os statements armazenadas em cache congelam (normalmente, você verá DEADLOCKS APARENTES em seus logs). Se definido, este parâmetro deve quase sempre ser definido como 1.

Valor Padrão:

1

3.86. gbds.rdb.acquireIncrement

Determina quantas conexões por vez c3p0 tentará adquirir quando o pool se esgotar.

Valor Padrão:

10

3.87. gbds.rdb.testConnectionOnCheckout

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

Valor Padrão:

false

3.88. gbds.rdb.testConnectionOnCheckin

Se true, uma operação será executada de forma assíncrona em cada entrada de conexão para verificar se a conexão é válida. Use em combinação com gbds.rdb.idleConnectionTestPeriod para um teste de conexão sempre assíncrono e bastante confiável.

Valor Padrão:

true

3.89. gbds.rdb.acquireRetryAttempts

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

Valor Padrão:

10

3.90. gbds.rdb.idleConnectionTestPeriod

Se esse número for maior que 0, c3p0 irá testar todas as conexões ociosas, na pool, mas não verificadas, a cada quantidade de segundos definida nesse parâmetro.

Valor Padrão:

30

3.91. gbds.biometric.newborn-palmprint.enabled

Esse parâmetro é usado para determinar se a palmar de recém-nascidos é o objeto de busca prioritário.

Valor Padrão:

false

3.92. gbds.biometric.newborn-palmprint.exception.enabled

Esse parâmetro define se a palmar de recém-nascidos deve ser considerada na geração de exceções de cadastro (enrollment).

Valor Padrão:

false

3.93. gbds.biometric.newborn-palmprint.identify.threshold

Esse parâmetro define a pontuação mínima de coincidências para uma comparação de palmar de recém-nascidos ser considerada um casamento (match) durante a operação de busca.

Valor Padrão:

50

3.94. gbds.cluster.recovery.qtd.scanners

Número de scanner para recuperação de cluster.

Valor Padrão::

5

3.95. gbds.cluster.recovery.qtd.getters

Número de getters para recuperação de cluster. Esse parâmetro não é mais usado na versão 3.2x ou acima.

Valor Padrão::

2

3.96. gbds.cluster.recovery.shuffler.block.window.size

Número do tamanho da janela do bloco do shuffler (tamanho do buffer do shuffler) para recuperação do cluster.

Valor Padrão::

100

3.97. gbds.router.virtual-nodes.number

Esse parâmetro define o número de nodos virtuais.

Valor Padrão::

100

3.98. gbds.biometric.best-of-biometrics.enabled

Esse parâmetro habilita o best-of-biometrics. Quando habilitado, o conjunto de biometrias da pessoa é a consolidação das melhores biometrias obtidas de todas as transações da pessoa ao longo do tempo.

Warning

Essa flag DEVE ter o mesmo valor nas configurações do GBDS e da API do GBDS.

Valor Padrão:

false

3.99. gbds.biometric.remove-inactive-people-from-enroll-result

Este parâmetro define se perfis inativos devem ser removidos dos resultados de enroll.

Valor Padrão:

false

3.100. gbds.transparency.search.identify.result.notify.enabled

Este parâmetro habilita o serviço de notificação por email, que envia as notificações de resultados de pesquisa com pessoas de interesse.

Valor Padrão:

false

3.101. gbds.searches.verify.saveOnRdb.enabled

Define se a operação de verificação será salva na tabela gbds.transaction do RDB.

Valor Padrão:

true

Danger

Esse valor deve ser o mesmo no application.conf e no gbdsapi.properties

3.102. gbds.searches.identify.saveOnRdb.enabled

Define se a operação de identificação será salva na tabela gbds.transaction do RDB.

Valor Padrão:

true

Danger

Esse valor deve ser o mesmo no application.conf e no gbdsapi.properties

3.103. gbds.monitor.port

Define a porta em que será executado o GBDS Monitor.

Valor Padrão:

9100

3.104. gbds.memory-monitor

Adiciona aos logs o uso de memória da JVM a cada 10 segundos.

Valor Padrão:

false

3.105. gbds.watchdog.interval

Define, em minutos, o intervalo de tempo para os logs de watchdog.

Valor Padrão:

1

Valor Máximo:

60

3.106. gbds.watchdog.log.mode

Define o modo de log do watchdog.

Valor Padrão:

TGUID_MATCHER_MAP

Valores Possíveis:

TGUID_MATCHER_MAP MATCHER_TGUID_MAP

3.107. gbds.watchdog.log.level

Define o level de log do watchdog.

Valor Padrão:

DEBUG

Valores Possíveis:

DEBUG INFO

3.108. gbds.verifyPostMatch.enabled

Liga ou desliga a verificação pós-match em transações de cadastro com exceções.

Valor Padrão:

true

Valores Possíveis:

true, false

3.109. gbds.search.verify.adjust-resolution

Quando essa configuração está ativada, verificações e atualizações na API e a verificação pós-match no GBDS ajustarão a resolução realizando uma verificação de correspondência, diminuindo a pontuação em dedos e palmas.

Valor Padrão:

true

Valores Possíveis:

true, false

3.110. gbscluster.update.consider.fingerprints

Esse parâmetro define se digitais devem ser consideradas ao gerar exceções de atualização.

Valor Padrão:

true

Possible values:

true, false

3.111. gbscluster.update.consider.faces

Esse parâmetro define se imagens de face devem ser consideradas ao gerar exceções de atualização.

Valor Padrão:

false

Possible values:

true, false

3.112. gbscluster.update.faces.verify.matchthreshold

Esse parâmetro define o limiar a ser usado durante a comparação de biometrias faciais em operações de busca. Definir um valor alto para esse parâmetro pode, possivelmente, resultar em um aumento de ocorrências de falsos negativos.

Valor Padrão:

60

3.113. gbscluster.update.minimum.fingers

Esse parâmetro define o número mínimo de casamentos entre dedos necessário para uma operação de “atualização” ser aceita.

Valor Padrão:

4

4. Configuração do Serializador de Templates

Essa seção descreve os parâmetros de configuração relacionados ao serializador de templates. Esses parâmetros de configuração são projetados para permitir o uso do GBDS Batch Extractor.

See also

Veja o manual do GBDS Batch Extractor para informações adicionais sobre seu uso.

Sempre que o GBDS realizar uma operação de cold boot, ele tentará recuperar os templates de uma família de colunas padrão. Se o template não existir nessa coluna, o GBDS tentará recuperá-lo da família de colunas de reserva.

Os parâmetros de configuração do serializador são:

4.1. Família de Colunas Padrão

Esses parâmetros são divididos por modalidades biométricas. Os templates nessa família de colunas não possuem codificação e o formato usado é de byteArray.

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 é tpt.

4.2. Família de Colunas Reserva

Esses parâmetros referem-se às famílias de colunas anteriormente usadas para armazenar os templates biométricos. São 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 as famílias de colunas usadas antes da mudança desses parâmetros, e são, respectivamente: fingerprints, palmprints, faces e iris.

4.3. Codificação Reserva em base64

A família de colunas reserva suporta codificação. Os parâmetros a seguir definem se a família de colunas é codificada em base64:

gbds.hbase.templates.fallback.fingerprint.cf.is-base64-encoded
gbds.hbase.templates.fallback.palmprint.cf.is-base64-encoded
gbds.hbase.templates.fallback.face.cf.is-base64-encoded
gbds.hbase.templates.fallback.iris.cf.is-base64-encoded
gbds.hbase.templates.fallback.newborn-palmprint.cf.is-base64-encoded

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

4.4. gbds.template.memory.format

Define como o GBDS irá armazenas os templates na memória e nos matchers.

As opções são:

  • DESERIALIZED_FULL: Opção padrão. Os templates são armazenados deserializados com minúcias e segmentações.
  • SERIALIZED_MINUTIAE_SEGMENTS: Os templates são armazenados deserializados com minúcias e segmentações.
  • SERIALIZED_MINUTIAE: Os templates são armazenados serializados somente com minúcias. As segmentações sãO re-extraídas do template a cada busca feita. Essa opção aumenta o tempo de procuras 1:N.
  • OPTIMIZED: Usa um novo formato otimizado de template para reduzir degradação de desempenho ao longo do tempo em buscas.

4.5. Pré-alocação de memória

Define a quantidade de memória pré-alocada para cada modalidade.

gbds.fingerprint.memory-storage.pre-aloc
gbds.palmprint.memory-storage.pre-aloc
gbds.newborn-palmprint.memory-storage.pre-aloc
gbds.ul-fingerprint.memory-storage.pre-aloc
gbds.ul-palmprint.memory-storage.pre-aloc

O valor padrão para cada configuração é 0. O sistema entende Kilobytes (k, kb), Megabytes (m, mb) e Gigabytes (g, gb), sem distinção de maiúsculas de minúsculas. O valor é dividido igualmente entre todos os matchers do nó.

Note

Face e íris não podem ser pré-alocadas.

4.6. Microsserviços de Match

Esta seção apresenta os parâmetros de configuração referentes aos microsserviços de match.

A configuração dos microsserviços é única para cada nó do cluster.

4.6.1. gbds.match.service.enabled

Define se o microsserviço de match está habilitado.

Valor Padrão:

false

Valores Possíveis:

true

false

4.6.2. gbds.match.service.initialPort

Define a porta inicial para iniciar os serviços de match no nó.

Valor Padrão:

32000

4.6.3. gbds.match.service.logLevel

Define o nível de log do serviço de match no GBDS. Os diferentes níveis de log são:

NONE
Não gera logs sobre o serviço
INFO
Loga os scripts e as URLs de request
TIME
Loga os scripts, as URLs de request e o tempo de execução
DEBUG
Loga todas as informações do serviço

Valor Padrão:

NONE

Valores Possíveis

INFO

TIME

DEBUG

4.6.4. gbds.match.service.timeout

Define o timeout máximo para requests ao microsserviço de match, em milissegundos.

Valor Padrão:

10000

4.6.5. gbds.match.service.templateSend.parallelByModality

Habilita o processamento paralelo por modalidade biométrica no GBDS.

Valor Padrão:

true

Valores Possíveis:

true

false

4.6.6. gbds.match.service.linkLibSegfault

Este parâmetro habilita o rastreamento de falhas de segmentação no microsserviço de match.

Valor Padrão:

false

Valores Possíveis:

true

false

4.6.7. gbds.match.service.maxTries

Quando um microsserviço de match tem um erro de conexão, tenta 3 vezes antes de falhar a transação, esperando 2s entre as tentativas.

Valor Padrão:

3

4.6.8. gbds.match.service.maxConnectionErrors

Quando um microsserviço de match tem 5 transações com erro de conexão seguidas, para o GBDS para prevenir falhas em todas as transações a partir desse ponto.

Valor Padrão:

5

4.6.9. gbds.match.service.checkTimeoutSecs

Timeout (em segundos) para verificar se o microsserviço de match foi criado.

Valor Padrão:

10