阿里技术突破性创新

世界顶级大规模数据处理分析管理会议VLDB(VERY LARGE DATA BASE)于9月1日至5日在杭州举办,该会议也是也是大数据云计算领域的盛会,阿里巴巴两个团队在这个会议上分别发表论文。两篇论文分别描述了在超大规模分布式集群环境下如何保持性能稳定,以及构建大规模的数据库云(RDS)的核心技术。两篇论文代表了云技术水平处于世界前列的阿里巴巴近些年的研究成就。

两篇论文的研究与阿里巴巴的云计算平台“飞天”相关。

分布式调度系统:“伏羲”

其中的分布式调度系统称为”伏羲”。伏羲主要负责管理集群的机器资源和调度并发的计算任务,目前支持离线数据处理(DAG Job)和在线服务(Service),为上层分布式应用如ODPS/OSS/OTS提供稳定、高效、安全的资源管理和任务调度服务,为实现阿里巴巴集团打造数据分享第一平台的目标提供强大的计算引擎。未来会在更大规模和更丰富计算模型等方面进一步发展,为用户构筑可用可靠的云计算引擎,进一步降低成本,挖掘数据价值。

《Fuxi: a Fault Tolerant ResourceManagement and Job Scheduling System at Internet Scale》的创新点在于:针对大数据应用,分布式计算环境下,采用增量调度和增量通信的机制。使单集群规模能达到5000台,且调度时间只需要ms级别。此外,当机房中机器节点足够多时,硬件,软件,系统错误成为常态,且错误种类千奇百怪。为了解决这个知识性能不稳定或者极具下降的问题,团队提供了尽量不依赖checkpoint的FailOver机制,开发了基于规则和历史信息的错误节点检测机制,降低这些错误对应用的影响。在10%的节点坏掉的情况下,只有20%的性能下降,并且没有任何应用失败。

这项研究持续5年的时间,今年2月底团队成员一拍即合,决定撰稿,但因为投稿截止日期是4月1日。只有1个月时间完成所有撰写,而且业务方的需求压力没有任何下降,团队成员只能抽下班业余时间来完成论文。

构建大规模的数据库云(RDS)的核心技术

《Realization of the Low Cost and HighPerformance MySQL Cloud Database》主要描述了构建大规模的数据库云(RDS)的核心技术:系统稳定性,可扩展,同时兼顾低成本,高性能。该项研究将应用与作为云计算三驾马车之一的数据库云。

在研究过程中,团队解决了三个难题,分别是

1. 资源如何公平的隔离,保证每个用户都有平等的机会被服务到。

2. 如何保证稳定性,引入了Erlang语言来解决这个难题。

3. 系统扩展,透过消息队列来达到支持异构系统和连接各分布式组件。

让研发团队印象最深的是:他们用的Proxy要达到热更新,在不影响用户使用的前提下,更新系统。这是个很体系的工作,相关的代码一行行的读,在客户的怒吼中,把相关的技术体系掌握到位,为后面平滑升级奠定了很好的基础。

大型分布式计算平台系统的设计与实现是一个世界级难题,在规模、性能、稳定性、可运维性等多方面都有技术挑战。例如在阿里飞天5K项目攻坚过程中,从设计到实现每一步都可能存在性能“陷阱”,原因主要在三个方面:

1.规模放大效应:当节点数增大到数千个时,系统中原本不是瓶颈的与规模成正比的环节,其影响会被放大;

2.木桶效应:很多时候,一个系统中99%的地方都被优化过,剩下的1%很可能成为影响系统性能的致命的瓶颈;

3.长路径模块依赖:一个请求的处理过程有时需要跨越多个模块包括外部模块,外部模块的性能的不稳定性最终会影响到这个请求的处理性能和稳定性。

阿里巴巴的研发团队做了大量伏羲优化工作来规避上述的性能“陷阱”,涉及到架构设计、实现细节和模块依赖。

数据库系统Oceanbase

阿里巴巴在分布式数据的研发上一直处于世界前列,其数据库系统Oceanbase每天响应百亿次读取和写入,为海量信息的存储提供有力保障。和传统数据库一样,OceanBase支持标准的SQL及数据库ACID特性。不同的是,OceanBase在架构设计上摒弃了高端服务器和高端存储,选择构建在普通PC服务器组成的集群之上,并通过软件层面实现自动容错。由于OceanBase具备良好的可扩展性,强一致性,高可用性以及高性能,它被广泛应用在阿里巴巴的各类业务,其中包含最核心的交易系统。

OceanBase的主要特性包括:

1. 支持标准SQL。OceanBase支持SQL92标准,且后续将会全面兼容MySQL。

2. 支持ACID特性,通过MVCC机制避免读写冲突。

3. 通过Paxos选举实现强一致性和高可用性。

4. 高可扩展性。通过自动容错、负载均衡等机制实现机器自动上下线,从而构建在普通服务器组成的集群之上。

5. 高性能。OceanBase专门设计了针对大内存和SSD机器新一代存储引擎,相比传统的面向磁盘的关系数据库,具备更高的性价比。

电商平台的商品、交易、订单、购物爱好等数据通常是结构化的,并且数据之间存在各种各样的关联,传统的关系数据库曾经是这些数据的最佳载体。然而,随着业务的快速发展,这些数据急剧膨胀,记录数从几千万条增加到数十亿条,数据量从百GB增加到数TB,未来还可能增加到数千亿条和数百TB,传统的关系型数据库已经无法承担如此海量的数据,OceanBase的出现解决不断增加的结构化数据存储与查询的问题。

