Martin Kleppmann
Martin Kleppmann
  • 39
  • 1 393 758

Video

Discussion session on Peritext, a CRDT for rich text
zhlédnutí 3,8KPřed rokem
A discussion session for my Patreon supporters, about the paper "Peritext: A CRDT for Collaborative Rich Text Editing" with Geoffrey Litt, Sarah Lim, and Peter van Hardenberg. Paper: www.inkandswitch.com/peritext/static/cscw-publication.pdf You can join future discussion sessions by supporting me on Patreon: www.patreon.com/martinkl
Automerge: a new foundation for collaboration software
zhlédnutí 17KPřed 2 lety
Local-first software is an effort to make collaboration software less dependent on cloud services, and Automerge is an open-source library for realising local-first software. In this talk I explain our motivation for creating Automerge, and map out 7 years worth of research projects that are feeding into this project. Recording of a talk given at the University of Cambridge SRG Seminars on 25 N...
Distributed Systems 6.2: Raft
zhlédnutí 30KPřed 2 lety
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: czcams.com/play/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB.html This video is part of an 8-lecture series on distributed systems, given as part of the undergraduate computer science course at the University of Cambridge. It is preceded by an 8-lecture course on concurrent systems for which vide...
Thinking in Events: From Databases to Distributed Collaboration Software (ACM DEBS 2021)
zhlédnutí 30KPřed 3 lety
Keynote by Martin Kleppmann at the 15th ACM International Conference on Distributed and Event-based Systems (ACM DEBS 2021) Paper: dl.acm.org/doi/10.1145/3465480.3467835 Alternative paper link: martin.kleppmann.com/papers/debs21-keynote.pdf Slides: speakerdeck.com/ept/thinking-in-events-from-databases-to-distributed-collaboration-software If you found this useful, please consider becoming a sup...
Maple Leaf Rag (played by beginner)
zhlédnutí 6KPřed 3 lety
My lockdown project for the last year has been to learn the piano. Thanks to my partner for teaching me. Here is my attempt at Scott Joplin's Maple Leaf Rag, with plenty of wrong notes - that's how you know it's played by human, not by computer.
Distributed Systems 8.1: Collaboration software
zhlédnutí 21KPřed 3 lety
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: czcams.com/play/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB.html This video is part of an 8-lecture series on distributed systems, given as part of the undergraduate computer science course at the University of Cambridge. It is preceded by an 8-lecture course on concurrent systems for which vide...
Distributed Systems 8.2: Google's Spanner
zhlédnutí 31KPřed 3 lety
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: czcams.com/play/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB.html This video is part of an 8-lecture series on distributed systems, given as part of the undergraduate computer science course at the University of Cambridge. It is preceded by an 8-lecture course on concurrent systems for which vide...
Distributed Systems 7.3: Eventual consistency
zhlédnutí 26KPřed 3 lety
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: czcams.com/play/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB.html This video is part of an 8-lecture series on distributed systems, given as part of the undergraduate computer science course at the University of Cambridge. It is preceded by an 8-lecture course on concurrent systems for which vide...
Distributed Systems 7.2: Linearizability
zhlédnutí 35KPřed 3 lety
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: czcams.com/play/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB.html This video is part of an 8-lecture series on distributed systems, given as part of the undergraduate computer science course at the University of Cambridge. It is preceded by an 8-lecture course on concurrent systems for which vide...
Distributed Systems 7.1: Two-phase commit
zhlédnutí 60KPřed 3 lety
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: czcams.com/play/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB.html This video is part of an 8-lecture series on distributed systems, given as part of the undergraduate computer science course at the University of Cambridge. It is preceded by an 8-lecture course on concurrent systems for which vide...
Distributed Systems 6.2: Raft
zhlédnutí 14KPřed 3 lety
NOTE: There are some mistakes in this video. Please watch this one instead, in which the bugs are fixed: czcams.com/video/uXEYuDwm7e4/video.html This video is part of an 8-lecture series on distributed systems, given as part of the undergraduate computer science course at the University of Cambridge. Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2021/ConcDisSys/dist-sys-notes.pdf Full l...
Distributed Systems 6.1: Consensus
zhlédnutí 35KPřed 3 lety
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: czcams.com/play/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB.html This video is part of an 8-lecture series on distributed systems, given as part of the undergraduate computer science course at the University of Cambridge. It is preceded by an 8-lecture course on concurrent systems for which vide...
Distributed Systems 5.3: State machine replication
zhlédnutí 28KPřed 3 lety
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: czcams.com/play/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB.html This video is part of an 8-lecture series on distributed systems, given as part of the undergraduate computer science course at the University of Cambridge. It is preceded by an 8-lecture course on concurrent systems for which vide...
Distributed Systems 5.2: Quorums
zhlédnutí 36KPřed 3 lety
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: czcams.com/play/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB.html This video is part of an 8-lecture series on distributed systems, given as part of the undergraduate computer science course at the University of Cambridge. It is preceded by an 8-lecture course on concurrent systems for which vide...
Distributed Systems 5.1: Replication
zhlédnutí 42KPřed 3 lety
Distributed Systems 5.1: Replication
Distributed Systems 4.3: Broadcast algorithms
zhlédnutí 39KPřed 3 lety
Distributed Systems 4.3: Broadcast algorithms
Distributed Systems 4.2: Broadcast ordering
zhlédnutí 48KPřed 3 lety
Distributed Systems 4.2: Broadcast ordering
Distributed Systems 4.1: Logical time
zhlédnutí 75KPřed 3 lety
Distributed Systems 4.1: Logical time
Distributed Systems 3.3: Causality and happens-before
zhlédnutí 38KPřed 3 lety
Distributed Systems 3.3: Causality and happens-before
Distributed Systems 3.2: Clock synchronisation
zhlédnutí 41KPřed 3 lety
Distributed Systems 3.2: Clock synchronisation
Distributed Systems 3.1: Physical time
zhlédnutí 37KPřed 3 lety
Distributed Systems 3.1: Physical time
Distributed Systems 2.4: Fault tolerance
zhlédnutí 37KPřed 3 lety
Distributed Systems 2.4: Fault tolerance
Distributed Systems 2.3: System models
zhlédnutí 47KPřed 3 lety
Distributed Systems 2.3: System models
Distributed Systems 2.2: The Byzantine generals problem
zhlédnutí 60KPřed 3 lety
Distributed Systems 2.2: The Byzantine generals problem
Distributed Systems 2.1: The two generals problem
zhlédnutí 50KPřed 3 lety
Distributed Systems 2.1: The two generals problem
Distributed Systems 1.3: RPC (Remote Procedure Call)
zhlédnutí 96KPřed 3 lety
Distributed Systems 1.3: RPC (Remote Procedure Call)
Distributed Systems 1.2: Computer networking
zhlédnutí 61KPřed 3 lety
Distributed Systems 1.2: Computer networking
Distributed Systems 1.1: Introduction
zhlédnutí 232KPřed 3 lety
Distributed Systems 1.1: Introduction
CRDTs: The Hard Parts
zhlédnutí 64KPřed 4 lety
CRDTs: The Hard Parts

