Giter Site home page Giter Site logo

raft.github.io's People

Contributors

ab152 avatar andy-yx-chen avatar archiecobbs avatar baotiao avatar belaban avatar bootjp avatar freeekanayaka avatar hhblaze avatar jernik avatar kaijchen avatar laomafeima avatar lifeisfoo avatar ligurio avatar lliujj avatar lpmi-13 avatar namasikanam avatar nuoyimanaituling avatar oaklight avatar ongardie avatar opaugam-unity avatar pablosmedina avatar qdoop avatar resetius avatar ronenhamias avatar sakno avatar waqee avatar wenweihu86 avatar wey-gu avatar willemt avatar xingyif avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

raft.github.io's Issues

Error in Figure 2 description?

The description for figure 2 in https://raft.github.io/raft.pdf reads;

"A condensed summary of the Raft consensus algorithm (excluding membership changes and log compaction). The server
behavior in the upper-left box is described as a set of rules that trigger independently and repeatedly."

The second sentence confused me momentarily. I believe it should refer to the "lower-right box" as it does in the original dissertation PDF.

Please update implementation references to reflect their feature updates

I was going through a couple of implementations and to my novice eye, it felt that py-raft by Toby Buress at least conforms to the Leader Election + Log Replication property. They also had an implementation of member changes which I could not really understand. Someone well versed in python and raft should be able to do a quick review of the row.

It'll be great if experts took a look at existing references and update their feature columns in addition to adding references since this github io page is a major reference when someone looks up raft.

Raft implementation in Omnet++

In the past months me and a colleague Leonardo Ruzza have worked on an implementation of Raft in Omnet++.

Our main goal was to provide a handy tool to simulate the protocol in action without the need to build a real distributed environment. We think this can be very useful both to understand the protocol functioning and to have a first preview of how a real network of machines using the protocol would behave.
Our repo is private at the moment, but I would like to ask If it can be of use for someone and so made it public; also, it would be an honor to be added to the implementation list.

Edoardo Venir
Leonardo Ruzza

question about raft visualization

S2 is voted as leader,but its last log never commit。
In the 5th term, S5 is leader. A new request comes from client, S5 do its leader job and commit this entry finally, but this commit request from S5 does not reach S2. At the time, S3 start a new leader election because of time out, but S3 fail to be leader, and the group enter to term 6. After a litter time, S5 time out, and start a new leader with term 7, the propose request contain last log info, whose index is the uncommitted log index. Is that right? finally, S5 become leader

Randomization in Electing Leaders

Since Raft uses randomized timers to elect leaders, how can one ensure that the randomization is sufficient random?

How can one ensure that randomization in Raft is not based on pseudo random generator? (Flaw, Deliberate design -- backdoor)

Thank you.

Nathan Aw

Courses teaching Raft

University Name: San Jose State University https://msse.sjsu.edu/enterprise-software-technologies
Course Name:CMPE 275 Enterprise Application Development https://msse.sjsu.edu/enterprise-software-technologies Spring 2015
Professor: John Gash https://cmpe.sjsu.edu/profile/john-gash
Details: Includes project to make Distributed file system using RAFT Algorithm for Fault tolerance, log replication and consistency
Project URL: https://github.com/deepmehtait/Distributed-file-system-server-with-RAFT

New Course teaching Raft

Greetings,

The course Distributed Systems at Politecnico of Milano by Gianpaolo Cugola has lectures on Raft.

I'll leave the link to the course information below, but it does not explicity talk about Raft, it is taught under Agreement.

Link

New course using raft at UCSD

Hi all,

I've adopted what I would say is a simplified version of Raft at UCSD. I'm teaching a 10-week undergrad networked software course, and include a strong leader, 2-phase commit, and a replicated log. I don't include leader election, but do point those students wishing to go deeper to the Raft paper. Thought it might be of interest to you.

University Name: UC San Diego http://www.cs.ucsd.edu
Course Name: CSE 124: Networked Services http://www.cs.ucsd.edu/~gmporter/classes/fa17/cse124/
Fall 2017
Professor: George Porter http://www.ucsd.edu/~gmporter
Details: Replicated logs, 2PC, strong leader, but no leader election/failure. Project involves building a distributed DropBox-like file storage system called "SurfStore"
Project URL: http://cseweb.ucsd.edu/~gmporter/classes/fa17/cse124/post/project2/

A fast Go Raft implementation capable of 10 million IO per second

I just released a new multi-group Raft library in Go named Dragonboat. It is released under the Apache 2 license and available at https://github.com/lni/dragonboat

Could you please add this library to your raft implementation list? Thanks!

It cover almost all features described in the Raft thesis -

  • leader election and log replication
  • membership change
  • log compaction and snapshotting
  • ReadIndex based read-only queries
  • Leadership transfer
  • Non-voting members
  • Node quiesce mode
  • Client session feature described in the section 6.3 of the Raft PhD thesis.

It is also the fastest open source Raft implementation on github.com, when tested with medium range hardware (3 x 22 cores Xeon servers running at 2.8GHz, each with NVME SSDs) -

  • 9 million proposals per second when using 48 Raft groups
  • 10 million mixed read/write requests per second at 9:1 read-write ratio

More details are available at https://github.com/lni/dragonboat

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.