1. Configuration File

GBDS 4 configuration parameters are defined in a configuration file, containing all parameters and their respective values. Omitted parameters assume their default values. This section describes the properties of the configuration file.

This document is updated to GBDS version 4.6.9.

1.1. File Location

The configuration file is /etc/griaule/conf/gbds/application.conf.

1.2. File Properties

The configuration file must follow some requirements in order to be correctly interpreted by GBDS. These requirements are:

  1. The file name and location must be exactly as mentioned in section 1.1;
  2. There must be exactly one configuration parameter per line;
  3. Each configuration parameter must be in the form {parameter}={value}, without line breaks;
  4. Each value must be separated by a comma when attributed to a single parameter.

2. Akka Configuration Parameters

The Akka configuration parameters are structured as a block at the beginning of the configuration file, as shown below:

See also

See the Akka Documentation for further information about these parameters.

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

It is strongly recommended to not change any Akka configuration parameters without proper orientation in order to avoid malfunctions on the application.

If some configuration must be changed in your environment, contact our support team at support@griaule.com for further information.

2.1. loglevel

This parameter defines the information level that will be kept by the configured loggers as soon as they have been started. The values must be defined between quotation marks.

Default Value:

"WARNING"

Possible Values:

"OFF"

"ERROR"

"WARNING"

"INFO"

"DEBUG"

2.2. stdout-loglevel

This parameter defines the information level that will be kept by the very basic logger activated during ActorSystem startup. This logger prints the log messages to stdout (System.out). The values must be defined between quotation marks.

Default Value:

"INFO"

Possible Values:

"OFF"

"ERROR"

"WARNING"

"INFO"

"DEBUG"

2.3. loggers

This parameter defines, between brackets, the logger entities that will be used to register at boot time.

Default Value:

"akka.event.slf4j.Slf4jLogger"

2.4. logging-filter

This parameter defines the log events filter that will be used by the LoggingAdapter before publishing log events to the eventStream.

Default Value:

"akka.event.slf4j.Slf4jLoggingFilter"

2.5. actor

2.5.1. guardian-supervisor-strategy

This parameter defines the class that will be used by the guardian to obtain its supervisorStrategy.

Default Value:

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

2.5.2. provider

This parameter defines the ActorProvider to be used.

Default Value:

"cluster"

Possible Values:

local

remote

cluster

2.5.3. serializers

This parameter defines the entries for pluggable serializers and their bindings.

The serializers used are:

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

And the binding is:

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

2.6. remote

2.6.1. artery

This parameter defines the configuration for the Artery based transport driver.

Default Values:

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

This parameter defines the nodes to join automatically at startup. Each value must be added between quotation marks and separated by commas inside brackets.

Sample value:

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

2.7.2. roles

This parameter defines the roles of this member. Each value must be added between quotation marks and separated by commas inside brackets.

Default Value:

["manager"]

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

This parameter defines the minimum number of nodes that must be up before starting the cluster.

Default Value:

4

2.7.4. singleton

2.7.4.1. singleton-name

This parameter defines the actor name of the child singleton actor.

Default Value:

offsetmanager

2.7.4.2. hand-over-retry-interval

When a node is becoming the oldest, it sends hand-over request to the previous oldest, that might be leaving the cluster. This parameter defines the time, in seconds, to retry sending this request until the previous oldest confirms that the hand over has started or the previous oldest member is removed from the cluster.

Default Value:

1s

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

This parameter defines the minimum number of retries for sending the hand-over request to the previous oldest node.

Default Value:

15

2.7.5. singleton-proxy

2.7.5.1. singleton-name

This parameter defines the actor name for the singleton actor that is started by the ClusterSingletonManager.

Default Value:

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

2.7.5.2. singleton-identification-interval

This parameter defines the interval, in seconds, at which the proxy will try to resolve the singleton instance.

Default Value:

1s

2.7.5.3. buffer-size

