RethinkDB 2.1 beta: announcing automatic failover

RethinkDB 2.1 beta is now available for testing. Download it now!

The upcoming 2.1 release will introduce important improvements, including support for automatic failover. Although we’re still hard at work on the finishing touches that will make the new features ready for production use, the beta offers an opportunity to get an early look.

The 2.1 beta release is a culmination of over a year of development effort. It satisfies three major requirements:

  • If a primary replica fails, RethinkDB will automatically fail over to another replica without human intervention.
  • You can reshard your tables live with only a few seconds of unavailability when the server switches over a shard to a new server.
  • The RethinkDB administration API remains the same. You don’t need to learn anything to take advantage of the new features.

Automatic failover increases the reliability of RethinkDB clusters, reducing the risk of downtime when individual servers fail or drop out of the network. When a server with a primary shard experiences failure, the servers with remaining replicas elect an acting primary to take its place until the wayward server is either restored or permanently removed from the table configuration. As long as a majority of replicas remain operational to elect an acting primary, the loss of a primary shard will no longer compromise database availability.

Our automatic failover implementation is built with the Raft consensus algorithm. First introduced in 2013 by Stanford researchers, Raft’s influence is growing quickly in distributed computing and related fields. In RethinkDB 2.1, Raft provides the underlying logic that enables replicas to elect an acting primary.

The work to bring automatic failover to RethinkDB brought a number of ancillary improvements that you will also find in the 2.1 release. In general, cluster behavior is more forgiving in instances where individual servers fail. For example, you no longer have to permanently remove a failed server from the cluster in order to perform tasks like table creation. Another improvement in version 2.1 is that tables remain largely accessible during resharding, with only a few seconds of unavailability when the server switches over a shard to a new server.

This beta release is intended for testing and evaluation purposes. We are eager to get feedback from users to help guide our efforts as we put the finishing touches on version 2.1.

Help test the beta release

You can get started with the 2.1 beta release by downloading it and reading the documentation:

If you have feedback, we’d love to hear from you! Here is how you can get in touch with the development team: