万字长文揭秘:阿里如何实现海量数据实时分析?(9)

随着业务的增长,当两个C4的存储或计算资源无法满足时,用户可自主对该DB发起升配或扩容操作,升配+扩容可同时进行。该过程会按副本交替进行,保证整个过程中始终有一个副本提供服务。另外,扩容增加节点后,数据会自动在新老节点间进行重分布。 [本文来自:www.11jj.com]

  • [原文来自:www.11jj.com]

    对于临时性的业务增长(如电商大促),升配扩容操作均可逆,在大促过后,可自主进行降配缩容操作,做到灵活地成本控制。

  • 在线升降配,平滑扩缩容能力,对今年双十一阿里巴巴集团内和公共云上和电商物流相关的业务库起到了至关重要的保障作用。

    GPU加速★ 客户业务痛点

    某客户数据业务的数据量在半年时间内由不到200TB增加到1PB,并且还在快速翻番,截止到发稿时为止已经超过1PB。该业务计算复杂,查询时间跨度周期长,需按照任意选择属性过滤,单个查询计算涉及到的算子包括20个以上同时交并差、多表join、多值列(类似array)group by等以及上述算子的各种复杂组合。传统的MapReduce离线分析方案时效性差,极大限制了用户快速分析、快速锁定人群并即时投放广告的诉求,业务发展面临新的瓶颈。

    ★ AnalyticDB加速方案

    GPU加速AnalyticDB的做法是在Compute Node中新增GPU Engine对查询进行加速。GPU Engine主要包括: Plan Rewriter、Task Manager、Code Generator、CUDA Manager、Data Manager和VRAM Manager。

    万字长文揭秘:阿里如何实现海量数据实时分析?(9)

    SQL查询从Front Node发送到Compute Node,经过解析和逻辑计划生成以后,Task Manager先根据计算的数据量以及查询特征选择由CPU Engine还是GPU Engine来处理,然后根据逻辑计划生成适合GPU执行的物理计划。

    GPU Engine收到物理计划后先对执行计划进行重写。如果计划符合融合特征,其中多个算子会被融合成单个复合算子,从而大量减少算子间临时数据的Buffer传输。


    Rewriting之后物理计划进入Code Generator,该模块主功能是将物理计划编译成PTX代码。Code Generator第一步借助LLVM JIT先将物理计划编译成LLVM IR,IR经过优化以后通过LLVMNVPTX Target转换成PTX代码。CUDA运行时库会根据指定的GPU架构型号将PTX转换成本地可执行代码,并启动其中的GPU kernel。Code Generator可以支持不同的Nvidia GPU。

    CUDA Manager通过jCUDA调用CUDA API,用于管理和配置GPU设备、GPU kernel的启动接口封装。该模块作为Java和GPU之间的桥梁,使得JVM可以很方便地调用GPU资源。

    Data Manager主要负责数据加载,将数据从磁盘或文件系统缓存加载到指定堆外内存,从堆外内存加载到显存。CPU Engine的执行模型是数据库经典的火山模型,即表数据需逐行被拉取再计算。这种模型明显会极大闲置GPU上万行的高吞吐能力。目前Data Manager能够批量加载列式数据块,每次加载的数据块大小为256M,然后通过PCIe总线传至显存。

    VRAM Manager用于管理各GPU的显存。显存是GPU中最稀缺的资源,需要合理管理和高效复用,有别于现在市面上其他GPU数据库系统使用GPU的方式,即每个SQL任务独占所有的GPU及其计算和显存资源。为了提升显存的利用率、提升并发能力,结合AnalyticDB多分区、多线程的特点,我们设计基于Slab的VRAM Manager统一管理所有显存申请:Compute Node启动时,VRAM Manager先申请所需空间并切分成固定大小的Slab,这样可以避免运行时申请带来的时间开销,也降低通过显卡驱动频繁分配显存的DoS风险。

    在需要显存时,VRAM Manager会从空闲的Slab中查找空闲区域划分显存,用完后返还Slab并做Buddy合并以减少显存空洞。性能测试显示分配时间平均为1ms,对于整体运行时间而言可忽略不计,明显快于DDR内存分配的700ms耗时,也利于提高系统整体并发度。在GPU和CPU数据交互时,自维护的JVM堆外内存会作为JVM内部数据对象(如ByteBuffer)和显存数据的同步缓冲区,也一定程度减少了Full GC的工作量。

    GPU Engine采用即时代码生成技术主要有如下优点:

  • 相对传统火山模型,减少计划执行中的函数调用等,尤其是分支判断,GPU中分支跳转会降低执行性能

  • 灵活支持各种复杂表达式,例如projection和having中的复杂表达式。例如HAVING     SUM(double_field_foo) > 1这种表达式的GPU代码是即时生成的

  • 灵活支持各种数据类型和UDF查询时追加

  • 利于算子融合,如group-by聚合、join再加聚合的融合,即可减少中间结果(特别是Join的连接结果)的拷贝和显存的占用 

  • 根据逻辑执行计划动态生成GPU执行码的整个过程如下所示:

    万字长文揭秘:阿里如何实现海量数据实时分析?(9)


    ★ GPU 加速实际效果

    该客户数据业务使用了GPU实时加速后,将计算复杂、响应时间要求高、并发需求高的查询从离线分析系统切换至AnalyticDB进行在线分析运行稳定,MapReduce离线分析的平均响应时间为5到10分钟,高峰时可能需要30分钟以上。无缝升级到GPU加速版AnalyticDB之后,所有查询完全实时处理并保证秒级返回,其中80%的查询的响应时间在2秒以内(如下图),而节点规模降至原CPU集群的三分之一左右。 业务目前可以随时尝试各种圈人标签组合快速对人群画像,即时锁定广告投放目标。据客户方反馈,此加速技术已经帮助其在竞争中构建起高壁垒,使该业务成为同类业务的核心能力,预计明年用户量有望翻番近一个数量级。

    万字长文揭秘:阿里如何实现海量数据实时分析?(9)


    总结

    简单对本文做个总结,AnalyticDB做到让数据价值在线化的核心技术可归纳为:

  • 高性能SQL Parser:自研Parser组件FastSQL,极致的解析性能,无缝集合优化器

  • 玄武存储引擎:数据更新实时可见,行列混存,粗糙集过滤,聚簇列,索引优化

  • 羲和计算引擎:MPP+DAG融合计算,CBO优化,向量化执行,GPU加速

  • 极致弹性:业务透明的在线升降配,扩缩容,灵活控制成本。

  • GPU加速:利用GPU硬件加速OLAP分析,大幅度降低查询延时。

  • 分析型数据AnalyticDB, 作为阿里巴巴自研的下一代PB级实时数据仓库, 承载着整个集团内和云上客户的数据价值实时化分析的使命。 AnalyticDB为数据价值在线化而生,作为实时云数据仓库..,接下来会在体验和周边生态建设上继续加快建设,希望能将最领先的下一代实时分析技术能力普惠给所有企业,帮助企业转型加速数据价值探索和在线化。


    万字长文揭秘:阿里如何实现海量数据实时分析?(9)

    你可能还喜欢

    点击下方图片即可阅读

    万字长文揭秘:阿里如何实现海量数据实时分析?(9)

    牛!阿里数据库掌门人李飞飞获选ACM杰出科学家

    万字长文揭秘:阿里如何实现海量数据实时分析?(9)

    聊一聊 | IPv6 来了,哪些行业会发生美好的改变?

    万字长文揭秘:阿里如何实现海量数据实时分析?(9)

    阿里玄难:面向不确定性的软件设计几点思考

    万字长文揭秘:阿里如何实现海量数据实时分析?(9)

    关注「阿里技术」

    把握前沿技术脉搏

    自媒体 微信号:11jj 扫描二维码关注公众号
    爱八卦,爱爆料。

    小编推荐

    1. 1

      数字易经0到9代表什么卦(数字易经测算)

      大家好,小伟今天来为大家解答数字易经0到9代表什么卦以下问题,数字易经测算很多人还不知道,现在让我们一起来看看吧!1、数字1代表坎水、数

    2. 2

      苹果手机呼叫转移怎么设置(苹果手机呼叫转移怎么设置无法接通)

      大家好,小乐今天来为大家解答苹果手机呼叫转移怎么设置以下问题,苹果手机呼叫转移怎么设置无法接通很多人还不知道,现在让我们一起来看看

    3. 3

      中国红十字会标志简笔画(中国红十字会标志简笔画)

      大家好,小豪今天来为大家解答中国红十字会标志简笔画以下问题,中国红十字会标志简笔画很多人还不知道,现在让我们一起来看看吧!1、保护性

    4. 4

      八年级下册语文书人教版电子书(八年级下册语文书人教版电子书2022)

      大家好,小美今天来为大家解答八年级下册语文书人教版电子书以下问题,八年级下册语文书人教版电子书2022很多人还不知道,现在让我们一起来看

    5. 5

      古伊尔(魔兽古伊尔)

      大家好,小丽今天来为大家解答古伊尔以下问题,魔兽古伊尔很多人还不知道,现在让我们一起来看看吧!1、古伊尔是魔兽世界里面部落的一个酋长

    6. 6

      唯一极值点问题

      在高档数学的进修中,我们经常会碰着独一驻点的问题,在非常宽松的前提下,这个独一的驻点也就是极值点。今天我们稍微改变一下前提,商量如

    7. 7

      三公九卿制是什么(三公九卿制是什么朝代的制度)

      大家好,小乐今天来为大家解答三公九卿制是什么以下问题,三公九卿制是什么朝代的制度很多人还不知道,现在让我们一起来看看吧!1、三公九卿

    8. 8

      订房网哪个平台好(订房什么网最便宜)

      大家好,小娟今天来为大家解答订房网哪个平台好以下问题,订房什么网最便宜很多人还不知道,现在让我们一起来看看吧!1、携程、美团、艺龙、

    Copyright 2024.依依自媒体,让大家了解更多图文资讯!