Evaluation of YouTube's Design
Let's understand how our design decision fulfills the requirements.
Requirements compliance
Our proposed design needs to fulfill the requirements we mentioned in the previous lessons. 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 these strategies:
Geographically distributed cache servers at the ISP level to keep the most viewed content.
Choosing appropriate storage systems for different types of data. For example, we’ll can use Bigtable for thumbnails, blob storage for videos, and so on.
Using caching at various layers via a distributed cache management system.
Utilizing content delivery networks (CDNs) that make heavy use of caching and mostly serve videos out of memory. A CDN deploys its services in close vicinity to the end users for low-latency services.
Scalability: We’ve taken various steps to ensure scalability in our design as depicted in the table below. The horizontal scalability of web and application servers will not be a problem as the users grow. However, MySQL storage cannot scale beyond a certain point. As we’ll see in the coming sections, that may ...
Isn’t the load balancer a single point of failure (SPOF)?