Komentáře

  • @PhuongNguyen-do9io
    @PhuongNguyen-do9io Před 3 dny

    Thank you

  • @33galactus
    @33galactus Před 8 dny

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

  • @joaofurukawa
    @joaofurukawa Před 14 dny

    u are the GOAT of DS!

  • @MitaliNeerPatel
    @MitaliNeerPatel Před 23 dny

    Where Can I find first half of the course ?

  • @jmbrjmbr2397
    @jmbrjmbr2397 Před 25 dny

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

  • @Samindika1997
    @Samindika1997 Před 27 dny

    Thank you very much.

  • @utsavdahiya3729
    @utsavdahiya3729 Před 29 dny

    6:25 czcams.com/video/_2By2ane2I4/video.html

  • @donaldcarnegie3018
    @donaldcarnegie3018 Před měsícem

    Glock. Genuinely meant block

  • @donaldcarnegie3018
    @donaldcarnegie3018 Před měsícem

    Did you glock😢

  • @donaldcarnegie3018
    @donaldcarnegie3018 Před měsícem

    I am sl confused rn

  • @donaldcarnegie3018
    @donaldcarnegie3018 Před měsícem

    Something

  • @donaldcarnegie3018
    @donaldcarnegie3018 Před měsícem

    Haha lol i made a funny

  • @donaldcarnegie3018
    @donaldcarnegie3018 Před měsícem

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

  • @FarhadJabiyev
    @FarhadJabiyev Před měsícem

    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
    @hamdenichamseddine8217 Před měsícem

    Thank you so much for the perfect explanation

  • @alexeiionov9812
    @alexeiionov9812 Před měsícem

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

  • @indrajeetv8878
    @indrajeetv8878 Před měsícem

    Sir, where is part one?

  • @bermick
    @bermick Před měsícem

    brilliant! thanks a lot for the content Martin!

  • @suparnaprasad8187
    @suparnaprasad8187 Před měsícem

    Awesome video!

  • @algoX-nj2ly
    @algoX-nj2ly Před měsícem

    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 Před měsícem

    Great series for distributed systems.

  • @tysonliu2833
    @tysonliu2833 Před měsícem

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

  • @tysonliu2833
    @tysonliu2833 Před měsícem

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

    • @jl1835
      @jl1835 Před měsícem

      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 Před měsícem

    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 Před měsícem

    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 Před měsícem

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

  • @ferschubert
    @ferschubert Před měsícem

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

  • @srikrishna6595
    @srikrishna6595 Před měsícem

    bro you rocked it

  • @anishsingla-pg2pd
    @anishsingla-pg2pd Před 2 měsíci

    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 Před 2 měsíci

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

  • @krizh289
    @krizh289 Před 2 měsíci

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

  • @fadygamilmahrousmasoud5863
    @fadygamilmahrousmasoud5863 Před 2 měsíci

    thank you, very informative and explantory

  • @ShubhamGuptaAmol
    @ShubhamGuptaAmol Před 2 měsíci

    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
    @johnshepard3197 Před 2 měsíci

    11:40 you tube

  • @jainamm5307
    @jainamm5307 Před 2 měsíci

    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
      @jainamm5307 Před 2 měsíci

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

    • @jainamm5307
      @jainamm5307 Před 2 měsíci

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

  • @salad7389
    @salad7389 Před 2 měsíci

    super well made, thank you!

  • @pavelhassan7457
    @pavelhassan7457 Před 3 měsíci

    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-ud8hw4gp6t Před 3 měsíci

    hast du discord?

  • @user-ud8hw4gp6t
    @user-ud8hw4gp6t Před 3 měsíci

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

    • @user-ud8hw4gp6t
      @user-ud8hw4gp6t Před 3 měsíci

      aber wundert mich auch nicht wegen cambridge prof titel xD

  • @anshulgupta9754
    @anshulgupta9754 Před 3 měsíci

    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
    @kobew1351 Před 3 měsíci

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

  • @StijnDeWitt
    @StijnDeWitt Před 3 měsíci

    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
    @StijnDeWitt Před 3 měsíci

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

  • @zamansmail
    @zamansmail Před 3 měsíci

    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
    @attariarash Před 3 měsíci

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

  • @itdepends5906
    @itdepends5906 Před 4 měsíci

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

  • @itdepends5906
    @itdepends5906 Před 4 měsíci

    Yayy so happy to see you play as well!

  • @aliberatcetin6765
    @aliberatcetin6765 Před 4 měsíci

    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
    @donfeto7636 Před 4 měsíci

    Thanks bro you legend

  • @Tatiana-zs3dc
    @Tatiana-zs3dc Před 4 měsíci

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

  • @user-hq9ef9vp9m
    @user-hq9ef9vp9m Před 4 měsíci

    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?