2.5. Configure Time Services

Documentation

VoltDB Home » Documentation » Administrator's Guide

2.5. Configure Time Services

To orchestrate activities between the cluster nodes, VoltDB relies on the system clocks being synchronized. Many functions within VoltDB — such as cluster start up, nodes rejoining, and schema updates among others — are sensitive to variations in the time values between nodes in the cluster. Therefore, it is important to keep the clocks synchronized within the cluster. Specifically:

  • The server clocks in the cluster must be synchronized to within 200 milliseconds of each other when the cluster starts. (Ideally, skew between nodes should be kept under 10 milliseconds.)

  • Time must not move backwards

The easiest way to achieve these goals is to install and configure a time service such as NTP (Network Time Protocol) or chrony to use a common time host server for synchronizing the servers. NTP is often installed by default but may require additional configuration to achieve acceptable synchronization. Specifically, listing only one time server (and the same one for all nodes in the cluster) ensures minimal skew between servers. You can even establish your own time server to facilitate this. All nodes in the cluster should also list each other as peers. For example, the following NTP configuration file uses a local time server (myntpsvr) and establishes all nodes in the cluster as peers:

server myntpsvr burst iburst minpoll 4 maxpoll 4

peer voltsvr1 burst iburst minpoll 4 maxpoll 4
peer voltsvr2 burst iburst minpoll 4 maxpoll 4
peer voltsvr3 burst iburst minpoll 4 maxpoll 4

server 127.127.0.1

See the chapter on Configuring NTP in the Guide to Performance and Customization for an example of configuring a time service for optimal performance when running VoltDB.