System Design Interview - Top K Problem (Heavy Hitters)

  Рет қаралды 355,120

System Design Interview

System Design Interview

5 жыл бұрын

Please check out my other video courses here: www.systemdesignthinking.com
Topics mentioned in the video:
- Stream and batch processing data pipelines.
- Count-min sketch data structure.
- MapReduce paradigm.
- Various applications of the top k problem solution (Google/Twitter/KZfaq trends, popular products, volatile stocks, DDoS attack prevention).
Merge N sorted lists problem: leetcode.com/problems/merge-k...
Inspired by the following interview questions:
Amazon (www.careercup.com/question?id...)
Facebook (www.careercup.com/question?id...)
Google (www.careercup.com/question?id...)
LinkedIn (www.careercup.com/question?id...)
Twitter (www.careercup.com/question?id...)
Yahoo (www.careercup.com/question?id...)

Пікірлер: 646
@DickWu1111
@DickWu1111 3 жыл бұрын
Jesus christ this guy's material is amazing... and each video is so compact. He basically never wastes a single word....
@antonfeng1434
@antonfeng1434 2 жыл бұрын
I have to pause or rewind constantly, and watch every video twice to digest it.
@amitdubey9201
@amitdubey9201 2 жыл бұрын
@@antonfeng1434 me too
@xordux7
@xordux7 2 жыл бұрын
@@antonfeng1434 Same here
@jasonl412
@jasonl412 2 ай бұрын
@@xordux7 Same here
@saurabhmaurya94
@saurabhmaurya94 4 жыл бұрын
A summary of questions and answers asked in the comments below. 1. Can we use use hash maps but flush it's content (after converting to heap) each few seconds to the storage instead of using CMS? For small scale it is totally fine to use hash maps. When scale grows, hash maps may become too big (use a lot of memory). To prevent this we can partition data, so that only subset of all the data comes to a Fast Processor service host. But it complicates the architecture. The beauty of CMS is that it consumes a limited (defined) memory and there is no need to partition the data. The drawback of CMS, it calculates numbers approximately. Tradeoffs, tradeoffs... 2. How do we store count-min sketch and heap into database? Like how to design the table schema? Heap is just a one-dimensional array. Count-min sketch is a two-dimensional array. Meaning that both can be easily serialized into a byte array. Using either language native serialization API or well-regarded serialization frameworks (Protobufs, Thrift, Avro). And we can store them is such form in the database. 3. Count-min sketch is to save memory, but we still have n log k time to get top k, right? Correct. It is n log k (for Heap) + k log k (for sorting the final list). N is typically much larger then k. So, n log k is the dominant. 4. If count-min sketch is only used for 1 min count, why wouldn't we directly use a hash table to count? After all the size of data set won't grow infinitely. For small to medium scale, hash tables solution may work just fine. But keep in mind that if we try to create a service that needs to find top K lists for many different scenarios, there may be many such hash tables and it will not scale well. For example, top K list for most liked/disliked videos, most watched (based on time) videos, most commented, with the highest number of exceptions during video opening, etc. Similar statistics may be calculated on channels level, per country/region and so on. Long story short, there may be many different top K lists we may need to calculate with our service. 5. How to merge two top k lists of one hour to obtain top k for two hours? We need to sum up values for the same identifiers. In other words we sum up views for the same videos from both lists. And take the top K of the merged list (either by sorting or using a Heap). [This won't necessarily be a 100% accurate result though] 6. How does count min sketch work when there are different scenarios like you mentioned.... most liked/disliked videos. Do we need to build multiple sketch? Do we need to have designated hash for each of these categories? Either ways, they need more memory just like hash table. Correct. We need its own sketch to count different event types: video views, likes, dislikes, submission of a comment, etc. 7. Regarding the slow path, I am confused by the data partitioner. Can we remove the first Distribute Messaging system and the data partitioner? The API gateway will send messages directly to the 2nd Distribute Messaging system based on its partitions. For example, the API gateway will send all B message to partition 1, and all A messages to partition 2 and all C messages to partition 3. Why we need the first Distribute Messaging system and data partitioner? If we use Kalfa as Distribute Messaging system, we can just create a topic for a set of message types. In case of a large scale (e.g. KZfaq scale), API Gateway cluster will be processing a lot of requests. I assume these are thousands or even tens of thousands of CPU heavy machines. With the main goal of serving video content and doing as little of "other" things as possible. On such machines we usually want to avoid any heavy aggregations or logic. And the simplest thing we can do is to batch together each video view request. I mean not to do any aggregation at all. Create a single message that contains something like: {A = 1, B = 1, C = 1} and send it for further processing. In the option you mentioned we still need to aggregate on the API Gateway side. We cannot afford sending a single message to the second DMS per each video view request, due to a high scale. I mean we cannot have three messages like: {A = 1}, {B = 1}, {C = 1}. As mentioned in the video, we want to decrease request rate at every next stage. 8. I have a question regarding the fast path through, it seems like you store the aggregated count min sketch in the storage system, but is that enough to calculate the top k? I felt like we would need to have a list of the websites and maintain a size k heap somewhere to figure out the top k. You are correct. We always keep two data structures: a count-min sketch and a heap in Fast Processor. We use count-min sketch to count, while heap stores the top-k list. In Storage service we also may keep both or heap only. But heap is always present. 9. So in summary, we still need to store the keys...count-min sketch helps achieve savings by not having to maintain counts for keys individually...when one has to find the top k elements, one has to iterate thru every single key and use count-min sketch to find the top k elements...is this understanding accurate? We need to store the keys, but only K of them (or a bit more). Not all. When every key comes, we do the following: - Add it to the count-min sketch. - Get key count from the count-min sketch. - Check if the current key is in the heap. If it presents in the heap, we update its count value there. If it not present in the heap, we check if heap is already full. If not full, we add this key to the heap. If heap is full, we check the minimal heap element and compare its value with the current key count value. At this point we may remove the minimal element and add the current key (if current key count > minimal element value). This way we only keep a predefined number of keys. This guarantees that we never exceed the memory, as both count-min sketch and the heap has a limited size. Video Notes by Hemant Sethi: tinyurl.com/qqkp274
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Hi Saurabh. This is amazing! Thank you for collecting all these questions and answers in one place. I would like to find time to do something like this for other videos as well. I have pinned this comment to be at the top. Thank you once again!
@ananths5905
@ananths5905 4 жыл бұрын
Thanks a lot for this Saurabh!
@saiprajeeth
@saiprajeeth 4 жыл бұрын
Need more people like you. Thank you
@saurabhmaurya94
@saurabhmaurya94 3 жыл бұрын
@@atibhiagrawal6460 glad it's helpful! Might be worth posting a link to your notes in a standalone comment too so that everyone can see it
@atibhiagrawal6460
@atibhiagrawal6460 3 жыл бұрын
@@saurabhmaurya94 That is good idea ! Thank you :D
@alexbordon8886
@alexbordon8886 2 жыл бұрын
Your accent is hard to understand initially, but now I fall in love with you accent.
@sumedhabirajdar
@sumedhabirajdar 14 күн бұрын
Most system design interview answers contains high level design decisions. These videos explains how the data flows. Which is something I needed.
@anderswb
@anderswb 2 жыл бұрын
These are by far the best videos on system design for interviews. Thanks a lot for taking the time to make and publish these!
@arvind30
@arvind30 3 жыл бұрын
One of the best system design channel ive come across! great job! I particularly liked how you were able to describe a fundamental pattern that can be applied in multiple scenarios
@FrequencyModulator
@FrequencyModulator 3 жыл бұрын
This is the best explanation on system design I've ever seen. Thanks Mikhail, that helps A LOT!
@manasdalai3934
@manasdalai3934 3 жыл бұрын
This is one of the best system design content I have came across. Thanks a lot.
@tusharahuja205
@tusharahuja205 3 жыл бұрын
Very clear solution and something that can actually be used in an interview! Please keep making more of these.
@supremepancakes4388
@supremepancakes4388 4 жыл бұрын
I wish all sys interview tutorials are like yours, with so much information precisely and carefully explained in a clear manner, with diff trade offs and topics to discuss interviewers along the way! Thank you so much
@pulkitb4Mv
@pulkitb4Mv 3 жыл бұрын
I love Mikhail's content, the video is so interactive that it looks like he is talking to you and he knows what is going inside your head :)
@Gukslaven
@Gukslaven 3 жыл бұрын
These are the best videos on system design I've seen, thanks so much!
@gameonline6769
@gameonline6769 3 жыл бұрын
Thanks Mikhail. I can bet..this is the best channel on KZfaq. Just binge watch all the videos from this channel and you will learn so much.
@prateek_jesingh
@prateek_jesingh 4 ай бұрын
This is one of the best system design videos on this topic I have come across. Thanks & keep up the great work, Mikhail!
@warnercooler4488
@warnercooler4488 2 жыл бұрын
The amount of info you have covered here is amazing! Thank you so much!
@VageeshUdupa
@VageeshUdupa 2 жыл бұрын
Thank you very much!! I had gone over all your videos multiple times to understand it well. I had 2 interviews with FAANG in the last week and was offered a job in both! I have to say a lot of the credit goes to you!
@NikhilSharad
@NikhilSharad 3 жыл бұрын
You're amazing, by far the most detailed and deeply analysed solution I've seen on any design channel. Please never stop making videos.
@souravmojumder5563
@souravmojumder5563 5 жыл бұрын
This s one of the best system design video I came across in long time .. keep up the good work !
@SystemDesignInterview
@SystemDesignInterview 5 жыл бұрын
Thank you, Sourav. Appreciate the feedback.
@sevenb1t
@sevenb1t 3 жыл бұрын
I had an interview step with AWS a couple of days ago and they asked me exactly this question. Thank you for your videos.
@dc5
@dc5 3 жыл бұрын
Awesome videos Mikhail... thanks a lot for sharing! That last part showing other problems with similar solutions was the cherry on top.
@HieuNguyen-ty7vw
@HieuNguyen-ty7vw 4 жыл бұрын
The best system design answer I have seen on KZfaq. Thank you!
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Thank you, Hugh, for the feedback.
@admiringrubin2910
@admiringrubin2910 2 жыл бұрын
couldn't solve this problem in an interview. found this gem of a video a month after. will get them next time!
@NoWarForever
@NoWarForever 3 жыл бұрын
The best that I have seen so far!
@pradyumnakadapa5665
@pradyumnakadapa5665 3 жыл бұрын
Nicely structured ! covering both depth and breadth of the concepts as much as possible.
@MrAithal29688
@MrAithal29688 8 ай бұрын
All videos in this channel are the best on YT in this category even to this date. You can find many other channels which may give similar data divided into more than 5 videos with a lot of fluff. Mikhael's video touches upon every important part without beating around the bush and also gives great pointers in identifying what the interviewer may be looking for. Kudos to all the videos in this channel !
@andreytamelo1183
@andreytamelo1183 3 жыл бұрын
Misha, Loved the structure as well as depth and breadth of the topics you touched on!
@terigopula
@terigopula 3 жыл бұрын
Your content is PURE GOLD. Hats off! :)
@abbasraza4991
@abbasraza4991 4 жыл бұрын
Excellent video! Has depth and breadth that isn’t seen elsewhere. Keep it up!
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Appreciate the feedback, Abbas! Thanks.
@jianlyu700
@jianlyu700 Ай бұрын
OMG, this is still the best system design video i've ever seen. it's not only for interview, but also for actual system solution design.
@biaozhang1643
@biaozhang1643 Жыл бұрын
Wow! This is the best system design review video I've ever seen.
@joyshu6264
@joyshu6264 4 жыл бұрын
Hands down the best system design videos so far !! and I have watched lots of the system design videos. Love how you start from simple and work all the way to complex structure and how it can applies to different situations.
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
You are too kind to me, Joy! Thank you for the feedback!
@fredylg
@fredylg 2 жыл бұрын
Sr your videos are gold, I got no interview but it’s rare to find architecture so well explained, thanks
@HarkiratSaluja
@HarkiratSaluja 3 жыл бұрын
How can someone even downvote this? This is just so amazing. Have not learnt so much in 30 minutes in my whole life.
@chuka231d8
@chuka231d8 5 ай бұрын
This is the most tech intense 30min video I've ever seen :) Thank you!
@itdepends5906
@itdepends5906 Жыл бұрын
THIS GUY is SO COOL. Who else feel that when he's speaking, explaining difficult concepts in the most concise way possible - and also touching on what we really need to hear about?!
@atabhatti6010
@atabhatti6010 Жыл бұрын
Excellent video. A key thing that you did at the end (and is very useful IMHO) is that you identified many other interview questions that are really the same problem in disguise. That is very good thinking that we all probably need to learn and develop. I encourage you to do that in your other design solutions as well. Thank you for another excellent video.
@boombasach
@boombasach 9 ай бұрын
Among all the materials I have seen in youtube, this is really the top one. Keep up the good work and thanks for sharing
@sachin_getsgoin
@sachin_getsgoin 2 жыл бұрын
Awesome video. Discussion of various approach (with code snippet) and the drawback is the highlight. Thanks a lot!
@graysonchao9767
@graysonchao9767 Жыл бұрын
Great work. I am a senior engineer at a big tech company and I'm still learning a lot from your videos.
@anshulgolu123
@anshulgolu123 3 жыл бұрын
Please do more of them as your videos are very good from a content perspective :) Extremely informative ...
@soulysouly7253
@soulysouly7253 7 ай бұрын
I'm devastated. I just got out of a last round interview, it was my first time ever being asked a system design question. I used this channel, among others, to study, and this video is the ONLY video I didn't have time to watch. My interview question was exactly this, word for word. I made up a functional and relatively scalable solution on the fly, and the interview felt conversational + it lasted 10 minutes more than it should have, so I think I did alright, but I still struggled a lot in the begining and needed some help. Life is cruel sometimes.
@reprogram_myself
@reprogram_myself 3 жыл бұрын
and huge thank you for all your videos! They are the best I could find on system design!
@prashub8707
@prashub8707 2 жыл бұрын
So far I am loving it. Keeps me glued to ur channel. Fantastic job I must say
@rahulsahay19
@rahulsahay19 Жыл бұрын
Awesome. Simply awesome. You killed it completely!
@diptikaushik8250
@diptikaushik8250 3 жыл бұрын
This is just incredible! Please do publish more videos.
@artemgrygor476
@artemgrygor476 5 жыл бұрын
Thank you for such a detailed explanation. Awesome as usual!
@SystemDesignInterview
@SystemDesignInterview 5 жыл бұрын
Thank you @Memfis for providing consistent feedback!
@kumarc4853
@kumarc4853 2 жыл бұрын
Thank you very much Sir, excellent demonstration of coherent design thinking. I feel more equipped than ever to solve system design problems.
@harishshankar682
@harishshankar682 4 жыл бұрын
Cant thank you enough for your efforts in sharing such a high quality content for us!
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Hi Harish. Thanks!
@algorithmimplementer415
@algorithmimplementer415 4 жыл бұрын
Amazing video. Thank you! The way you structured it is commendable.
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Thank you, Algorithm Implementer. Glad to hear that!
@stefanlyew8821
@stefanlyew8821 5 жыл бұрын
one of the best technical discussions I have seen
@SystemDesignInterview
@SystemDesignInterview 5 жыл бұрын
Thanks, Stefan. Appreciate the feedback!
@sabaamanollahi5901
@sabaamanollahi5901 Жыл бұрын
I wish I could give this video a thousand likes instead of just 1 !!! these contents are fantastic!!!
@balajipattabhiraman
@balajipattabhiraman 2 жыл бұрын
As luck would have it i had a similar question for make or break round in google and I nailed it since I watched it several times over before the interview. Got a L6 role offered at Google. Thanks for making my dream come true.
@ahanjura
@ahanjura 4 жыл бұрын
The system design video to beat. PERIOD!!!
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Thank you, Anubhav!
@fasolplanetarium
@fasolplanetarium 2 жыл бұрын
PLEASE come back and make videos again. There's no resource quite like this channel.
@ujjaldas8805
@ujjaldas8805 2 жыл бұрын
Thanks for all the efforts you put here to describe. This is a great material.
@shw4083
@shw4083 Жыл бұрын
This is really the best tutorial, and I hope there is article like this content!
@harjos78
@harjos78 3 жыл бұрын
This is pure Gem!.. Take a bow ....
@drakezen
@drakezen 5 жыл бұрын
Bonus on mentioning using Spark and Kafka as I was thinking that during the video. Great stuff as usual!
@SystemDesignInterview
@SystemDesignInterview 5 жыл бұрын
Thank you, @Collected Reader. Glad to see you again!
@cnanavat
@cnanavat 4 жыл бұрын
Excellent explanation ! I really appreciate your work!
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Appreciate the feedback! Thanks.
@priyankamishra5704
@priyankamishra5704 2 жыл бұрын
Great stuff!! Thanks a ton for such in depth explanation of these concepts and correlation.
@soubhagyasriguddum4983
@soubhagyasriguddum4983 4 жыл бұрын
this channel has the best System design explanations ... thank you so much and keep up the good work!!
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Thank you for the feedback, Soubhagyasri! Glad you like the channel!
@lolista
@lolista 3 жыл бұрын
watched other videos before this.. so liking this before starting...
@datbui5863
@datbui5863 3 жыл бұрын
Please, make more videos! Absolutely amazing explanation!!!!!!!!!!!
@lysialee2897
@lysialee2897 3 жыл бұрын
i feel bad that im not paying for this video! the quality is beyond amazing
@aman1893_
@aman1893_ 2 жыл бұрын
You shouldn't feel bad. With this much knowledge, he must be getting atleast $500k+ on his current job. And by now he must be looking beyond money and must be looking for making meaningful contribution to the society.
@ST-pq4dx
@ST-pq4dx 26 күн бұрын
He is staff at stripe, 1M plus easy. He is just sharing his knowledge
@balajipattabhiraman
@balajipattabhiraman 2 жыл бұрын
Phenomenal. We do something very similar with hot and cold path in microsoft. Instead of countmin sketch we use hyperloglog
@SahilSharma-ug8xk
@SahilSharma-ug8xk 2 жыл бұрын
HE explains so well
@coolgoose8555
@coolgoose8555 4 жыл бұрын
Ohhhh why I did not find this channel before.... The way you approach the problem and take it forward it make it so easy else the realm of system design concepts are huge.... We need more videos like this.... This is design pattern of system design.... Good Job!!!!
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Glad to have you aboard, coolgoose8555! Thank you for the feedback!
@ravitiwari2160
@ravitiwari2160 3 жыл бұрын
Hey, Thank you so much all your knowledge sharing. I am able to perform very nice in all my interviews. Keep up the good work. More power to you. Keep rocking!!!
@arunmagar4836
@arunmagar4836 2 жыл бұрын
These videos are gem for System design noob like me.
@crescentcompe8289
@crescentcompe8289 2 жыл бұрын
amazing, i was like wtf you talking about at the beginning. It all makes sense now after the data retrieval part.
@saurabhchoudhary9260
@saurabhchoudhary9260 5 жыл бұрын
Awesome and detailed explanation. Hats off
@SystemDesignInterview
@SystemDesignInterview 5 жыл бұрын
Thank you, Saurabh.
@radsimu
@radsimu Жыл бұрын
I think it is admirable that you explained all the inner workings. In a real interview you can probably skip the single host solution with the heap, that's good for an explanation on youtube. What I think is more valuable is to also propose some actual technologies for the various components to make it clear that you are not proposing building this from scratch. I'm surprised that Kafka Streams was not mentioned. Also for the long path, it is worth discussing the option to store the raw or pre-aggregated requests in an OLAP db like Redshift. The olap can do the top k efficiently for you with a simple sql query (all the map reduce magic will be handled under the hood), can act as main storage, and will also make you flexible to other analytics queries. Integrates directly with various dashboarding products and one rarely wants to do just top k.
@sshks10
@sshks10 3 жыл бұрын
Very clean explanation, which is rare nowadays, why did you stop ? It would be nice to see your new videos , good luck man!
@SharanyaVRaju
@SharanyaVRaju 3 жыл бұрын
I agree. Can you please continue doing this?
@freeman-uq8xr
@freeman-uq8xr 3 жыл бұрын
PLEASE MAKE MORE VIDEOS. WE WILL PAY FOR IT (ADD JOIN BUTTON)!
@DinkarGahoi
@DinkarGahoi 4 жыл бұрын
This is by far the best content I have found on the System Design. I am addicted to this content. Keep up the good work, waiting for more videos .. :)
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Glad you enjoy it, Dinkar! Sure, more videos to come. I feel very busy these days. But I try to use whatever time is left to work on more content.
@yodali7999
@yodali7999 3 жыл бұрын
super helpful and pretty on point. appreciate the video.
@xiaopeiyi
@xiaopeiyi Жыл бұрын
It's really helpful. I already watched each videos so many times, I learned a lot. Initially, I was so frustraded with the accent(I am not native Eng speaker either). But now I am okay watching it without CC.
@TheRedbeardster
@TheRedbeardster 3 жыл бұрын
Спасибо, Миша!
@karthikmucheli7930
@karthikmucheli7930 4 жыл бұрын
OMG. I love these videos. Thank you so much for creating these. Please write a book or open a course, it may fund you to focus much time on very helpful content like this. I am very happy today.
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Appreciate your feedback, Karthik!
@datbui5863
@datbui5863 3 жыл бұрын
Great video! Nice work!! Thank you!
@oopsywtf
@oopsywtf 4 жыл бұрын
Please upload more content ! Awesome cntent for the viewers!! Great Great stuff
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Thank you for the feedback, oopsywtf. More videos to come.
@SatishKumar-jb9qm
@SatishKumar-jb9qm 3 жыл бұрын
Thank you for making this video. It was very helpful. It will be great if you can post more such videos.
@xiaolanli7985
@xiaolanli7985 2 жыл бұрын
This guy is amazing!!!
@AshishGupta-jx1ys
@AshishGupta-jx1ys 4 жыл бұрын
Amazing Video and in detail great explanation. Thanks a lot for creating this in-depth video. Please keep creating more awesome stuff.
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Thank you, Ashish, for the feedback!
@user-uj8rr7nn9q
@user-uj8rr7nn9q 5 жыл бұрын
That's awesome learning material! I hope you can keep publishing new video about system design
@SystemDesignInterview
@SystemDesignInterview 5 жыл бұрын
Glad you liked. Thanks for sharing the feedback!
@jayeshborgaonkar9166
@jayeshborgaonkar9166 3 жыл бұрын
this is really good stuff, keep up the good work thanks
@niosocket1
@niosocket1 4 жыл бұрын
So funny, found this channel yesterday and watched this video and been asked pretty much same question at my interview at LinkedIn today. Thanks a lot.
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Funny, indeed )) This world is so small )) Thanks for sharing!
@niosocket1
@niosocket1 4 жыл бұрын
Actually got an offer from Amazon, LinkedIn, Roku and probably Google as well. A lot of it because of this channel. Can’t recommend it enough! Thanks again!
@HieuNguyen-ty7vw
@HieuNguyen-ty7vw 4 жыл бұрын
I was asked this same question at my interview last Friday and found out your video today :( Didn't nail it though, hope I can do better next time. Thank you Mikhail, hope you can spend time to create more video like this.
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Wow, Sergey. You rock! And thank you for the praise.
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Time will come, Hugh. Just keep pushing!
@amitrastogi1405
@amitrastogi1405 8 ай бұрын
Great explanation. Thanks!
@VinayHPTP
@VinayHPTP Жыл бұрын
Thanks a lot for detailed explanation. much appreciated! ❤
@HeckscherHH
@HeckscherHH 11 ай бұрын
I think your great coverage of the topic show how you really know it and understand it compared to other guys who just share what they read last night. Thank you
@deathbombs
@deathbombs 3 жыл бұрын
19:05 slow path 22:00 faster than map reduce but more accurate than countmin 22:43 fast path 25:38 Data partitioner is basically kafka that reads message(logs, processed logs w counts,etc..) and stores them to topics
@nikhilkumarsaraf3290
@nikhilkumarsaraf3290 3 жыл бұрын
All your videos are really amazing. I hope you would post it more often.
@SystemDesignInterview
@SystemDesignInterview 3 жыл бұрын
Thank you, Nikhil. I will surely come back with more regular video postings.
@TheHinduRakshak
@TheHinduRakshak 3 жыл бұрын
awesome content! learnt a lot, many thanks !
@snehasishroy39
@snehasishroy39 3 жыл бұрын
Awesome video. Well explained. Waiting for your next video :) Please upload soon.
@TheGhumanz
@TheGhumanz 2 жыл бұрын
You explained it very well, thank you!
@niosocket1
@niosocket1 4 жыл бұрын
This is just amazing! Thanks a lot!
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Thank you for the feedback, Sergey! Glad you liked!
@RR8401674
@RR8401674 5 жыл бұрын
Awesome work.
@SystemDesignInterview
@SystemDesignInterview 5 жыл бұрын
Awesome feedback ))
@sairamreddi5432
@sairamreddi5432 2 жыл бұрын
This is amazing! Very much compact and time bound with detailed explanation.
@OKJazzBro
@OKJazzBro Жыл бұрын
This is an excellent video, but I am left with these questions: 1. Count min-sketch does not really keep track of video IDs in its cells. Each cell in the table could be from several collisions from different videos. So once we have our final aggregated min-sketch table, we pick the top k frequencies, but we can't tell which video ID each cell corresponds to. So how would it work? I haven't come up with an answer for this. 2. What would be type of database used to store the top k lists? I would just use a simple MySql database since the number of rows would not be very large if we have to retain top k lists for a short window of time (say for 1 week) and k is not too big. We can always add new instances of the db for each week of data if we need preserve data for older weeks. We would have to create an index for the time range column to efficiently search.
@natarajaneelakanta353
@natarajaneelakanta353 5 жыл бұрын
This is Terrific stuff, keep these coming.
@SystemDesignInterview
@SystemDesignInterview 5 жыл бұрын
Thank you for sharing your feedback, Nataraja.
@natarajaneelakanta353
@natarajaneelakanta353 5 жыл бұрын
@@SystemDesignInterview at 13:53, how did min val for A become 4 ?
@SystemDesignInterview
@SystemDesignInterview 5 жыл бұрын
My mistake. It should be 3, of course. Thanks for pointing out.
@natarajaneelakanta353
@natarajaneelakanta353 4 жыл бұрын
@@SystemDesignInterview I am sorry, I didn't mean to point mistake, i was just inquisitive. You have done a tremendous job (i don't have a better word) in explaining these so beautifully. I keep looking into this every week !
@SystemDesignInterview
@SystemDesignInterview 4 жыл бұрын
Thank you, Nataraja, for the kind words.
@madhaviachyuta3100
@madhaviachyuta3100 Жыл бұрын
Great content...Kudos..
System Design Interview - Rate Limiting (local and distributed)
34:36
System Design Interview
Рет қаралды 287 М.
System Design Interview - Distributed Cache
34:34
System Design Interview
Рет қаралды 349 М.
버블티로 체감되는 요즘 물가
00:16
진영민yeongmin
Рет қаралды 99 МЛН
Я нашел кто меня пранкует!
00:51
Аришнев
Рет қаралды 2,8 МЛН
Increíble final 😱
00:37
Juan De Dios Pantoja 2
Рет қаралды 114 МЛН
LOVE LETTER - POPPY PLAYTIME CHAPTER 3 | GH'S ANIMATION
00:15
System Design: Design a URL Shortener like TinyURL
16:00
Code Tour
Рет қаралды 80 М.
System Design Interview - Distributed Message Queue
26:28
System Design Interview
Рет қаралды 269 М.
Realtime Advertisement Clicks Aggregator | System Design
32:56
Code with Irtiza
Рет қаралды 19 М.
Scaling Instagram Infrastructure
51:12
InfoQ
Рет қаралды 277 М.
System Design Interview - Step By Step Guide
1:23:31
System Design Interview
Рет қаралды 783 М.
Google system design interview: Design Spotify (with ex-Google EM)
42:13
IGotAnOffer: Engineering
Рет қаралды 1 МЛН
Google Systems Design Interview With An Ex-Googler
59:59
Clément Mihailescu
Рет қаралды 759 М.
Stock Exchange Systems : Distributed Transactions, Financial System
43:09
Hisense Official Flagship Store Hisense is the champion What is going on?
0:11
Special Effects Funny 44
Рет қаралды 2,6 МЛН
Что не так с яблоком Apple? #apple #macbook
0:38
Не шарю!
Рет қаралды 438 М.
В России ускорили интернет в 1000 раз
0:18
Короче, новости
Рет қаралды 1,3 МЛН
Спутниковый телефон #обзор #товары
0:35
Product show
Рет қаралды 2 МЛН