VoltDB database applications use a standard client-server model, with the database running on one or more servers and the calling application(s) running as one or more clients. The servers form a cluster that manages the data and distribution of work internally.
When you first learn about VoltDB, or while developing your VoltDB application, it is easiest to run both the client and the server on the same machine. However, the goal of VoltDB is to achieve the best, most scalable throughput possible for OLTP applications. To do this in a production environment, you normally run the VoltDB database server on a cluster of nodes, with one or more client applications running on separate machines.
Starting and stopping a VoltDB database server on a single node is easy. The more nodes there are on the cluster, the more tedious it becomes to start and manage the database server by hand.
VoltDB provides a management console to simplify this process. For the most part, this book explains how to perform these tasks using the VoltDB Enterprise Manager, which is a VoltDB Enterprise Edition feature. However, it is possible to perform the same tasks manually or through scripts and other open source tools and technology. At the end of each chapter is a summary of other approaches for those who choose not to use the VoltDB Enterprise Manager.
The VoltDB Enterprise Manager is a tool for simplifying the work of the VoltDB database administrator and operator. The VoltDB Enterprise Manager consists of server software (which provides the management functions and controls the database cluster) and a web-based management console that the database administrator uses to issue commands and evaluate the state of the cluster.
When you run the VoltDB Enterprise Manager, it creates its own dedicated web server. You can then connect to that server from any web browser. The web interface, or console, allows you to manage your VoltDB clusters from virtually anywhere.
Using the VoltDB Enterprise Manager, you do not need to pre-install VoltDB on each node. The management console handles distributing both the VoltDB software and the database catalogs to the cluster nodes. The console also helps by providing a common interface for:
Initiating and collecting snapshots
Providing live statistics on database volume and performance
Comparing and updating the database catalog and schema
Dropping and rejoining nodes to a high availability cluster (using K-Safety)
In addition to a web-based graphical interface, the Enterprise Manager contains a REST programming interface, allowing database managers to script any of these functions for further customization and simplification of the management tasks. The VoltDB REST interface is described later in this book in Appendix A, VoltDB Management REST Interface.