Volt VMC Service

Documentation

VoltDB Home » Documentation » Volt VMC Service

Volt VMC Service

V13.2.0

March 31, 2024


Introduction

The Volt Management Center (VMC) is a web-based console for monitoring and managing VoltDB databases. The console includes panels for viewing and editing the database configuration and schema, as well as tabs for monitoring real-time performance of transactions, import and export activities, and Active(N) replication. There is even a tab for executing ad hoc queries against the database.

On bare metal systems, VMC currently starts automatically as part of the database server. However, it is also available as a standalone service. And on Kubernetes, VMC is started as a standalone service by default. Use of the standalone service is recommended for two primary reasons:

  • Performance: The VMC service can run on any server — it does not have to run on the database server itself where it might compete with other database operations.

  • Scalability: When run as part of the database server, every server starts an instance of VMC. But when run as a separate service, you can run as many or as few instances as you need. For lightweight use, a single instance for the entire cluster is usually sufficient. On the other hand, to ensure availability or to support extensive use if the JSON interface, you may choose to run more instances.

The VMC service actually consists of two separate components:

  • VMC server — provides an HTTP endpoint that opens the VMC console on the user's web browser.

  • JSON HTTP Programming Interface — an easy to use API for running ad hoc queries and stored procedures from any programming language. The JSON API is not recommended for highly performant applications, but can be useful for prototyping or building your own web-based interface.

The following sections explain how to install and run the standalone VMC service on bare metal systems.

Installing the VMC Service

The only requirement for installing and running the VMC service is that the system you run it on must include Java runtime version 8.0, 11.0 or later. VMC comes as a zipped tarball that you can find where you get your Volt Active Data server software. The tarball is named voltdb-vmc-xx.x.x.tar.gz, where "xx..x.x" is the version number.

Download and unpack the file to create a directory with the VMC service executables and command line. For example, to install version 13.2.0 of VMC in your top-level directory and rename the directory to voltvmc, use the following commands:

$ tar -zxvf voltdb-vmc-13.2.0.tar.gz -C $HOME
$ cd ~
$ mv voltdb-vmc-13.2.0 voltvmc

Note that, although the VMC service is versioned, it does not need to be updated or match the version of the database servers it services. Any VMC service can interoperate with any version V13.0 or later of the VoltDB server software.

Starting the VMC Service

Once VMC is installed, you can invoke the service in either one of two ways:

Using the Linux Executable

For most Linux systems, including Ubuntu and Red Hat, VMC comes as a precompiled Linux executable with a command line interface. You can invoke the executable in the bin subfolder where VMC is installed. For example:

$ ~/voltvmc/bin/vmc

Or you can add the bin subfolder to your path and to your login script so you can use the vmc command directly:

$ export PATH="$PATH:$HOME/voltvmc/bin"
$ vmc

Using the Java JAR File

For other operating systems, including other Linux variants or platforms such as Microsoft Windows, you can run VMC from the included Java JAR file. For example:

$ java -jar ~/voltvmc/libvmc/volt-vmc-svc.jar

When you start the VMC service without any qualifiers, it assumes it is connecting to a database process on the current node using the default ports and default settings (for example, no TLS/SSL configuration). In most cases you want to connect to a database on a different node, possibly using non-default ports and/or configurations. So at a minimum, you will usually want to specify at least one database server to connect to. For example, assuming the bin directory has been added to your path:

$ vmc --server=dbsvr1.myorg.com

You can specify multiple servers using a comma-separated list. However, even if you only specify one, the VMC service uses the topology aware Java client to identify and connect to all the servers in the cluster and direct requests appropriately. The next section describes all of the arguments you can use to customize the connection between the VMC service and the database servers.

The VMC Service Command Line Interface (CLI)

The vmc command starts an HTML server process that users can connect to for accessing the web-based management console or processing transactions through the JSON HTTP API.

vmc [argument...]

Arguments

--adminport={port-number}

Specifies the port to use for connecting to the database server when invoking system procedures or displaying or modifying sensitive information (such as the configuration) with security enabled. The default admin port is 21211.

-h, --help

Displays information about how to use the command.

---port={port-number}

Specifies the client port to use when accessing the database server. The default client port is 21212.

--publicinterface=[{IP-address}][:{port-number}]

Specifies the network interface and port the service uses to serve VMC and the JSON HTTP API to users. This is address users connect to from their web browsers to display and interact with the management console. The default public interface is localhost:8080.

--publicssl={ssl-config-file}

Specifies TLS/SSL configuration options for the VMC service itself. In other words, the SSL options users will encounter when they open the VMC console or send a transaction request to the JSON API.

--servers={IP-address}[,...]

Specifies the network address of one or more database cluster nodes. Separate multiple addresses with commas. The default server is localhost.

--sessiontimeout={integer}

Specifies the number of seconds before the VMC session times out. If there is no activity on the VMC session and security is enabled, the user will be prompted to login again after the timeout period expires. The default timeout is 300 seconds.

--ssl={ssl-config-file}

Specifies the TLS/SSL configuration options for the database server(s).

-V, --version

Displays the software version and exits.