Martin Kleppmann

Martin Kleppmann

Talks by Martin Kleppmann

CRDTs: The Hard Parts

CRDTs: The Hard Parts

Пікірлер

  • @33galactus
    @33galactus17 сағат бұрын

    You're not only a great author but also an amazing teacher. Thanks Martin.

  • @joaofurukawa
    @joaofurukawa7 күн бұрын

    u are the GOAT of DS!

  • @MitaliNeerPatel
    @MitaliNeerPatel16 күн бұрын

    Where Can I find first half of the course ?

  • @jmbrjmbr2397
    @jmbrjmbr239717 күн бұрын

    Woow what a gem I found! Living in this day and age is amazing and gorgeous, thank you so much for uploading!

  • @Samindika1997
    @Samindika199720 күн бұрын

    Thank you very much.

  • @utsavdahiya3729
    @utsavdahiya372921 күн бұрын

    6:25 kzread.info/dash/bejne/kWZ225SansiYeZc.html

  • @donaldcarnegie3018
    @donaldcarnegie301823 күн бұрын

    Glock. Genuinely meant block

  • @donaldcarnegie3018
    @donaldcarnegie301823 күн бұрын

    Did you glock😢

  • @donaldcarnegie3018
    @donaldcarnegie301823 күн бұрын

    I am sl confused rn

  • @donaldcarnegie3018
    @donaldcarnegie301823 күн бұрын

    Something

  • @donaldcarnegie3018
    @donaldcarnegie301823 күн бұрын

    Haha lol i made a funny

  • @donaldcarnegie3018
    @donaldcarnegie301823 күн бұрын

    Honestly this is a really bad analogy to describe this problem.

  • @FarhadJabiyev
    @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?

  • @hamdenichamseddine8217
    @hamdenichamseddine821724 күн бұрын

    Thank you so much for the perfect explanation

  • @alexeiionov9812
    @alexeiionov981224 күн бұрын

    so interesting! thank you so much for posting this series : )

  • @indrajeetv8878
    @indrajeetv887824 күн бұрын

    Sir, where is part one?

  • @bermick
    @bermick26 күн бұрын

    brilliant! thanks a lot for the content Martin!

  • @suparnaprasad8187
    @suparnaprasad818727 күн бұрын

    Awesome video!

  • @algoX-nj2ly
    @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
    @harman654321Ай бұрын

    Great series for distributed systems.

  • @tysonliu2833
    @tysonliu2833Ай бұрын

    how do we handle obtaining commit timestamp in a raft database without physical clock? just two phase commit?

  • @tysonliu2833
    @tysonliu2833Ай бұрын

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

  • @jl1835
    @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
    @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
    @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
    @tysonliu2833Ай бұрын

    oh nvm when it sends its advocation to a node with newer data, it will be demoted to follower

  • @ferschubert
    @ferschubertАй бұрын

    Vielen Dank! Thanks Martin! Very clear explanation on Lamport and Vector logical clocks, inspired my lectures for CS from your explanation.

  • @srikrishna6595
    @srikrishna6595Ай бұрын

    bro you rocked it

  • @anishsingla-pg2pd
    @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
    @khatiakilanava1557Ай бұрын

    Thank you so much for the series. They really are great and simple to follow. You are the best :))

  • @krizh289
    @krizh289Ай бұрын

    Thanks for putting these lectures on youtube--education should be accessible to all

  • @fadygamilmahrousmasoud5863
    @fadygamilmahrousmasoud58632 ай бұрын

    thank you, very informative and explantory

  • @ShubhamGuptaAmol
    @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?

  • @johnshepard3197
    @johnshepard31972 ай бұрын

    11:40 you tube

  • @jainamm5307
    @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.

  • @jainamm5307
    @jainamm53072 ай бұрын

    One potential solution to this problem is to have a recovery mechanism for the node when it comes back up.

  • @jainamm5307
    @jainamm53072 ай бұрын

    One potential solution is to have a recovery mechanism for the node when it comes back up.

  • @salad7389
    @salad73892 ай бұрын

    super well made, thank you!

  • @pavelhassan7457
    @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-ud8hw4gp6t
    @user-ud8hw4gp6t2 ай бұрын

    hast du discord?

  • @user-ud8hw4gp6t
    @user-ud8hw4gp6t2 ай бұрын

    bestes video was ich gefunden habe. alles andere hat mega genervt.

  • @user-ud8hw4gp6t
    @user-ud8hw4gp6t2 ай бұрын

    aber wundert mich auch nicht wegen cambridge prof titel xD

  • @anshulgupta9754
    @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.

  • @kobew1351
    @kobew13513 ай бұрын

    Hope you can make a video to explain three phase commit and how it improves fault tolerance.

  • @StijnDeWitt
    @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?

  • @StijnDeWitt
    @StijnDeWitt3 ай бұрын

    All logical clocks I have seen so far require a central coordinator. Looking for a truly distributed logical clock algorithm.

  • @zamansmail
    @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.

  • @attariarash
    @attariarash3 ай бұрын

    Why we should study these theories when we don't learn nothing about how to code or how to design distributed systems?

  • @itdepends5906
    @itdepends59063 ай бұрын

    Nice! Didn't know you're into singing as well :)

  • @itdepends5906
    @itdepends59063 ай бұрын

    Yayy so happy to see you play as well!

  • @aliberatcetin6765
    @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.

  • @donfeto7636
    @donfeto76364 ай бұрын

    Thanks bro you legend

  • @Tatiana-zs3dc
    @Tatiana-zs3dc4 ай бұрын

    What a great lecturer! THANK YOU for explaining everything so clearly !!!!

  • @user-hq9ef9vp9m
    @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?

  • @bobslave7063
    @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?