揭秘阿里互联网金融的关系数据库

时至今日,“Big data”(大数据)时代的来临已经毋庸置疑,尤其是在电信、金融等行业,几乎已经到了“数据就是业务本身”的地步。这种趋势已经让很多相信数据之力量的企业做出改变。为了应对大数据的冲击,淘宝将以前的Oracle、小型机、高端存储模式转变到现今的MySQL、OceanBase、Hbase、MongoDB等数据库,并使用普通PC服务器。

OceanBase进入金融级应用

随着互联网的发展,海量数据的处理越来越成为摆在大型互联网公司面前的问题。而传统的IT企业提供的服务,在系统可扩展性、性价比方面已经不再适用。

以数据库系统举例,一般来说,数据库系统的稳定可靠,取决于数据库软件、数据库服务器和数据库存储三方面。其中,数据库软件的维护升级总是让互联网企业比较头疼:数据库软件的维护升级有很大的风险,为了保障数据库系统的稳定可靠,企业需要匹配使用稳定性好的高端服务器和共享存储,但是这些设备不仅价格昂贵,性能和扩展能力也有限。

在这种情况下,2010年起,阿里巴巴、蚂蚁金服开始自主研发数据库系统OceanBase,这一系统从立项到开花结果经历了足足五年时间。

与传统数据库公司的产品相比,OceanBase的升级维护,不需要昂贵的共享存储、高可靠的服务器、数据库软件的许可费,可以将商业数据库成本降到一半以下。同时,分布式的系统,可以保证业务在服务器、存储、网络等出现异常情况的情况下不受影响。

OceanBase服务互联网金融业务背后的技术

数据库系统不仅保存了现代企业的关键业务数据,而且对这些数据提供访问从而支撑着企业业务。因此,数据库系统的稳定可靠对现代企业至关重要。

数据库系统通常由数据库软件、运行数据库软件的数据库服务器硬件以及保存数据库数据的数据库存储硬件(即共享存储)组成,如下图所示:


数据库系统的稳定可靠,也取决于这三个部分。

首先是数据库软件,数据库软件厂商平均2~3年发布一个大版本,新版本发布前会进行反复测试。即使如此,数据库软件的维护升级依然有很大的风险,中国工商银行系统不可用即是其数据库DB2的维护升级导致,美国国务院签证数据库系统超过1周的不可用也是其数据库Oracle的维护升级导致。

其次是数据库服务器。为了保障数据库系统的稳定可靠,传统数据库系统厂商推荐用户使用稳定性较高的高端服务器,这些服务器价格非常昂贵,难以扩展,并且扩展能力也十分有限。

第三是数据库存储(共享存储)。数据库中的数据是企业最宝贵的财富,为了避免数据丢失,传统数据库厂商推荐用户使用稳定性较高的共享存储,同样地,这类存储设备价格非常昂贵,难以扩展,并且扩展能力也有限。

为了避免水灾、火灾或者其他自然灾害导致的数据库系统不可用甚至数据丢失,传统数据库系统通常还要搭建备库,出于安全考虑,主库与备库需要保持一定的距离,例如50km或以上,俗称主备镜像,如下图所示:

然而,尽管称为主备镜像,数据库的备库并不能保证与主库一致:假如强制要求两者一致,那么主库的每一笔事务都必须到达备库后才能提交和应答客户,这样一旦主库备库之间的网络异常或者备库异常,整个数据库系统将不可用,从而导致业务的中断,与主库备库部分数据不一致相比,业务的中断对于企业来讲更加不能接受,因而主库故障后业务切换到备库时,通常会有少量数据不一致。

因此,即使部署了主备镜像,传统数据库系统也不得不使用可靠性尽可能高的服务器和存储,以降低主库故障的几率,减少对业务的影响。之所以要使用可靠的服务器和可靠的存储,本质上是因为传统数据库假设硬件(服务器、存储、网络等)是“可靠的”。

对于数据库,与传统企业相比,互联网企业最大的不同之一是并发访问量非常大。传统商业企业、银行,用户需要通过收银台、银行终端、ATM柜员机、POS机等专用设备开展业务并访问数据库,几百和几千的数据库并发访问比较常见,几万以上的并发访问相当少见。在互联网上,每一个草根网民都可以发起购物交易并访问数据库,几十万的数据库并发访问时常可见,几百万甚至千万的并发访问都可以见到(例如双11下的淘宝、天猫和支付宝)。如此之大的并发访问下,商业数据库软件及其高可靠的数据库服务器和共享存储的成本成为了不可承担之重。

由于上述原因,OceanBase的一个基本假设就是硬件(服务器、存储、网络等)是不可靠的,另一个基本假设是单机(数据库服务器及共享存储)无法满足互联网业务的需求。因此,OceanBase必须是一个多机(分布式)系统,并且必须保证任何时刻出现的少量硬件(服务器、存储、网络等)异常不影响业务。

为此,OceanBase引入了Paxos协议,每一笔事务,主库执行完成后,要同步到半数以上库(包括主库自身),例如3个库中的2个库,或者5个库中的3个库,事务才成功。这样,少数库(例如3个库中的1个库,或者5个库中的2个库)异常后业务并不受影响:

与传统数据库相比,OceanBase的另外一个关键特征是软件版本的灰度升级。主备方式的传统数据库是“单活”的,只有主库可执行写事务,尽管维护升级时可以先操作备库,操作完成后备库变成主库并且接受用户访问是一步到位的,如果新版本有问题,则业务受到影响:

在此我向大家推荐一个大数据开发交流圈:658558542    (☛点击即可加入群聊)里面整理了一大份学习资料,全都是些干货,包括大数据技术入门,大数据离线处理、数据实时处理、Hadoop 、Spark、Flink、推荐系统算法以及源码解析等,送给每一位大数据小伙伴,让自学更轻松。这里不止是小白聚集地,还有大牛在线解答!欢迎初学和进阶中的小伙伴一起进群学习交流,共同进步!


传统数据库:升级前



传统数据库:升级中



传统数据库:升级后只能一次性地引入全部读写流量

OceanBase则是“多活”设计,即多个库(3个,5个等)每个都可以有部分读写流量,升级时先把要升级的库的读写流量切走,升级后先进行数据对比,正常后逐步引入读写流量(白名单,1%,5%,10%……),一切正常并运行一段时间后再升级其他的库:



OceanBase之3机群(3库)部署:升级前



OceanBase之3机群(3库)部署:切走读写流量,准备升级



OceanBase之3机群(3库)部署:升级一个机群(库)



OceanBase之3机群(3库)部署:升级一个机群(库)后切回部分读写流量



OceanBase之3机群(3库)部署:升级一个机群(库)后切回全部读写流量

基于硬件不可靠的假设并且能够容忍少量服务器的故障,OceanBase使用了相对廉价的PC服务器代替高可靠服务器并且不再使用昂贵的共享存储,从而不仅提供了比使用高可靠服务器和共享存储低得多的成本,容忍少数服务器乃至少数机群故障意味着比传统数据库更高的可靠性。通过灰度升级,OceanBase避免了传统数据库的“一锤子买卖”的升级,极大地降低了数据库维护升级的风险。

感谢您的观看,如有不足之处,欢迎批评指正。最后祝福所有遇到瓶颈的大数据程序员们突破自己,祝福大家在往后的工作与面试中一切顺利。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容