Data / Open Source / Storage

Redis Labs’ RedisRaft Aims to Improve Database Consistency

4 Sep 2020 1:00pm, by

Open source database provider Redis Labs continues to expand upon its offerings as it further distances itself from the time when it was largely known as a solid NoSQL cache provider. To that end, Red Labs has recently released RedisRaft, an open source project to help foster additional database replication options. The goal is to better enable end-user organizations to benefit from strong consistency deployments of Redis servers and platforms through the use of RedisRaft.

Comparatively, Redis Labs said Raft offers the same high standard of consistency and stability Apache ZooKeeper and Etcd, Redis maintains, Yossi Gottlieb, chief architect, Redis Labs, told The New Stack.

For IT operations, the idea is to rely on Raft to add stability and consistency across database infrastructures running on Redis. A typical use-case scenario might be an organization that uses Redis to manage metadata instances for transactional data.

“You are able to achieve so much by simply plugging in modules into Redis rather than making changes to Redis itself in a safe way,” Gottlieb said. “That was my intention when we created RedisRaft.”

Gottlieb also said RedisRaft offers:

  • Strongly consistent  acknowledged writes, which “are guaranteed to be committed and never lost.”
  • Reads that return the most up-to-date committed write.

 

An example of a Raft cluster running in a browser. (Photo: Redis Labs)

However, Redis Labs says it remains transparent about RedisRaft’s limitations. These limitations are derived from the well known “CAP theorem” that suggests distributed systems are either more available or more consistent, Gottlieb said.  The cluster managed through the module depends on, for example, that a majority of the Redis server nodes are operational and connected.

Redis Labs first began work on RedisRaft in 2018 shortly ahead of the release of Redis 5 after a Redis API module was introduced in Redis 4 to support modules that implement new data types and commands, Gottlieb said. RedisRaft was part of an effort to see how far it was possible to “stretch the API” and to create modules to do that. The modules were designed to empower new types of command that extended across all Redis servers as if — as mentioned above — they operated as a single cluster, Gottlieb said.

Ahead of its recent availability on GitHub, RedisRaft was introduced during the RedisConf 2020 virtual conference in May. The Raft consensus algorithm and its implementation with an open-source C library for replicated RedisRaft servers will offer net improvements for data consistency.

RedisRaft should reach the general availability stage next year with the release Redis 7.0.

In the meantime, Gottlieb said Redis Labs is increasing the cadences of RedisRaft’s testing with the help of the open source contributors, while it, at the same time, is creating new testing processes.

While RedisRaft’s “key functionalities” are in place and that certain milestones should be announced” during the next few weeks, Gottlieb said.

Redis Labs is a sponsor of The New Stack.

Feature image by Julie Thornton on Unsplash.

A newsletter digest of the week’s most important stories & analyses.