If the singleton location is unknown, the proxy will buffer this number of messages and deliver them when the singleton is identified. Whenever the buffer is full, old messages will be dropped if new messages are sent through the proxy.

Default Value:

1000

Possible Values:

1 to 10000

3. Configuration Parameters

This section describes each GBDS 4 configuration parameter that can be listed in the configuration file, and how they affect the system operation.

3.1. gbds.log.diagnose

Adds Kafka queue logs on every task consuming poll.

Default Value:

true

3.2. gbds.cluster.kafka.task.topic

This parameter defines the Kafka topic where tasks will be allocated.

Default Value:

gbds-tasks

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

Number of tasks on kafka taken at each poll. Task consuming on kafka is made by polling the queue and the poll retrieves a certain number of records each time. Each record is a task on GBDS. This configuration limit how many records is taken on each poll.

Default Value:

1

Possible Values:

1 to 1000

3.4. gbds.cluster.zookeeper.quorum

This parameter defines hostname and port through which zookeeper servers can be found. Each value must be separated by commas if more than one is available.

Default Value:

<hostname>:<port>

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

This parameter configures the queue size with last “N” processing/processed tasks. If a task is duplicated for processing and it is still on queue, it is ignored.

Default Value:

1000

3.6. gbds.cluster.kafka.quorum

This parameter defines the Kafka broker addresses and must reflect the Kafka configurations.

Default Value:

<hostname>:6667

3.7. gbds.node.matchers.start.parameters

This parameter defines the initial settings for the node matchers when starting the application.

Default Value:

"-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

This parameter defines the timeout, in seconds, for starting each remote ActorSystem that will run a matcher.

Default Value:

30s

3.9. gbds.node.matchers.start.timeout

This parameter defines the timeout, in seconds, for deploying a matcher in the remote ActorSystem.

Default Value:

20s

3.10. gbds.node.matchers.number

This parameter defines the number of matchers that will be used in this GBDS node.

If the matcher microservices are enabled, 3 microservices will be initiated for each one specified by this parameter.

Default Value:

1

3.11. gbds.node.sinks.number

This parameter defines the number of sinks that will be used in this GBDS node.

Default Value:

1

3.12. gbds.node.actor-start.timeout

This parameter defines the timeout, in seconds, for starting all the actors of this GBDS node.

Default Value:

60s

3.13. gbds.node.max-loaded-tasks

This parameter defines the maximum number of tasks allowed to coexist simultaneously in GBDS. When this number is reached, no more tasks will be read until some are committed.

Default Value:

100

Possible Values:

10 to 20000

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

This parameter defines the time to wait before attempting to read more tasks from Kafka.

Default Value:

1s

Possible Values:

0s to 5s

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

This parameter defines the number of hbase template loaders.

Default Value:

1

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

This parameter defines the number of RDB template loaders.

Default Value:

1

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

This parameter is a flag for skipping non-cab templates.

Default Value:

true

3.18. gbds.matchers.metrics.enabled

This parameter enables matcher metrics.

Default Value:

true

3.19. gbds.biometric.face.identify.enabled

This parameter enables identify for face images.

Default Value:

true

3.20. gbds.biometric.face.enroll.enabled

This parameter enables enroll for face images.

Default Value:

true

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

This parameter defines whether search is enable for fingerprint templates without cab information.

Default Value:

false

3.22. gbds.fingerprint.post-matching.enabled

This parameter enables fingerprint post matching for latent searches.

Default Value:

true

3.23. gbds.face.post-matching.enabled

This parameter enables face post matching.

Default Value:

true

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

This parameter defines the delay, in seconds, for performing the decision of “Downing” an unreachable or removed cluster member.

The delay countdown starts and is reset whenever there is a change in the state of the cluster members.

Default Value:

5s

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

This parameter defines how long, in seconds, the boot actor will wait for receiving an ack for the CompletedBootMessage from a NodeManager.

