Configuración de Migración

Archivo de Configuración

Los parámetros de configuración de la migración del GBDS se definen en un archivo de configuración, que contiene todos los parámetros y sus respectivos valores. Los parámetros omitidos asumen sus valores predeterminados. Esta sección describe las propiedades del archivo de configuración.

Ubicación del archivo

El archivo de configuración es /etc/griaule/conf/gbds-migration/gbds-migration.properties.

Propiedades del archivo

El archivo de configuración debe cumplir algunos requisitos para ser interpretado correctamente por el GBDS. Estos requisitos son:

  1. El nombre y la ubicación del archivo deben ser exactamente como se mencionan;

  2. Debe haber exactamente un parámetro de configuración por línea;

  3. Cada parámetro de configuración debe estar en el formato <parameter>=<value>, sin saltos de línea;

  4. Cada valor debe estar separado por una coma cuando se asigna a un solo parámetro.

Parámetros de configuración

Esta sección describe cada parámetro de configuración de migración del GBDS que puede listarse en el archivo de configuración y cómo afectan la operación del sistema.

General

gbscluster.zookeeper.quorum

Define el nombre del host y el puerto por los que se pueden encontrar los servidores de Zookeeper. Cada valor debe estar separado por comas si hay más de uno disponible.

Valor predeterminado:

<hostname>:<port>

Conexión RDB

gbds.rbd.driverClassName

Define el nombre de la clase para la base de datos relacional que se usará para almacenar latentes no resueltos.

Valor predeterminado:

com.mysql.jdbc.Driver

gbds.rdb.url

Define la URL de la base de datos relacional a la que se accederá.

Valor predeterminado:

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

gbds.rdb.username

Define el nombre de usuario que se usará para acceder a la base de datos relacional.

Valor predeterminado:

<rdb-username>

gbds.rdb.password

Define la contraseña que se usará para acceder a la base de datos relacional.

Valor predeterminado:

<rdb-base64-password>

gbds.rdb.dialect

Define el dialecto que se usará en la base de datos relacional.

Valor predeterminado:

org.hibernate.dialect.MySQLDialect

gbds.rdb.showSql

Define si las sentencias SQL deben incluirse en los registros de la aplicación.

Valor predeterminado:

false

Valores posibles:

  • true

  • false

gbds.rdb.maxPoolSize

Número máximo de conexiones que un pool mantendrá en cualquier momento.

Valor predeterminado:

100

gbds.rdb.minPoolSize

Número mínimo de conexiones que un pool mantendrá en un momento determinado.

Valor predeterminado:

1

gbds.rdb.initialPoolSize

Número de conexiones que un pool intentará adquirir al iniciar. Este valor debe estar en el rango de gbds.rdb.minPoolSize a gbds.rdb.maxPoolSize.

Valor predeterminado:

2

gbds.rdb.maxStatments

Define el tamaño del caché global de PreparedStatement de c3p0. Si gbds.rdb.maxStatmentses cero, el caché de sentencias no se habilitará.

Este parámetro controla el número total de sentencias almacenadas en caché para todas las conexiones. Si se establece, debe ser un número bastante grande, ya que cada conexión agrupada requiere su propio conjunto distinto de sentencias en caché. Como guía, considere cuántos PreparedStatements distintos se usan con frecuencia en su aplicación y multiplique ese número por gbds.rdb.maxPoolSizepara llegar a un valor apropiado.

Valor predeterminado:

0

gbds.rdb.maxIdleTime

Define, en segundos, el tiempo que una conexión puede permanecer en el pool sin uso antes de ser descartada. Cero significa que las conexiones inactivas nunca expiran.

Valor predeterminado:

1800

gbds.rdb.maxConnectionAge

