Copy-Evaluation
Fulfilling requirements
Interviewer: How do you think that the proposed system fulfilling all the requirements?
Candidate: Our main requirements are smooth streaming (low latency), availability, and reliability. Let’s discuss them one by one.
-
Low Latency/Smooth streaming can be achieved through:
- Geographically distributed cache servers.
- High bandwidth
- Using a distributed cache management system
- Utilizing content delivery networks (CDNs) which make heavy use of caching and mostly serve videos out of memory. It distributes the service spatially relative to the client. Moreover, the load on the cache server should be distributed to maximize user performance.
-
Scalability: Our design is capable of handling an average level of scaling. i.e., Certain components (like databases) will require restructuring if we scale them to cater to the needs of increasing load. Also, for disaster recovery, the existing design will have to be updated.
-
Availablity: The system can be made available by replicating data to as many servers as possible to avoid a single point of failure. We can recover from failed servers by spanning a new virtual machine, and restoring the state.
- Reliability: Youtube system can be made reliable by using data partitioning and fault-tolerance techniques. For example, using consistent hashing will replace the dead server and help distribute load among servers.
Test your system designing skills
Isn’t the load balancer a single point of failure (SPOF)?
How Youtube achieves scalability, availability, good performance
Scalability |
| ||
Availability |
| ||
Low latency/Performance |
|
Tradeoffs
Interviewer: Okay, it seems like the design decisions were good enough to fulfill the requirements. But I am sure no system is perfect. What, according to you, are ...
Create a free account to access the full course.
By signing up, you agree to Educative's Terms of Service and Privacy Policy