[NineChap System Design] Class 3.1: Web Service - Shuatiblog.com
how the internet works
DNS
Web server
Music Player
MP3 file
秒杀
how to solve raido-play failures
> Failure rate = % user who can't listen to music properly
> = # user who fail to plya one song / # total users
Misson: reduce failure rate.
If a server uses Cookie to identify unique users, the result might be > real users.
However, if server uses IP address, the result might be < real users.
define failure rate
user cookie to identify user
use log to collect failure data
analysis pattern of failure againt date/time
Real data: failure rate 20%
In practise, the real failure rate is 20%. Which is:
8% DNS
5% Web
5% MP3
2% Player
Fix the web problem
Highest failure rate:
3pm office hour
9pm highest bandwidth nation-wide
Solution 2, reduce size of web pagesimplify javascript files
compress images (lower dpi)
merge large images to 1 image (less requests)
lazy loading (Pinterest uses it a lot)
Solution 3, more cacheable pages
Change dynamic webpages to static pages. The advantage of this is:
more search engine friendly.
more cache friendly.
Summary on caching
Caching can happen at place Number 1, 2 and 3:
AT Number 4, we can add more servers. Number 3, reverse proxy. Number 2 iscaching within the ISP network, which avoids requesting info again from backend. Number 1 is front-end browser cache.
After this step, Web failure rate fall from 7% to 4%. Why still 4%? Well, these failure is mainly from the junk users created by marketing.Read full article from [NineChap System Design] Class 3.1: Web Service - Shuatiblog.com
how to solve raido-play failures
> Failure rate = % user who can't listen to music properly
> = # user who fail to plya one song / # total users
Misson: reduce failure rate.
If a server uses Cookie to identify unique users, the result might be > real users.
However, if server uses IP address, the result might be < real users.
- user send a log to server when it visits
- user send another log after it plays a song
- we can identify users who failed to play a song
SummaryIn fact, everything should be logged, including play, pause, switch song, refresh etc.
define failure rate
user cookie to identify user
use log to collect failure data
analysis pattern of failure againt date/time
In practise, the real failure rate is 20%. Which is:
8% DNS
5% Web
5% MP3
2% Player
Fix the web problem
Highest failure rate:
3pm office hour
9pm highest bandwidth nation-wide
Solution 2, reduce size of web pagesimplify javascript files
compress images (lower dpi)
merge large images to 1 image (less requests)
lazy loading (Pinterest uses it a lot)
Solution 3, more cacheable pages
Change dynamic webpages to static pages. The advantage of this is:
more search engine friendly.
more cache friendly.
Summary on caching
Caching can happen at place Number 1, 2 and 3:
After this step, Web failure rate fall from 7% to 4%. Why still 4%? Well, these failure is mainly from the junk users created by marketing.Read full article from [NineChap System Design] Class 3.1: Web Service - Shuatiblog.com