XpShop感谢您的信任! 登录 注册


淘宝网的技术发展史——Oracle替换MySQL

MySQL撑不住了

  淘宝网作为个人网站发展的时间其实并不长,由于它太引人注目了,马云在2003年7月就宣布了这个是阿里巴巴旗下的网站,随后在市场上展开了很成功的运作。最著名的就是利用中小网站来做广告,突围eBay在门户网站上对淘宝的广告封锁。到了2003年底,靠MySQL已经无法支撑迅速上涨的流量和交易量,技术的替代方案随之诞生,即把MySQL换成Oracle。换Oracle的原因除了它容量大、稳定、安全、性能高之外,还有人才方面的原因。

  在2003年的时候,阿里巴巴已经有一支很强大的DBA团队了,前期不仅有冯春培、汪海(七公)这样的人物,后期还有冯大辉、陈吉平(花名拖雷)。有如此强大的技术后盾,把MySQL换成Oracle是顺理成章的事情。

       调优Oracle

  更换数据库不是只换个库就可以的,访问方式、SQL语法都要跟着变,最重要的一点是,Oracle并发访问能力之所以如此强大,有一个关键性的设计——连接池。但对于PHP语言来说它是放在Apache上的,每一个请求都会对数据库产生一个连接,它没有连接池这种功能(Java语言有servlet容器,可以存放连接池)。

  那如何是好呢?这帮人打探到eBay在PHP下面用了一个连接池的工具,是BEA卖给他们的。我们知道BEA的东西都很贵,我们买不起,于是多隆在网上寻寻觅觅,找到一个开源的连接池代理服务SQL Relay,这个东西能够提供连接池的功能,多隆对它进行了一些功能改进之后就拿来用了。这样系统的架构就变成了如上图所示的样子。

  数据一开始是放在本地的,DBA们对Oracle做调优的工作,也对SQL进行调优。后来数据量变大了,本地存储不行了,买了NAS(Network Attached Storage,网络附属存储),NetApp的NAS存储作为数据库的存储设备,加上Oracle RAC(Real Application Clusters,实时应用集群)来实现负载均衡。

  七公说这实际上是走了一段弯路,NAS的NFS(Network File System)协议传输的延迟很严重,但那时侯不懂。后来采购了Dell和EMC合作的SAN低端存储,性能一下子提升了十几倍,这才比较稳定了。再后来数据量更大了,存储的节点一拆二、二拆四,RAC又出问题了。这才踏上了购买小型机的道路。在那段不稳定的时间里,七公曾经在机房住了5天5夜。

  替换完数据库,时间到了2004年春天,数据的连接放在SQL Relay之后就“噩梦”不断,这个代理服务经常会死锁,如同之前的MySQL死锁一样。虽然多隆做了很多修改,但当时那个版本内部处理的

分享到: 微信 更多
网站备案