E.2. The Structure of the Deployment File

Documentation

VoltDB Home » Documentation » Using VoltDB

E.2. The Structure of the Deployment File

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

Figure E.1, “Deployment XML Structure” shows the structure of the deployment 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. Deployment XML Structure

<deployment>
     <cluster/>
     <paths>
          <commandlog/>
          <commandlogsnapshot/>
          <exportoverflow/>
          <snapshots/>
          <voltdbroot/>
     </paths>
     <admin-mode/>
     <commandlog>
          <frequency/>
     <commandlog/>
     <export>
          <configuration>
               <property/>...
          </configuration>
     </export>
     <heartbeat/>
     <httpd>
          <jsonapi/>
     </httpd>
     <partition-detection>
          <snapshot/>
     </partition-detection>
     <replication/>
     <security/>
     <snapshot/>
     <systemsettings>
          <elastic/>
          <snapshot/>
          <temptables/>
     </systemsettings>
     <users>
          <user/>...
     </users>
</deployment>


Table E.1, “Deployment 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. Deployment File Elements and Attributes

ElementChild ofParent ofAttributes
deployment*(root element)admin-mode, commandlog, cluster, export, heartbeat, httpd, partition-detection, paths, security, snapshot, systemsettings, users 
cluster*deployment 

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

admin-modedeployment 

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

heartbeatdeployment timeout={int}*
partition-detectiondeploymentsnapshotenabled={true|false}
snapshot*partition-detection 

prefix={text}*

commandlogdeploymentfrequency

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

frequencycommandlog 

time={int}
transactions={int}

exportdeploymentconfiguration

enabled={true|false}
target={file|jdbc|custom}
exportconnectorclass={class-name}

configuration*exportproperty

propertyconfiguration 

name={text}*

httpddeploymentjsonapi

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

jsonapihttpd enabled={true|false}
pathsdeploymentexportoverflow, snapshots, voltdbroot 
commandlogpaths path={directory-path}*
commandlogsnapshotpaths path={directory-path}*
exportoverflowpaths path={directory-path}*
snapshotspaths path={directory-path}*
voltdbrootpaths path={directory-path}*
replicationdeployment port={int}
securitydeployment 

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

snapshotdeployment 

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

systemsettingsdeploymentelastic, query, snapshot, temptables 
elasticsystemsettings 

duration={int}
throughput={int}

querysystemsettings 

timeout={int}*

snapshotsystemsettings 

priority={int}*

temptablessystemsettings 

maxsize={int}*

usersdeploymentuser 
userusers 

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

*Required

[1] The attribute "groups" can be used in place of "roles" for backwards compatibility.