CAP Theorem | Trade offs to choose a Database | System Design Primer | Tech Primers
Вставка
- Опубліковано 24 лип 2024
- This video covers what is CAP theorem along with the trade offs in choosing a database with real world examples. It also covers concepts beyond CAP theorem
⏱️ Chapter Timestamps
====================
0:00 - Intro
1:06 - Agenda
1:38 - What is CAP Theorem?
2:27 - Partition Tolerance
3:47 - Consistency
4:14 - CAP Availability
5:55 - Consistency & Availability
9:04 - Consistency & Partition Tolerance
12:15 - Availability & Partition Tolerance
14:35 - Beyond CAP Theorem
📌 Related Links
=============
🔗 Please stop calling Databases CP or AP - martin.kleppmann.com/2015/05/...
🔗 A critique of CAP Theorem (Whitepaper) - arxiv.org/abs/1509.05393
💥Join TechPrimers Slack Community: bit.ly/JoinTechPrimers
💥Telegram: t.me/TechPrimers
💥TechPrimer HindSight (Blog): / techprimers
💥Website: techprimers.com
💥Slack Community: techprimers.slack.com
💥Twitter: / techprimers
💥Facebook: TechPrimers
💥GitHub: github.com/TechPrimers or techprimers.github.io/
🎬Video Editing: FCP
🎼Background Music:
Joakim Karud
Dyalla
---------------------------------------------------------------
🔥 Disclaimer/Policy:
The content/views/opinions posted here are solely mine and the code samples created by me are open sourced.
You are free to use the code samples in Github after forking and you can modify it for your own use.
All the videos posted here are copyrighted. You cannot re-distribute videos on this channel in other channels or platforms.
#CAPTheorem #SystemDesignPrimer #TechPrimers - Навчання та стиль
⏱️ Chapter Timestamps
====================
0:00 - Intro
1:06 - Agenda
1:38 - What is CAP Theorem?
2:27 - Partition Tolerance
3:47 - Consistency
4:14 - CAP Availability
5:55 - Consistency & Availability
9:04 - Consistency & Partition Tolerance
12:15 - Availability & Partition Tolerance
14:35 - Beyond CAP Theorem
One confusion, When I want to achieve CA , then why there is a partition , i read and write from the master, thus i achieve CA, but we are also achieving the Partition tolerance with it, isn't it ? coz even after partition, our system is able to still serve.
There is slight ambiguity in explaining Partition and Partition Tolerance - Partition Tolerance is the 'ability' of the system to be able to serve writes OR queries even when there is network partition (i.e. when messages get dropped or arbitrarily delayed). If the system is partition-tolerant, it may not remain consistent for that period, however the tolerance property causes it to sync the newer writes when network becomes healthy again.
Yes!! A CP database is always consistent even in partition scenarios (connection loss between nodes), but you lose availability during this partition. A AP database is always available even in partition scenarios, but you lose consistency during the partition. Finally, a CA database is available and consistent only if no partition occurs. If some network problem occurs between nodes, the database might lose either its consistency or availability. So it isn't partition tolerant.
Then what about a CP system? will the data store remain unavailable altogether in case of a network partition (network break or loss of connection within the data store)?
Yes correct
Telling us the agenda before entire video..hatsoff for that..you are true tech enthusiast rather than a youtuber
Thank you Sai. Yes. Time is money. I would like to give back ppl their time if they are not interested. Appreciate your time 👍🏻
Thank you so much @Tech Primers, your channel is resourceful. I've learnt a lot about Spring and Java. I really appreciate your works!
Thanls Khoa
so glad I watched this video in my lifetime
thanks for such a comprehensive video on cap theorem.
Very good!!! Please continue with this series!!
Excellent video..keep posting such videos. Thank you
Amazingly explained
a very decent explanation of CAP theorem
Again new and good stuff helpfull. Thanks bro
Great work man, Thanks :)
Thanks for sharing your knowledge
Next level explanation!
easy explanation , thanks!
excellent explanation
Very Helpful, thx!
Excellent
Please make practical video on 2 Database synchronisation like if we have POS System 1 db for particular system it'll sync with main server.
Thanks for such a nice videos.. pls do more videos on system design and microservice design pattern... only understanding is sufficient no coding required
awesome ...
You are doing a good job :)
Solid information Ajay. Thanks for this!
Thanks shaswant. Glad it’s helpful
Wow! Thank you for giving such detailed explanation. I guess I don't need any other video for explanation of CAP Theorem 😀
@Janvi
One confusion, When I want to achieve CA , then why there is a partition , i read and write from the master, thus i achieve CA, but we are also achieving the Partition tolerance with it, isn't it ? coz even after partition, our system is able to still serve.
Can you please share how you make your youtube videos please, the process, editing, and the graphix and transitions etc. please
ur great bro keep it up
Thank you, this video is usefull)
Is it safe to assume that all DBs in production are currently distributed? Because CAP applies only to distributed DB situation right?
amazing video!
Glad you like it!
Just Awesome
Good work buddy. u help us in day today activities and understanding the technical aspects
Glad its helpful puneet.
@@TechPrimers
One confusion, When I want to achieve CA , then why there is a partition , i read and write from the master, thus i achieve CA, but we are also achieving the Partition tolerance with it, isn't it ? coz even after partition, our system is able to still serve.
what do you mean by mysql through the same function? Can you please clarify this ? at 0:18
Nice Explanation pls upload more video on system desing.
Guru can you make a tutorial on Kafka connector, streaming data from one database to another.
Sir, please continue system design challenges.
Good one
Thanks
Very nicely explained ... Please post some videos like Facebook news feed design
If possible share your thoughts on modelling time Series(ex: Call Details of user) data using Cassandra / any Nosql DB.
I did a video on Prometheus i believe. Try checking that, if that doesn't help let me know, i will do one
thanks for such an amazing breakdown
Glad you liked it!
@@TechPrimers
One confusion, When I want to achieve CA , then why there is a partition , i read and write from the master, thus i achieve CA, but we are also achieving the Partition tolerance with it, isn't it ? coz even after partition, our system is able to still serve.
Excellent video :-) You made it damn easy!!! Can you make something on a typical centralized application logging framework?
There is a splunk video robin. You can take a look at that
Thank you :-)
Nice video
Thanksss
Very nice video to understand the CAP theory.
Do you have any sample code for dynamic rule engine concepts
Check my rule engine video
One confusion, When I want to achieve CA , then why there is a partition , i read and write from the master, thus i achieve CA, but we are also achieving the Partition tolerance with it, isn't it ? coz even after partition, our system is able to still serve.
Mass bro
The explanation for the Relational DBs supporting CA is bit confusing. The reason why Relational DBs are Consistent is because the Primary node is the one which clients read and writes to. So every time any client reads the response will be consistent. Availability in Relational DBs is from replicating data from the primary to backup nodes, so in case the primary node goes down, the secondary node is available to respond to requests. However, it isn't partition tolerant because if the network breaks between the primary and secondary it wouldn't be able to replicate data.
while explaining SQL database why you don't use same cluster example used for the other DB's.
May I know.. Why to sacrifice one of the feature among three? Why can't possible to cover with 3 features in any dB? Can you explain..
You see the video it’s already explained. If there is partition tolerance, you either get consistency or availability. Since data is isolated and there is now way to sync new data. This is similar to how you get disconnected from internet and not able to view any new updates
@@TechPrimers I understood that we are loosing either Availability or Consistency when there’s a partition tolerance, but what are we sacrificing in case of relational databases (Which are always available and consistent) as per CAP theorem. Can you please elaborate?
Nice one I love the slides, hope you must have used Google slides..!!
Google cloud firestore following CP however they can provide more availablity because they are using their own private network. Is it right?
General availability is different from CAP Availability Namjith. If there is a partition (failure between nodes in the firestore cluster), you have to choose between consistency or availability, you cannot get both. However beyond CAP theorem you can include Latency as one more parameter, you can choose Latency over Consistency
Best explanation of CAP theorem i have come across
You didn't talk about when P happend, the followers will elect a new leader and there are two leaders in the different subset of network provide read and write.
Good to see we are getting away with the Master Slave terminology and using Primary Secondary instead.
Yes in deed... #DiversityAndInclusion
The CA part is very misleading. If we choose consistency and availability over partition tolerance, then there must NOT have any network partitions happening.
You made it too easy to understand.
Glad it’s helpful
CAP theorem as per it's original defn, only speaks about distributed db. Here Availability is not "some data" but should be "all data". Some parts were wrongly explained. Please read up google wiki page.
Hi Gyana Sagu,
Not sure if you have read CAP Availability. I had mentioned availability mentioned here is different from CAP Availability. If you look at the CAP theorem wiki it says
"Availability: Every request receives a (non-error) response, without the guarantee that it contains the most recent write"
To my understanding, if the most recent write is not synced, that's not all data. Can you justify your comment?