从MySpace的六次重构经历 认识分布式系统该如何创建 - IT生活资讯网 - 专注IT精品资讯 关注IT生活 提供丰富有价值的IT教程 - TechFeel.Com

摩族智能手机社区 动力互联科技提供带宽支持

中国IDC圈

手机频道智能手机 电子书 铃声 主题 游戏  IDC主机托管域名 空间 邮局 托管

 
您的位置:首页 > 最新资讯 > 业界 >

从MySpace的六次重构经历 认识分布式系统该如何创建

整理:互联网 来源:草根网【我要收藏】 进入论坛 发布时间:2007-07-27 07:59:43

BJqTechFeel
BJqTechFeel
Benedetto说,主数据中心的可靠性通过下列措施保证:可接入两张不同电网,另有后备电源和一台储备有30天燃料的发电机。但在这次事故中,不仅两张电网失效,而且在切换到备份电源的过程中,操作员烧掉了主动力线路。 BJqTechFeel
BJqTechFeel
2007年中,MySpace在另两个后备站点上也建设了SAN。这对分担负荷大有帮助——正常情况下,每个SAN都能负担三分之一的数据访问量。而在紧急情况下,任何一个站点都可以独立支撑整个服务,Benedetto说。 BJqTechFeel
BJqTechFeel
MySpace仍然在为提高稳定性奋斗,虽然很多用户表示了足够信任且能原谅偶现的错误页面。 BJqTechFeel
BJqTechFeel
"作为开发人员,我憎恶Bug,它太气人了。"Dan Tanner这个31岁的德克萨斯软件工程师说,他通过MySpace重新联系到了高中和大学同学。"不过,MySpace对我们的用处很大,因此我们可以原谅偶发的故障和错误。" Tanner说,如果站点某天出现故障甚至崩溃,恢复以后他还是会继续使用。 BJqTechFeel
BJqTechFeel
这就是为什么Drew在论坛里咆哮时,大部分用户都告诉他应该保持平静,如果等几分钟,问题就会解决的原因。Drew无法平静,他写道,"我已经两次给MySpace发邮件,而它说一小时前还是正常的,现在出了点问题……完全是一堆废话。"另一个用户回复说,"毕竟它是免费的。"Benedetto坦承100%的可靠性不是他的目标。"它不是银行,而是一个免费的服务。"他说。 BJqTechFeel
BJqTechFeel
换句话说,MySpace的偶发故障可能造成某人最后更新的个人资料丢失,但并不意味着网站弄丢了用户的钱财。"关键是要认识到,与保证站点性能相比,丢失少许数据的故障是可接受的。"Benedetto说。所以,MySpace甘冒丢失2分钟到2小时内任意点数据的危险,在SQL Server配置里延长了"checkpoint"操作——它将待更新数据永久记录到磁盘——的间隔时间,因为这样做可以加快数据库的运行。 BJqTechFeel
BJqTechFeel
Benedetto说,同样,开发人员还经常在几个小时内就完成构思、编码、测试和发布全过程。这有引入Bug的风险,但这样做可以更快实现新功能。而且,因为进行大规模真实测试不具可行性,他们的测试通常是在仅以部分活跃用户为对象,且用户对软件新功能和改进不知就里的情况下进行的。因为事实上不可能做真实的加载测试,他们做的测试通常都是针对站点。 BJqTechFeel
BJqTechFeel
"我们犯过大量错误,"Benedetto说,"但到头来,我认为我们做对的还是比做错的多。" BJqTechFeel
BJqTechFeel
MySpace Tech Roster BJqTechFeel
BJqTechFeel
January 16, 2007 BJqTechFeel
BJqTechFeel
By David F. Carr BJqTechFeel
BJqTechFeel
我的一些思考: BJqTechFeel
BJqTechFeel
看完这篇文章首先很惊讶myspace居然是基于.net平台的系统,windows2003+asp.net+IIS+SQLSERVER,虽然我是一个纯粹的MS技术者,但是对于MS的WEB应用总是有点疑虑,我的担心大概是来自于到处都在鼓吹的LAMP,我并不敌视开源,但是我承认,它给我带来了很大的压力.看了这篇文章,我有点庆幸也有点笑自己之前的迂腐,其实对于技术来说,优劣只在于开发者本身,myspace的六次重构,很好的说明了这一点. BJqTechFeel
我们常常讲分布式系统,这个概念很大,简单点说,就是把系统给拆分开来,把本来一台服务器做的事,分到两台服务器来做.如果只在一台服务器上部署两个程序来执行之前一个程序做的事,我认为那不叫分布式,也是完全没必要的,分布式的原则是"后分布"(lazy distribute),因为这本身是件损耗性能的工作,如果不能通过它来获得明显的性能提升,那为什么还要分布式? BJqTechFeel
BJqTechFeel
myspace的六次重构基本都是围绕数据库来进行的,做了这么多年的WEB应用,我早就知道了数据库对于一个网站来说是多么的重要.在程序没有额外的问题的基础上,随着流量的增大,最先出现问题的,往往就是数据库.症状通常为,数据库查询/更新变的非常非常的慢,经常超时等. BJqTechFeel
BJqTechFeel
这个时候,我们能做的事非常有限,无非是调整下SQLServer的内存大小,给服务器加内存换速度更快的硬盘等.如果要认真的解决这个问题,对于一般的开发者来说,都会自然的想到拆库.海量的数据查询对于SQL来说本就是不该存在的,无论你的数据库优化的多么好,比如你用的Oracle,数据吞吐量很大,难道查询100W的记录会比SQL查询1W条更快吗?拆库又分本地数据库分多个表和多个服务器分多个库,执行顺序为由前到後,当数据库的压力由海量查询变成磁盘IO之后,就需要更多的数据库服务器了. BJqTechFeel
BJqTechFeel
除了硬件手段,更常用的是采用缓存.myspace直到第四次改版的后期才开始正式的引入缓存策略,这确实是个失误,如果从最开始就考虑到缓存的作用的话,那么数据库服务器至少不会膨胀的那么快,也可以有更多的时间来思考更好的架构.当然,正如Benedetto所说,这是件一开始就该考虑的事,但是myspace成长的太快了. BJqTechFeel
BJqTechFeel
不是谁都有机会来为一个流量在世界上排名前10的网站来设计架构,因此myspace的后面的若干次重构,对于普通的开发者已经很难接触了,我认为,在第三个里程碑时,也就是通过服务器的横向扩展来实现的分布式,已经足够支持巨型网站的应用了.myspace是个交互型特别强的网站,用户执行的请求数会远大于一般的网站,这也是它巨大的数据库压力的来源. BJqTechFeel
最后总结一下WEB系统分布式的要点: BJqTechFeel
BJqTechFeel
1.不到需要,绝对不要分布 BJqTechFeel
2.分布式应该围绕数据库展开 BJqTechFeel
3.分布式系统本身具有很强的扩展性,系统性能的提升和硬件的增加是线性关系. BJqTechFeel
BJqTechFeel
感想写的比较乱,基本想到什么写的什么,各位看官各取所需即是.BJqTechFeel

关键字: MySpace,重构

评论】【 】【打印】【关闭

※ 相关信息
 ·消息称MySpace考虑取消用户禁商令  (2007-08-28 03:12:52)
发表评论
用户名: 密码:
验证码: 匿名发表
TechFeel.Com 旗下网站:  摩族智能手机网 | 中国教程在线 | 动力互联科技
网站留言关于我们 | 广告服务| 合作媒体 | 联系我们 | 免责声明网站地图
Copyright © 2005 - 2007 All Rights Reserved
冀ICP备 05024357