You're not only a great author but also an amazing teacher. Thanks Martin.
@joaofurukawa7 күн бұрын
u are the GOAT of DS!
@MitaliNeerPatel16 күн бұрын
Where Can I find first half of the course ?
@jmbrjmbr239717 күн бұрын
Woow what a gem I found! Living in this day and age is amazing and gorgeous, thank you so much for uploading!
@Samindika199720 күн бұрын
Thank you very much.
@utsavdahiya372921 күн бұрын
6:25 kzread.info/dash/bejne/kWZ225SansiYeZc.html
@donaldcarnegie301823 күн бұрын
Glock. Genuinely meant block
@donaldcarnegie301823 күн бұрын
Did you glock😢
@donaldcarnegie301823 күн бұрын
I am sl confused rn
@donaldcarnegie301823 күн бұрын
Something
@donaldcarnegie301823 күн бұрын
Haha lol i made a funny
@donaldcarnegie301823 күн бұрын
Honestly this is a really bad analogy to describe this problem.
@FarhadJabiyev23 күн бұрын
I don't understand why at 09:41 you mentioned idempotencenl only for best-effort algo? All other algorithms have reliable network system model which can only be achieved with retry pattern. And if retry isnin place, then idempotence also should be, no?
@hamdenichamseddine821724 күн бұрын
Thank you so much for the perfect explanation
@alexeiionov981224 күн бұрын
so interesting! thank you so much for posting this series : )
@indrajeetv887824 күн бұрын
Sir, where is part one?
@bermick26 күн бұрын
brilliant! thanks a lot for the content Martin!
@suparnaprasad818727 күн бұрын
Awesome video!
@algoX-nj2lyАй бұрын
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
@harman654321Ай бұрын
Great series for distributed systems.
@tysonliu2833Ай бұрын
how do we handle obtaining commit timestamp in a raft database without physical clock? just two phase commit?
@tysonliu2833Ай бұрын
why on slide 9 the leader need qurom to deliver while on slide 7 the follower can just commit?
@jl1835Ай бұрын
because the leader is the only node that could decide which log entry is ready to be committed by checking if more than half of the nodes have already acknowledged this log entry (quorum).
@tysonliu2833Ай бұрын
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?
@tysonliu2833Ай бұрын
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)
@tysonliu2833Ай бұрын
oh nvm when it sends its advocation to a node with newer data, it will be demoted to follower
@ferschubertАй бұрын
Vielen Dank! Thanks Martin! Very clear explanation on Lamport and Vector logical clocks, inspired my lectures for CS from your explanation.
@srikrishna6595Ай бұрын
bro you rocked it
@anishsingla-pg2pdАй бұрын
so, there is no solution for this problem? we can only put checks in place to prevent it in a real life scenario ?
@khatiakilanava1557Ай бұрын
Thank you so much for the series. They really are great and simple to follow. You are the best :))
@krizh289Ай бұрын
Thanks for putting these lectures on youtube--education should be accessible to all
@fadygamilmahrousmasoud58632 ай бұрын
thank you, very informative and explantory
@ShubhamGuptaAmol2 ай бұрын
If we assume that clocks for user A and B have been synchronized via NTP, how can there be any skew/time difference b/w them?
@johnshepard31972 ай бұрын
11:40 you tube
@jainamm53072 ай бұрын
What happens if one of the nodes has sent ok for prepare but while waiting for all the oks it crashes ? The transaction will go forward in all the other nodes.
@jainamm53072 ай бұрын
One potential solution to this problem is to have a recovery mechanism for the node when it comes back up.
@jainamm53072 ай бұрын
One potential solution is to have a recovery mechanism for the node when it comes back up.
@salad73892 ай бұрын
super well made, thank you!
@pavelhassan74572 ай бұрын
If you look at the Bank balance and assets of all those three general and how they earned it then you can learn a lot about those general before you appointed them.
@user-ud8hw4gp6t2 ай бұрын
hast du discord?
@user-ud8hw4gp6t2 ай бұрын
bestes video was ich gefunden habe. alles andere hat mega genervt.
@user-ud8hw4gp6t2 ай бұрын
aber wundert mich auch nicht wegen cambridge prof titel xD
@anshulgupta97542 ай бұрын
Thank you, Professor Kleppmann, for this wonderful series and for making it publicly available. This is gold for understanding distributed systems concepts! I have one question, though, regarding this lecture. I don't understand how vector clocks solve the original problem presented at the start of this lecture, i.e., resolving the correct order for the messages m1 and m2 received at User C. Since, by definition, logical clocks at a particular process are monotonic in nature, the vector clock for the event representing "m2 received at C" should be greater than the vector clock for the event representing "m1 received at C"; as we take the maximum of each vector-element to merge both the recipient and local vectors, as explained at 15:30. Therefore, I am not exactly sure how computing the vector clock for these two events at C helps to resolve the correct order. One way I can think of resolving the order would be to compare the vector clocks sent as part of the message instead (before merging the recipient and local vectors). But this requires storing the vector clocks for all the events (for message received events, we would need to store the recipient vector clock instead) and then comparing the recipient vector clock (whenever a message arrives) with that of all the earlier events for a particular process or user, and then rearranging the events and possibly reassigning the vector clocks for the rearranged events. I'm not exactly sure about this approach as it may cause some other effects that needs to be handled; I couldn't really find much regarding this elsewhere.
@kobew13513 ай бұрын
Hope you can make a video to explain three phase commit and how it improves fault tolerance.
@StijnDeWitt3 ай бұрын
7:00: what happens if node B sends a message at the same time as Node A? Seems to me Node B will attach the timestamp 1 to the message because it was at 0 and did not yet receive message A. So now we have a message with a lower timestamp than the highest one so far. The only way this can work I think is when nodes take turn sending messages. Also, what if one of the nodes is malicious and chooses Number.MAX_SAFE_INTEGER as the timestamp? What mechanism is there to prevent unbounded growth?
@StijnDeWitt3 ай бұрын
All logical clocks I have seen so far require a central coordinator. Looking for a truly distributed logical clock algorithm.
@zamansmail3 ай бұрын
When I first learnt about Martin Kleppman I thought he must be in his 50s or 60s. When searched for him on the internet I skipped fist few videos on youtube as the guy looked younger. It was only later on that I realized that the younger guy was in fact Martin Kleppman. Thank you sir. I appreciate your work and currently learning from your book.
@attariarash3 ай бұрын
Why we should study these theories when we don't learn nothing about how to code or how to design distributed systems?
@itdepends59063 ай бұрын
Nice! Didn't know you're into singing as well :)
@itdepends59063 ай бұрын
Yayy so happy to see you play as well!
@aliberatcetin67654 ай бұрын
Although I have taken the DS course before, I still enjoy listening your valuable lectures again because your series are really intuitive. I think the difference between two generals and online shop is, there is no ACK for ACK in TCP which implicitly avoids loops like the way in two generals problem. The only thing that payments service care is whether the message eventually reaches the online shop.
@donfeto76364 ай бұрын
Thanks bro you legend
@Tatiana-zs3dc4 ай бұрын
What a great lecturer! THANK YOU for explaining everything so clearly !!!!
@user-hq9ef9vp9m4 ай бұрын
Awesome video! I have one question. At 13:08, How does spanner ensure that there is no overlapping between time uncertainty ranges between two transactions?
@bobslave70634 ай бұрын
@kleppmann Thank you Martin for an excellent explanation. But what if A will fail and try to send it's state after others gone forward, how do we know a real sequence of events of A on timeline with others?
Пікірлер
You're not only a great author but also an amazing teacher. Thanks Martin.
u are the GOAT of DS!
Where Can I find first half of the course ?
Woow what a gem I found! Living in this day and age is amazing and gorgeous, thank you so much for uploading!
Thank you very much.
6:25 kzread.info/dash/bejne/kWZ225SansiYeZc.html
Glock. Genuinely meant block
Did you glock😢
I am sl confused rn
Something
Haha lol i made a funny
Honestly this is a really bad analogy to describe this problem.
I don't understand why at 09:41 you mentioned idempotencenl only for best-effort algo? All other algorithms have reliable network system model which can only be achieved with retry pattern. And if retry isnin place, then idempotence also should be, no?
Thank you so much for the perfect explanation
so interesting! thank you so much for posting this series : )
Sir, where is part one?
brilliant! thanks a lot for the content Martin!
Awesome video!
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
Great series for distributed systems.
how do we handle obtaining commit timestamp in a raft database without physical clock? just two phase commit?
why on slide 9 the leader need qurom to deliver while on slide 7 the follower can just commit?
because the leader is the only node that could decide which log entry is ready to be committed by checking if more than half of the nodes have already acknowledged this log entry (quorum).
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?
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)
oh nvm when it sends its advocation to a node with newer data, it will be demoted to follower
Vielen Dank! Thanks Martin! Very clear explanation on Lamport and Vector logical clocks, inspired my lectures for CS from your explanation.
bro you rocked it
so, there is no solution for this problem? we can only put checks in place to prevent it in a real life scenario ?
Thank you so much for the series. They really are great and simple to follow. You are the best :))
Thanks for putting these lectures on youtube--education should be accessible to all
thank you, very informative and explantory
If we assume that clocks for user A and B have been synchronized via NTP, how can there be any skew/time difference b/w them?
11:40 you tube
What happens if one of the nodes has sent ok for prepare but while waiting for all the oks it crashes ? The transaction will go forward in all the other nodes.
One potential solution to this problem is to have a recovery mechanism for the node when it comes back up.
One potential solution is to have a recovery mechanism for the node when it comes back up.
super well made, thank you!
If you look at the Bank balance and assets of all those three general and how they earned it then you can learn a lot about those general before you appointed them.
hast du discord?
bestes video was ich gefunden habe. alles andere hat mega genervt.
aber wundert mich auch nicht wegen cambridge prof titel xD
Thank you, Professor Kleppmann, for this wonderful series and for making it publicly available. This is gold for understanding distributed systems concepts! I have one question, though, regarding this lecture. I don't understand how vector clocks solve the original problem presented at the start of this lecture, i.e., resolving the correct order for the messages m1 and m2 received at User C. Since, by definition, logical clocks at a particular process are monotonic in nature, the vector clock for the event representing "m2 received at C" should be greater than the vector clock for the event representing "m1 received at C"; as we take the maximum of each vector-element to merge both the recipient and local vectors, as explained at 15:30. Therefore, I am not exactly sure how computing the vector clock for these two events at C helps to resolve the correct order. One way I can think of resolving the order would be to compare the vector clocks sent as part of the message instead (before merging the recipient and local vectors). But this requires storing the vector clocks for all the events (for message received events, we would need to store the recipient vector clock instead) and then comparing the recipient vector clock (whenever a message arrives) with that of all the earlier events for a particular process or user, and then rearranging the events and possibly reassigning the vector clocks for the rearranged events. I'm not exactly sure about this approach as it may cause some other effects that needs to be handled; I couldn't really find much regarding this elsewhere.
Hope you can make a video to explain three phase commit and how it improves fault tolerance.
7:00: what happens if node B sends a message at the same time as Node A? Seems to me Node B will attach the timestamp 1 to the message because it was at 0 and did not yet receive message A. So now we have a message with a lower timestamp than the highest one so far. The only way this can work I think is when nodes take turn sending messages. Also, what if one of the nodes is malicious and chooses Number.MAX_SAFE_INTEGER as the timestamp? What mechanism is there to prevent unbounded growth?
All logical clocks I have seen so far require a central coordinator. Looking for a truly distributed logical clock algorithm.
When I first learnt about Martin Kleppman I thought he must be in his 50s or 60s. When searched for him on the internet I skipped fist few videos on youtube as the guy looked younger. It was only later on that I realized that the younger guy was in fact Martin Kleppman. Thank you sir. I appreciate your work and currently learning from your book.
Why we should study these theories when we don't learn nothing about how to code or how to design distributed systems?
Nice! Didn't know you're into singing as well :)
Yayy so happy to see you play as well!
Although I have taken the DS course before, I still enjoy listening your valuable lectures again because your series are really intuitive. I think the difference between two generals and online shop is, there is no ACK for ACK in TCP which implicitly avoids loops like the way in two generals problem. The only thing that payments service care is whether the message eventually reaches the online shop.
Thanks bro you legend
What a great lecturer! THANK YOU for explaining everything so clearly !!!!
Awesome video! I have one question. At 13:08, How does spanner ensure that there is no overlapping between time uncertainty ranges between two transactions?
@kleppmann Thank you Martin for an excellent explanation. But what if A will fail and try to send it's state after others gone forward, how do we know a real sequence of events of A on timeline with others?