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:
El nombre y la ubicación del archivo deben ser exactamente como se mencionan;
Debe haber exactamente un parámetro de configuración por línea;
Cada parámetro de configuración debe estar en el formato
<parameter>=<value>, sin saltos de línea;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.nameEl 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.nameLos 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 de
gbds.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
00oA3) o un rango hexadecimal de 2 caracteres (como00-01o4A-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 quegbds.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.
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
# 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?

