System design interview: Database Scaling
ฝัง
- เผยแพร่เมื่อ 9 ก.ค. 2024
- ► WATCH LIVE: twitch.com/johncodes
► Twitter: / johncodezzz
► Home page: johncodes.com
► Email me: hello@johncodes.com
Database scaling questions are some of the most complicated ones you'll be asked in a system design interview. In this video, we will cover the various topics and broad strategies for database scaling.
#johncodes
🚀 SUMMARY:
Scaling databases are no trivial manner. Especially when you need to scale them up to millions (if not billions) of users. At a global scale, you'll have to consider geo-political implications, but we'll also be covering horizontal vs vertical scaling, manager / worker models, sharding, partitions, and using data centers. Best of luck in your software engineer interviews!
⏰ TIMESTAMPS:
00:00 Intro
00:36 ACID
03:16 Single server
05:50 Multiple databases
06:48 Manager / Worker
08:39 Circle
10:51 Quick note on caching layers
12:39 Partitions
15:22 Sharding
17:07 Datacenters
20:00 Separate read / write layers
20:53 SaaS
🎵 MUSIC CREDITS:
- Yasumu - Recharge
- Provided by Lofi Records
- Watch: • Yasumu - Recharge
- Download/Stream: fanlink.to/3amstudysession
🤔 About:
Hi all, I’m John, an experienced software engineer and open source software enthusiast / contributor. I make fun and informative videos about tech, engineering, productivity, and life! Like, comment, and subscribe for more! - วิทยาศาสตร์และเทคโนโลยี
Good luck all with your system design interviews!! 🚀
This video is much more detailed than the others I watched. Good job.
Really great walkthrough. Clear, concise and decent white boarding. Now the manager/worker terminology was throwing me off for a minute like “is he meaning master/salve DBs?” 😂. I work at FAANG and get it, our blacklist (I mean “not allowed list”) of technical terms grows daily but it still throws me off.
Yeah, I thought he was just being too liberal, but I get it now.
The 2nd one is actually "Consistency", which is different from correctness. Correctness can only be guaranteed by the app code (written by a developer).
Consistency means that everything written by a transaction must be valid, e.g. constraints, cascaded triggers, or any combination thereof. Sorry, cannot give you thumbs here but I will not give you a downvote either. So, better luck next time :).
Thanks for the correction!!!
"Correctness" is also correct and sometimes used though less often than "consistency."
Correctness can mean different things in different contexts or levels of abstractions. Its valid to talk about the database enforcing "correctness" (in terms of database constraints) separately from "correctness" in the application logic.
"Consistency" is often conflated with the CAP theorem sense. "Correctness" (conformity to some model) is closer to what the C in ACID is actually supposed to represent.
Awesome video man, really love the channel and content. Keep it coming please!!
Thanks much! Planning to do more!! Hopefully time allows 😅
My man knows so much about databases, but only so few people can appreciate
Can't believe this doesn't have 100k+ views, this is great stuff, thank you!
Thanks for the video!
Thank you this was very useful intro the database scaling
C is "consistency"
Super video.
Please make more system design videos. your explanation is super
Thanks much! I'll do my best!
Bro the C stands for Consistency !
Why didn't mention RabbitMQ for queuing ? Could be beneficial too
Man could you continue with this series?
I'll try! I've been very busy :(
Atomicity
So the answer is what's the most scale approach to database if I use both mysql and nosql? For example like Instagram how they approach their database scaling??? Any engineer working at Instagram can answer me? 🤣
Design a Telemetry System
Good idea!!!!
@@JohnCodes looking forward