Define, en segundos, el tiempo máximo de vida de una conexión. Una conexión con más de 10 años gbds.rdb.maxConnectionAgeserá destruida y eliminada del pool. Esto difiere de 10 años, gbds.rdb.maxIdleTimeya que se refiere a la edad absoluta. Incluso una conexión que no haya estado mucho tiempo inactiva será eliminada del pool si excede 10 años gbds.rdb.maxConnectionAge. Cero significa que no se aplica una edad absoluta máxima.

Valor predeterminado:

1800

gbds.rdb.statementCacheNumDeferredCloseThreads

Si se establece en un valor mayor que 0, el caché de sentencias hará un seguimiento de cuando las Conexiones están en uso y destruirá las Sentencias solamente cuando sus Conexiones padre no estén en uso. Aunque cerrar una Sentencia mientras la Conexión padre está en uso está formalmente dentro de las especificaciones, algunas bases de datos y/o controladores JDBC, principalmente Oracle, no manejan bien este caso y se congelan, lo que lleva a interbloqueos. Establecer este parámetro en un valor positivo debería eliminar el problema. Este parámetro solo debe establecerse si observa que los intentos de c3p0 de close() las sentencias en caché se congelan (por lo general, verá APPARENT DEADLOCKS en sus registros). Si se establece, este parámetro casi siempre debe fijarse en 1.

Valor predeterminado:

1

gbds.rdb.acquireIncrement

Determina cuántas conexiones a la vez intentará adquirir c3p0 cuando el pool esté agotado.

Valor predeterminado:

10

gbds.rdb.testConnectionOnCheckout

Si es verdadero, se ejecutará una operación en cada verificación de conexión para comprobar si la conexión es válida. Probar conexiones en la verificación es la forma más simple y confiable de probar conexiones, pero para mejor rendimiento, considere verificar las conexiones periódicamente usando gbds.rdb.idleConnectionTestPeriod.

Valor predeterminado:

false

gbds.rdb.testConnectionOnCheckin

Si es verdadero, se ejecutará una operación de forma asíncrona en cada verificación de conexión para comprobar si la conexión es válida. Úselo en combinación con gbds.rdb.idleConnectionTestPeriodpara pruebas de conexión bastante fiables y siempre asíncronas.

Valor predeterminado:

true

Valores posibles:

  • true

  • false

gbds.rdb.acquireRetryAttempts

Define cuántas veces c3p0 intentará obtener una nueva conexión de la base de datos antes de rendirse. Si este valor es menor o igual a cero, c3p0 continuará intentando obtener una conexión indefinidamente.

Valor predeterminado:

10

gbds.rdb.idleConnectionTestPeriod

Si este es un número mayor que 0, c3p0 probará todas las conexiones inactivas, agrupadas, pero no verificadas, cada este número de segundos.

Valor predeterminado:

30

Familias de columnas HBase

Familia de columnas predeterminada

Estos parámetros están divididos por modalidad biométrica. Son familias de columnas usadas para operaciones de lectura de plantillas.

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

El valor predeterminado para estos parámetros es tpts.

Familia de columnas de respaldo

Estos parámetros se refieren a la familia de columnas usada anteriormente para almacenar las plantillas biométricas, separadas por modalidad 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

Los valores predeterminados representan la familia de columnas usada antes de cambiar estos parámetros y son, respectivamente: fingerprints, palmprints, faces, iris, newborn-palmprints.

Reextractor GBDS

General

gbds.reextract.nodeNumber

Número de nodos ejecutando el Reextractor. Determina el rango de escaneo en HBase basado en el total de nodos.

Valor predeterminado:

1

Valor mínimo:

1

Valor máximo:

Valor degbds.reextract.totalNodes

gbds.reextract.totalNodes

Total de nodos ejecutando el Reextractor.

Valor predeterminado:

1

gbds.reextract.totalScanRegions

Número total de regiones para dividir los escaneos.

Valor predeterminado:

256(regiones 00-FF)

gbds.reextract.scanners.number

Número de scanners. Un scanner escanea desde HBase un rango basado en gbds.reextract.nodeNumber, gbds.reextract.totalNodes, y gbds.reextract.totalScanRegions.

