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
How do I manage a large outbreak of aphids? - Cooperative Extension: Garden and Yard - University of Maine Cooperative Extension
U.S. Department of Agriculture (USDA)
Jordanbush Only Fans
jazmen00 x & jazmen00 mega| Discover
Amc Near My Location
Live Basketball Scores Flashscore
Fredatmcd.read.inkling.com
Walgreens Alma School And Dynamite
Khatrimaza Movies
Puretalkusa.com/Amac
Lenscrafters Westchester Mall
Whiskeytown Camera
Which aspects are important in sales |#1 Prospection
Horned Stone Skull Cozy Grove
PGA of America leaving Palm Beach Gardens for Frisco, Texas
Garrick Joker'' Hastings Sentenced
All Obituaries | Ashley's J H Williams & Sons, Inc. | Selma AL funeral home and cremation
Pro Groom Prices – The Pet Centre
Fredericksburg Free Lance Star Obituaries
Video shows two planes collide while taxiing at airport | CNN
Christina Steele And Nathaniel Hadley Novel
EASYfelt Plafondeiland
Chaos Space Marines Codex 9Th Edition Pdf
Joan M. Wallace - Baker Swan Funeral Home
Babbychula
Teen Vogue Video Series
Thick Ebony Trans
Prey For The Devil Showtimes Near Ontario Luxe Reel Theatre
Www Pointclickcare Cna Login
Drying Cloths At A Hammam Crossword Clue
Temu Seat Covers
Medline Industries, LP hiring Warehouse Operator - Salt Lake City in Salt Lake City, UT | LinkedIn
Stickley Furniture
Hermann Memorial Urgent Care Near Me
American Bully Xxl Black Panther
Tal 3L Zeus Replacement Lid
Robeson County Mugshots 2022
Wsbtv Fish And Game Report
Jamesbonchai
فیلم گارد ساحلی زیرنویس فارسی بدون سانسور تاینی موویز
Noh Buddy
60 Days From May 31
Truck Works Dothan Alabama
Chr Pop Pulse
Willkommen an der Uni Würzburg | WueStart
The Average Amount of Calories in a Poke Bowl | Grubby's Poke
Gonzalo Lira Net Worth
Haunted Mansion Showtimes Near Millstone 14
Egg Inc Wiki
Here’s What Goes on at a Gentlemen’s Club – Crafternoon Cabaret Club
18 Seriously Good Camping Meals (healthy, easy, minimal prep! )
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.