Chp10: Scalability and Memory Limits
The Step-by-Step Approach
break down a tricky problem and to solve problems using what you do know.
Step 1: Make Believe
Pretend that the data can all fit on one machine and there are no memory limitations. Provide the general outline for your solution.
Step 2: Get Real
figure out how to logically divide the data up, and how one machine would identify where to look up a different piece of data.
Step 3: Solve Problems
Dividing Up Lots of Data:
By Order of Appearance:
By Hash Value: 1)pick some sort of key relating to the data 2)hash the key 3)mod the hash value by the number of machines 4)store data on the machine with that value
there is no relationship between what the data represents and which machine stores data.
By Acutal Value: reduce system latency by using information about what the data represents.
Arbitrarily:
Good Example: Find all documents that contains a list of words.
10.1 build some sort of service that will be called by up to 1000 client applications to get simple end-of-day stock price information.
We want to start off by thinking about what the different aspects we should consider in a given proposal are:
1. Client Ease of Use: we want the service to be easy for the clients to implement and useful for them
2. Ease for Ourselves: consider in this not only the cost of implementing, but also the cost of maintenance
3. Flexibility for Future Demands:
4. Scalability and Efficiency: not to overly burden our service.
DataBase vs XML(json) P 343
10.2 good problem
10.7 LRU Cache
posted on 2013-12-11 02:04 Step-BY-Step 阅读(214) 评论(0) 编辑 收藏 举报