- ACP in 12 years
- http://blog.csdn.net/chen77716/article/details/30635543
- http://blog.csdn.net/chen77716/article/details/30635543
- Memcached
- Distributed in-memory key-value store for small chunks of arbitrary data
- Membase, later changed to CouchDB
- Caveat:
- Volatile due to eviction, full, service crashing
- Too many items may cause thrashing
- Non-transactional
- UDP vs TCP
- UDP is connection-less protocol and faster than TCP, especially when occasional loss is not a big issue such as video stream, VoIP. UDP is very good for pub-sub used in Tibco. Good for heartbeat too. Packages may arrive out of order. Package based
- TCP has very huge overhead for handshaking and is bytestream based, therefore merging them back is a big overhead. Point-to-point connection has to be maintained
- http://stackoverflow.com/questions/1099672/when-is-it-appropriate-to-use-udp-instead-of-tcp
- Scatter-gather IO
- readv, writev
- facebook uses it cut down CPU by 50%
- Tinyurl / google url shortener
- Normally they don't expire as long as the company is up and running
- Bitly
- Zookeeper
- http://highscalability.com/zookeeper-reliable-scalable-distributed-coordination-system
- More down to the earth explanation: https://www.altamiracorp.com/blog/employee-posts/distributed-coordination-with-zookeeper-part-1-introduction
- Powered by ZK including akka and kafka
- Might be influenced by Google Chubby (Slides, PDF), https://www.igvita.com/2010/04/30/distributed-coordination-with-zookeeper/
- Weak points: 1) Unable to capture events happening after old watcher is fired and new watcher is setup, 2) ZK server itself could die and when that happens applications need to find a new/backup ZK server
- Kafka
- Benchmarking 2 Million Writes Per Second
- Kernel coding is more efficient, such as sendfile, which cannot be done on Windows?
- About log (lots of interesting reference reading in the end)
- Paxos
- Paxos made simple
- Explain by examples
- Seems more accurate with actual number
- Use Paxos to create replicated log: https://www.youtube.com/watch?v=JEpsBg0AO6o
- Spark
- Check if this is the right solution to this design problem (57. linkedin interview (including design questions))
- Check if this is the right solution to this design problem (57. linkedin interview (including design questions))
- Cassandra
- Actual discussion about how to design Amazon view history, (57. amazon design discussion (cookie or server side storage)). Also check how cookie is used.
- Actual discussion about how to design Amazon view history, (57. amazon design discussion (cookie or server side storage)). Also check how cookie is used.
- Spanner
- Relational DB is not dead
- http://radar.oreilly.com/2012/10/google-spanner-relational-database.html?
- But in original video, http://new.livestream.com/accounts/1545775/osdi12/videos/4646642, the K/V part is in place but other relational related stuff not yet
- http://highscalability.com/blog/2012/9/24/google-spanners-most-surprising-revelation-nosql-is-out-and.html
- Relational DB is not dead
- Some basic background info (53. understanding basic advantages of hadoop nosqldb)
- Rate limiter
- Similar to this one (54. dropbox interview (basically a design problem))
- (56. google rate limiter design)
- Gossip protocol in Cassandra
- Design a map-like ADT that has add: O(1) deletion: O(1) lookup: O(1) clear:O(1) iterate: O(number of elements)
- (54. pure storage interview (including design discussion about a high efficient map))
- (54. pure storage interview (including design discussion about a high efficient map))
- Spark, reef
- (54. learn spark and reed directly over hadoop (with lots of good discussion))
- (54. learn spark and reed directly over hadoop (with lots of good discussion))
- Find out top K topics in the past second, minute, hour, day
- stream processing (spark or kafka+storm)
- (56. Find out top K topics in the past second minute hour day)
- http://eugenedvorkin.com/implementing-top-10-most-popular-articles-in-real-time-with-storm-and-mongodb/
- http://www.michael-noll.com/blog/2013/01/18/implementing-real-time-trending-topics-in-storm/
- https://github.com/apache/spark/tree/master/examples/src/main/scala/org/apache/spark/examples/streaming
- stream processing (spark or kafka+storm)
- How to improve your system design skill
- (54. how to improve your system design skills)
- How to improve your distributed system design capability
- (56. how to improve your distributed system design capability)
- (56. how to improve your distributed system design capability)
- Collection of docs to read
- One copy: http://blog.csdn.net/supermig/article/details/23434277
- Might be kind of old
- Fei Dong's article: http://www.zhihu.com/question/25908682/answer/31637652
- How to design distributed LRU cache, hash table (consistent hashing maybe?)
- Real world examples:
- Generate list of your friends latest posts in social service
- http://new.livestream.com/accounts/1545775/osdi12/videos/4646642
- http://new.livestream.com/accounts/1545775/osdi12/videos/4646642
- Generate list of your friends latest posts in social service
- RESERVED
Distributed system design
最新推荐文章于 2021-10-24 00:11:20 发布