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>
     <consistency/>
     <dr>
           <connection/>
     </dr>
     <export>
          <configuration>
               <property/>...
          </configuration>...
     </export>
     <heartbeat/>
     <httpd>
          <jsonapi/>
     </httpd>
     <import>
          <configuration>
               <property/>...
          </configuration>...
     </import>
     <partition-detection/>
     <security/>
     <snapshot/>
     <ssl>
          <keystore/>
          <truststore/>
     </ssl>
     <snmp/>
     <systemsettings>
          <elastic/>
          <resourcemonitor>
               <disklimit>
                    <feature/>...
               </disklimit>
               <memorylimit/>
          </resourcemonitor>
          <snapshot/>
          <temptables/>
     </systemsettings>
     <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)cluster, commandlog, consistency, dr, export, heartbeat, httpd, import, partition-detection, paths, security, snapshot, snmp, ssl, systemsettings, users 
cluster*deployment 

hostcount={int}*
sitesperhost={int}
kfactor={int}

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

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

frequencycommandlog 

time={int}
transactions={int}

consistencydeployment 

readlevel={fast|safe}*

drdeploymentconnection

id={int}*
listen={true|false}
port={int}
role={master|replica|xdcr}

connectiondr 

source={server[,..]}*

exportdeploymentconfiguration 
configuration*exportproperty

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

propertyconfiguration 

name={text}*

importdeploymentconfiguration 
configuration*importproperty

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

propertyconfiguration 

name={text}

httpddeploymentjsonapi

port={int}
enabled={true|false}

jsonapihttpd enabled={true|false}
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}*
securitydeployment 

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

snapshotdeployment 

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

ssldeploymentkeystore, truststore

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

keystore*ssl 

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

truststoressl 

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

snmpdeployment 

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

systemsettingsdeploymentelastic, query, resourcemonitor, snapshot, temptables 
elasticsystemsettings 

duration={int}
throughput={int}

querysystemsettings 

timeout={int}*

resourcemonitorsystemsettingsdisklimit, memorylimit

frequency={int}

disklimitresourcemonitorfeature

featurediskllimit 

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

memorylimitresourcemonitor 

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

snapshotsystemsettings 

priority={int}*

temptablessystemsettings 

maxsize={int}*

usersdeploymentuser 
userusers 

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

*Required