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:
- The file name and location must be exactly as mentioned in section 1.1;
- There must be exactly one configuration parameter per line;
- Each configuration parameter must be in the form
{parameter}={value}
, without line breaks;- 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
to10000
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.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
to1000
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
to20000
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
to5s
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.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.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.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