Once you initialize the root directory, you are ready to start the database using the voltdb start command. You issue this command, specifying the location of the root directory, the number of servers required, and one or more server addresses to use as "host" to manage the initial formation of the cluster. You issue the same command on every node in the cluster. For example:
On the command line, you specify four arguments:
The location of the root directory | |
The number of servers in the cluster | |
One or more nodes from the cluster to use as the "host", to coordinate the initial startup of the cluster |
You must specify the same number of servers and hosts (listed in exactly the same order) on all nodes of the cluster. You can, optionally, specify all nodes of the cluster in the --host argument. In which case, you can leave off the --count argument and VoltDB assumes the number of hosts is the total number of servers.
When you start the database, all nodes select one of the servers from the host list as the "host". The host then:
Waits until the necessary number of servers (as specified by the count) are connected
Creates the network mesh between the servers
Verifies that the configuration options match for all nodes
At this point, the cluster is fully initialized and the "host" ends its special role and becomes a peer to all the other nodes. If the database was run before and command logs or automated snapshots exist, the cluster now recovers the data from the previous session. All nodes in the cluster then write an informational message to the console verifying that the database is ready:
Server completed initialization.