If the ack is not received, the message will be resent.

Default Value:

3s

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

This parameter defines the number of parallel scanner actors that will scan registered people during system boot on each node.

Default Value:

1

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

This parameter defines the maximum waiting time for the shuffler actor to receive an acknowledge message. If the acknowledge is not received, the message will be resent.

Default Value:

90s

3.28. gbds.boot.scan.ignoreErrorsOnRegion

Defines whether HBase regions with error should be ignored on boot.

Default Value::

true

Possible Values::

true

false

3.29. gbds.boot.scan.ignoreErrorsOnRegion.maxTries

Defines the maximum number of tries before ignoring an HBase region with error on boot.

Default Value::

5

3.30. gbds.boot.scan.maxRowsPerNode

Using this configuration, GBDS will stop people scan in a node when it reaches this number of rows.

Default Value::

0

3.31. gbds.boot.scan-delayer.rows

Defines the number of rows to be scanned before waiting (delay).

Default Value::

0

3.32. gbds.boot.scan-delayer.secs

Defines the number of rows to wait after scanning the configured number of rows.

Default Value::

0

3.33. gbds.ul.boot.scan.enabled

Defines whether to skip the UL boot process.

Default Value:

true

Possible Values:

true

false

3.34. gbds.boot.scan.ignoreErrorsOnRegion

Defines whether to skip bad regions on UL boot.

Default Value:

true

Possible Values:

true

false

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

Defines the sleep time between matcher creation.

Default Value:

500

Minimum Value:

0

Maximum Value:

30000

3.36. gbds.biometric.fingerprint.enabled

This parameter is used for determining whether fingerprints are primary search objects.

Default Value:

true

Possible Values:

true

false

3.37. gbds.biometric.fingerprint.exception.enabled

This parameter defines whether fingerprints should be considered when generating enrollment exceptions.

Default Value:

true

Possible Values:

true

false

3.38. gbds.biometric.fingerprint.identify.threshold

This parameter defines the minimum matching score for a fingerprint comparison to be considered a match during a search operation.

Default Value:

30

3.39. gbds.biometric.fingerprint.exception.threshold

This parameter defines the minimum matching score to consider a fingerprint comparison a match during an enrollment, generating an exception.

Default Value:

40

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

This parameter defines the minimum number of matched fingers required for generating an exception during an enrollment operation.

Default Value:

2

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

This parameter defines the threshold for matches using CAB analysis. This parameter is not used if CAB verification is not enabled.

Default Value:

5

3.42. gbds.biometric.fingerprint.latent.threshold

This parameter defines the minimum score to consider a latent search a match.

Default Value:

10

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

This parameter defines the configuration index for Delta Zero. The Delta coefficients are used to optimize searches.

Default Value:

-1 (disabled)

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

This parameter defines the configuration index for Delta One. The Delta coefficients are used to optimize searches.

Default Value:

-1 (disabled)

3.45. gbds.latent.candidates.max-number

This parameter defines the maximum length of the candidates list when performing latent searches.

Default Value:

1000

3.46. gbds.biometric.palmprint.enabled

This parameter is used for determining whether palmprints are primary search objects.

Default Value:

false

Possible Values:

true

false

3.47. gbds.biometric.palmprint.exception.enabled

This parameter defines whether palmprints should be considered when generating enrollment exceptions.

Default Value:

false

Possible Values:

true

false

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

This parameter defines the minimum matching score for a palmprint interdigital comparison to be considered a match during a search operation.

Default Value:

70

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

This parameter defines the minimum matching score for a palmprint thenar comparison to be considered a match during a search operation.

Default Value:

70

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

This parameter defines the minimum matching score for a palmprint hypothenar comparison to be considered a match during a search operation.

Default Value:

70

3.51. gbds.biometric.face.enabled

This parameter is used for determining whether faces are primary search objects.

Default Value:

false

Possible Values:

true

false

