Another great example of eventual consistency is everyone typing "first" in youtube comment section and later realised that there are at-least 2 dozen such comments :P Thanks for the great content !!
Watched the other videos years ago and these are still the best videos on distributed systems on all of youtube [even better than the lectures I was exposed to in my undergrad in computer science] hope you continue to make more of these videos.
Great course, Chris! I've just finished L16 and am very happy to discover, that you are continuously making new videos. I hope your kid is OK and it will give you some time for new lectures ;) Cheers and many, many thanks one more time!
Great video! Loved each of the explanations. Am I correct in saying that Strict consistency = Strong consistency and FIFO consistency = weak consistency?
In this video, strict consistency is an example of a strongly consistent model (as all reads and writes are observed by all nodes in the same order). I would argue that so is sequential consistency, as all executions are provably equivalent to a strict consistency execution. Both FIFO and release consistency are more relaxed consistency models, where it is possible to write code that observes different states of the system -- so in that respect they are weakly consistent. But they also are possible, using concurrency primitives (such as mutexes, semaphores, etc.) to write code in where all shared state is observed only in a consistent state. So if they are used without consistent use of concurrency primitives you could argue they are providing weak consistency. BUT, often when distributed systems folks say they are using "weak consistency" they are complaining about the fact that the system they are using provides inconsistent data in the common use case (a.k.a., it may provide concurrency primitives which give you consistent results, but the system gets too slow if you use these primitives all the time). "Too slow" is of course a judgement call, which depends on the application. In this case you want to modify your application-level behaviour to account for this inconsistent view of the data. The "eventual consistency" case in this video is an example of this, where the application is adapted to still "work" for users in spite of an inconsistent view of the underlying data.
In general -- you read the documentation. I suppose you could come up with some experiments to try and discover what is going on, but that is error prone and hard.
Hi, your videos are amazing and I watched your videos instead of attending the boring lectures at my university. 🤣 If possible, you could make a video about Raft since it's very popular in the industry right now. I'll definitely watch it if you post it!
Thanks! One of the things I tried to do with these videos is only pick topics where I thought I might be able to do better than what was already out there at the time, or if I could take a novel approach to a topic that was already covered. There already are some excellent Raft videos put together by Diego Ongaro and John Ousterhout (who know Raft way better than I ever will). It looks like a good revision of his user study talk can be found here: ua-cam.com/video/vYp4LYbnnW8/v-deo.html
The introduction was pure GOLD, 🤣🤣not sure if I'll ever forget that example
Woah, this was the best explanation I have seen of Consistency Models on the internet.
Another great example of eventual consistency is everyone typing "first" in youtube comment section and later realised that there are at-least 2 dozen such comments :P
Thanks for the great content !!
I really appreciate your work. You are amazing at explaining these topics clear and concise. Really enjoyed the entire Series ! :)
Glad you like them!
best video on Consistency model available on the youtube! Well explained man!
Aww thank you! Glad it was helpful.
The whole series was amazing. It left me wanting for more. Moarrr!!!1
Just here to say that I think this channel is amazing, nice to see that you're uploading again.
Hey, thanks!
Thank you so much. I am struggling with this course at my grad school, but your videos have helped me a lot.
one of the best explanation found ever, thanks !!
Glad you think so!
Watched the other videos years ago and these are still the best videos on distributed systems on all of youtube [even better than the lectures I was exposed to in my undergrad in computer science] hope you continue to make more of these videos.
Y-you're back!!!
Welcome back
Great course, Chris! I've just finished L16 and am very happy to discover, that you are continuously making new videos. I hope your kid is OK and it will give you some time for new lectures ;) Cheers and many, many thanks one more time!
Kids are doing well. But yup, I keep on hoping I find some more time too.
Thanks, finally understanding the purpose of volatile keyword
Great explanation!!
please continue this series _/\_
Extremely well done. Thank you.
Love the real world examples, thanks !!
Thanks!
thank you! this is helping me study for my exam tomorrow
Hope it went well!
Keep going please amazing content and enthusiasm thanks
I'll try!
LOL, the "timing joke" got me laughed!
It was very helpful! Thank you!
please add more videos. you are needed
Great video! Loved each of the explanations. Am I correct in saying that Strict consistency = Strong consistency and FIFO consistency = weak consistency?
In this video, strict consistency is an example of a strongly consistent model (as all reads and writes are observed by all nodes in the same order). I would argue that so is sequential consistency, as all executions are provably equivalent to a strict consistency execution. Both FIFO and release consistency are more relaxed consistency models, where it is possible to write code that observes different states of the system -- so in that respect they are weakly consistent. But they also are possible, using concurrency primitives (such as mutexes, semaphores, etc.) to write code in where all shared state is observed only in a consistent state. So if they are used without consistent use of concurrency primitives you could argue they are providing weak consistency.
BUT, often when distributed systems folks say they are using "weak consistency" they are complaining about the fact that the system they are using provides inconsistent data in the common use case (a.k.a., it may provide concurrency primitives which give you consistent results, but the system gets too slow if you use these primitives all the time). "Too slow" is of course a judgement call, which depends on the application. In this case you want to modify your application-level behaviour to account for this inconsistent view of the data. The "eventual consistency" case in this video is an example of this, where the application is adapted to still "work" for users in spite of an inconsistent view of the underlying data.
love your explanation :)
Glad you liked it!
Great content. Thanks.
My pleasure!
Waited one year for this video
Hope it was worth it! It's been quite a year...
How does the client recognize that sequential consistency is at play in a system and not strict consistency?
In general -- you read the documentation. I suppose you could come up with some experiments to try and discover what is going on, but that is error prone and hard.
Hi, your videos are amazing and I watched your videos instead of attending the boring lectures at my university. 🤣
If possible, you could make a video about Raft since it's very popular in the industry right now. I'll definitely watch it if you post it!
Thanks! One of the things I tried to do with these videos is only pick topics where I thought I might be able to do better than what was already out there at the time, or if I could take a novel approach to a topic that was already covered. There already are some excellent Raft videos put together by Diego Ongaro and John Ousterhout (who know Raft way better than I ever will). It looks like a good revision of his user study talk can be found here:
ua-cam.com/video/vYp4LYbnnW8/v-deo.html
Hello sir, why dont you make a lecture about the challenge of distributed system?
Wrt. Eventual consistency... The issue becomes: What's the "latest".
It might not be what the clients expected... Even though it's consistent