Valor predeterminado:

5

gbds.reextract.workers.number

Número de workers. Un worker mantiene una extracción de plantilla por transacción.

Valor predeterminado:

5

gbds.reextract.writers.number

Número de writers. Un writer obtiene el resultado de la extracción y vuelve a escribir en la transacción y en las personas, si es necesario.

Valor predeterminado:

5

gbds.reextract.range

Configuración de rango externo. Limita el rango automático.

  • El rango puede ser un hexadecimal de 2 caracteres (como 00o A3) o un rango hexadecimal de 2 caracteres (como 00-01o 4A-50).

  • Siempre 2 caracteres hexadecimales.

  • Si está ausente, el GBS Reextractor ejecutará la partición automática como de costumbre.

gbds.reextract.validate.extraction

Indicador para validar plantillas reextraídas creadas anteriormente.

  • En cada transacción:

    • Cuando se seleccione para extraer, el GBS Reextractor no la validará.

    • Cuando se haya extraído antes, pero no validada, el GBS Reextractor la validará.

    • Cuando sea extraída y validada, el GBS Reextractor la ignorará.

    • La validación se guarda en HBase en la columna transaction:<cf>-validated.

  • Para garantizar que una transacción se valide en una llamada después de la extracción, recuerde borrar el archivo SQLite o configurar gbds.reextract.sqlite.resetOnStart=true . De lo contrario, todo el rango al que pertenece la transacción será ignorado.

De este modo, la reextracción y la validación pueden realizarse en diferentes llamadas del GBS Reextractor, dando tiempo para que HBase escriba y consolide plantillas en la transactionstabla.

Valor predeterminado:

true

Valores posibles:

  • true

  • false

Cola de Pipeline

gbds.reextract.workers.inqueueMaxSize

Tamaño de la cola del scanner para el worker. Cuanto mayor sea el tamaño, más escaneos se realizan y mantienen en los workers, pero se asigna más memoria.

Valor predeterminado:

100

gbds.reextract.writers.inqueueMaxSize

Tamaño de la cola del worker para el writer. Cuanto mayor sea el tamaño, más escaneos se realizan y mantienen en los writers, pero se asigna más memoria.

Valor predeterminado:

100

Modalidad para Flags de Reextracción

gbds.reextract.modality.finger

Determina si los dedos deben reextraerse.

Valor predeterminado:

true

Valores posibles:

  • true

  • false

gbds.reextract.modality.face

Determina si las caras deben reextraerse.

Valor predeterminado:

true

Valores posibles:

  • true

  • false

gbds.reextract.modality.palm

Determina si las palmas deben reextraerse.

Valor predeterminado:

false

Valores posibles:

  • true

  • false

gbds.reextract.modality.iris

Determina si los iris deben reextraerse.

Valor predeterminado:

false

Valores posibles:

  • true

  • false

gbds.reextract.modality.newborn-palm

Determina si las palmas de recién nacidos deben reextraerse.

Valor predeterminado:

false

Valores posibles:

  • true

  • false

Microservicios de extracción de plantillas

gbds.reextract.msextraction.ginger.number

Define cuántas instancias de microservicios de extracción de huella dactilar, huella palmar, recién nacido y plantilla de control de secuencia estarán disponibles. Si esta configuración se establece en 0, los microservicios de extracción para estas modalidades no se iniciarán.

Valor predeterminado:

10(se recomiendan múltiplos de 10)

gbds.reextract.msextraction.face.number

Define cuántas instancias de microservicios de extracción de plantillas faciales estarán disponibles. Si esta configuración se establece en 0, los microservicios de extracción para esta modalidad no se iniciarán.

Valor predeterminado:

1(10 veces menos que gbds.reextract.msextraction.ginger.numberlo recomendado)

gbds.reextract.msextraction.initialPort

Este parámetro define el número del puerto inicial para los microservicios de extracción de plantillas.

