B.6. VoltDB Database Configuration Options

Documentation

VoltDB Home » Documentation » VoltDB Kubernetes Administrator's Guide

B.6. VoltDB Database Configuration Options

The following properties define the VoltDB database configuration.

Table B.5. Options Starting with cluster.config.deployment...

ParameterDescriptionDefault
.cluster.kfactorK-factor to use for database durability and data safety replication1
.cluster.sitesperhostSitesPerHost for VoltDB Cluster8
.heartbeat.timeoutInternal VoltDB cluster verification of presence of other nodes (seconds)90
​.partitiondetection​.enabledControls detection of network partitioningtrue
.commandlog.enabledCommand logging for database durability (recommended)true
.commandlog.logsizeCommand logging allocated disk space (MB)1024
.commandlog.synchronousTransactions do not complete until logged to diskfalse
​.commandlog​.frequency​.timeHow often the command log is written, by time (milliseconds)200
​.commandlog​.frequency​.transactionsHow often the command log is written, by transaction command2147483647
.dr.idUnique cluster id, 0-1270
.dr.roleRole for this cluster, currently the only accepted value is 'xdcr'xdcr
.dr.conflictretentionAutomatic pruning of xdcr conflict logs; value is integer followed by one of m/h/d, for minutes/hours/days""
.dr.connection.enabledSpecifies whether disaster recovery is enabledfalse
.dr.connection.sourceIf role is replica or xdcr: list of host names or IP addresses of remote node(s)""
​.dr​.connection​.preferredSourceCluster ID of preferred source""
.dr.connection.ssl(OBSOLETE as of 2.0.0 as a setting in its own right; use the 3 following settings){ }
​.dr​.connection​.ssl​.truststore​.fileOptional truststore file used to verify the identity of the remote VoltDB cluster; defaults to truststore of this cluster, unless sslSecret is set""
​.dr​.connection​.ssl​.truststore​.passwordPassword for truststore file specified above""
​.dr​.connection​.ssl​.sslSecret​.certSecretNameOptional pre-made secret containing truststore data, including password if needed""
.dr.consumerlimit.maxsizeEnable DR consumer flow control either maxsize or maxbuffers must be specified maxsize can be specified as 50m, 1g or just number for bytes""
​.dr​.consumerlimit​.maxbuffersEnable DR consumer flow control either maxsize or maxbuffers must be specified""
.dr.schemachange.enabledEnable DR consumer to continue while compatible schema changes are being made"false"
.dr.schemachange.truncateEnable values to be truncated if a VARCHAR column is wider on another cluster while schema changes are being made"false"
.export.configurationsList of export configurations[ ]
.import.configurationsList of import configurations[ ]
.avro.namespaceAvro namespace""
.avro.registryAvro registry URL""
.avro.prefixAvro configuration prefix""
.avro.propertiesAvro configuration properties{ }
.topics.threadpoolKafka topics threadpool to use``
.topics.enabledKafka topics enabled or nottrue
.topics.brokerKafka topics broker configuration``
.topics.broker.propertiesKafka topics broker configuration properties[ ]
.topics.topicList of topics[ ]
.topics.topic.nametopic name``
.topics.topic.procedureProcedure to invoke upon getting message``
.topics.topic.formatFormat of topic message``
.topics.topic.retentionTopic retention policy``
.topics.topic.opaqueIs this an opaque topicfalse
.topics.topic.allowList of roles allowed to access the topic``
.topics.topic.priorityPriority for topics requests (if priority scheduling is enabled)4
.topics.topic.propertiesTopic configuration properties[ ]
.httpd.enabledDetermines if HTTP API daemon is enabledfalse
.httpd.jsonapi.enabledDetermines if jSON over HTTP API is enabledfalse
.httpd.portSpecifies port for HTTP8080 or 8443
.paths.commandlog.pathDirectory path for command log​/pvc​/voltdb​/voltdbroot​/command_log
​.paths​.commandlogsnapshot​.pathDirectory path for command log snapshot​/pvc​/voltdb​/voltdbroot​/command_log_snapshot
.paths.droverflow.pathDirectory path for disaster recovery overflow​/pvc​/voltdb​/voltdbroot​/dr_overflow
.paths.exportcursor.pathDirectory path for export cursors​/pvc​/voltdb​/voltdbroot​/export_cursor
​.paths​.exportoverflow​.pathDirectory path for export overflow​/pvc​/voltdb​/voltdbroot​/export_overflow
​.paths​.largequeryswap​.pathDirectory path for large query swapping​/pvc​/voltdb​/voltdbroot​/large_query_swap
.paths.snapshots.pathDirectory path for snapshots. Must not be located in a read-only root directory of mounted storage (as init --force will rename existing snapshot folder). Use a subdirectory.​/pvc​/voltdb​/voltdbroot​/snapshots
.security.enabledControls whether user-based authentication and authorization are usedfalse
.security.providerSets authentication provider as 'hash' (local) or 'ldap' (using a customer-specified LDAP/LDAP server)hash
.security.ldap.serverURL for LDAP server, required; as 'ldap://server:port', or 'ldaps://server:port', port optional""
.security.ldap.userUsername used by VoltDB for read-only access on LDAP server, required""
.security.ldap.passwordPassword corresponding to LDAP server username, required""
.security.ldap.rootdnDistinguished Name of the root of the LDAP schema that defines users and groups, required""
.security.ldap.userclassName of the LDAP schema's objectClass containing user information"inetOrgPerson"
.security.ldap.useruidName of the LDAP attribute in the userObjectClass that should contain the username provided by the VoltDB client"uid"
.security.ldap.groupclassName of the LDAP schema's objectClass defining a group of users"groupOfUniqueNames"
​.security​.ldap​.groupmemberidName of the LDAP schema's objectClass defining a group of users"uniqueMember"
.security.ldap.timeoutTimeout, in seconds, for requests to the LDAP server10
.security.ldap.groupList of LDAP groups and their mapping to VoltDB roles[ ]
​.security​.ldap​.ssl​.truststore​.fileTruststore file used to validate LDAPS server certificate (Java KeyStore format)""
​.security​.ldap​.ssl​.truststore​.passwordPassword for LDAP truststore file""
.snapshot.enabledEnable/disable periodic automatic snapshotstrue
.snapshot.frequencyFrequency of automatic snapshots (in s,m,h)24h
.snapshot.prefixUnique prefix for snapshot filesAUTOSNAP
.snapshot.retainNumber of snapshots to retain2
.snmp.enabledEnables or disables use of SNMPfalse
.snmp.targetHost name or IP address, and optional port (default 162), for SNMP server""
.snmp.authkeySNMPv3 authentication key if protocol is not NoAuthvoltdbauthkey
.snmp.authprotocolSNMPv3 authentication protocol. One of: SHA, MD5, NoAuthSHA
.snmp.communityName of SNMP communitypublic
.snmp.privacykeySNMPv3 privacy key if protocol is not NoPrivvoltdbprivacykey
.snmp.privacyprotocolSNMPv3 privacy protocol. One of: AES, DES, 3DES, AES192, AES256, NoPrivAES
.snmp.usernameUsername for SNMPv3 authentication; else SNMPv2c is used""
.ssl.enabledEnable or disable configuration of TLS/SSL on the cluster. Other properties control activation of TLS/SSL for specific ports and featuresfalse
.ssl.externalExtends TLS/SSL security to all external ports (default admin 21211, client 21212). Only active if cluster​.config​.deployment​.ssl​.enabled is also "true".false
.ssl.internalExtends TLS/SSL security to the internal port (default 3021). Only active if cluster​.config​.deployment​.ssl​.enabled is also "true".false
.ssl.drExtends TLS/SSL security to the DR port (5555). Only active if cluster​.config​.deployment​.ssl​.enabled is also "true".false
.ssl.keystore.fileKeystore file to mount at the keystore path (unless sslSecret is set)""
.ssl.keystore.passwordPassword for VoltDB keystore file""
.ssl.truststore.fileTruststore file to mount at the truststore path (unless sslSecret is set)""
.ssl.truststore.passwordPassword for VoltDB truststore file""
​.ssl​.sslSecret​.certSecretNamePre-made secret containing keystore and truststore data, optionally including passwords""
​.ssl​.sslSecret​.passwordSecretNamePre-made secret containing password for keystore/truststore, if password is not in the secret named by certSecretName""
​.systemsettings​.elastic​.durationTarget value for the length of time each rebalance transaction will take (milliseconds)50
​.systemsettings​.elastic​.throughputTarget value for rate of data processing by rebalance transactions (MB)2
​.systemsettings​.compaction​.intervalInterval to indicate how often memory compaction should run (seconds)60
​.systemsettings​.compaction​.maxcountSet a target block count compaction should try and achieve if there is memory fragmentation1
​.systemsettings​.flushinterval​.minimumInterval between checking for need to flush (milliseconds)1000
​.systemsettings​.flushinterval​.dr​.intervalInterval for flushing DR data (milliseconds)1000
​.systemsettings​.flushinterval​.export​.intervalInterval for flushing export data (milliseconds)4000
​.systemsettings​.procedure​.copyparametersif set, mutable array parameters should be copied before processingtrue
​.systemsettings​.procedure​.loginfoThreshold for long-running task detection (milliseconds)10000
​.systemsettings​.query​.timeoutTimeout on SQL queries (milliseconds)10000
​.systemsettings​.priorities​.enabledEnables priority scheduling of requests by VoltDB cluster (true/false)false
​.systemsettings​.priorities​.maxwaitModifies priority scheduling by setting a limit on time waiting while higher priority requests execute (millisecs)1000
​.systemsettings​.priorities​.batchModifies priority scheduling algorithm to execute multiple requests before rescheduling25
​.systemsettings​.priorities​.dr​.priorityPriority for DR requests (1-8, 1 is highest priority)5
​.systemsettings​.priorities​.snapshot​.priorityPriority for snapshot requests (1-8, 1 is highest priority)6
​.systemsettings​.resourcemonitor​.frequencyResource Monitor interval between resource checks (seconds)60
​.systemsettings​.resourcemonitor​.memorylimit​.sizeLimit on memory use (in GB or as percentage)80%
​.systemsettings​.resourcemonitor​.memorylimit​.alertAlert level for memory use (in GB or as percentage)70%
​.systemsettings​.resourcemonitor​.disklimit​.commandlog​.sizeResource Monitor disk limit on disk use (in GB or percentage, empty is unlimited)""
​.systemsettings​.resourcemonitor​.disklimit​.commandlog​.alertResource Monitor alert level for disk use (in GB or as percentage, empty is unlimited)""
​.systemsettings​.resourcemonitor​.disklimit​.commandlogsnapshot​.sizeResource Monitor disk limit on disk use (in GB or percentage, empty is unlimited)""
​.systemsettings​.resourcemonitor​.disklimit​.commandlogsnapshot​.alertResource Monitor alert level for disk use (in GB or as percentage, empty is unlimited)""
​.systemsettings​.resourcemonitor​.disklimit​.droverflow​.sizeResource Monitor disk limit on disk use (in GB or percentage, empty is unlimited)""
​.systemsettings​.resourcemonitor​.disklimit​.droverflow​.alertResource Monitor alert level for disk use (in GB or as percentage, empty is unlimited)""
​.systemsettings​.resourcemonitor​.disklimit​.exportoverflow​.sizeResource Monitor disk limit on disk use (in GB or percentage, empty is unlimited)""
​.systemsettings​.resourcemonitor​.disklimit​.exportoverflow​.alertResource Monitor alert level for disk use (in GB or as percentage, empty is unlimited)""
​.systemsettings​.resourcemonitor​.disklimit​.snapshots​.sizeResource Monitor disk limit on disk use (in GB or percentage, empty is unlimited)""
​.systemsettings​.resourcemonitor​.disklimit​.snapshots​.alertResource Monitor alert level for disk use (in GB or as percentage, empty is unlimited)""
​.systemsettings​.resourcemonitor​.disklimit​.topicsdata​.sizeResource Monitor disk limit on disk use (in GB or percentage, empty is unlimited)""
​.systemsettings​.resourcemonitor​.disklimit​.topicsdata​.alertResource Monitor alert level for disk use (in GB or as percentage, empty is unlimited)""
​.systemsettings​.snapshot​.priorityPriority for snapshot work (really a delay factor; see under systemsettings for scheduling priority)6
​.systemsettings​.temptables​.maxsizeLimit the size of temporary database tables (MB)100
​.systemsettings​.clockskew​.intervalInterval of the scheduled clock skew collection (minutes). 0 is allowed and it disables collection. Interval cannot be less than 0 and if set below such value it will be reset to default.60
.usersDefine a list of VoltDB users to be added to the deployment[ ]
.metrics.enabledEnables metrics system on a single pod. This system is an alternative for old @Statistics.false
.metrics.intervalControls how often metrics system prepares metrics slice to be sourced by external system like prometheus.60seconds
.metrics.maxbuffersizeControls how much memory, at maximum, metric system will use for internal metric buffering. But at least system will retain one metrics slice in the buffer.16
.metrics.retainControls how many metrics slices retain in the buffer.1