@SystemInformation

Documentation

VoltDB Home » Documentation » Using VoltDB

@SystemInformation

@SystemInformation — Returns configuration information about VoltDB and the individual nodes of the database cluster.

Synopsis

@SystemInformation

@SystemInformation String component

Description

The @SystemInformation system procedure returns information about the configuration of the VoltDB database or the individual nodes of the database cluster, depending upon the component keyword you specify. The following are the allowable values of component:

"DEPLOYMENT"

Returns information about the configuration of the database. In particular, this keyword returns information about the various features and settings enabled through the configuration file, such as export, snapshots, K-safety, and so on. These properties are returned in a single VoltTable of name/value pairs.

"LICENSE"

Returns information about the license in use by the database. The license properties are returned in a single VoltTable of name/value pairs.

"OVERVIEW"

Returns information about the individual servers in the database cluster, including the host name, the IP address, the version of VoltDB running on the server, as well as the path to the configuration file in use. The overview also includes entries for the start time of the server and length of time the server has been running.

If you do not specify a component, @SystemInformation returns the results of the OVERVIEW component (to provide compatibility with previous versions of the procedure).

Return Values

Returns one of two VoltTables depending upon which component is requested.

DEPLOYMENT — returns one row for each configuration property.

NameDatatypeDescription
PROPERTYSTRING

The name of the configuration property. The system procedure reports the following properties, depending on what features are enabled in the database configuration:

  • adminport — admin port number
  • commandlogenabled — whether command logging is enabled or not
  • commandlogfreqtime — frequency of command logging in milliseconds
  • commandlogfreqtxns — frequency of command logging in number of transactions
  • commandlogmode — command logging mode, sync or async
  • commandlogpath — directory path to command log segments
  • commandlogsnapshotpath — directory path to command log snapshots
  • droverflowpath — directory path for DR overflow
  • elasticduration — target duration of rebalance transactions in milliseconds
  • elasticthroughput — target throughput of rebalance transactions in MB/second
  • export — whether export is enabled or not
  • exportcursorpath — directory path for storing the current cursor location for export queues
  • exportoverflowpath — directory path to export overflow
  • heartbeattimeout — heartbeat timeout setting in seconds
  • hostcount — full number of servers in the cluster
  • httpenabled — whether the httpd port is enabled or not
  • httpport — httpd port number
  • jsonenabled — whether JSON is enabled on the httpd port or not
  • kfactor — K-safety value
  • largequeryswappath — directory path used as temporary storage for processing large queries
  • partitiondetection — whether network partition detection is enabled or not
  • querytimeout — default query timeout in seconds
  • sitesperhost — number of sites per host
  • snapshotenabled — whether automatic snapshots are enabled or not
  • snapshotfrequency — frequency of automatic snapshots
  • snapshotpath — directory path to automatic snapshot files
  • snapshotprefix — unique file prefix for automatic snapshots
  • snapshotpriority — system priority of automatic snapshots
  • snapshotretain — number of automatic snapshots to retain
  • temptablesmaxsize — maximum size of the temp tables
  • users — list of user names and their roles
  • voltdbroot — path of database root directory
VALUESTRINGThe corresponding value of that property in the configuration file (either explicitly or by default).

LICENSE — returns one row for each license property.

NameDatatypeDescription
PROPERTYSTRING

The name of the license property. The system procedure reports the following properties, depending on what license features are enabled:

  • PERMIT_VERSION — for internal use
  • PERMIT_SCHEME — for internal use
  • TYPE — the type of license in use
  • ISSUER_COMPANY — the company that issued the license
  • ISSUER_EMAIL — the email address of the company that issued the license
  • ISSUER_URL — the website of the company that issued the license
  • ISSUER_PHONE — the telephone number of the company that issued the license
  • ISSUE_DATE — the date the license was issued
  • LICENSEE — who the license was issued to
  • EXPIRATION — the date the license expires
  • HOSTCOUNT_MAX — the maximum number of hosts supported by the license
  • FEATURES_TRIAL — whether this is a trial license or not
  • FEATURES_UNRESTRICTED — whether the license allows unrestricted access to all features
  • FEATURES_COMMANDLOGGING — whether the license supports the use of command logging
  • FEATURES_DRREPLICATION — whether the license supports the use of passive database replication (DR)
  • FEATURES_DRACTIVEACTIVE — whether the license supports the use of cross data center replication (XDCR)
  • NOTE — notes regarding the license
  • SIGNATURE — an encrypted signature identifying the license (for internal use)
VALUESTRINGThe corresponding value of the property (either set explicitly by the license or by default).

OVERVIEW — returns a row for every system attribute one every node of the cluster. The rows contain an additional column to identify the host node associated with the attribute.

NameDatatypeDescription
HOST_IDINTEGERA numeric identifier for the host node.
KEYSTRINGThe name of the system attribute.
VALUESTRING

The corresponding value of that attribute for the specified host. The system procedure reports the following properties:

  • ADMININTERFACE — admin network interface
  • ADMINPORT — admin port number
  • BUILDSTRING — VoltDB software build string including version number
  • CATALOG — for internal use
  • CATALOGCRC — for internal use
  • CLIENTINTERFACE — client network interface
  • CLUSTERID — DR cluster ID
  • CLUSTERSAFETY — whether the database is running in normal K-safe mode (FULL), or if it has reduced k-safety due to non-deterministic results from a transaction (REDUCED)
  • CLUSTERSTATE — whether the database is running normally or paused (that is, in admin mode)
  • DEPLOYMENT — path to current configuration in root directory
  • DRINTERFACE — database replication (DR) network interface
  • DRPORT — database replication (DR) port number
  • DRPUBLICINTERFACE — network interface advertised to member clusters as DR interface
  • DRPUBLICPORT — port advertised to member clusters as DR port
  • FULLCLUSTERSIZE — initial cluster size
  • HOSTNAME — server host name
  • HTTPINTERFACE — httpd network interface
  • HTTPPORT — httpd port number
  • INITIALIZED — for internal use
  • INTERNALINTERFACE — internal network interface
  • INTERNALPORT — internal port number
  • IPADDRESS — server IP address
  • IV2ENABLED — for internal use
  • KUBERNETES — whether the database is running under Kubernetes (true or false)
  • LAST​_UPDATECORE​_DURATION — length of last schema change transaction
  • LICENSE — product license information
  • LOG4JPORT — log4J port number
  • PARTITIONGROUP — for internal use
  • PLACEMENTGROUP — name of the placement group the server belongs to
  • PUBLICINTERFACE — network interface advertised by VoltDB Management Center as the external interface
  • REPLICATIONROLE — database replication (DR) role, MASTER, REPLICA, XDCR, or none
  • STARTTIME — timestamp when cluster started
  • UPTIME — how long the cluster has been running
  • VERSION — VoltDB software version number
  • VOLTDBROOT — path of database root directory
  • ZKINTERFACE — ZooKeeper network interface
  • ZKPORT — ZooKeeper port number

Examples

The first example displays information about the individual servers in the database cluster:

$ sqlcmd
1> exec @SystemInformation overview;

The following program example uses @SystemInformation to display information about the nodes in the cluster and then about the database itself.

VoltTable[] results = null;
try {
     results = client.callProcedure("@SystemInformation",
               "OVERVIEW").getResults();
     System.out.println("Information about the database cluster:");
     for (VoltTable node : results) System.out.println(node.toString());

     results = client.callProcedure("@SystemInformation",
               "DEPLOYMENT").getResults();
     System.out.println("Information about the database configuration:");
     for (VoltTable node : results) System.out.println(node.toString());

}
catch (Exception e) {
     e.printStackTrace();
}