微博互动

论文下载

干货:VLDB论文摘要-阿里技术突破性创新的更多相关文章

  1. [论文阅读]阿里DIN深度兴趣网络之总体解读

    [论文阅读]阿里DIN深度兴趣网络之总体解读 目录 [论文阅读]阿里DIN深度兴趣网络之总体解读 0x00 摘要 0x01 论文概要 1.1 概括 1.2 文章信息 1.3 核心观点 1.4 名词解释 ...

  2. CVPR2020无人驾驶论文摘要

    CVPR2020无人驾驶论文摘要 无人 导读/ Starsky是一种比较独特的方案.它是在高速上自动驾驶,第一公里最后一公里采用远程驾驶的模式,Starsky的卡车可以由人类远程操作.没有使用较为昂贵 ...

  3. 阿里技术分享:阿里自研金融级数据库OceanBase的艰辛成长之路

    本文原始内容由作者“阳振坤”整理发布于OceanBase技术公众号. 1.引言 OceanBase 是蚂蚁金服自研的分布式数据库,在其 9 年的发展历程里,从艰难上线到找不到业务场景濒临解散,最后在双 ...

  4. 学生党成功拿到阿里技术offer:面Java开发,却是C++考官,几个意思?

    摘要: 这是我为大家分享的如何拿到阿里技术offer系列文章中的第一篇,今天分享的文章的作者是一位在2015年阿里的校招中成功得到offer的美女学姐,从学姐的这篇文章中我们能学到很多在阿里面试的宝贵 ...

  5. [论文阅读]阿里DIEN深度兴趣进化网络之总体解读

    [论文阅读]阿里DIEN深度兴趣进化网络之总体解读 目录 [论文阅读]阿里DIEN深度兴趣进化网络之总体解读 0x00 摘要 0x01论文概要 1.1 文章信息 1.2 基本观点 1.2.1 DIN的 ...

  6. 【codelife 阿里技术文章分享——读后感】

    目前看到的几篇比较有感触的文章,分别是: 前端Leader如何做好团队规划?阿里内部培训总结公开   ——>这里会有关于针对技术项目如何做规划的一些指导,非常有价值 程序员吃的是青春饭?本质上取 ...

  7. 微信公众号【阿里技术(ali_tech)】历史文章整理

    简介 来自微信公众号: ali_tech 阿里巴巴官方技术号,关于阿里的技术创新均呈现于此. 本内容来自微信公众号的分享,最后更新时间2019-10-26,请关注对应公众号接收最新分享,定期同步地址: ...

  8. [论文解读] 阿里DIEN整体代码结构

    [论文解读] 阿里DIEN整体代码结构 目录 [论文解读] 阿里DIEN整体代码结构 0x00 摘要 0x01 文件简介 0x02 总体架构 0x03 总体代码 0x04 模型基类 4.1 基本逻辑 ...

  9. GitHub标星125k!阿里技术官用3个月总结出的24万字Java面试笔记

    最近收到一位粉丝的回馈! 这位粉丝已经成功入职阿里了小编很是羡慕啊! 今天就把这份30w字Java面试笔记给大家分享出来,说来也巧这份资料也是由一位阿里技术官整理出来的这算不算是"搬起石头砸 ...

随机推荐

  1. McAfee VirusScan Enterprise

    企业版下载入口:  http://www.mcafee.com/cn/downloads/downloads.aspxGrant number:6240017-NAI6240018-NAI 下载Vir ...

  2. CCF 201312-4 有趣的数 (数位DP, 状压DP, 组合数学+暴力枚举, 推公式, 矩阵快速幂)

    问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次. 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前. 3. 最高 ...

  3. js 设置回车事件

    document.onkeydown=function(event){ var e = event || window.event || arguments.callee.caller.argumen ...

  4. C:指针

    指针 指针数组   参考1   参考2  参考3  参考4 1.指针 也是一种变量.指针内部存的是一块内存的地址. //指针: 通常我们说的指针其实是指针变量,相比于其他基本数据类型的变量不同,它存储 ...

  5. 浏览器URL访问网页具体发生了什么

    [详细讲解:http://www.cnblogs.com/wenanry/archive/2010/02/25/1673368.html]   ——浏览器输入URL ——DNS解析过程 解析域名,找到 ...

  6. Oracle 将不同列的值拼接成一个 字符串

    利用拼接操作符“||”或者 CONCAT('','')函数,将不同列的值 拼接成一个 字符串   -- 方法一:推荐 SELECT S.TEAM ||'**'|| S.NAME ||'**'|| S. ...

  7. Gartner:Hype Cycle for Emerging Technologies-2013

      The “Hype Cycle for Emerging Technologies” report is the longest-running annual Hype Cycle, provid ...

  8. 9.依赖(Dependence)

    依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系.可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的. ...

  9. EasyMock使用说明

    来自官网的使用说明,原文见http://www.easymock.org/EasyMock2_0_Documentation.html 1.1. 准备 大多数的软件系统都不是单独运行的,它们都需要于其 ...

  10. JSP页面上用横线代替文本框

    <tr> <td class="content" colspan = 4> <input type="hidden" name=& ...