10.0
来源:互联网 发布:java数组的长度单位 编辑:程序博客网 时间:2024/06/08 19:51
Topic 10.0
1. Scalability question can be among the easiest questions.
2. System design problems: just use the following Step-By-Step Approach
1) Make Believe: Pretend that the data can all fit on one machine and no memory limitations.
2) Get Real:
-->Think about how much data can fit on one machine, and what problems will occur when split the data up?
-->Figure out how to logically divide the data up, and how one machine would identify where to look up a different piece of data.
3) Solve Problmes: Usually can continue the approach in Setp 1), but may fundamentally alter the whole approach occasionally. Iterative approach is typically useful.
-->Demonstrating you can analyze and solve problems is enough, you do not need to re-architect a complex system that companies have spent millions of dollars building.
3. Though we can sometimes increase hard drive space in a computer, ther coms a point where data simply must be divided up across machines. What data belongs on which machine, strategies:
1) By Order of Appearance:
-->As new data comes in, wait for current machine to fill up before adding a new machine.
-->Good: never using more machines than are necessary.
-->Bad: lookup table may be very complex and potentially very large.
2) By Hash Value:
-->Store the data on the machine corresponding to the hash value of the data. A. pick some key relating to the data. B. hash the key. C. mod the hash value by the number of machines D. store the data on the machine with that valueà#[mod(hash(key), N)]
-->Good: No need for a lookup table. Every machine will know where a piece of data is.
-->Bad: a machine may get more data and exceed its capacity. We have to shift data around the other machines (expensive); Or split the machine’s data into two machines, causing a tree-like structure of machines.
3) By Actual Value:
-->there is no relationship between what the data represents and which machine stores the data. Example: when designing a social network, can store “similar” data on the same machine so that looking up the Mexican person’s friends requires fewer machine hops.
4) Arbitrarily:
-->frequently, data gets arbitrarily broken up and we implement a lookup table to identify which machine holds a piece of data. While this does necessitate a potentially large lookup table, it simplifies some aspects of system design and can enable better load balancing.
- 10.0
- 10.0/0.0
- POWERDESIGNER 10.0 简介
- suse 10.0 快捷键大全
- POWERDESIGNER 10.0 简介
- Adobe Flash Player 10.0
- QTP 10.0 破解新发现
- QTP 10.0 破解
- 安装 unbuntu 10.0.4
- Log4net(1.2.10.0)配置
- QTP8.2-10.0破解
- servu 10.0破解补丁/注册码
- ArcGIS 10.0安装
- MyEclipse 10.0优化
- myeclipse 10.0 激活心得
- Windchill 10.0 初步优化
- ubuntu 10.0.4 samba
- ORACLE 10.0导入导出
- oracle 位运算
- [leetcode]Distinct Subsequences
- java基础入门---- MyLineNumberReader2
- ADO 连接access2010的问题
- java 的socket网络编程
- 10.0
- poj 2406 power string(KMP)
- 动态IP和静态IP
- hdu 4757 Tree 南京网络赛 1010
- 做一个优雅的程序员—《程序员修炼之道》读后感
- android TextView 文字处理
- printf函数
- “iOS 推送通知”详解:从创建到设置到运行
- 《链接、装载与库》里的一个错误:关于调用栈