3.52. gbds.biometric.face.exception.enabled

This parameter defines whether face images should be considered when generating enrollment exceptions.

Default Value:

false

Possible Values:

true

false

3.53. gbds.biometric.face.identify.threshold

This parameter defines the minimum matching score for a face comparison to be considered a match during a search operation.

Default Value:

60

3.54. gbds.biometric.face.exception.threshold

This parameter defines the threshold to be used when matching face biometrics during “identify” operations. Assigning a high value to this parameter can possibly increase the number of false-negative occurrences.

Default Value:

60

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

This parameter defines the number of correspondent fingers required to discard the face comparison result when generating an update exception.

Default Value:

4

3.56. gbds.biometric.face.template.format

Defines the template format for face.

Possible Values: TPT_FORMAT_1 or TPT_FORMAT_2.

Important

The face formats are not interchangeable. Faces enrolled in a format will not be matched with faces enrolled in another format.

Danger

This value must be the same on application.conf and gbdsapi.properties

3.57. gbds.biometric.iris.enabled

This parameter is used for determining whether iris are primary search objects.

Default Value:

false

Possible Values:

true

false

3.58. gbds.biometric.iris.exception.enabled

This parameter defines whether iris should be considered when generating enrollment exceptions.

Default Value:

false

Possible Values:

true

false

3.59. gbds.biometric.iris.exception.threshold

This parameter defines the minimum matching score for an iris comparison to be considered a match during an enrollment, generating an exception.

Default Value:

62

3.60. gbds.biometric.iris.identify.threshold

This parameter defines the minimum matching score for an iris comparison to be considered a match during a search operation.

Default Value:

62

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

This parameter defines whether enroll and search of unsolved latents are enabled or disabled. It is used for forensic applications.

Default Value:

false

Possible Values:

true

false

3.62. gbds.latent.fingerprint.identify.threshold

This parameter defines the minimum score to consider a fingerprint latent search a match.

Default Value:

12

3.63. gbds.latent.additional-search.enabled

This parameter defines whether additional search is enabled for latent searches. Additional search will perform and additional comparison for matched pairs between a defined score threshold.

Default Value:

false

Possible Values:

true

false

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

This parameter defines the lowest matching score above which additional search must be performed.

Default Value:

15

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

This parameter defines the highest matching score under which additional search must be performed.

Default Value:

120

3.66. gbds.latent.primary-classification.enabled

This parameter defines whether primary classification must be used for latent searches.

Default Value:

false

Possible Values:

true

false

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

This parameter defines the minimum threshold for comparing same-class fingerprints and considering a match during latent searches.

Default Value:

15

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

This parameter defines the minimum threshold for considering a match between different-class fingerprints during latent searches.

Default Value:

40

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

This parameter defines whether the different class matching threshold must be used for latent search when there is an unknown primary classification.

Default Value:

true

Possible Values:

true

false

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

This parameter defines the default threshold for searching unsolved fingerprint latents.

Default Value:

4

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

This parameter defines the default threshold for searching unsolved palmprint latents.

Default Value:

4

3.72. gbds.latent.postmatching.enabled

This parameter defines whether postmatching is enabled for reverse latent searches, regular latent searches and searches against registered unsolved latents.

Default Value:

false

Possible Values:

true

false

3.73. gbds.rdb.driverClassName

This parameter defines the class name for the relational database to be used for storing unsolved latents. This value must be defined between quotation marks.

Default Value:

"com.mysql.jdbc.Driver"

3.74. gbds.rdb.url

This parameter defines the relational database URL to be accessed. This value must be defined between quotation marks.

Default Value:

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

3.75. gbds.rdb.username

This parameter defines the username to be used to access the relational database. This value must be defined between quotation marks.

Default Value:

"root"

3.76. gbds.rdb.password

This parameter defines the password to be used to access the relational database.This value must be defined between quotation marks.

3.77. gbds.rdb.dialect

