讲到这里,顺便先辟个谣,网上有很多这样骗转发的励志段子:“1998年,马化腾等一伙人凑了50万元创办了腾讯,
没买房;1998年,史玉柱借了50万元搞脑白金,没买房;1999年,丁磊用50万元创办了163.com,没买房;1999年,陈天桥炒股赚了50万元,创办盛大,没买房;1999年,马云等18人凑了50万元注册了阿里巴巴,没买房。如果当年他们用这50万元买了房,现在估计还在还着银行的贷款吧。”事实上,阿里巴巴和淘宝网都是在马云自己的房子里创办的,阿里巴巴是1999年初发布上线的。所以,关于马云买房子的事情,真相是这样的。
淘宝网作为个人网站发展的时间其实并不长由于它太引人注目了,马云在2003年7月就宣布这个是阿里巴巴旗下的网站,随后在市场上展开了很成功的推广运作。最著名的就是利用中小网站来做广告,突围eBay在门户网站上对淘宝的广告封锁。这时候,eBay终于看到淘宝网这个后起之秀了,他对竞争者的态度就是“封杀他”。eBay买断了新浪、搜狐、网易的电子商务类型的广告,签署了排他性协议,切断了淘宝在这上面做广告的路子。大路不通,我们就独辟蹊径,上网比较早的人应该还记得那些在右下角的弹窗和网站腰封上一闪一闪的广告,“淘宝网”几个字总是如影随形地出现在任何中小型网站上。市场部那位到处花钱买广告的家伙太能花钱了,一出手就是几百万元,他被我们称为“大少爷”。
数据库从mySQL到Oracle
“大少爷”们做的广告,带来的就是迅速上涨的流量和交易量。在2003年年底,MySQL已经撑不住了,技术的替代方案非常简单,就是换成Oracle。换为Oracle的原因除了它容量大、稳定、安全、性能高之外,还有人才方面的原因。在2003年的时候,阿里巴巴已经有一支很强大的DBA团队了,有鲁国良、冯春培、汪海(七公)这样的人物,后来还有冯大辉(@fenng)、陈吉平(拖雷)。这样的人物牛到什么程度呢?Oracle给全球的技术专家颁发一些头衔,其中最高级别的叫ACE(就是扑克牌的“尖儿”,够大的吧),被授予这个头衔的人目前全球也只有300多名(公布名单的网址为http://apex.oracle.com/pls/otn/f?p=19297:3 ),当年全球只有十几名,而阿里巴巴就有4名。有如此强大的技术后
盾,把MySQL换成Oracle是顺理成章的事情。
但更换数据库不是只换个库就可以的,其访问方式和SQL语法都要跟着变,最重要的一点是,Oracle的性能和并发访问能力之所以如此强大,有一个关键性的设计——连接池,连接池中放的是长连接,是进程级别的,在创建进程的时候,它就要独占一部分内存空间。也就是说,这些连接数在固定内存的Oracle Server上是有限的,任何一个请求只需要从连接池中取得一个连接即可,用完后释放,这不需要频繁地创建和断开连接,而连接的创建和断开的开销是非常大的。但对于PHP语言来说,它对数据库的访问都是很直接的,每一个请求都要一个连接。如果是长连接,应用服务器增多时,连接数就多了,就会把数据库拖挂,如果是短连接,频繁地连接后再断开,性能会非常差(而Java语言有很多现成的连接池)。那如何是好呢?我们打探到eBay用了一个连接池的工具,是BEA卖给他们的。我们知道,BEA的东西都很贵,我们买不起,就放弃了找BEA的念头,于是多隆在网上寻寻觅觅,找到一个开源的连接池代理服务SQL Relay(http://sqlrelay.sourceforge.net),这个东西能够提供连接池的功能,多隆对它进行了一些功能改进之后,系统的架构就变成了如下形式。
数据一开始是放在本地的,七公带领的DBA们对Oracle做调优的工作,也对SQL进行调优。后来数据量变大后,本地存储无法满足了,买了NAS(Network Attached Storage,网络附属存储),NetApp(Network Appliance,美国网域存储技术有限公司)的NAS作为数据库的存储设备,加上Oracle RAC(Real ApplicationClusters,实时应用集群)来实现负载均衡。七公说这实际上是走了一段弯路,NAS的NFS(Network File System)协议传输的延迟很严重,但那时不懂。后来采购了Dell和EMC合作的SAN低端存储,性能一下提升了十几倍,这才比较稳定了。再后来,数据量更大了,存储的节点一拆二、二拆四,RAC又出问题了,这才踏上了购买小型机的道路。在那段不稳定的时间里,七公曾经在机房住了5天5夜,差点被辐射成蜘蛛侠。
替换完数据库后,时间到了2004年春天,俗话说“春宵一刻值千金”,但这些人的春宵却不太好过,他们在把数据的连接放在SQL Relay之后就噩梦不断,这个代理服务经常会死锁,如同之前的MySQL死锁一样。虽然多隆做了很多修改,但当时那个版本内部处理的逻辑不对,问题很多,最快的解决办法就是“重启”它的服务。这在白天还好,只要连接上机房的服务器,把进程杀掉,然后开启就可以了。但是最痛苦的是它在晚上也要死掉,于是工程师们不得不24小时开着手机,一旦收到“SQL Relay进程挂起”的短信,就从春梦中醒来,打开电脑,连上机房的网络,重启服务,后来干脆每天睡觉之前先重启一下。做这事最多的据说是三丰,他现在是淘宝网的总裁。现在我们知道,任何牛B的人物,都有一段苦B的经历。
转载自 http://developer.51cto.com/art/201307/402518.htm