ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 37450|回复: 72

【IT名人堂】专访架构师杨传辉:双11支付宝核心数据库OceanBase今世前生

[复制链接]
认证徽章
论坛徽章:
127
目光如炬
日期:2014-12-01 06:00:04火眼金睛
日期:2015-02-01 06:00:04目光如炬
日期:2015-01-26 06:00:04目光如炬
日期:2015-02-16 06:00:03火眼金睛
日期:2015-03-01 06:00:03目光如炬
日期:2015-03-02 06:00:13慢羊羊
日期:2015-03-04 14:53:33目光如炬
日期:2015-07-26 22:00:00目光如炬
日期:2015-07-26 22:00:002015年新春福章
日期:2015-03-06 11:58:39
发表于 2014-11-25 14:50 | 显示全部楼层 |阅读模式

大家知道,每年的双11,都是购物狂欢节。今年的淘宝双11交易额达到的惊人的571亿,在这些光鲜数据的背后,其实也是对淘宝数据库的极大考验。更值得一提的是,今年双11支付宝的支付峰值突破了每分钟285万笔,创下了新的纪录。如此高并发负载的交易量,让我们对幕后支撑的数据库技术OceanBase心生好奇。究竟OceanBase有哪些强大之处呢?

毫无疑问,技术是打赢双十一“战争”的关键,而人又是成就技术创奇的巅峰力量。第102期名人堂我们重邀OceanBase的系统架构师杨传辉(社区ID:Alisunshine),为我们揭晓高性能分布式数据库系统的演变之路。


皮皮(Q1): 您好!很高兴有机会采访到您,能否简单介绍下自己?

杨传辉(A1):我叫杨传辉,来自阿里巴巴蚂蚁金服基础数据部,花名日照,目前是OceanBase的系统架构师。我是个技术宅,研究领域主要是云计算和大数据,平常喜欢写写技术文章,和微博上的技术同行互动,维护了个人博客:http://nosqlnotes.net,出版过一本分布式书籍《大规模分布式存储系统:原理解析与架构实战》。做技术的,保持谦逊,主动找事情做,追求极致,才能不断进步。



皮皮(Q2): 我了解到您在阿里一直从事OceanBase的研究,有四年之余了,伴随着这款数据库新贵的一路成长,您见证了它的演变历程,能否和我们分享下这些年来的苦与乐?

杨传辉(A2):分布式系统的成熟至少需要三年时间,数据库系统更是五年以上,OceanBase这样的分布式数据库系统研发是需要经历“八年抗战”的。到目前为止,做了四年半,取得了一些小成绩,但未来的路还很长。


首先,我觉得自己比较幸运,毕业以后首先在百度,后来转战到阿里,一直从事大规模分布式系统的研发工作,也一直能够有幸得到高人指点。BAT的好处在于能够提供海量应用场景,尤其是阿里,能够把最核心的业务,包括交易系统放到OceanBase这样的新系统上。这样的挑战、这样的信任,不是能够用金钱或者其它东西衡量的。系统研发一直都是“美帝”的天下,中国几乎没有能够拿得出手的系统,根本原因在于缺少应用场景。以BAT为代表的中国互联网的崛起给我们提供了逆袭的机会。


分布式数据库研发短时间是出不了成绩的,两年左右时间大概也只能够入门。这个领域并不需要一个人有多聪明,关键在于这个人是否踏实,真正享受这个过程并且不断地坚持。研发过程中会遇到很多的困难,比如没人敢用你的系统,又比如答应过的需求无法按时完成,辜负了用户的信任,或者技术决策失误,兄弟们也有可能因为你而坚持加班等等,各种情况始料未及。当然,更多的时候是痛并快乐着。记忆中,我感触最快乐的瞬间刻骨铭心:重要的系统上线,通过我们的系统解决了用户的疑难问题,看着双十一零点系统压力不断冲高而安然无恙。



最为难忘的是2011年双十一,当时,第一个项目收藏夹上线,双十一前两个礼拜发现重大Bug,系统在晚高峰会触发一个Linux内核问题,程序异常退出。记得当时是周五晚上,我们北京的同学立刻订了第二天的机票出差到杭州,后来临时修改代码,线上测试,折腾了几次,终于在双十一前一个礼拜搞定。等到我们的系统顺利挺过2011年双十一时,所有的同学都长长地舒了一口气。有点运气,那时我真正领悟到了什么叫做“痛并快乐着!”。




皮皮(Q3): 那为什么阿里要自主研发支持海量数据的高性能分布式数据库系统OceanBase,而不是用商业的Oracle或者开源的MySQL?

