Martin Kleppmann
Martin Kleppmann
  • Видео 39
  • Просмотров 1 564 501

Видео

Discussion session on Peritext, a CRDT for rich text
Просмотров 4,2 тыс.2 года назад
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
Просмотров 18 тыс.3 года назад
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
Просмотров 35 тыс.3 года назад
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: ruclips.net/p/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB 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 videos are ...
Thinking in Events: From Databases to Distributed Collaboration Software (ACM DEBS 2021)
Просмотров 32 тыс.3 года назад
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)
Просмотров 6 тыс.3 года назад
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
Просмотров 23 тыс.4 года назад
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: ruclips.net/p/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB 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 videos are ...
Distributed Systems 8.2: Google's Spanner
Просмотров 35 тыс.4 года назад
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: ruclips.net/p/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB 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 videos are ...
Distributed Systems 7.3: Eventual consistency
Просмотров 29 тыс.4 года назад
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: ruclips.net/p/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB 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 videos are ...
Distributed Systems 7.2: Linearizability
Просмотров 40 тыс.4 года назад
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: ruclips.net/p/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB 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 videos are ...
Distributed Systems 7.1: Two-phase commit
Просмотров 68 тыс.4 года назад
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: ruclips.net/p/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB 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 videos are ...
Distributed Systems 6.2: Raft
Просмотров 15 тыс.4 года назад
NOTE: There are some mistakes in this video. Please watch this one instead, in which the bugs are fixed: ruclips.net/video/uXEYuDwm7e4/видео.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 ...
Distributed Systems 6.1: Consensus
Просмотров 40 тыс.4 года назад
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: ruclips.net/p/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB 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 videos are ...
Distributed Systems 5.3: State machine replication
Просмотров 31 тыс.4 года назад
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: ruclips.net/p/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB 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 videos are ...
Distributed Systems 5.2: Quorums
Просмотров 40 тыс.4 года назад
Accompanying lecture notes: www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf Full lecture series: ruclips.net/p/PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB 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 videos are ...
Distributed Systems 5.1: Replication
Просмотров 48 тыс.4 года назад
Distributed Systems 5.1: Replication
Distributed Systems 4.3: Broadcast algorithms
Просмотров 44 тыс.4 года назад
Distributed Systems 4.3: Broadcast algorithms
Distributed Systems 4.2: Broadcast ordering
Просмотров 54 тыс.4 года назад
Distributed Systems 4.2: Broadcast ordering
Distributed Systems 4.1: Logical time
Просмотров 86 тыс.4 года назад
Distributed Systems 4.1: Logical time
Distributed Systems 3.3: Causality and happens-before
Просмотров 43 тыс.4 года назад
Distributed Systems 3.3: Causality and happens-before
Distributed Systems 3.2: Clock synchronisation
Просмотров 46 тыс.4 года назад
Distributed Systems 3.2: Clock synchronisation
Distributed Systems 3.1: Physical time
Просмотров 42 тыс.4 года назад
Distributed Systems 3.1: Physical time
Distributed Systems 2.4: Fault tolerance
Просмотров 42 тыс.4 года назад
Distributed Systems 2.4: Fault tolerance
Distributed Systems 2.3: System models
Просмотров 52 тыс.4 года назад
Distributed Systems 2.3: System models
Distributed Systems 2.2: The Byzantine generals problem
Просмотров 68 тыс.4 года назад
Distributed Systems 2.2: The Byzantine generals problem
Distributed Systems 2.1: The two generals problem
Просмотров 57 тыс.4 года назад
Distributed Systems 2.1: The two generals problem
Distributed Systems 1.3: RPC (Remote Procedure Call)
Просмотров 108 тыс.4 года назад
Distributed Systems 1.3: RPC (Remote Procedure Call)
Distributed Systems 1.2: Computer networking
Просмотров 70 тыс.4 года назад
Distributed Systems 1.2: Computer networking
Distributed Systems 1.1: Introduction
Просмотров 264 тыс.4 года назад
Distributed Systems 1.1: Introduction
CRDTs: The Hard Parts
Просмотров 70 тыс.4 года назад
CRDTs: The Hard Parts