This parameter defines the dialect to be used in the relational database. This value must be defined between quotation marks.

Default Value:

"org.hibernate.dialect.MySQLDialect"

3.78. gbds.rdb.showSql

This parameter defines whether SQL statements must be included in the application logs.

Default Value:

true

Possible Values:

true

false

3.79. gbds.rdb.maxPoolSize

Maximum number of Connections a pool will maintain at any given time.

Default Value:

100

3.80. gbds.rdb.minPoolSize

Minimum number of Connections a pool will maintain at any given time.

Default Value:

1

3.81. gbds.rdb.initialPoolSize

Number of Connections a pool will try to acquire upon startup. This value must be in the range from gbds.rdb.minPoolSize to gbds.rdb.maxPoolSize.

Default Value:

2

3.82. gbds.rdb.maxStatments

This parameter defines the size of c3p0’s global PreparedStatement cache. If both gbds.rdb.maxStatments and gbds.rdb.maxStatementsPerConnection are zero, statement caching will not be enabled. If gbds.rdb.maxStatments is zero but gbds.rdb.maxStatementsPerConnection is a non-zero value, statement caching will be enabled, but no global limit will be enforced, only the per-connection maximum.

This parameter controls the total number of Statements cached, for all Connections. If set, it should be a fairly large number, as each pooled Connection requires its own, distinct flock of cached statements. As a guide, consider how many distinct PreparedStatements are used frequently in your application, and multiply that number by gbds.rdb.maxPoolSize to arrive at an appropriate value.

Default Value:

0

3.83. gbds.rdb.maxIdleTime

This parameter defines, in seconds, the time a Connection can remain pooled but unused before being discarded. Zero means idle connections never expire.

Default Value:

1800

3.84. gbds.rdb.maxConnectionAge

This parameter defines, in seconds, the max time for a connection to live. A Connection older than gbds.rdb.maxConnectionAge will be destroyed and purged from the pool. This differs from gbds.rdb.maxIdleTime in that it refers to absolute age. Even a Connection which has not been much idle will be purged from the pool if it exceeds gbds.rdb.maxConnectionAge. Zero means no maximum absolute age is enforced.

Default Value:

1800

3.85. gbds.rdb.statementCacheNumDeferredCloseThreads

If set to a value greater than 0, the statement cache will track when Connections are in use, and only destroy Statements when their parent Connections are not otherwise in use. Although closing of a Statement while the parent Connection is in use is formally within spec, some databases and/or JDBC drivers, most notably Oracle, do not handle the case well and freeze, leading to deadlocks. Setting this parameter to a positive value should eliminate the issue. This parameter should only be set if you observe that attempts by c3p0 to close() cached statements freeze (usually you’ll see APPARENT DEADLOCKS in your logs). If set, this parameter should almost always be set to 1.

Default Value:

1

3.86. gbds.rdb.acquireIncrement

Determines how many connections at a time c3p0 will try to acquire when the pool is exhausted.

Default Value:

10

3.87. gbds.rdb.testConnectionOnCheckout

If true, an operation will be performed at every connection checkout to verify that the connection is valid. Testing Connections in checkout is the simplest and most reliable form of Connection testing, but for better performance, consider verifying connections periodically using gbds.rdb.idleConnectionTestPeriod.

Default Value:

false

Possible Values:

true

false

3.88. gbds.rdb.testConnectionOnCheckin

If true, an operation will be performed asynchronously at every connection check-in to verify that the connection is valid. Use in combination with gbds.rdb.idleConnectionTestPeriod for quite reliable, always asynchronous Connection testing.

Default Value:

true

Possible Values:

true

false

3.89. gbds.rdb.acquireRetryAttempts

Defines how many times c3p0 will try to acquire a new Connection from the database before giving up. If this value is less than or equal to zero, c3p0 will keep trying to fetch a Connection indefinitely.

Default Value:

10

