Raft Consensus Algorithm (2024)

What is Raft?

Raft is a consensus algorithm that is designed to be easy to understand. It'sequivalent to Paxos in fault-tolerance and performance. The difference is thatit's decomposed into relatively independent subproblems, and it cleanlyaddresses all major pieces needed for practical systems. We hope Raft will makeconsensus available to a wider audience, and that this wider audience will beable to develop a variety of higher quality consensus-based systems than areavailable today.

Hold on—what is consensus?

Consensus is a fundamental problem in fault-tolerant distributed systems.Consensus involves multiple servers agreeing on values. Once they reach adecision on a value, that decision is final. Typical consensus algorithms makeprogress when any majority of their servers is available; for example, acluster of 5 servers can continue to operate even if 2 servers fail.If more servers fail, they stop making progress (but will never return anincorrect result).

Consensus typically arises in the context of replicated state machines, ageneral approach to building fault-tolerant systems. Each server has a statemachine and a log. The state machine is the component that we want to makefault-tolerant, such as a hash table. It will appear to clients that they areinteracting with a single, reliable state machine, even if a minority of theservers in the cluster fail. Each state machine takes as input commands fromits log. In our hash table example, the log would include commands like setx to 3. A consensus algorithm is used to agree on the commands in theservers' logs. The consensus algorithm must ensure that if any state machineapplies set x to 3 as the nth command, no otherstate machine will ever apply a different nth command. As aresult, each state machine processes the same series of commands and thusproduces the same series of results and arrives at the same series of states.

Raft Visualization

Here's a Raft cluster running in your browser. You can interact with it to seeRaft in action. Five servers are shown on the left, and their logs are shown onthe right. We hope to create a screencast soon to explain what's going on. Thisvisualization (RaftScope)is still pretty rough around the edges; pull requests would be very welcome.

The Secret Lives of Datais a different visualization of Raft. It's more guided and less interactive, soit may be a gentler starting point.

Publications

This is "the Raft paper", which describes Raft in detail:In Search of an Understandable Consensus Algorithm (Extended Version)by Diego Ongaro andJohn Ousterhout.A slightly shorter version of this paper received a Best Paper Award at the2014 USENIX Annual Technical Conference.

Diego Ongaro'sPh.D. dissertationexpands on the content of the paper in much more detail, and it includes asimpler cluster membership change algorithm. The dissertation also includes aformal specification of Raft written in TLA+; a slightly updated version of thatspecification is here.

More Raft-related papers:

Talks

These talks serve as good introductions to Raft:

Courses teaching Raft

This is a list of courses that include lectures or programming assignments on Raft.This might be useful for other instructors and for online learners looking for materials.If you know of additional courses, please submit apull requestor an issue to update it.

Where can I ask questions?

The best place to ask questions about Raft and its implementations is theraft-dev Google group.Some of the implementations also have their own mailing lists; check their READMEs.

Where can I get Raft?

There are many implementations of Raft available in various stages ofdevelopment. This table lists the implementations we know about with sourcecode available. The most popular and/or recently updated implementations aretowards the top. This information will inevitably get out of date; please submit apull requestor an issue to update it.

Stars Name Primary Authors Language License Leader Election + Log Replication? Persistence? Membership Changes? Log Compaction?
Raft Consensus Algorithm (2024)
Top Articles
What Are Paid Up Additions (PUA) In Life Insurance
Can’t Turn Off BitLocker on Windows 10/11? 2 Methods to Fix It
The Largest Banks - ​​How to Transfer Money With Only Card Number and CVV (2024)
What happened to Lori Petty? What is she doing today? Wiki
Rek Funerals
Find All Subdomains
The Idol - watch tv show streaming online
Calamity Hallowed Ore
Dark Souls 2 Soft Cap
Southland Goldendoodles
What Does Dwb Mean In Instagram
Miami Valley Hospital Central Scheduling
How Many Slices Are In A Large Pizza? | Number Of Pizzas To Order For Your Next Party
Pwc Transparency Report
60 X 60 Christmas Tablecloths
25Cc To Tbsp
Parent Resources - Padua Franciscan High School
Noaa Ilx
Account Suspended
Hdmovie 2
Joan M. Wallace - Baker Swan Funeral Home
MyCase Pricing | Start Your 10-Day Free Trial Today
Caring Hearts For Canines Aberdeen Nc
Reicks View Farms Grain Bids
Foodsmart Jonesboro Ar Weekly Ad
Worthington Industries Red Jacket
3 Ways to Format a Computer - wikiHow
Osrs Important Letter
Ridge Culver Wegmans Pharmacy
Average weekly earnings in Great Britain
Sitting Human Silhouette Demonologist
Rocketpult Infinite Fuel
Does Iherb Accept Ebt
Tal 3L Zeus Replacement Lid
Merge Dragons Totem Grid
Sams La Habra Gas Price
Cheetah Pitbull For Sale
Sabrina Scharf Net Worth
Complete List of Orange County Cities + Map (2024) — Orange County Insiders | Tips for locals & visitors
Jetblue 1919
Santa Clara County prepares for possible ‘tripledemic,’ with mask mandates for health care settings next month
Leland Nc Craigslist
Thotsbook Com
Craigslist Com St Cloud Mn
How To Customise Mii QR Codes in Tomodachi Life?
Paperlessemployee/Dollartree
Underground Weather Tropical
Edict Of Force Poe
What Is The Gcf Of 44J5K4 And 121J2K6
Psalm 46 New International Version
Asisn Massage Near Me
E. 81 St. Deli Menu
Latest Posts
Article information

Author: Rubie Ullrich

Last Updated:

Views: 6522

Rating: 4.1 / 5 (72 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Rubie Ullrich

Birthday: 1998-02-02

Address: 743 Stoltenberg Center, Genovevaville, NJ 59925-3119

Phone: +2202978377583

Job: Administration Engineer

Hobby: Surfing, Sailing, Listening to music, Web surfing, Kitesurfing, Geocaching, Backpacking

Introduction: My name is Rubie Ullrich, I am a enthusiastic, perfect, tender, vivacious, talented, famous, delightful person who loves writing and wants to share my knowledge and understanding with you.