Cada instancia de microservicio incrementará su número de puerto en 1. Por ejemplo, considerando el puerto predeterminado 6000, la primera instancia usará el puerto 6000, la segunda usará el puerto 6001, la tercera, 6002y así sucesivamente.

No entre en conflicto con puertos de microservicios de extracción de plantillas de API (más de 30.000), puertos de microservicios de extracción de calidad (31.000) y puertos de microservicios de matching GBDS (32.000).

Asegúrese de permitir en el firewall los puertos que el microservicio utilizará.

Valor predeterminado:

6000

gbds.reextract.msextraction.maxTries

Define el número máximo de intentos de extracción que el GBDS realizará en una única característica biométrica antes de devolver un error.

Valor predeterminado:

3

gbds.reextract.msextraction.linkLibSegfault

Activa/desactiva el depurador de fallo de segmentación de librería en el microservicio de extracción

Valor predeterminado:

true

gbds.reextract.msextraction.checkTimeoutSecs

Tiempo de espera en segundos para comprobar si el microservicio de extracción de plantillas está activo.

Valor predeterminado:

30

gbds.reextract.msextraction.logLevel

Nivel de registro del microservicio de extracción de plantillas.

Valor predeterminado:

INFO

Valores posibles:

  • INFO

  • TIME

  • DEBUG

gbds.reextract.msextraction.timeout

Tiempo de espera en segundos para una única llamada al microservicio de extracción de plantillas.

Valor predeterminado:

60

gbds.reextract.msextraction.fingerprints.extractor.type

Este parámetro define el tipo de preset del extractor ginger que utilizará la Migración GBDS en el modo --reextract, también conocido como Reextractor GBDS. El Reextractor guardará en HBase y en el RDB el tipo de extractor ginger que se usó de la misma manera que lo hace la API, en la transactionscolumna HBase <cf>:ginger-extractor-typey en la transactionscolumna RDB ginger_extractor_type.

Valor predeterminado:

GRIAULE_2024

Valores posibles:

  • GRIAULE_FAST: una versión más simple y rápida de GRIAULE_BASIC (nunca usada en la API).

  • GRIAULE_BASIC: extracción predeterminada para Verify.

  • GRIAULE_2020: extracción predeterminada antigua para Enroll, Update.

  • GRIAULE_2024: nueva extracción predeterminada para Enroll, Update.

  • GRIAULE_2018: use GRIAULE_2018 (más lento).

Familias de columnas HBase de reextracción

gbds.reextract.cf.finger

Nombre de la familia de columna de dedos para recibir la plantilla extraída en transacciones y personas.

Valor predeterminado:

fingerprint-reextract-1

gbds.reextract.cf.palm

Nombre de la familia de columna Palm para recibir la plantilla extraída en transacciones y personas.

Valor predeterminado:

palmprint-write

gbds.reextract.cf.face

Nombre de la familia de columna de rostro para recibir la plantilla extraída en transacciones y personas.

Valor predeterminado:

face-reextract-1

gbds.reextract.cf.iris

Nombre de la familia de columna Iris para recibir la plantilla extraída en transacciones y personas.

Valor predeterminado:

iris-write

gbds.reextract.cf.newborn-palm

Nombre de la familia de columna de palma de recién nacido para recibir la plantilla extraída en transacciones y personas.

Valor predeterminado:

newborn-palmprint-write

SQLite

gbds.reextract.sqlite.filePath

Ruta del archivo para la base de datos local SQLite.

Valor predeterminado:

/home/<username>/reextract.db

gbds.reextract.sqlite.resetOnStart

Indicador para reiniciar el SQLite al arrancar.

Valor predeterminado:

false

Valores posibles:

  • true

  • false

Ejemplo de archivo de Configuración

Reemplace <hostname>, <rdb-username>, <rdb-base64-password>y <username>por los valores correctos. Además, si zookeepery mysqlse están ejecutando en puertos diferentes a los predeterminados, reemplace los números de puerto.

# 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

Última actualización

¿Te fue útil?