对于支付宝大家耳熟能详,用过淘宝网,一定会用过支付宝。以支付宝为主体,阿里孵化了蚂蚁金服业务。如果你认为蚂蚁金服只有金融衍生业务,就大错特错了,它还有OceanBase,自主研发的分布式关系型数据库。(参见:B轮融资100亿元 蚂蚁金服为什么那么值钱?)
分布式关系数据库,意外吗?
据蚂蚁金服高级研究员阳振坤介绍,OceanBase立项在2010年,当时的原因很简单:Oracle数据库和小型机为核心构建系统成本太高,淘宝希望降低成本,这也是阿里提出了“去IOE”的原因。
为了降低成本,x86+MySQ的方案不可以吗?阳振坤指出:MySQL从根本上还是传统关系型数据,成本降低了,但性能和可靠性上又没有办法满足业务需求了。有鉴于此,阿里开始着手OceanBase分布式关系型数据库的研发。
所谓分布式关系型数据库,采用分布式、多副本的结构,为了追逐性能,存储要采用无共享的方式。针对x86服务器SSD闪存盘不奈擦写的弱点,分布式数据库设计要扬长避短,OceanBase方法是将基线数据存放在SSD,将变动频繁的增删改数据放在内存,从而避免更多SSD写操作。
从关系型数据的特点看,数据库数据总量大,但是增删改的数据量不大。以10亿笔交易为例,其变动的数据量也就在1TB规模上下。
可靠性,更有保障吗?
较之MySQL开源数据库,新的分布式关系数据库在可靠性方面更有保障,例如为保障业务连续性,MySQL需要借助双活架构设计,但这种架构的致命弱点在于:主备之间切换。与之相比,OceanBase采用多副本方式,可以实现自动无损的数据恢复。
所谓可靠性,让人很容易联想到“支付宝断网事件”,如今能够说的是:当时所采用的是Oracle”数据库,并不是多副本模式。如果采用OceanBase数据库是可以应对此类灾难的。
异地副本的保障也是一个让人心存疑虑的地方,因为在传统“两地三中心”模式中,异地数据复制多采用异步模式,存在着一定时间数据丢失的风险。采用OceanBase模式,异地数据副本采用同步模式,这需要一定广域网带宽的保障。
在性能上,新的分布式关系型数据库更加具有效率。
分布式数据库,你会接纳吗?
数据库重要性非同小可,造成用户不会轻易接纳新产品,这也是OceanBase必须面对的挑战。阳振坤表示:新的数据库系统稳定了,业务系统才会使用;而业务系统使用,又是证明数据库系统稳定可靠的依据。因此,在业务系统使用和一个数据库稳定可靠的问题上,的确存在着悖论。
阿里的做法是:淘宝自己就是“小白鼠”,用自己业务尝试来试错OceanBase。首先是淘宝收藏夹上线,此后OceanBase开始支持MySQL;2014年,支付宝交易采用OceanBase;今年5月,支付宝帐务系统全部迁移到OceanBase。
应该说,蚂蚁金服不乏知音,AWS也推出了自有品牌的数据库产品服务。因此存在就是合理!
可以套用一句话,无论蚂蚁金服是否市场化OceanBase,OceanBase都在那里!