Комментарии

  • @q1chen
    @q1chen 3 дня назад

    In the graphs, are we assuming that a message is delivered immediately after is it received(arrives) by a node? Because you are using the word deliver and receive interchangebaly

  • @mostinho7
    @mostinho7 12 дней назад

    Consensus algorithms rely on a leader (paxos, raft) to sequence messages 2:50 when using leader based replication, need to select a new leader when the leader crashes or becomes unavailable This is where consensus comes in Consensus is nodes agree on a value 5:10 paxos is for single value consensus and multi paxos is for consensus on multiple values (total order broadcast) Consensus and total order broadcast formally equivalent because if you can form consensus on the next message to deliver then you have total order broadcast Consensus algorithms (paxos, raft) use a partially synchronous, crash recovery model Partial synchrony means that we will use timeout failure detection to assume that a node failed Asynchronous model impossible to achieve consensus (FLP impossibility result)

  • @johnw5564
    @johnw5564 12 дней назад

    Beautiful playing!

  • @mostinho7
    @mostinho7 14 дней назад

    2:15 read after write consistency (client sees the data it wrote, even if not reading from same replica) Read and write quorum can guarantee this type of consistency if r+w>n r is number of replicas used for reads w number of replicas used for writes n total replicas Example values r = w = n+1/2 write to majority and read from majority Can have n-r replicas unavailable and still get read after write consistency and n-w replicas unavailable for writes and still get read after write consistency 4:50 2 out of 3 quorum when reading, timestamp is compared to read the latest 6:50 diagram of read write quorum 8:40 the client can keep the data consistent with read repair, updating replicas with latest value when it gets the response from each node Note: client uses the existing timestamp of the value so that if another client updated it the database replica with latest value will reject the write from the client (it’s identical to a retry of the write) Replicas can stay in sync using anti entropy and read repair

  • @_Mindfield
    @_Mindfield 14 дней назад

    Fun to watch this series.

  • @rahulsoshte9299
    @rahulsoshte9299 17 дней назад

    Thank you Sir Kleppmann.

  • @mostinho7
    @mostinho7 17 дней назад

    7:50 I’m confused about the need for impotence if using tcp. If the ack gets lost, client will re-send that segment, in tcp protocol, shouldn’t the server disregard that duplicate segment because it’s a stateful protocol?

  • @_Mindfield
    @_Mindfield 23 дня назад

    @martin at 22:30 these are two different clients. In lecture of logical clock, counter/vector was managed at server side. How this will done at client side?

  • @_Mindfield
    @_Mindfield 23 дня назад

    At 17:53 . Client is generating logical timestamps. Lets say vector one. What if there are multiple clients. 2 instance of a service which is connected with the database. How that is managed?

    • @_Mindfield
      @_Mindfield 23 дня назад

      On second thoughts above approach make sense when i have single master and multiple replica and that master is managing logical clock. So all updates is being issued by a single client. Does this slide cover that scenario?

  • @rahulsoshte9299
    @rahulsoshte9299 24 дня назад

    Such practical things to learn tysm @martin

  • @tarunpahuja3443
    @tarunpahuja3443 26 дней назад

    Lets say there are three Nodes A, B and C with A as a leader. If there is partition such as (A, B) and (C). C will keep incrementing its term number without becoming a leader whereas (A, B) will keep commiting the log entries. What happens when the partition resolve => Since C term is higher, A will become a follower. Does it mean A will lost its commited entries? I cant find the answer from the codebase, can someone pleaes point out?

  • @akashgoyal8141
    @akashgoyal8141 26 дней назад

    Where lamport and vector timestamp used in real-time application or distributed system?

  • @sijabatdame8966
    @sijabatdame8966 Месяц назад

    thanks

  • @victornovik4025
    @victornovik4025 Месяц назад

    @kleppman Hi Martin! Great engineering lecture with great background. It's a real pleasure to hear what's going on behind just measuring time in software. Thanks a lot!

  • @danielgutierrezgomez5158
    @danielgutierrezgomez5158 Месяц назад

    Only Chill Guys here.😀

  • @bradleyli1569
    @bradleyli1569 Месяц назад

    I've looked at several resources on explaining this concept of RPC and yours is the only one which I can say I finally understand it after watching it. Great explanations!

  • @antonperelygin2833
    @antonperelygin2833 Месяц назад

    Like that T-shirt color

  • @tszwangchiu9721
    @tszwangchiu9721 2 месяца назад

    Say Hi to MIT distributed systems students 😂

  • @K_E_1446
    @K_E_1446 2 месяца назад

    I guess there is a problem in Causal broadcast. On the receiving side, always we have deps>delivered at first place( for example, message with SeqNum=2 is received now, message with SeqNum=1 has been delivered before. Therefore we will have deps[i]=2, delivered[i]=1), I guess the it should be : deps< delivered --> ignore the message deps > delivered --> broadcast. Moreover, when deliver[i] has more value than, by further increase we even make it more, then the condition would be always true. Please let me know if I am mistaken.

  • @renanreismartins
    @renanreismartins 2 месяца назад

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

  • @RosamundaLearned
    @RosamundaLearned 2 месяца назад

    Great analysis, thank you! I need some advice: I have a SafePal wallet with USDT, and I have the seed phrase. (alarm fetch churn bridge exercise tape speak race clerk couch crater letter). How can I transfer them to Binance?

  • @mehdisaffar
    @mehdisaffar 2 месяца назад

    In the last slide, who do we return to?

  • @SaiKrishna21
    @SaiKrishna21 2 месяца назад

    I think professor forgot to clarify why clock synchronization using NTP will still fail to order messages. My understanding here is as follows: if clocks on nodes are skewed then the ordering fails, Even if we try to syncronize the clock using NTP, ordering will still fail because of variable network latency, network congestion etc. Due to this, physical clocks cant be perfectly synchronized using NTP and hence will lead to inconsistencies during message ordering and so we use logical clocks. Please correct me if im wrong @kleppmann

  • @slabchan7310
    @slabchan7310 2 месяца назад

    I love you Martin

  • @ashishkalra9438
    @ashishkalra9438 2 месяца назад

    Please correct me if i missed something..Before client sends commit message to coordinator for 2 phase commit start..it perform normal transaction on replicas but my confusion is if the problem happens during that write i.e. one replica performed write but another fails then how two phase will help...i thought that the entire reason of two-phase commit is to perform write in prepare phase and the commit in commit phase...why we are allowing normal update to both replicas before 2pc can start the process.

  • @midsummer124
    @midsummer124 2 месяца назад

    Thank you so much for creating these succint ,logical , detalied content .it really pave the way for me to get to know distributed system !!

  • @arnv4487
    @arnv4487 2 месяца назад

    Amazing video!

  • @xpdseth
    @xpdseth 2 месяца назад

    C first delivers m1, then m2 and then m3 - here I am confused by the diagram and the verb deliver, because the arrow head points to C but you mention delivers. Do you mean C allows m1 to be accepted/delivered to itself by A ?

  • @МадиЮсупов-ю7ф
    @МадиЮсупов-ю7ф 3 месяца назад

    Thank you for this videos.

  • @pajeetsingh
    @pajeetsingh 3 месяца назад

    Bi-jan-tyne

  • @throwaway-lo4zw
    @throwaway-lo4zw 3 месяца назад

    wow great teaching, thank you

  • @pajeetsingh
    @pajeetsingh 3 месяца назад

    I remember this font from a famous programming book just not quite sure what book it is. Design Patterns?

  • @BodhiAli-t8c
    @BodhiAli-t8c 3 месяца назад

    Thank you sir, a grateful new subscriber.

  • @AP-eh6gr
    @AP-eh6gr 3 месяца назад

    videos are clearer than the book 😅

  • @tysonliu2833
    @tysonliu2833 3 месяца назад

    I have an ultimate question that puzzles me for a long time since I first went thru these courses: If we can simply use vector clock or even lamport clock (that provides TOB)+ read repair to achieve linearizability in a leaderless replication, why do we bother having complicated algorithms such as Raft or Paxos to only achieve linearizability in a single leader replication?

  • @oz5219
    @oz5219 4 месяца назад

    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?

  • @dehghanym
    @dehghanym 4 месяца назад

    Amazing!!

  • @JohnCDSMB
    @JohnCDSMB 4 месяца назад

    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

  • @kzvonov
    @kzvonov 4 месяца назад

    It is a gem 💎

  • @ithsigma
    @ithsigma 5 месяцев назад

    i wondering about version vector, too. !!

  • @bga_developer
    @bga_developer 5 месяцев назад

    Pretty much all this concepts are just confused on what to name an request standard. Let's call it RPC, no REST no gRPC, how does AJAX sound... It good that I now know the difference tho.

  • @XtremrulesO
    @XtremrulesO 5 месяцев назад

    This video is so clear and informative. It answered most of the questions I had.

  • @wakandavernon1412
    @wakandavernon1412 5 месяцев назад

    can we use this algorithm in wireless sensor networks?

  • @henrikflamm4843
    @henrikflamm4843 5 месяцев назад

    What an excellent video - thank you!

  • @YT_YAHYASASSI
    @YT_YAHYASASSI 5 месяцев назад

    For me the best course for DS. Thanks Martin

  • @_sudipidus_
    @_sudipidus_ 5 месяцев назад

    11:10 wow that's the ultimate definition of concurrency right there

  • @slowmotion2300
    @slowmotion2300 5 месяцев назад

    Thank you for this amazing free series, you are the best.

  • @ramjikijai
    @ramjikijai 5 месяцев назад

    Big fan of his thought process. I wish I could do phd under him.

  • @kk-pi4hj
    @kk-pi4hj 5 месяцев назад

    I am little confused on your statement on "logical timstamps/lamport timestamps provides total order". if they provide total order why even bother about vector clocks? you clearly say that lamport timestamp cannot distinguish concurrent events so how can you call that a "total order"? Also when I put in "does lamport timestamp gives partial order or total order ?" in chatGPT it clearly says "partial order". What am I missing?

  • @swagatamchatterjee1949
    @swagatamchatterjee1949 5 месяцев назад

    I have one doubt. In one of the slide , you mentioned ..in other parts of the computer science Synchronous and Asynchronous are used in other aspects or differently. Can someone please help me to understand that ? and great video series and thanks a lot Martin!