据了解,淘宝(Taobao)DBA丁原主要负责淘宝整体业务的数据库架构把握,分布式数据库设计。几乎参与了淘宝所有业务系统设计,主导了最近几年核心业务的数据库架构改造,喜欢复杂业务简单化。丁原从从两个方面介绍了淘宝数据库的应用历程。一、淘宝数据库的5年;二、在使用开源MYSQL数据库在使用中遇到的问题。
据丁原透露,淘宝从2008年开始尝试使用开源MYSQL数据库,2010年到现在属于开源MYSQL数据库应用发展阶段。
为什么选择开源
在业界商业数据库有国外有oracle、DB2,那么,为什么淘宝不去选择这些数据库而去选择开源的数据库产品?对于此,丁原认为,放弃商业数据库而选择开源数据库更多的是成本趋动因素所影响,第二个原因公司的自身技术积累、商业软件在淘宝优势逐渐弱化,以及其它客观条件所影响。
▲淘宝DBA 丁原
提到成本因素,丁原指出,淘宝刚开始成本并不是很高,但是在2007年年以后,成本在不断的增加。那么,成本究竟有多高,丁原以淘宝某业务的真实数据展示了高成本:
2010年DB+硬件的投入在1100万左右;
2011年DB+硬件的投入在2200万左右;
2012年DB+硬件的投入在4400万左右;
这只是单项某业务所需要的成本,那么可想而知整体的压力会非常大,既然有这么高的成本,为什么不去尝试一下开源的产品?
淘宝开源数据库的挑战
面对高成本,淘宝开始尝试开源数据库,在开始之初面临着非常大的挑战,丁原介绍,淘宝开始尝试开源面临的挑战两方面的挑战:
一、团队内部
1、 团队人员非常,非常擅长商业DB;
2、 对于开源的DB的理解一穷二白,需要快速积累,放弃你最熟悉的,选择重新开始;
3、 原有思维方式固化,改变需要时间;
4、 其它
二、团队外部
1、为什么要选择开源,好处在于哪些方面;
2、用了开源软件以后, DBA还是最专业的吗;
3、打破原有集中式的思维,换一种方式同时还要考虑更多的东西;
4、其它
淘宝开源数据库的推进过程
面对淘宝选择开源数据库的挑战,在推进开源数据库中存在的很大的阻力。丁原指出,淘宝在推进开源数据库过程中经历了以下几个阶段:
第一、推进过程比较慎重,持续很久,对于我们自己来说,尝试阶段(小业务,小范围开始);
第二、很纠结,积累阶段(使用过程中开发,DBA面临的问题,解决问题);
第三、顺其自然,继续积累验证;
第四、大规模可用阶段。
开源数据库应用的关键点
丁原向与会的DBA介绍,开源数据库应用有几个关键点需要注意:
开发易用性;
成熟的中间层,尽量减少开发的难度;
DBA易运维;
▲MYSQL的性能表现
强大的MYSQL底层运维平台;
丁原进一步指出,在未来商业数据库和开源数据库解决方案,哪个更加昂贵,现在很难知道 ,但丁原本人透露,开源的数据库未来肯定要比商业数据便宜。
▲商业BD与开源DB的区别
▲企业使用开源MYSQL通常的顾虑
▲MYSQL的应用是否会造成数据的丢失
▲淘宝针对MYSQL数据问题的解决办法1
▲淘宝针对MYSQL数据问题的解决办法2
▲MYSQL主备库延迟解决方案基本思路
▲MYSQL主备库延迟解决方案
▲MYSQL主备库逻辑复制的风险