E.2. The Structure of the Configuration File

Documentation

VoltDB Home » Documentation » Using VoltDB

E.2. The Structure of the Configuration File

The configuration file starts with the XML declaration. After the XML declaration, the root element of the configuration file is the deployment element. The remainder of the XML document consists of elements that are children of the deployment element.

Figure E.1, “Configuration XML Structure” shows the structure of the configuration file. The indentation indicates the hierarchical parent-child relationships of the elements and an ellipsis (...) shows where an element may appear multiple times.

Figure E.1. Configuration XML Structure

<deployment>
     <cluster/>
     <paths>
          <commandlog/>
          <commandlogsnapshot/>
          <exportoverflow/>
          <snapshots/>
          <voltdbroot/>
     </paths>
     <commandlog>
          <frequency/>
     </commandlog>
     <dr>
           <connection/>
           <schemachange/>
           <consumerlimit>
               <maxbuffers/>
               <maxsize/>
           </consumerlimit>
     </dr>
     <export>
          <configuration>
               <property/>...
          </configuration>...
     </export>
     <heartbeat/>
     <httpd/>
     <import>
          <configuration>
               <property/>...
          </configuration>...
     </import>
     <metrics/>
     <partition-detection/>
     <security>
         <ldap>
            <group/>...
            <ssl>
                <truststore/>
            </ssl>
        </ldap>
     <security/>
     <snapshot/>
     <ssl>
          <keystore/>
          <truststore/>
     </ssl>
     <snmp/>
     <systemsettings>
          <clockskew/>
          <compaction/>
          <elastic/>
          <flushinterval>
               <dr/>
               <export/>
          </flushinterval>
          <procedure/>
          <query/>
          <resourcemonitor>
               <disklimit>
                    <feature/>...
               </disklimit>
               <memorylimit/>
          </resourcemonitor>
          <snapshot/>
          <temptables/>
     </systemsettings>
     <topics>
          <broker>
               <property/>...
          </broker>
          <topic/>...
     </topics>
     <users>
          <user/>...
     </users>
</deployment>


Table E.1, “Configuration File Elements and Attributes” provides further detail on the elements, including their relationships (as child or parent) and the allowable attributes for each.

Table E.1. Configuration File Elements and Attributes

ElementChild ofParent ofAttributes
deployment*(root element)avro, cluster, commandlog, dr, export, heartbeat, httpd, import, partition-detection, paths, security, snapshot, snmp, ssl, systemsettings, topics, users 
avrodeployment 

registry={url}*
namespace={text}
prefix={text}

cluster*deployment 

kfactor={int}
sitesperhost={int}

heartbeatdeployment timeout={int}*
partition-detectiondeployment enabled={true|false}
commandlogdeploymentfrequency

enabled={true|false}
logsize={int}
synchronous={true|false}

frequencycommandlog 

time={int}
transactions={int}

drdeploymentconnection, consumerlimit, schemachange

id={int}*
role={master|replica|xdcr}

connectiondr 

source={server[,...]}*
enabled={true|false}
preferred-source={int}
ssl=[file-path]

consumerlimitdrmaxbuffer, maxsize

maxbufferconsumerlimit 

maxsizeconsumerlimit 

schemachangedr 

enabled={true|false}

exportdeploymentconfiguration 
configuration*exportproperty

target={text}*
enabled={true|false}
exportconnectorclass={class-name}
type={file|​http|​jdbc|​kafka|​custom}

propertyconfiguration 

name={text}*

importdeploymentconfiguration 
configuration*importproperty

type={​kafka|custom}*
enabled={true|false}
format={csv|tsv}
module={text}
priority={int}

reconnect={int}{s|m|h}
propertyconfiguration 

name={text}

httpddeployment 

enabled={true|false}

metricsdeployment 

enabled={true|false}
interval={int}{s|m|h}
maxbuffersize={int}

pathsdeploymentcommandlog, commandlogsnapshot, droverflow, exportoverflow, snapshots, voltdbroot 
commandlogpaths path={directory-path}*
commandlogsnapshotpaths path={directory-path}*
droverflowpaths path={directory-path}*
exportoverflowpaths path={directory-path}*
snapshotspaths path={directory-path}*
voltdbrootpaths path={directory-path}*
securitydeploymentldap

enabled={true|false}
provider={hash|kerberos|ldap}

ldapsecuritygroup, ssl

server={url}*
rootdn={text}*
user={text}*
password={text}*
timeout={int}

groupldap 

name={text}*
role={text}*

sslldaptruststore

truststoressl 

path={file-path}*
password={text}*

snapshotdeployment 

enabled={true|false}
frequency={int}{s|m|h}
prefix={text}
retain={int}

ssldeploymentkeystore, truststore

enabled={true|false}
external={true|false}
internal={true|false}

keystore*ssl 

path={file-path}*
password={text}*

truststoressl 

path={file-path}*
password={text}

snmpdeployment 

target={IP-address}*
authkey={text}
authprotocol={SHA|MD5|NoAuth}
community={text}
enabled={true|false}
privacykey={text}
privacyprotocol={text}
username={text}

systemsettingsdeploymentclockskew, compaction, elastic, flushinterval, priorities, procedure, query, resourcemonitor, snapshot, temptables 
clockskewsystemsettings 

interval={int}

compactionsystemsettings 

interval={int}
maxcount={int}

elasticsystemsettings 

duration={int}
throughput={int}

flushintervalsystemsettingsdr, export

minimum={int}

drflushinterval 

interval={int}

exportflushinterval 

interval={int}

prioritiessystemsettingsdr, snapshot

batchsize={int}
enabled={true|false}
maxwait={int}

drpriorities 

priority={int}

snapshotpriorities 

priority={int}

proceduresystemsettings 

loginfo={int}
copyparameters={true|false}

querysystemsettings 

timeout={int}*

resourcemonitorsystemsettingsdisklimit, memorylimit

frequency={int}

disklimitresourcemonitorfeature

featuredisklimit 

name={text}*
size={int[%]}*
alert={int[%]}

memorylimitresourcemonitor 

size={int[%]}*
alert={int[%]}
compact={true|false}

snapshotsystemsettings 

priority={int}*

temptablessystemsettings 

maxsize={int}*

threadpoolsdeploymentpool 
poolthreadpools 

name={text}*
size={text}*

topicsdeploymentbroker, topic

enabled={true|false}
threadpool={text}

brokertopicsproperty

topictopicsproperty

name={text}*
allow={role-name[,..]}
format={avro|csv|json}
opaque={true|false}
priority={int}
procedure={text}
retention={text}

propertybroker,topic 

name={text}

usersdeploymentuser 
userusers 

name={text}*
password={text}*
expires={date}
roles={role-name[,..]}

*Required