- Видео 39
- Просмотров 1 564 501
Martin Kleppmann
Великобритания
Добавлен 1 сен 2013
Talks by Martin Kleppmann
Rêverie by Claude Debussy
Plenty of wrong notes, which just make it all the more authentic!
Просмотров: 5 424
Видео
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
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
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)
Beautiful playing!
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
Fun to watch this series.
Thank you Sir Kleppmann.
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?
@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?
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?
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?
Such practical things to learn tysm @martin
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?
Where lamport and vector timestamp used in real-time application or distributed system?
thanks
@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!
Only Chill Guys here.😀
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!
Like that T-shirt color
Say Hi to MIT distributed systems students 😂
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.
This subject could not have been explained better Martin. Thank you for your service to the computer science community. This is true gold!
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?
In the last slide, who do we return to?
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
I love you Martin
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.
Thank you so much for creating these succint ,logical , detalied content .it really pave the way for me to get to know distributed system !!
Amazing video!
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 ?
Thank you for this videos.
Bi-jan-tyne
wow great teaching, thank you
I remember this font from a famous programming book just not quite sure what book it is. Design Patterns?
Thank you sir, a grateful new subscriber.
videos are clearer than the book 😅
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?
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?
Amazing!!
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
It is a gem 💎
i wondering about version vector, too. !!
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.
This video is so clear and informative. It answered most of the questions I had.
can we use this algorithm in wireless sensor networks?
What an excellent video - thank you!
For me the best course for DS. Thanks Martin
11:10 wow that's the ultimate definition of concurrency right there
Thank you for this amazing free series, you are the best.
Big fan of his thought process. I wish I could do phd under him.
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?
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!