干货:VLDB论文摘要-阿里技术突破性创新
阿里技术突破性创新

世界顶级大规模数据处理分析管理会议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论文摘要-阿里技术突破性创新的更多相关文章
- [论文阅读]阿里DIN深度兴趣网络之总体解读
[论文阅读]阿里DIN深度兴趣网络之总体解读 目录 [论文阅读]阿里DIN深度兴趣网络之总体解读 0x00 摘要 0x01 论文概要 1.1 概括 1.2 文章信息 1.3 核心观点 1.4 名词解释 ...
- CVPR2020无人驾驶论文摘要
CVPR2020无人驾驶论文摘要 无人 导读/ Starsky是一种比较独特的方案.它是在高速上自动驾驶,第一公里最后一公里采用远程驾驶的模式,Starsky的卡车可以由人类远程操作.没有使用较为昂贵 ...
- 阿里技术分享:阿里自研金融级数据库OceanBase的艰辛成长之路
本文原始内容由作者“阳振坤”整理发布于OceanBase技术公众号. 1.引言 OceanBase 是蚂蚁金服自研的分布式数据库,在其 9 年的发展历程里,从艰难上线到找不到业务场景濒临解散,最后在双 ...
- 学生党成功拿到阿里技术offer:面Java开发,却是C++考官,几个意思?
摘要: 这是我为大家分享的如何拿到阿里技术offer系列文章中的第一篇,今天分享的文章的作者是一位在2015年阿里的校招中成功得到offer的美女学姐,从学姐的这篇文章中我们能学到很多在阿里面试的宝贵 ...
- [论文阅读]阿里DIEN深度兴趣进化网络之总体解读
[论文阅读]阿里DIEN深度兴趣进化网络之总体解读 目录 [论文阅读]阿里DIEN深度兴趣进化网络之总体解读 0x00 摘要 0x01论文概要 1.1 文章信息 1.2 基本观点 1.2.1 DIN的 ...
- 【codelife 阿里技术文章分享——读后感】
目前看到的几篇比较有感触的文章,分别是: 前端Leader如何做好团队规划?阿里内部培训总结公开 ——>这里会有关于针对技术项目如何做规划的一些指导,非常有价值 程序员吃的是青春饭?本质上取 ...
- 微信公众号【阿里技术(ali_tech)】历史文章整理
简介 来自微信公众号: ali_tech 阿里巴巴官方技术号,关于阿里的技术创新均呈现于此. 本内容来自微信公众号的分享,最后更新时间2019-10-26,请关注对应公众号接收最新分享,定期同步地址: ...
- [论文解读] 阿里DIEN整体代码结构
[论文解读] 阿里DIEN整体代码结构 目录 [论文解读] 阿里DIEN整体代码结构 0x00 摘要 0x01 文件简介 0x02 总体架构 0x03 总体代码 0x04 模型基类 4.1 基本逻辑 ...
- GitHub标星125k!阿里技术官用3个月总结出的24万字Java面试笔记
最近收到一位粉丝的回馈! 这位粉丝已经成功入职阿里了小编很是羡慕啊! 今天就把这份30w字Java面试笔记给大家分享出来,说来也巧这份资料也是由一位阿里技术官整理出来的这算不算是"搬起石头砸 ...
随机推荐
- python知识点(07-08)
python: 循环else: while true: if x>1: print() break else: print() 文件循环: for line in open(‘test.txt’ ...
- flask中的session对象方法
'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys ...
- Dell商用台式机、笔记本、服务器800电话
戴尔Optiplex商用台式机 售后服务电话 800-858-0950 选1选2选2 戴尔Latitude商用笔记本 售后服务电话 800-858-0950 选1选3选2 戴尔服务器PowerEdge ...
- ASP.NET MVC- HtmlHelper的用法
在ASP.NET MVC框架中没有了自己的控件,页面显示完全就回到了写html代码的年代.还好在asp.net mvc框架中也有自带的HtmlHelper和UrlHelper两个帮助类.另外在MvcC ...
- 关于刘冬大侠Spring.NET系列学习笔记3的一点勘正
诚如他第22楼“只因渴求等待”提出的疑问一样,他的下面那一段代码是存在一点点问题的, XElement root = XElement.Load(fileName); var objects = fr ...
- .git文件过大!删除大文件
在我们日常使用Git的时候,一般比较小的项目,我们可能不会注意到.git 这个文件. 其实, .git文件主要用来记录每次提交的变动,当我们的项目越来越大的时候,我们发现 .git文件越来越大. 很大 ...
- tomcat配置文件server.xml具体解释
元素名 属性 解释 server port 指定一个port,这个port负责监听关闭tomcat 的请求 shutdown 指定向port发送的命令字符串 service name 指定servic ...
- NAVICATE 修改存储过程提示PROCEDURE _Navicat_Temp_Stored_Proc already exists 解决方法
推测是navicate修改存储过程会自动名为_Navicat_Temp_Stored_Proc的存储过程 创建完毕后自动drop 由于某些原因或bug导致最终没有drop,于是修改存储过程失败. 所以 ...
- Maven实战之Quick Start
Introduction Maven是一个异常强大的构建工具,能够帮我们自动化构建过程,从清理.编译.测试到生成报告,再到打包和部署.通过Maven,我们只需要输入简单的命令(如mvn clean i ...
- 【JavaScript】JavaScript回调函数
什么是Javascript 回调函数? 函数和其他数据一样可以被赋值,删除,拷贝等,所以也可以把函数作为参数传入到另一个函数中. 这个函数就是所谓的回调函数 举例: //不带参数的case fun ...