杨传辉(A3):从经济学的角度看,这是一个边际成本的问题。自主研发前期投入是巨大的,不过以后边际成本会逐步降低。Oracle和MySQL都是单机数据库系统,每次扩容都是一个比较大的项目,迫切需要一套可自动扩展的系统,另外,Oracle license贵,MySQL在阿里的应用场景下有这样那样的问题,比如主备延迟很大,有丢数据风险,各种场景下的性能也存在很大的提升空间。当一个公司的规模比较小的时候,自主研发是不划算的,即使做成了也没法收回成本;然而,到了阿里这样的规模,自主研发,掌握核心技术决定自己的命运已经成了不得不做的事情。就是在这样的背景下,OceanBase应运而生。




皮皮(Q4): OceanBase第一个应用是收藏夹。最近,听说支付宝交易也用到了OceanBase。能否结合阿里的应用谈谈OceanBase的优势。


杨传辉(A4):相比传统的关系数据库,谈及OceanBase的最大亮点,当属可自动扩展的特点,它不仅仅可以扩展到一个数据中心,乃至同城,在未来,OceanBase能成为跨地域多数据中心的全球数据库。当然,OceanBase还有一些特性,比如强一致性,能够自动容忍一台服务器甚至是整个数据中心故障,而不会丢失一条记录。值得强调的是,支付宝交易之所以会选择OceanBase而不是开源的MySQL,正是因为只有OceanBase能够做到完全不丢数据。


另外,随着OceanBase不断优化,OceanBase用武之地将会越来越多,比如支付宝交易的性能已经超越了所有的开源数据库,以后还会超越商业数据库。这就是自主研发的优势,等到渡过了积累期,相信OceanBase的后劲会很足。



皮皮(Q5): 我们知道,很多电商面对双十一带来的压力,都会在双11前对数据库集群进行扩容,相信阿里也不例外。我们常见的扩容有两种,一种是读写分离,通过增加备库提供读服务来提升集群的能力;另一种是水平扩容,将数据重新分布,拆分到更多台服务器上,达到扩容数据库集群的目的。能否谈谈OceanBase是如何扩容的?

杨传辉(A5):双十一大促这样的应用场景很有中国特色,技术人员都知道,整个后台系统只有数据库容量最难提升。传统数据库的运维人员需要花费大量的时间来做数据库扩容,包括读写分离、垂直拆分、水平拆分等等。不过,对于OceanBase运维人员来说,扩容是一件非常淡定的事情,我们唯一要做的事情就是加入更多的服务器。加入服务器,容量就提升了,OceanBase系统内部可以实现自动扩容,解决了我们的燃眉之急。

b5671e74760413a5b3265c7c664dea92 (1).jpg




皮皮(Q6):在分布式系统中存在着著名的“短板理论”,一个集群如果出现了负载不均衡问题,那么负载最大的机器往往将成为影响系统整体表现的瓶颈和短板。那么OceanBase在阿里双十一的大战中是如何做到负载均衡的呢?

杨传辉(A6):OceanBase内部会自动把数据切分为一个个比较小的分片,每台机器服务若干个分片,当某台服务器的分片成为热点时,会自动触发迁移操作,将分片从负载较高的服务器迁移出去,这样,就避免了“木桶效应”。这也是OceanBase的一个优势,无论双十一之前热点怎么变,OceanBase都可以很快把热点数据均衡到整个集群,而不是因为一两台服务器把整个集群压垮了。




皮皮(Q7):在分布式系统中存在着著名的“CAP理论”,很多NOSQL系统都会为了提升性能而牺牲一致性。OceanBase是如何做的呢?

杨传辉(A7):确实是这样,很多NOSQL系统为了实现简便,牺牲了一致性来提升性能。然而,对于电商、支付这样的业务,根本没法使用弱一致系统。OceanBase是真正的分布式关系数据库,不仅仅支持分布式,还支持SQL、事务、并发控制这样的关系数据库特性,用户使用起来和MySQL没有任何差别。


和MySQL的不同点在于,MySQL主备同步是有丢数据风险的,而OceanBase通过Paxos选举协议实现强一致性。无论是一台服务器,还是数据中心整体故障,OceanBase都能够自动恢复,而且做到完全不丢数据。OceanBase的这种做法和Google、Microsoft以及Amazon云存储系统的底层原理都是共通的。




皮皮(Q8):在双十一中,我们经常会遇到比如热点商品更新库存,秒杀,红包等场景。当同时大量更新数据库中的同一行时,就会产生大量的锁等待,数据库的性能就会急剧下降。那OceanBase是如何做到并发控制的呢?

杨传辉(A8):热点行是数据库里面的一个经典难题。热点应用的场景很多,比如双十一抢购小米手机。首先,OceanBase的事务引擎面向内存设计的,它的特点就是快,而且避免了传统数据库的写入放大问题,这样,OceanBase的锁等待天生就要更少。另外,OceanBase还提出并第一个实现了提前解锁、排队等待等优化思想,这些思想后来也应用到集团MySQL数据库的patch中,成为阿里双十一应对热点问题的标配。




