Raft Consensus Algorithm FAQs
How Does ScyllaDB Support the Raft Consensus Algorithm?
ScyllaDB originally supported Lightweight Transactions (LWT) using Paxos, but these transactions require three roundtrips. ScyllaDB is implementing Raft as part of Project Circe, ScyllaDB’s 2021 initiative to improve ScyllaDB by adding greater capabilities for consistency, performance, scalability, stability, manageability and ease of use. With Raft, ScyllaDB is able to execute consistent transactions without a performance penalty. Unlike Paxos, which is only used for LWT, most aspects of ScyllaDB will move to Raft, significantly improving manageability and consistency.
Beyond crucial operational advantages, application developers will be able to leverage Raft to enable strong transaction consistency at the price of a regular operation.
ScyllaDB’s Raft implementation covers the following system components:
- Transactional Schema Changes — Our first user-visible value eliminates schema conflicts and allows full automation of DDL changes under any condition.
- Transactional Topology Changes — Our next user-visible change will permit adding or removing any number of nodes simultaneously. Currently, ScyllaDB and Cassandra can only scale one node at a time. This means it can take long hours to double or triple the whole cluster’s capacity. Obviously, this is not the elasticity you’d expect if you have bursty intraday traffic.
- Tablets — Once range ownership becomes transactional, it will allow many levels of freedom. We plan to improve more aspects of range movements, towards tablets and dynamic range splitting for load balancing.
More about ScyllaDB’s move to Raft?
As of December 2020, the core Raft protocol is implemented in ScyllaDB. The next user-visible improvement is to make topology changes transactional using Raft. We welcome you to follow our progress with Raft and other advancements at Introducing Project Circe: Making the Best NoSQL Database Better.