3.90. gbds.rdb.idleConnectionTestPeriod

If this is a number greater than 0, c3p0 will test all idle, pooled but unchecked-out connections, every this number of seconds.

Default Value:

30

3.91. gbds.biometric.newborn-palmprint.enabled

This parameter is used for determining whether newborn palmprints are primary search objects.

Default Value:

false

Possible Values:

true

false

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

This parameter defines whether newborn palmprints should be considered when generating enrollment exceptions.

Default Value:

false

Possible Values:

true

false

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

This parameter defines the minimum matching score for a newborn palmprint comparison to be considered a match during a search operation.

Default Value:

50

3.94. gbds.cluster.recovery.qtd.scanners

Number of scanner for cluster recovery

Default Value:

5

3.95. gbds.cluster.recovery.qtd.getters

Number of getters for cluster recovery. This parameter is not used on version 3.2x an above.

Default Value:

2

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

Number of shuffler block window size (shuffler buffer size) for cluster recovery

Default Value:

100

3.97. gbds.router.virtual-nodes.number

This parameter defines the number of Virtual nodes.

Default Value:

100

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

This parameter enables the best-of-biometrics, when enabled, the person biometric is the consolidation of the best biometrics obtained of that person in all transactions.

Warning

This flag MUST have the same value in GBDS API and GBDS.

Default Value:

false

Possible Values:

true

false

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

This parameter defines whether to remove inactive people from enroll results.

Default Value:

false

Possible Values:

true

false

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

This parameter enables the email notification service, which sends email notifications for search results with people of interest.

Default Value:

false

Possible Values:

true

false

3.101. gbds.searches.verify.saveOnRdb.enabled

Defines if the verify searches will be saved on RDB table gbds.transaction.

Default Value:

true

Possible Values:

true

false

Danger

This value must be the same on application.conf and gbdsapi.properties

3.102. gbds.searches.identify.saveOnRdb.enabled

Defines if the identify searches will be saved on RDB table gbds.transaction.

Default Value:

true

Possible Values:

true

false

Danger

This value must be the same on application.conf and gbdsapi.properties

3.103. gbds.monitor.port

Defines the port to run the GBDS Monitor.

Default Value:

9100

3.104. gbds.memory-monitor

Adds a memory monitor that logs JVM memory usage every 10 seconds.

Default Value:

false

Possible Values:

true

false

3.105. gbds.watchdog.interval

Defines, in minutes, the time interval for watchdog logs.

Default Value:

1

Maximum Value:

60

3.106. gbds.watchdog.log.mode

Defines the watchdog log mode.

Default Value:

TGUID_MATCHER_MAP

Possible Values:

TGUID_MATCHER_MAP MATCHER_TGUID_MAP

3.107. gbds.watchdog.log.level

Defines the watchdog log level.

Default Value:

DEBUG

Possible Values:

DEBUG INFO

3.108. gbds.verifyPostMatch.enabled

Turns on or off Verify Post Match on enroll transactions with exceptions.

Default Value:

true

Possible Values:

true, false

3.109. gbds.search.verify.adjust-resolution

When this setting is turned on, verify and update on API and verify post match on GBDS will adjust resolution performing verify match, decreasing score on fingers and palms.

Default Value:

true

Possible Values:

true, false

3.110. gbscluster.update.consider.fingerprints

This parameter defines whether fingerprints should be considered when generating update exceptions.

Default value:

true

Possible values:

true, false

3.111. gbscluster.update.consider.faces

This parameter defines whether face images should be considered when generating update exceptions.

Default value:

false

Possible values:

true, false

3.112. gbscluster.update.consider.faces.beforeFingerprints

This parameter defines whether faces should be analyzed before fingerprints when generating update exceptions. If false, face analysis is done after fingerprint analysis.

Default value:

false

Possible values:

true, false

3.113. gbscluster.update.faces.verify.matchthreshold