皮皮(Q9):刚才说到,OceanBase要“八年抗战”。那么,OceanBase未来准备做哪些事情。我们的读者也会有一些对OceanBase研发工作感兴趣,你们需要什么样的人?


杨传辉(A9):OceanBase未来要做的事情很多,大目标只有一个:做全球最好的分布式数据库。我们的数据库可以跨地域部署,性能超越Oracle,使用起来和MySQL一样,并且应用到阿里,应用到中国,应用到全世界。

前面已经提到,我们需要的人首先要踏实,享受技术并且能够耐得住寂寞。另外,不断挑战自己,追求极致。当然,具备数据库开发、分布式系统开发、系统优化等相关经验会更好。

非常感谢杨传辉为我们带来的精彩分享,希望大家能够积极互动,就自己所关心的话题提问,与大师交流心得。截止12月15日,我们将评选获奖会员五名,赠送技术图书一本。
      获奖名单:chinagjj2008 玉面飞龙 bfmo king140445 Tomac

请以上中奖人员在1月15日之前,将自己的姓名、住址、联系方式以及所选书单发送给itpub运营团队,书单链接http://bbs.chinaunix.net/thread-4074217-1-1.html

论坛徽章:
394
阿斯顿马丁
日期:2014-01-03 13:53:522014年世界杯参赛球队:喀麦隆
日期:2014-07-11 12:10:53马上有对象
日期:2014-04-09 16:19:542014年世界杯参赛球队: 洪都拉斯
日期:2014-06-25 08:25:55itpub13周年纪念徽章
日期:2014-09-28 10:55:55itpub13周年纪念徽章
日期:2014-10-01 15:27:22itpub13周年纪念徽章
日期:2014-10-09 12:04:18马上有钱
日期:2014-10-14 21:37:37马上有钱
日期:2015-01-22 00:39:13喜羊羊
日期:2015-02-20 22:26:07
发表于 2014-11-25 22:05 来自手机 | 显示全部楼层
如果用了找谁家支持呢

使用道具 举报

回复
论坛徽章:
56
2017金鸡报晓
日期:2017-01-10 15:39:05ITPUB15周年纪念
日期:2016-10-13 13:15:342017金鸡报晓
日期:2017-02-08 14:09:13秀才
日期:2017-02-22 15:14:12秀才
日期:2017-02-22 15:16:26秀才
日期:2017-02-22 15:18:00秀才
日期:2017-05-09 11:37:55秀才
日期:2017-07-11 14:19:35
发表于 2014-11-25 22:29 | 显示全部楼层
请教一个简单问题,数据高并发和数据一致性,在分布式中如何处理呢? 其工作原理是什么?

使用道具 举报

回复
论坛徽章:
57
秀才
日期:2017-08-18 11:06:45鲜花蛋
日期:2012-04-20 08:37:162011新春纪念徽章
日期:2011-02-18 11:43:33ITPUB9周年纪念徽章
日期:2010-10-08 09:28:532010新春纪念徽章
日期:2010-03-01 11:06:132010年世界杯参赛球队:朝鲜
日期:2010-02-22 16:02:522010年世界杯参赛球队:荷兰
日期:2010-02-22 12:53:212010年世界杯参赛球队:瑞士
日期:2010-01-21 17:04:522010年世界杯参赛球队:法国
日期:2010-01-21 12:44:59设计板块每日发贴之星
日期:2010-01-08 01:01:07
发表于 2014-11-26 11:14 | 显示全部楼层
支持日照,感谢皮皮,皮皮好专业啊。OceanBase是淘宝自己的库么

使用道具 举报

回复
求职 : 数据分析/ETL
招聘 : 数据分析/ETL
认证徽章
论坛徽章:
116
秀才
日期:2015-11-30 09:59:232014年新春福章
日期:2014-02-18 16:43:09三菱
日期:2013-12-23 11:28:01ITPUB社区千里马徽章
日期:2013-08-22 09:58:03ITPUB社区12周年站庆徽章
日期:2013-08-14 17:53:52双黄蛋
日期:2013-06-20 17:27:432013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:19ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42奥运纪念徽章
日期:2012-08-15 13:44:34
发表于 2014-11-26 11:22 | 显示全部楼层
在分布式数据库中,系统扩容后需要将原有的数据重新分布在所有的存储介质上;
OceanBase是如何做扩容后的数据重布?是否需要进行将全部数据做重新加载?

使用道具 举报

