阿里技术突破性创新
世界顶级大规模数据处理分析管理会议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的出现解决不断增加的结构化数据存储与查询的问题。