mirror of
https://github.com/donnemartin/system-design-primer.git
synced 2024-03-22 13:11:35 +08:00
Fix broken links (#204)
This commit is contained in:
parent
cc5d862a87
commit
cac4d754ef
21
README.md
21
README.md
|
@ -602,7 +602,7 @@ Sites with heavy traffic work well with pull CDNs, as traffic is spread out more
|
|||
|
||||
### Source(s) and further reading
|
||||
|
||||
* [Globally distributed content delivery](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2112&context=compsci)
|
||||
* [Globally distributed content delivery](https://figshare.com/articles/Globally_distributed_content_delivery/6605972)
|
||||
* [The differences between push and pull CDNs](http://www.travelblogadvice.com/technical/the-differences-between-push-and-pull-cdns/)
|
||||
* [Wikipedia](https://en.wikipedia.org/wiki/Content_delivery_network)
|
||||
|
||||
|
@ -1092,7 +1092,7 @@ Databases often benefit from a uniform distribution of reads and writes across i
|
|||
|
||||
### Client caching
|
||||
|
||||
Caches can be located on the client side (OS or browser), [server side](#reverse-proxy), or in a distinct cache layer.
|
||||
Caches can be located on the client side (OS or browser), [server side](#reverse-proxy-web-server), or in a distinct cache layer.
|
||||
|
||||
### CDN caching
|
||||
|
||||
|
@ -1363,7 +1363,7 @@ TCP is a connection-oriented protocol over an [IP network](https://en.wikipedia.
|
|||
|
||||
If the sender does not receive a correct response, it will resend the packets. If there are multiple timeouts, the connection is dropped. TCP also implements [flow control](https://en.wikipedia.org/wiki/Flow_control_(data)) and [congestion control](https://en.wikipedia.org/wiki/Network_congestion#Congestion_control). These guarantees cause delays and generally result in less efficient transmission than UDP.
|
||||
|
||||
To ensure high throughput, web servers can keep a large number of TCP connections open, resulting in high memory usage. It can be expensive to have a large number of open connections between web server threads and say, a [memcached](#memcached) server. [Connection pooling](https://en.wikipedia.org/wiki/Connection_pool) can help in addition to switching to UDP where applicable.
|
||||
To ensure high throughput, web servers can keep a large number of TCP connections open, resulting in high memory usage. It can be expensive to have a large number of open connections between web server threads and say, a [memcached](https://memcached.org/) server. [Connection pooling](https://en.wikipedia.org/wiki/Connection_pool) can help in addition to switching to UDP where applicable.
|
||||
|
||||
TCP is useful for applications that require high reliability but are less time critical. Some examples include web servers, database info, SMTP, FTP, and SSH.
|
||||
|
||||
|
@ -1605,7 +1605,7 @@ Handy metrics based on numbers above:
|
|||
| Design Google docs | [code.google.com](https://code.google.com/p/google-mobwrite/)<br/>[neil.fraser.name](https://neil.fraser.name/writing/sync/) |
|
||||
| Design a key-value store like Redis | [slideshare.net](http://www.slideshare.net/dvirsky/introduction-to-redis) |
|
||||
| Design a cache system like Memcached | [slideshare.net](http://www.slideshare.net/oemebamo/introduction-to-memcached) |
|
||||
| Design a recommendation system like Amazon's | [hulu.com](http://tech.hulu.com/blog/2011/09/19/recommendation-system.html)<br/>[ijcai13.org](http://ijcai13.org/files/tutorial_slides/td3.pdf) |
|
||||
| Design a recommendation system like Amazon's | [hulu.com](https://web.archive.org/web/20170406065247/http://tech.hulu.com/blog/2011/09/19/recommendation-system.html)<br/>[ijcai13.org](http://ijcai13.org/files/tutorial_slides/td3.pdf) |
|
||||
| Design a tinyurl system like Bitly | [n00tc0d3r.blogspot.com](http://n00tc0d3r.blogspot.com/) |
|
||||
| Design a chat app like WhatsApp | [highscalability.com](http://highscalability.com/blog/2014/2/26/the-whatsapp-architecture-facebook-bought-for-19-billion.html)
|
||||
| Design a picture sharing system like Instagram | [highscalability.com](http://highscalability.com/flickr-architecture)<br/>[highscalability.com](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html) |
|
||||
|
@ -1613,10 +1613,10 @@ Handy metrics based on numbers above:
|
|||
| Design the Facebook timeline function | [facebook.com](https://www.facebook.com/note.php?note_id=10150468255628920)<br/>[highscalability.com](http://highscalability.com/blog/2012/1/23/facebook-timeline-brought-to-you-by-the-power-of-denormaliza.html) |
|
||||
| Design the Facebook chat function | [erlang-factory.com](http://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf)<br/>[facebook.com](https://www.facebook.com/note.php?note_id=14218138919&id=9445547199&index=0) |
|
||||
| Design a graph search function like Facebook's | [facebook.com](https://www.facebook.com/notes/facebook-engineering/under-the-hood-building-out-the-infrastructure-for-graph-search/10151347573598920)<br/>[facebook.com](https://www.facebook.com/notes/facebook-engineering/under-the-hood-indexing-and-ranking-in-graph-search/10151361720763920)<br/>[facebook.com](https://www.facebook.com/notes/facebook-engineering/under-the-hood-the-natural-language-interface-of-graph-search/10151432733048920) |
|
||||
| Design a content delivery network like CloudFlare | [cmu.edu](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2112&context=compsci) |
|
||||
| Design a content delivery network like CloudFlare | [figshare.com](https://figshare.com/articles/Globally_distributed_content_delivery/6605972) |
|
||||
| Design a trending topic system like Twitter's | [michael-noll.com](http://www.michael-noll.com/blog/2013/01/18/implementing-real-time-trending-topics-in-storm/)<br/>[snikolov .wordpress.com](http://snikolov.wordpress.com/2012/11/14/early-detection-of-twitter-trends/) |
|
||||
| Design a random ID generation system | [blog.twitter.com](https://blog.twitter.com/2010/announcing-snowflake)<br/>[github.com](https://github.com/twitter/snowflake/) |
|
||||
| Return the top k requests during a time interval | [ucsb.edu](https://icmi.cs.ucsb.edu/research/tech_reports/reports/2005-23.pdf)<br/>[wpi.edu](http://davis.wpi.edu/xmdv/docs/EDBT11-diyang.pdf) |
|
||||
| Return the top k requests during a time interval | [cs.ucsb.edu](https://www.cs.ucsb.edu/sites/cs.ucsb.edu/files/docs/reports/2005-23.pdf)<br/>[wpi.edu](http://davis.wpi.edu/xmdv/docs/EDBT11-diyang.pdf) |
|
||||
| Design a system that serves data from multiple data centers | [highscalability.com](http://highscalability.com/blog/2009/8/24/how-google-serves-data-from-multiple-datacenters.html) |
|
||||
| Design an online multiplayer card game | [indieflashblog.com](http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html)<br/>[buildnewgames.com](http://buildnewgames.com/real-time-multiplayer/) |
|
||||
| Design a garbage collection system | [stuffwithstuff.com](http://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/)<br/>[washington.edu](http://courses.cs.washington.edu/courses/csep521/07wi/prj/rick.pdf) |
|
||||
|
@ -1699,11 +1699,10 @@ Handy metrics based on numbers above:
|
|||
|
||||
* [Airbnb Engineering](http://nerds.airbnb.com/)
|
||||
* [Atlassian Developers](https://developer.atlassian.com/blog/)
|
||||
* [Autodesk Engineering](http://cloudengineering.autodesk.com/blog/)
|
||||
* [AWS Blog](https://aws.amazon.com/blogs/aws/)
|
||||
* [Bitly Engineering Blog](http://word.bitly.com/)
|
||||
* [Box Blogs](https://www.box.com/blog/engineering/)
|
||||
* [Cloudera Developer Blog](http://blog.cloudera.com/blog/)
|
||||
* [Box Blogs](https://blog.box.com/blog/category/engineering)
|
||||
* [Cloudera Developer Blog](http://blog.cloudera.com/)
|
||||
* [Dropbox Tech Blog](https://tech.dropbox.com/)
|
||||
* [Engineering at Quora](http://engineering.quora.com/)
|
||||
* [Ebay Tech Blog](http://www.ebaytechblog.com/)
|
||||
|
@ -1726,14 +1725,14 @@ Handy metrics based on numbers above:
|
|||
* [Microsoft Python Engineering](https://blogs.msdn.microsoft.com/pythonengineering/)
|
||||
* [Netflix Tech Blog](http://techblog.netflix.com/)
|
||||
* [Paypal Developer Blog](https://devblog.paypal.com/category/engineering/)
|
||||
* [Pinterest Engineering Blog](http://engineering.pinterest.com/)
|
||||
* [Pinterest Engineering Blog](https://medium.com/@Pinterest_Engineering)
|
||||
* [Quora Engineering](https://engineering.quora.com/)
|
||||
* [Reddit Blog](http://www.redditblog.com/)
|
||||
* [Salesforce Engineering Blog](https://developer.salesforce.com/blogs/engineering/)
|
||||
* [Slack Engineering Blog](https://slack.engineering/)
|
||||
* [Spotify Labs](https://labs.spotify.com/)
|
||||
* [Twilio Engineering Blog](http://www.twilio.com/engineering)
|
||||
* [Twitter Engineering](https://engineering.twitter.com/)
|
||||
* [Twitter Engineering](https://blog.twitter.com/engineering/)
|
||||
* [Uber Engineering Blog](http://eng.uber.com/)
|
||||
* [Yahoo Engineering Blog](http://yahooeng.tumblr.com/)
|
||||
* [Yelp Engineering Blog](http://engineeringblog.yelp.com/)
|
||||
|
|
Loading…
Reference in New Issue
Block a user