This parameter defines the threshold to be used when matching face biometrics during search operations. Assigning a high value to this parameter can possibly increase the number of false-negative occurrences.

Default value:

60

3.114. gbscluster.update.minimum.fingers

This parameter defines the minimum number of fingerprint matches required for an “update” operation to be accepted.

Default value:

4

4. Template Serializer Configuration

This section describes the configuration parameters related to the template serializer. These configuration parameters are designed for allowing the use of GBDS Batch Operations.

See also

See the GBDS Batch Operations manual for further information about how to use it.

Whenever GBDS performs a cold boot operation, it tries to recover the templates from the standard column family. If a template does not exist at the standard column family, it tries to recover it from the fallback column family.

The configuration parameters for the serializer are the following ones:

4.1. Standard Column Family

These parameters are divided by biometric modality. The templates in these column families have no encoding and the format used is 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

The default value for these parameters is tpt.

4.2. Fallback Column Family

These parameters refer to the column family previously used for storing the biometric templates, separated by biometric modality.

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

The default values represent the column family used before changing these parameters and are, respectively: fingerprints, palmprints, faces, iris.

4.3. Fallback base64 encoding

The fallback column family supports encoding. The following parameters defines whether the column family is base64 encoded:

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

The default value for these parameters is true

4.4. gbds.template.memory.format

Defines how GBDS will store the templates on memory.

The options are:

  • DESERIALIZED_FULL: Default option. Templates are stored on matchers deserialized on memory with minutiae and segments.
  • SERIALIZED_MINUTIAE_SEGMENTS: Templates are stored on matchers serialized on memory with minutiae and segments.
  • SERIALIZED_MINUTIAE: Templates are stored on matchers serialized on memory with minutiae only. Segments are re-extracted from template on each search made. This affects 1:N search time.
  • OPTIMIZED: Uses a new optimized template format to reduce search performance degradation over time.

4.5. Memory Pre-allocation

Defines the amount of memory pre-allocated for each modality.

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

Default value for each configuration is 0. The system understands Kilobytes (k, kb), Megabytes (m, mb) and Gigabytes (g, gb), not case sensitive. The value is divided equally between all matchers on the node.

Note

Face and iris cannot be pre-allocated.

4.6. Matcher Microservices

This section presents the configuration parameters related do the matcher microservices.

The microservice configuration is unique to each node in the cluster.

4.6.1. gbds.match.service.enabled

Defines whether the matcher microservices are turned on.

Default Value:

false

Possible Values:

true

false

4.6.2. gbds.match.service.initialPort

Defines the initial port to start matcher services on the node.

Default Value:

32000

4.6.3. gbds.match.service.logLevel

Defines the matcher services log level on GBDS. The different log levels are:

NONE
Logs nothing
INFO
Logs scripts and request URLs
TIME
Logs scripts, request URLs, and time elapsed
DEBUG
Logs everything and turn on service log tail

Default Value:

NONE

Possible Values:

INFO

TIME

DEBUG

4.6.4. gbds.match.service.timeout

Defines the maximum timeout for requests to the matcher microservice, in milliseconds.

Default Value:

10000

4.6.5. gbds.match.service.templateSend.parallelByModality

Turns on parallel processing by biometric modality in GBDS.

Default Value:

true

Possible Values:

true

false

4.6.6. gbds.match.service.linkLibSegfault

Turns on segmentation fault tracking on the matcher microservice.

Default Value:

false

Possible Values:

true

false

4.6.7. gbds.match.service.maxTries

When a match microservice has a connection error, try 3 times before failing its transaction, waiting 2s between tries.

Default Value:

3

4.6.8. gbds.match.service.maxConnectionErrors

When a match microservice has 5 failed transactions by connection error in a row, stop GBDS to prevent failing every transaction from that point.

Default Value:

5

4.6.9. gbds.match.service.checkTimeoutSecs

Timeout (in seconds) to check if the matcher microservice was created.

Default Value:

10