Archive for 九月 2010

公司的社招培训第一天收获

这一周的周二到周四都是参加公司的社招新人培训,今天给我们分享的有淘宝的业务介绍,工程师@淘宝 by(文初) , 毕玄给我们讲淘宝架构介绍&未来发展,以及伏威给我们分享 用户体验,速度,稳定,成本–四个关键词

淘宝的业务介绍,是一位消费者事业部的产品经理给我们分享,其中一个问题让我印象非常深刻,淘宝有一年的在线交易总额KPI是1000亿,但实际只有达到的是999.4亿,相差了0.6亿,去了哪里?是因为临近过年之前,交易量瞬间上升,系统抗不住,服务不可用的时间非常长,从而导致了当年的KPI没有100%实现,上课的时候听到这个情况,心情挺不好受的,也感觉压力很大.这个培训,我觉得最大的收获是了解了前人的一些痛苦,自己来听一番,也感受这个过程,以后在工作的时候对类似的情况有所考虑

第二位给我们做分享的是放翁,工程师@淘宝的话题。认识文初,我依稀记得是大三的时候在javaeye.com看到他的博客,从他的博客文章,感觉他是沟通能力非常强的技术高手,当年的我,也没想到可以一睹他的风采。今天他全程的分享都是脱稿,而条理也非常清晰。他所分享的内容我做了记录:

1. 工程师如何把事情做到极致–把所负责的事情产品化,记录下来分享,不用怕吃亏

2.责任: 产品责任,关注自己的客户的需求,提前想到他们会有什么样的疑惑

3.心态: 在淘宝,你会发现你很忙,如果没有一个良好的心态,很容易把自己给压垮

4.沟通: 今天你给别人什么态度,明天别人就会给你什么态度。

5.时间管理:首先要和清晰的知道,自己今天要完成什么;不要做万金油,懂得让别人知道怎样解决问题,选择好的方式去帮助别人

放翁的分享很精彩,营养很好.值得好好的记录下来

下午是毕玄给我们做淘宝架构&未来发展,分享了淘宝的v1,v2,v3架构的优势和缺点不足。毕玄是淘宝秒杀活动的技术方案提供者 ,具体可以看这篇文章  http://www.aliresearch.com/viewpoint/6774/

v1阶段 采用了外国的技术方案来进行,一开始业务不是非常庞大,也勉强维持的过去

v2阶段,业务开始激增,整个淘宝的代码都放在一个工程,每次打包都要个20多分钟,大家都可以修改代码,数据都在一个数据库里面,日子过得不轻松

v3阶段,也就是目前我们的所在阶段,一个关键词–拆分 。从上层开始,拆应用,拆项目,产生各种各种的中间件,tfs,taif,notify,hsf,tddl,数据库分库分表,分机房。分布式的一个好处是,挂了一个子节点,其他节点还可以顶住其他的业务,鸡蛋没有放在同一个篮子。但也带来一个难题–应用拆分了,数据库拆分了,一大堆中间件,互相的依赖非常强,随便哪个子系统出了问题,都可能导致一对服务不可用。鸡蛋没有在同一个篮子里面,分散放,某个地方不小心,就打烂一两个鸡蛋了。

最后的是伏威给我们分享2010年淘宝的技术方面的四个关键词: 用户体验,速度,稳定,成本.  其实有3个词,我认为都是和v3阶段的拆分有关系,分别是用户体验,稳定,成本。

用户体验和稳定:  这两个词其实有非常大的关系,系统不稳定,用户访问不了网站,用户体验就非常糟糕了。

成本: 分布式和拆分所带来的,就是设备数量的激增,从而带来各种各样的成本问题,机柜,服务器,内存,cpu,人力成本等等

今天的分享,既有经验的收获,也带给了我思考,比如放翁所提到的责任精神,比如毕玄所提到的未来10w级别的服务器,如何智能化管理,还有伏威所提到的四个关键词,这些点,对于我自己的工作,应该也是需要加以注意并做好的,而这,就是我的工作的意义所在”个人能力得到提升,所做的事情解决了已有的问题,证明自己的价值”

MySQL InnoDB 崩溃恢复过程 前言

最近一个正在进行的项目,性能测试场景中包含MySQL 为较大压力的应用程序提供服务,Linux服务器CPU占用100% ,OS 不可用,我写了一个吃CPU的shell脚本来不断的跑,结果把服务器跑挂了,手动重启了服务器后,发现MySQL起来的时间需要非常长,为大家所不能接受

MySQL相关信息   5.0.67    InnoDB Buffer Pool Size为36G  ,innodb_flush_log_at_trx_commit = 1,innodb_log_file_size = 900M

,当时候的服务器情况比较糟糕,CPU占用100% ,ssh也登录不进去,维持了一段时间后才进行重启,所以没有收集到最重要的崩溃之前的MySQL内部信息   整个的恢复过程用了6个小时

这个时候,引发了我们的反思:

1. 我们的MySQL压测模型没有针对不同版本的MySQL进行崩溃恢复压测  所以出现这个崩溃恢复的问题,我们只能补回来这个测试,针对不同版本的MySQL(MySQL 5.0.67 和MySQL5.1.xx),需要进行相同TPS的场景下进行kill -9  pid (mysqld)的测试,掌握一手的崩溃恢复时间,为将来线上出现MySQL崩溃,做最好的准备

2. 我自己对MySQL InnoDB崩溃恢复的过程不是非常了解,导致MySQL崩溃之前没有去采集有参考价值的数值,这点需要加把劲

这一篇是前言,下一篇,我会对MySQL InnoDB的崩溃恢复过程做详细的介绍

问题&自我的提升

下午江枫 召集了我们10号人,在外面的咖啡室订了个包厢,用了一下午的时间来进行头脑风暴–把大家觉得不爽的问题抛出来

形式很简单,江枫让我们一个个的来把大家觉得不爽的问题列出来,不过也是专门腾出时间来搞这个事情,其他日常的工作暂时抛开了一个下午

今天参加完这个“批斗会”,感受很深,大家把觉得有问题的都说了个遍,压抑在心里面的疑惑,困惑,不爽都释放出来了,让我想起了上一次的“批斗会”–在学校的quanta第一年的时候面临一些团队沟通问题,也通过这种方式来解决

当我们碰到困惑的时候,发现这是一个问题,或多或少会有自己的想法去解决,但很可能这个想法只是一下子划过自己的脑袋…之后再碰到,除非我们有特定的时间(自己去挤或者向别人要求这个时间来做),如果没有做这一步。。很大可能我们对问题的处理仅仅停留在思考方面,而不是去行动

下午在听同事们的觉得是一个问题的时候,自己也在反思,原来自己也曾经对某个东西有疑惑,但没有去做好….这一点如果做好了..可能我们会觉得自己所做的东西是很有价值的