Distributed Systems 6.2: Raft

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

This subject could not have been explained better Martin. Thank you for your service to the computer science community. This is true gold!

renanreismartins
Автор

Thank you so much for sharing your lectures. I took a similar course at my university and your videos have been a great supplement and you helped me get a top grade! So thank you so much Martin for sharing your knowledge and explaining concepts in a simple way without skipping the details. It is much appreciated! :-)

lenni
Автор

There are many raft vidoes on internet which shows you some fancy animations but none of them are even close to this. This is purely brilliant. Yes it may happen then one cannot get the entire content in one shot. I watch it multiple times and I am pretty confident that now I can explain Raft to others. Thanks a lot Martin for this lecture series. It answered many questions that I was trying to get answers for a long time.

tanmaymehrotra
Автор

After reading the raft paper and watching the original videos presenting the algorithm, I started to look for a basic implementation in Java or any other language. But the pseudo code in this video is by far a best approach.

mohamed-gara
Автор

After watching many videos, I finally found the explanation of an understandable protocol given in a very understandable way. Thank you very, very, very much

JohnCDSMB
Автор

It is a very tricky algorithm with log tricky cases. You have done an excellent job of explaining it. Thank you.

programming
Автор

It was an absolutely marvelous explanation of the algorithm!

chasing_the_horizon
Автор

can we use this algorithm in wireless sensor networks?

wakandavernon
Автор

33:07 The line `ack >= ...` reminds me that we don't assume the link that messages are sent on is FIFO, do we? I just fall under the impression that TCP is used.

yujiaqiao
Автор

why on slide 9 the leader need qurom to deliver while on slide 7 the follower can just commit?

tysonliu
Автор

I don't know what I'm missing but AppendLog seems to be a bit problematic since a replica will deliver a log to its application that potentially can changed the storage state? Imagine if there's n replica and leader is sending message to them, and after 1st and 2nd replica successfully append log, suddenly all other n-2 replica plus the leader die, then the message that was delivered to application in the 1st and 2nd node would be invalid right?

oz
Автор

what if a node advocating itself as a candidate only has log older than half, or even a handful of nodes, since node only gets to vote once each term, a relatively old node could be elected as the leader as long as it has votes from some older nodes and other candidate unfortunately have fewer votes (prob due to that they initiated themselves as candidate later)

tysonliu
Автор

is it possible if a leader commits a change say [1, 2] given qurom, then goes down, a follower who has yet to commit the change or even voted yes to the commit becomes the new leader, having the log as [2, 1], it now advocate to commit [2, 1] while [1, 2] has already been committed by some nodes?

tysonliu
Автор

Wonder design process of complex algorithm looks like

anrikezeroti
Автор

I don't understand why I am paying 2000 for a uni course as an international student when I get to learn all this sh🎉 here with much better quality

yoyocswpg
Автор

It seems like CommitLogEntries lacks current term check which should prevent leader from committing entries based only on the entries from the previous terms (see Figure 8 in the Extended Version of the original raft paper)

antonpuhach
Автор

Thank you so much for the clear and concise explanation. Really appreciate it.

default
Автор

Martin a question, if I wanted to use isabelle as a haskell proof assistant, could I transcribe all the operators and symbols?

BlakeDeFi
Автор

Thanks for this great lecture! I'm slowly getting a good understanding of Raft now.

In slide (6/9), I had a question about the 2nd if condition, i.e., the "if term = currentTerm then" condition. You said that this exists because the receiving node might have been a candidate in the same term, and it's now receiving a msg from the leader in that same term, and needs to update itself to be a follower and, set it's current leader to be the id of the node that it received a msg from.

Is there any reason this recipient candidate node doesn't set its own 'votedFor' set to null and cancel its own election timer, just as it did in the previous if condition? Is this because as a candidate the only node you would've voted for yourself is your own node Id, and that if your own election timer is running in the background despite having a leader, it doesn't have any harmful effects? I would've assumed from a practical standpoint, having your own election timer running in the background when you already know there is a leader for the current term would take up unnecessary processing power.

tarunnurat
Автор

Awesome lecture. It must have taken a lot of trial and error to develop this algorithm right and deal with all the possible edge cases/failure points.

akhtarandroid