随笔 - 16  文章 - 1  trackbacks - 0
<2009年12月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

分布式系统设计开发过程中有几个比较有意思的现象:
1. CAP原理。CAP分别表示Consistency(一致性), Availability(可访问性), Partition-tolerance(网络分区容忍性)。Consistency指强一致性,符合ACID;Availability指每一个请求都能在确定的时间内返回结果;Partition-tolerance指系统能在网络被分成多个部分,即允许任意消息丢失的情况下正常工作。CAP原理指出,CAP三者最多取其二,没有完美的结果。因此,我们设计replication策略、一致性模型、分布式事务时都应该有所折衷。
2. 一致性的不可能性原理。该原理指出在允许失败的异步系统下,进程间是不可能达成一致的。典型的问题就是分布式选举问题,实际系统如Bigtable的tablet加载问题。所以,Google Chubby/Hadoop Zookeeper实现时都需要对服务器时钟误差做一个假设。当时钟出现不一致时,工作机只能下线以防止出现不正确的结果。
3. 错误必然出现原理。只要是理论上有问题的设计/实现,运行时一定会出现,不管概率有多低。如果没有出现问题,要么是稳定运行时间不够长,要么是压力不够大。
4. 错误的必然复现原则。实践表明,分布式系统测试中发现的错误等到数据规模增大以后必然会复现。分布式系统中出现的多机多线程问题有的非常难于排查,但是,没关系,根据现象推测原因并补调试日志吧,加大数据规模,错误肯定会复现的。
5. 两倍数据规模原则。实践表明,分布式系统最大数据规模翻番时,都会发现以前从来没有出现过的问题。这个原则当然不是准确的,不过可以指导我们做开发计划。不管我们的系统多么稳定,不要高兴太早,数据量翻番一定会出现很多意想不到的情况。不信就试试吧!
阅读全文
类别:默认分类 查看评论
文章来源:http://hi.baidu.com/knuthocean/blog/item/d291ab64301ddbfaf73654bc.html
posted on 2009-12-03 13:43 Programmers 阅读(224) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: