Choosing a Database for Systems Design: All you need to know in one video

  Рет қаралды 48,443

Jordan has no life

Jordan has no life

Күн бұрын

Пікірлер: 113
@pieter5466
@pieter5466 Жыл бұрын
Two things make this video stand out for system architecture interviews: 1) general knowledge of the available options, with arguments for and against 2) enough in depth knowledge to go deep and impress
@NikitaUtkin-r7x
@NikitaUtkin-r7x Жыл бұрын
One of the best videos of its kind. small inaccuracy: Hbase being wide-column store actually store column families together, not individual columns.
@jordanhasnolife5163
@jordanhasnolife5163 Жыл бұрын
Appreciate it!
@ВалентинТ-х6ц
@ВалентинТ-х6ц 4 ай бұрын
Dude, today I've passed an interview from a first try! Your videos are extremely helpful. I was just putting on a board all you talked about. I'd fail if I hadn't watched your videos. Thanks!
@jordanhasnolife5163
@jordanhasnolife5163 4 ай бұрын
Congratulations!! Glad to hear the hard work paid off for you!
@ritwik121
@ritwik121 2 жыл бұрын
Glad you are back with system design videos😭😭
@jordanhasnolife5163
@jordanhasnolife5163 2 жыл бұрын
We'll see about that one buddy, these have been covered mostly
@JeT2686
@JeT2686 2 жыл бұрын
I gotta say, this summary video is great! As much as you dread redundancy here, I at least got a ton of value of out of it. The material is fantastic for reviews Kudos, and great stuff!
@cloudx1057
@cloudx1057 3 ай бұрын
finished this series, im proud of myself. you are so funny btw
@rajrsa
@rajrsa Жыл бұрын
I've gone through all your concepts and interview video and this video did a great job of summarizing everything! Thanks for everything, giga chad! :P All the best, y'all! Let's get this bread! 🚀
@cezary.stanislawski
@cezary.stanislawski 8 ай бұрын
wow
@mnchester
@mnchester 2 жыл бұрын
Thanks for this video man! While I agree with you that it'd be better to watch your more in depth videos, this compilation video works great for a quick recap right before going into your System Design interviews
@jordanhasnolife5163
@jordanhasnolife5163 2 жыл бұрын
Glad to hear!
@luiscarlosricoalmada4296
@luiscarlosricoalmada4296 2 жыл бұрын
I finished the whole series :) , wish me luck on my System Design interview
@jordanhasnolife5163
@jordanhasnolife5163 2 жыл бұрын
You got this!
@BRBallin1
@BRBallin1 7 ай бұрын
Since both SQL and NoSQL DBs are ACID compliant, the key reason to ever choose SQL over noSQL is if you want to join multiple tables with data and if your queries are more aggregate based (ex: SUM, COUNT, AVG) and records are used in a combined manner rather than to store rows of data for unrelated records.
@jordanhasnolife5163
@jordanhasnolife5163 7 ай бұрын
While I think you make some valid points here, I think by default everyone should want to use SQL. Not all NoSQL DBs are ACID compliant, especially in a distributed setting. I agree that tables that store unrelated records generally play nicely with NoSQL, but that doesn't even necessarily warrant using it unless the specific database that you choose gives you some performance improvement that you couldn't have had otherwise.
@samkruglov8455
@samkruglov8455 6 күн бұрын
Thanks! To add to the "cool" list, check out In-Memory Data Grids like Pivotal GemFire/Hazelcast/Apache Geode. They allow storing unlimited data in RAM durably. China's Railways do that and they get (as of 2013) 40k+ website visits per *second*
@jordanhasnolife5163
@jordanhasnolife5163 6 күн бұрын
Interesting! I've heard of hazelcast but need to look into it more.
@Secret4us
@Secret4us 9 күн бұрын
Great rundown, thanks
@sweepstakes91
@sweepstakes91 2 ай бұрын
Another honourable mention is Vector DBs , given that LLMs are popular these days.
@prafullakh
@prafullakh 8 ай бұрын
Absolutely great work. Someday you should talk about the interview questions that you asked candidates and any interesting approaches they took and also about some interview questions that zapped you. PS: Towards the start of this video you asked us to get lotion and paper. What gives?
@jordanhasnolife5163
@jordanhasnolife5163 8 ай бұрын
1) I've never interviewed anybody, I'm a sham :) 2) you need the paper to take notes and the lotion to keep the pencil from sticking to your otherwise sweaty hands
@thktomska
@thktomska Жыл бұрын
This is what i'm look for! Great quality - thank you very much!
@implemented2
@implemented2 16 күн бұрын
Nice recap, thank you
@arshadhammad
@arshadhammad Жыл бұрын
Thanks for the nice series. I really liked your videos
@pl5778
@pl5778 2 жыл бұрын
this is an awesome video! thanks for such a great summary
@_launch_it_
@_launch_it_ 7 ай бұрын
2.5x speed. Interview in 19 hours. Let's go
@jordanhasnolife5163
@jordanhasnolife5163 7 ай бұрын
Lfgo
@lvmrjb
@lvmrjb 4 ай бұрын
watched your video about why you left Google and you mentioned you're a new grad.. extremely impressive you know all of this already! any good books/resources you used? thanks for the videos!
@jordanhasnolife5163
@jordanhasnolife5163 4 ай бұрын
Thanks! I'd just recommend really reading and understanding designing data intensive application, and that should give you all the background that you need to go do more of your own research!
@FranckPachot
@FranckPachot 9 ай бұрын
You are sharing awesome content. Great to link to for short and acurate explanations. Would be great to see more on Distributed SQL (you did Spanner but there's also YugabyteDB, CockroachDB, TiDB, YDB). And on PostgreSQL compatible databases (you did Aurora but there's also AlloyDB, Neon, YugabyteDB)
@jordanhasnolife5163
@jordanhasnolife5163 9 ай бұрын
Nice idea! And thank you!
@aiman_yt
@aiman_yt 5 ай бұрын
B-tree writes can go to memory too. It's called buffer pools.
@jordanhasnolife5163
@jordanhasnolife5163 5 ай бұрын
Good point
@luli829
@luli829 Жыл бұрын
how do you gain some much knowledge in system design? really amazing!
@jordanhasnolife5163
@jordanhasnolife5163 Жыл бұрын
I have no life! No but actually, I just have optimized my knowledge specifically for the interview haha - I'm sure you all are better software engineers than me
@luli829
@luli829 Жыл бұрын
@jordanhasnolife5163 lol no. I'm trying to learn from you and get better :)
@chits006
@chits006 Жыл бұрын
Great Video, One question, where can we learn about db schema design? Some basics and exercises would be good, any online course you recommend?
@jordanhasnolife5163
@jordanhasnolife5163 Жыл бұрын
I'd just look at database docs and existing engineering blogs from reputable companies!
@raj_kundalia
@raj_kundalia Жыл бұрын
Thank you, Jordan!
@houelle
@houelle 2 жыл бұрын
huh, i subbed for day in the life vids 😒
@jordanhasnolife5163
@jordanhasnolife5163 2 жыл бұрын
I'll sell out soon I promise
@roywastaken
@roywastaken 2 жыл бұрын
Thank you senpai 🙏🏽
@tamarapensiero8048
@tamarapensiero8048 2 жыл бұрын
Hey Jordan, just started watching every video you've created. I love them. I'm wondering how I could get in contact with you as soon as possible. Id like a couple minutes of your time if possible. Thanks x
@jordanhasnolife5163
@jordanhasnolife5163 2 жыл бұрын
LinkedIn would probably be best, my name is Jordan Epstein
@tamarapensiero8048
@tamarapensiero8048 2 жыл бұрын
@@jordanhasnolife5163 thank you, sent a msg ^_^
@420_gunna
@420_gunna 2 жыл бұрын
16:30, I haven't heard of column compression being used for image data in the way that you describe here, any pointers on what you were talking about when you mentioned this?
@jordanhasnolife5163
@jordanhasnolife5163 2 жыл бұрын
Hey so I don't actually mean to compress the images with column compression: I just mean having a column containing multiple images means that you only have to fetch the images themselves as opposed to potentially a lot of metadata that may come with them (if you were to fetch a row at a time)
@BenLernerOfficial
@BenLernerOfficial Жыл бұрын
​@@jordanhasnolife5163 I paused the video at this point in confusion as well, because I'm afraid the example doesn't make much sense. In the query you described, you only want to get the thumbnails associated with a specific video, so you would either implement that with a relational table (full_video_id | thumbnail_id, where one full_video id is associated with one or more thumbnail_ids) or you'd store a list of the thumbnail_ids (pointing to the actual image data in, say, s3) on a document representing the full video. The only situation in which you would possibly want to store images in a column is if you'd want to somehow query ALL thumbnails across ALL videos, but that is not the situation you described - you described getting the thumbnails of a SINGLE video. That would be OLTP/row-based, not OLAP/column-based. Also, columns typically contain primitives (so you could, for example, perform an average across a column of floats)
@jordanhasnolife5163
@jordanhasnolife5163 Жыл бұрын
@@BenLernerOfficial Yes sorry, this is assuming that one video might have many thumbnails (e.g. to create one of those gifs that you see on KZbin now). Sorry this wasn't clear, everything that you've said is accurate.
@jordanhasnolife5163
@jordanhasnolife5163 Жыл бұрын
Another common use case is to load all thumbnails for a user's channel, such as if you were to click my channel page.
@zuowang5185
@zuowang5185 Жыл бұрын
why redis instead of just using the hashmap in your program? for cross process communication?
@jordanhasnolife5163
@jordanhasnolife5163 Жыл бұрын
Well sometimes you want many servers, sometimes you want replication, sometimes you want a writeahead log, sometimes you want database partitioning
@akhilkhubchandani2632
@akhilkhubchandani2632 Жыл бұрын
Great work and amazing video! Could you also make more low level design videos?
@ravindranaths513
@ravindranaths513 9 ай бұрын
Could you please make a video on Wide column vs column family vs columnar vs column oriented DBs with some examples
@jordanhasnolife5163
@jordanhasnolife5163 9 ай бұрын
Hey! I think I probably mentioned this more in the 1.0 series but not sure that it deserves a full video, just look up images of the formats :)
@ravindranathsirisala6408
@ravindranathsirisala6408 9 ай бұрын
@@jordanhasnolife5163 , please give me link of that video
@jugalparulekar661
@jugalparulekar661 14 күн бұрын
Is the PPT you used for this video available for download somewhere?
@jordanhasnolife5163
@jordanhasnolife5163 14 күн бұрын
Should be in the google drive link in my channel description
@sohansingh2022
@sohansingh2022 Жыл бұрын
Thank you buddy!
@hdrkn5247
@hdrkn5247 8 ай бұрын
which database is of choice when you need SQL database but the dataset is too large and you need to shard the data or the database needs to be distributed?
@jordanhasnolife5163
@jordanhasnolife5163 8 ай бұрын
A SQL database lol. You can still shard your data here, just be smart about how you do it.
@ameygoel1
@ameygoel1 Жыл бұрын
bro I watched your earlier videos in 1.25x speed and now your normal voice feels weird and slow. Nevertheless great and orderly content. Cheers! Would recommend others too :)
@jordanhasnolife5163
@jordanhasnolife5163 Жыл бұрын
Damn bro 1.25? Gotta speed that up to 2
@chits006
@chits006 Жыл бұрын
Why no honorable mention of Dynamo & BigTable ?😀
@jordanhasnolife5163
@jordanhasnolife5163 Жыл бұрын
Mainly because bigTable = hbase and dynamo = Cassandra (it actually may not assuming you're talking about dynamodb but theres no docs on internal implementation afaik)
@mmfStudent
@mmfStudent 7 ай бұрын
B-Trees are not binary trees. The video itself is still quite good.
@jordanhasnolife5163
@jordanhasnolife5163 7 ай бұрын
Oops typo
@sweepstakes91
@sweepstakes91 2 ай бұрын
can you share these slides ? Else i will have to take screenshots , with your face :D Awesome work btw!
@jordanhasnolife5163
@jordanhasnolife5163 2 ай бұрын
uh oh screenshots with my face in them?!? Don't do anything creepy! Just kidding, the slides are in the google doc link in my channel description
@amospan14
@amospan14 2 жыл бұрын
Really good one! Thank you Jordan! =)
@andreybraslavskiy522
@andreybraslavskiy522 9 ай бұрын
Thank you for the great content
@franklinyao7597
@franklinyao7597 Жыл бұрын
What if you need a NoSQL store with strong consistency? You need Hbase or MongoDB. And if you need a db optimized for heavy reads, you may need MongoDb since it uses B tree.
@jordanhasnolife5163
@jordanhasnolife5163 Жыл бұрын
Mongo might be better for reading sure, but I caution you from saying it and HBase are strongly consistent. Hadoop has some weird writing thing that kinda makes it strongly consistent, and maybe you can configure mongo to do so, but Hadoop writes aren't like actually achieving consensus (and afaik mongo isn't either), so it's kinda just not great for that haha
@franklinyao7597
@franklinyao7597 Жыл бұрын
@@jordanhasnolife5163 what is that weird writing thing?
@jordanhasnolife5163
@jordanhasnolife5163 Жыл бұрын
@@franklinyao7597 You like write to multiple nodes at once and only get a success message if it's hit a certain amount of them, but the write still goes through on some of the nodes even if you don't meet the success threshold if I remember correctly
@sarfrazz34
@sarfrazz34 2 жыл бұрын
Thanks for the video man! it was informative could you please create a video if possible on scenario-based database usage I am really confused about where to properly use sql db and nosql db I am little clear that if we need ACID properties then best is sql. but I am not completely aware of different other scenarios on where to perfectly use sql and nosql dbs. if you also have any resources please share I am not able to find a good one
@jordanhasnolife5163
@jordanhasnolife5163 2 жыл бұрын
I think you basically just expressed it yourself - "if you need acid properties use sql" - if data integrity is the most important part of your application, SQL is the way to go. Otherwise, NoSQL can offer greater speed while sacrificing some of these requirements.
@sarfrazz34
@sarfrazz34 2 жыл бұрын
​@@jordanhasnolife5163 Thanks Jordan I am thinking of a scenario in case of storing product related things I see nosql is best suited as different product could have different properties, but how about managing the inventory for the product? in this case since it requires acid props to manage the inventory count properly, should we maintain the inventory count details alone in sql DB?
@rydmerlin
@rydmerlin Жыл бұрын
Are trees with more than two children for a given parent still considered binary trees?
@jordanhasnolife5163
@jordanhasnolife5163 Жыл бұрын
Nope
@ashwint959
@ashwint959 11 ай бұрын
What about distributed sql databases like spanner/cockrorachdb?
@jordanhasnolife5163
@jordanhasnolife5163 11 ай бұрын
I think these are probably worth knowing about from a software engineering perspective but probably not worth using in a design for an interview. Spanner (can't speak for cockroach) is great, but I think it may be too niche to be fair game here (since it doesn't exactly have a "dedicated" use case).
@jporritt
@jporritt 7 ай бұрын
Whenever I mention Cassandra in a Systems Design interview, the interviewer always seems to have some horror story concerning it (often its performance!)
@jordanhasnolife5163
@jordanhasnolife5163 7 ай бұрын
Interesting, I'd be curious if you pushed back on them a bit to ask them what the workload was and why the performance was poor what they'd say!
@jporritt
@jporritt 7 ай бұрын
@@jordanhasnolife5163 It’s often that “We tried it and it was slower”. I’m guessing they were approaching it as some sort of vertical solution (so a faster RDBMS) than a horizontal solution and retaining an application model that was optimized for single-leader.
@danielvega-myhre4201
@danielvega-myhre4201 Жыл бұрын
Are your slides available to view/download somewhere?
@jordanhasnolife5163
@jordanhasnolife5163 Жыл бұрын
In my channel description
@prathamsinghal5261
@prathamsinghal5261 10 ай бұрын
Scylla DB ??
@jordanhasnolife5163
@jordanhasnolife5163 10 ай бұрын
I'd consider it a Cassandra clone
@nishanthprince
@nishanthprince 4 ай бұрын
Did the Goat just say he’s insecure ?
@jordanhasnolife5163
@jordanhasnolife5163 4 ай бұрын
You think a secure person would spend multiple years of their life lifting weights and studying systems design?? 😭
@Stella-se1lg
@Stella-se1lg 9 ай бұрын
Salute😊
@sachin_yt
@sachin_yt 2 жыл бұрын
Finalyyyyyyyyyyy
@effy1219
@effy1219 Жыл бұрын
hahahah i just like how he call us , you lazy f**s and do it
@pavliv
@pavliv 4 ай бұрын
Nice
@mvp4gman
@mvp4gman 11 ай бұрын
No S3 🥲
@jordanhasnolife5163
@jordanhasnolife5163 11 ай бұрын
Not a database - though technically some cloud native data warehouses are being built using s3 as the storage layer and parquet files
@piercef7343
@piercef7343 2 жыл бұрын
Kudos!
@ladyv890
@ladyv890 2 жыл бұрын
Yay for Women!
@jordanhasnolife5163
@jordanhasnolife5163 2 жыл бұрын
Just defended women against a mysognist on Xbox live the other day
@ladyv890
@ladyv890 2 жыл бұрын
@@jordanhasnolife5163 Yay Jordan! 🤗 lol
@BlunderMunchkin
@BlunderMunchkin 6 ай бұрын
Talking too fast.
@jordanhasnolife5163
@jordanhasnolife5163 6 ай бұрын
Can't wait for you to discover .75 speed
@michaelgrover3443
@michaelgrover3443 6 ай бұрын
Playing at 1.5x. His speed is just fine
@jamesliu551
@jamesliu551 4 ай бұрын
Talking too sparse
@SreekantShenoy
@SreekantShenoy 10 ай бұрын
This guy stores! 🫣
NoSQL vs SQL - Which Type of Database Should You Use?
1:25:42
freeCodeCamp.org
Рет қаралды 107 М.
7 Database Paradigms
9:53
Fireship
Рет қаралды 1,7 МЛН
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
黑天使被操控了#short #angel #clown
00:40
Super Beauty team
Рет қаралды 61 МЛН
Systems Design in an Hour
1:11:00
Jordan has no life
Рет қаралды 45 М.
Which Database Model to Choose?
24:38
High-Performance Programming
Рет қаралды 72 М.
Microservices with Databases can be challenging...
20:52
Software Developer Diaries
Рет қаралды 131 М.
Dependency Injection, The Best Pattern
13:16
CodeAesthetic
Рет қаралды 919 М.
Google system design interview: Design Spotify (with ex-Google EM)
42:13
IGotAnOffer: Engineering
Рет қаралды 1,2 МЛН
Database Indexing for Dumb Developers
15:59
Laiture
Рет қаралды 89 М.