回复
论坛徽章:
92
2011新春纪念徽章
日期:2011-01-25 15:42:332012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主1段
日期:2012-05-15 15:24:11ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42奥运会纪念徽章:排球
日期:2012-08-29 07:02:50奥运会纪念徽章:跳水
日期:2012-09-26 06:44:27ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32奥运会纪念徽章:击剑
日期:2012-10-12 07:20:332012新春纪念徽章
日期:2012-02-13 15:13:20
发表于 2014-11-26 12:12 | 显示全部楼层
OceanBase适合存储 item, user, feedback etc这些信息吗?

使用道具 举报

回复
论坛徽章:
8
生肖徽章2007版:猴
日期:2008-01-02 17:35:532010广州亚运会纪念徽章:举重
日期:2010-11-15 11:33:212010广州亚运会纪念徽章:现代五项
日期:2011-05-13 07:05:572012新春纪念徽章
日期:2012-01-04 11:50:44ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上加薪
日期:2014-04-04 08:26:40
发表于 2014-11-26 14:28 | 显示全部楼层
OceanBase 现在还是阿里内部使用的数据库,将来能否开源。还是要发展成商用数据库。
OB的目标是要“做全球最好的分布式数据库”“应用到阿里,应用到中国,应用到全世界。” 请问要如何推广你们的DB???

使用道具 举报

回复
认证徽章
论坛徽章:
361
生肖徽章:虎
日期:2014-09-11 11:03:11生肖徽章:兔
日期:2014-09-11 11:03:11生肖徽章:马
日期:2015-01-27 12:39:44生肖徽章:牛
日期:2015-01-27 11:12:49生肖徽章:鼠
日期:2014-09-11 11:03:11生肖徽章:猪
日期:2014-07-22 20:28:00生肖徽章:猴
日期:2014-09-11 11:03:11生肖徽章:狗
日期:2014-09-11 11:03:11生肖徽章:鸡
日期:2014-08-08 21:11:38生肖徽章:蛇
日期:2014-09-11 11:03:11
发表于 2014-11-25 16:55 | 显示全部楼层
支持日照~~

使用道具 举报

回复
认证徽章
论坛徽章:
89
举人
日期:2015-11-09 11:35:06秀才
日期:2017-09-18 17:02:592017金鸡报晓
日期:2017-02-08 14:09:13秀才
日期:2016-12-21 16:55:07ITPUB15周年纪念
日期:2016-10-06 10:54:102017金鸡报晓
日期:2017-01-10 15:39:052016猴年福章
日期:2016-02-23 09:58:342016猴年福章
日期:2016-02-18 09:31:30秀才
日期:2016-02-18 09:19:48秀才
日期:2016-02-18 09:11:33
发表于 2014-11-25 17:06 | 显示全部楼层
支持日照,感谢皮皮,皮皮好专业啊。OceanBase是淘宝自己的库么

使用道具 举报

回复
论坛徽章:
0
发表于 2014-11-26 00:19 | 显示全部楼层
支持国产。

使用道具 举报

回复
论坛徽章:
13
蛋疼蛋
日期:2011-06-01 17:04:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00奥运会纪念徽章:自行车
日期:2012-08-11 11:23:21蛋疼蛋
日期:2012-05-02 22:02:58紫蛋头
日期:2012-01-17 17:01:58鲜花蛋
日期:2012-01-10 09:40:482012新春纪念徽章
日期:2012-01-04 11:57:56ITPUB十周年纪念徽章
日期:2011-11-01 16:26:29ITPUB十周年纪念徽章
日期:2011-09-27 16:34:13授权会员
日期:2011-08-29 11:20:27
发表于 2014-11-26 10:57 | 显示全部楼层
本帖最后由 JumFlow 于 2014-11-26 10:58 编辑

如果要让 OceanBase 应用到中国,应用到全世界 , 技术开放,技术支持,技术普及这些是必须要做的工作。

使用道具 举报

回复
求职 : Hadoop,大数据
论坛徽章:
14
蜘蛛蛋
日期:2011-12-31 14:06:37秀才
日期:2015-08-06 10:47:08马上有车
日期:2014-11-17 09:10:28itpub13周年纪念徽章
日期:2014-11-17 17:01:012014年世界杯参赛球队:巴西
日期:2014-06-12 16:34:36马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:112013年新春福章
日期:2013-02-25 14:51:24茶鸡蛋
日期:2013-05-08 00:00:50ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:37
发表于 2014-11-26 11:27 | 显示全部楼层
bfmo 发表于 2014-11-25 22:29
请教一个简单问题,数据高并发和数据一致性,在分布式中如何处理呢? 其工作原理是什么?

应该用到了消息队列(metaQ),高并发过来的数据先到消息队列,进队列 的目的就是为了防止写操作处理不过来。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表