Design a Key-Value Store - System Design Mock Interview (with Microsoft Software Engineer)

preview_player
Показать описание

Join us with a Software Engineer at Microsoft, delve into the process of designing a key-value store like Memcache. In this discussion, Praveen underscores the importance of caching and memory efficiency, addressing both functional and non-functional requirements. He elaborates on the implementation of an LRU cache using a hash table and doubly linked list, ensuring optimal performance and scalability. The incorporation of consistent hashing and read replicas amplifies the system's availability, while security and monitoring are not overlooked. Witness a blend of theoretical knowledge and practical insights, offering a holistic view of system design intricacies.

Chapters (Powered by ChapterMe) -
00:00 - Intro
00:23 - Key value store for caching
02:54 - System availability, scalability, and performance requirements
04:15 - Simple cache implementation for one system
06:15 - Cache policy discusses data evictions
06:49 - LRU vs Hash table for tracking usage
11:26 - Scaled cache deployment with multiple approaches
13:04 - Deploy caches on different hosts, avoid maintenance overhead
14:47 - Deploying caches pros and cons
16:22 - Three cache with hash function
17:51 - Resolving cache change problem with consistent hashing
23:20 - Sharing URLs with Cache client
26:20 - Scalability, performance, availability, cache management
27:34 - Adding read replica to cache A for high availability
32:19 - The simple, least used method for accessing cash on blockchain
33:50 - System design for consistent caching
35:01 - Solution Jump Caching
36:08 - Outro

Watch more system design videos here:

ABOUT US:
Did you enjoy this video? Want to land your dream career? Exponent is an online community, course, and coaching platform to help you ace your upcoming interview. Exponent has helped people land their dream careers at companies like Google, Microsoft, Amazon, and high-growth startups. Exponent is currently licensed by Stanford, Yale, UW, and others.

Our courses include interview lessons, questions, and complete answers with video walkthroughs. Access hours of real interview videos, where we analyze what went right or wrong, and our 1000+ community of expert coaches and industry professionals, to help you get your dream job and more!

#SystemDesignInterview #TechInterviewPrep #systemdesigninterviewprep #systemdesigninterview #systemdesign #systemdesignquestions #SystemDesignInterview #KeyValueType #DesignChallenge #tryexponent #mockinterview
Рекомендации по теме
Комментарии
Автор

I think a good series that would add to these videos is something like a "Hiring Managers React to Mock Interviews" I think there is probably a lot more to be said about how the interviewee is handling the interview at any point. So the format would be a hiring manager watching one of these mock interviews and maybe pausing the video throughout to mention things that could be improved at that moment. For example maybe in the beginning the interviewee didnt ask enough questions, or they failed to thoroughly explain a tradeoff. I think this would be super helpful. Anyway overall the videos are very helpful!

bewky
Автор

In requirement gathering, you have to gather from interviewer; not assume.

kandarpkakkad
Автор

Bro role playing an interviewee, interviewer and a bootcamp tutor at the same time in a mock interview.

Charles-rnke
Автор

Its a good one, but it is missing on the requirement gathering phase. The first rule of System design is to ask clarifying questions which is totally missing. Looks like the candidate jumped straight into solving the problem

kumaraakash
Автор

Additionally, looks like everything has been already scripted, the interviewer & interviewee in the video just be there, and read the script. My intention is not to offend, but rather to encourage transparency and collaboration. If you actually copied from or were inspired by the original video, please add credits to them. Collaboration and acknowledging sources are always appreciated, and I apologize if I have misunderstood the situation.

dattannguyen
Автор

Head points to the first inserted element right? In that case, A should be removed rather than B? Right?

TheAjitpattar
Автор

Thanks for sharing. I have one question. For Product Management aspirant, are we also suppose to know System Design ? How System Design is different compared to product sense or product design ? Could you shed some light on this please ? Thank you

sumibits
Автор

It's important to take design system interview of candidates when we get new projects.

FaizanPinjari
Автор

Should "functionality to set Cache Policies" not be one of the crucial Functional Requirements. I guess its always on service-owners to decide when & how eviction of data should happen from a cache service they leverage. The cache service can just list its maximum supported specification.

As a cache service, it must be offering options for setting eviction policies from set of all common algos. It must also have features like to set TTL for records etc.

Also in the explanation of Consistent Hashing for allotment of key ranges between n nodes, the load is always equally distributed on all the nodes - NOT like C impacted mainly & no/less impact on A/B with addition/removal of D. It is achieved through n level hash functions & virtual servers in ring distributing load equally between all effective nodes through re-adjustment.
From his explanation of Consistent Hashing, suppose D kills off. It will overload C suddenly through major set of its data moved to C & it will kill C from memory load - which in turn will kill B & then A - hence BOOM on the entire cache service.

himanshuranjan
Автор

Great explanation. Thanks for the content

jatinkumar
Автор

so 2 different services are sharing a Cache? Doesn't that break some best practices?

tarekradi
Автор

If this is guy not already caching expert, than we are doomed.

encrypted
Автор

Lot of stuff getting hide behind candidates video

kapilrules
Автор

This seems super far from a real interviewer. The interviewee in this case makes a lot of assumptions and hardly asks any clarifying questions. Design scope is never established

branmuller