0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Apache Doris巨大飞跃:存算分离新架构介绍

OSC开源社区 来源:SelectDB 2023-08-04 11:17 次阅读

历史上,数据分析需求的不断提升(更大的数据规模、更快的处理速度、更低的使用成本)和计算基础设施的不断进化(从专用的高端硬件、到低成本的商用硬件、到云计算服务),这两大因素推动数据仓库的架构大体经历了三个时代:软硬一体的一体机时代、存算一体的分布式时代以及存算分离的云原生时代。

Apache Doris 诞生于存算一体的分布式时代,是典型的 Shared Nothing 架构:BE 节点上存储与计算紧密耦合、多 BE 节点采用 MPP 分布式计算架构,这种架构为 Apache Doris 带来了高可用、极简部署、横向可扩展以及强大的实时分析性能等一系列核心特色。

随着云时代的到来,无论是公有云、私有云还是 K8S 容器平台,越来越多的企业都希望 Apache Doris 针对云计算这种新型基础设施提供更加深度的适配,以便提供更加灵活强大的弹性能力。 在过去的一年,飞轮科技(SelectDB)技术团队在基于 Apache Doris 内核研发全托管企业级云数仓产品的过程中,设计并实现了全新的云原生存算分离架构(即 SelectDB Cloud)。

基于云原生存算分离的架构,SelectDB Cloud 在此基础上提供了多计算集群负载隔离和计算弹性扩缩容等功能。 秉持着“推动开源技术创新、繁荣开源社区生态”的首要目标,在 Apache Doris 2.0 即将发布之际,SelectDB 技术团队正式宣布,将存算分离架构实现贡献至 Apache Doris 社区

这一工作预计将于 2023 年 10 月前后完成,届时全部存算分离的代码都将会提交到 Apache Doris 社区主干分支中。 当存算分离代码合入 Apache Doris 社区后,Apache Doris 可以采用以下两种模式之一运行:存算一体的部署模式和存算分离的部署模式。

在两种模式下运行的 Apache Doris 将以不同的方式来存储主数据。从用户使用体验上而言,绝大部分功能都是一致的,但是也会因为实现架构和部署模式的不同,带来一些功能上的差异。下面我们将分别介绍两种部署模式的核心特点和适用场景差异。

存算一体的分布式架构

存算一体架构,也是 Apache Doris 长久以来经历过数千家企业生产环境打磨、无论是性能亦或是易用性和稳定性都最为成熟的 MPP 分布式架构,总体架构图如下:

891e8374-31ee-11ee-9e74-dac502259ad0.png

Apache Doris 存算一体架构

部署简易

在存算一体模式下,Apache Doris 不需要依赖类似外部共享文件系统或者对象存储,仅依赖物理服务器部署 FE 和 BE 两个进程即可完成集群的搭建,可以从一个节点扩展到数百个节点。这种不依赖第三方组件的部署模式极大降低了 Apache Doris 的使用门槛,甚至一台办公笔记本就可以完成 Apache Doris 的部署。 部署简单的同时,也拥有极简的运维成本:

FE 和 BE 都支持横向线性扩展,扩缩容过程中无需停服,可正常提供稳定可靠的在线服务

数据多副本存储,自身的分布式管理框架自动管理数据副本的分布、修复和均衡,扩缩容时数据副本会自动在节点间负载均衡,无需任何人工操作

因为存算一体架构依赖少,不需要依赖任何其他其他系统,也增强了系统的稳定性。而存算分离模式则需要依赖于共享的存储系统。对于绝大多数企业来说,提供一个共享的存储系统并非如此轻而易举。依赖组件越多、任一组件的不稳定都会导致整个系统的稳定性受到影响。存算分离架构依赖共享存储系统,那么存储系统的稳定性和可用性、连接存储系统和计算节点的网络延迟以及稳定性,都会对整个存算分离架构的稳定性有着至关重要的影响。

性能优异

在存算一体模式下,Apache Doris 执行计算时,计算节点可直接访问本地存储数据,充分利用机器的 IO、减少不必要的网络开销、获得更极致的查询性能。而存算分离模式下网络传输带宽和耗时往往会制约系统性能的发挥,因此即便是 Hadoop、Spark 这种一开始便采用存算分离模式的分布式框架,也会尽量将计算逻辑推送到数据所在的节点,以此来提升计算任务的执行性能。

与此同时,存算一体模式对于谓词下推(Predicate Pushdown)更加友好,将条件判断逻辑更贴近数据源,减少查询时扫描、传输和计算的数据量,更能发挥系统的查询性能。相比存算分离模式,一般存储系统都没有执行谓词计算的能力,因此无法实现谓词下推,继而需要网络将大量的数据传输至计算侧。

冷热分层

在 Apache Doris 2.0 版本中,也实现了存算一体模式下的冷热数据分层。冷热数据分层功能使 Apache Doris 可以将冷数据下沉到存储成本更加低廉的对象存储中,同时冷数据在对象存储上的保存方式也从多副本变为单副本,存储成本进一步降至原先的三分之一。通过冷热数据分层,使得 Apache Doris 集群配置不再需要随着历史数据量的堆积而不断扩容机器。本质上,Apache Doris 2.0 版本的冷热数据分层也是一种存算分离的形态,只是实现了冷数据的存储分离。

关于 Apache Doris 2.0 冷热数据分层功能的详细介绍,可以参考Apache Doris 冷热分层技术如何实现存储成本降低 70%?

分存算一体架构的适用场景

基于以上的原因,如果满足下面任一条件,那么 Apache Doris 存算一体模式更加适合你:

简单使用 Doris,想快速试用一下,或者开发和测试使用

没有可靠的共享存储可用,比如 HDFS、Ceph、对象存储等

业务线独立维护 Apache Doris,没有专职 DBA 来维护 Doris 集群

不需要极致弹性扩缩容,不需要K8S容器化,不需要运行在公有云或者私有云上

存算分离的新架构

如上所述,如果存算一体模式有这么多优势,为何我们还需要提供存储计算分离的新架构?核心动力来自于新兴云计算基础设施的成熟,无论是公有云、私有云以及基于 K8s 的容器平台,云计算基础设施的革新催生了新的需求。

云本身就是存储计算分离的,其极致弹性带来极大的成本经济优势:

计算资源的弹性:可以根据计算负载的需求,按需购买或者按需扩缩容计算节点,在满足计算需求的情况下,使得成本达到最低;

存储资源的低成本与弹性:对象存储提供极其可靠的低成本存储,并且按照使用容量计费,这样可以让数据存储得更多更久。

即便是没有使用云平台的公司,也可以利用低成本的共享存储系统,在降低存储成本和提高计算弹性的同时,还能获得多计算集群等额外的优质特性。

未来存算分离架构如下图所示:

893b2df8-31ee-11ee-9e74-dac502259ad0.png

存算分离新架构

基于共享存储系统的主数据存储

在存算一体的架构下,数据主要存储在计算节点上,即使使用了冷热数据分层,热数据依旧只在计算节点上存储,计算节点需要依靠自身的多副本机制保证数据的可靠性。在存算分离架构下,计算节点不再存储主数据,而是将共享存储层作为统一的数据主存储空间,这将带来如下收益:

上层的计算节点可以做到无状态,可以实现完全关机

更便捷的数据共享,不同的集群之间以及不同的仓库可以便捷地进行数据共享

更简易的数据备份与恢复,以及实现数据的 Time Travel

当然,成熟稳定的 HDFS/对象存储还为系统带来极低的存储成本和极高的数据可靠性,并且大大简化上层计算节点的实现复杂度。

基于本地高速缓存的性能优化

存算分离依赖从网络上读取存储系统的数据来进行计算,在一定程度上会造成计算性能的下降,这也是相较于存算一体架构的主要劣势。为了解决这一问题,可以在本地利用 SSD 提供高速缓存。

正如存算一体通过冷热数据分层技术来大大缓解了存储和计算必须同时扩展的问题,同样在存算分离架构中引入计算节点本地高速缓存实际也是融合了存算一体的能力。这种本地高速缓存加上共享存储系统,我们也可以称之为混合模式,无论是 Snowflake 还是 Redshift,实际上都是采用了这种方式来应对底层对象存储系统性能不佳和网络传输带来的性能下降。

引入本地高速缓存后,系统会自动根据 LRU 来缓存最新写入和访问数据,当然也可以手动设定表的缓存策略。由于只是缓存,因此本地只存储了单个副本,这样大大提升了缓存利用率,相比存算一体模式可以降低 2/3 的高速存储使用。

另外,在存算一体的模式下,每个 Tablet 有 3 个节点来存储其 3 个数据副本,在三副本上都需要独立进行数据合并(Compaction)计算。而在存算分离下,只有一个节点进行数据合并计算,这样就可以降低 2/3 的数据合并计算量。

所以,通过引入本地高速缓存,不仅仅可以基本达到原来存算一体的性能,在有些情况下还会超越原来存算一体的性能。

多计算集群实现工作负载隔离

用户通常希望对同一份数据上的分析负载进行隔离。例如,导入的工作负载与查询的负载进行隔离,Adhoc 的大查询负载和在线点查询的负载间相互隔离,避免不同负载间相互资源抢占。 在 Apache Doris 2.0 版本中提供了工作负载组(Workload Group)的资源隔离方案。

这个方案是一种软限隔离,可以为特定查询或者特定用户指定查询优先级,但是基于 Workload Group 的隔离无法达到存算分离模式下多计算集群的真正物理隔离性。 在存算分离模式下,提供了同一个仓库多个物理计算集群的隔离方式。因为主数据存储在共享的对象存储上,因此用户可以按需创建多个计算集群但共享同一份数据。计算集群之间是物理隔离的,可以独立扩缩容,其计算节点的本地高速缓存都是隔离的,这样保证了尽可能比较好的隔离性。

极致的弹性扩缩容

存储与计算的分离,带来的最大优势是存储和计算可以独立扩缩容。数据存储在 HDFS 或对象存储上,可以按需扩缩容。每个计算集群的计算节点,可以实现更加高效的弹性扩缩容,包括手动扩缩容、分时扩缩容以及自动停机。

存算分离特性演示

在此我们以 SelectDB Cloud 现有产品为例,来向大家演示全新存储计算分离模式的特性和功能。 SelectDB Cloud 上新建仓库 SelectDB Cloud 上多集群演示 SelectDB Cloud 上的手动扩缩容 SelectDB Cloud 上的分时扩缩容 SelectDB Cloud上的集群自动启停

存算分离架构的适用场景

基于以上的介绍,毫无疑问也帮助我们进一步明晰了存算分离架构的适用场景,满足下列任一条件,存算分离架构更适合你:

如果已经使用公有云服务,那么存算分离架构绝对值得尝试

拥有可靠的共享存储系统,比如 HDFS、Ceph、对象存储等

需要极致弹性扩缩容,需要 K8S 容器化,需要运行在私有云上

有专职的团队维护整个公司的数据仓库平台

数据湖分析

需要说明的是,针对不同的技术群体,存储、计算与存算分离这些概念指代着不同的含义。 无论是 Apache Doris 的存算分离、还是 Snowflake 的存算分离,都是指单一系统内部存储和计算模块之间的分离。对于数据湖和湖仓一体(Lakehouse)的用户,则是希望做到更加彻底的分离,即计算系统和存储系统是两个不同的产品。

存储系统通过统一的开放表格式面向计算系统开放,而计算系统也可以开放地对接不同的底层存储系统。 对于 Apache Doris 而言,无论是存算一体的架构还是存储计算分离的架构,都支持湖仓一体这种新型 Lakehouse 系统形态,即可以直接查询湖存储以及当前流行的各类开放表格式,包括 Hive、Iceberg 和 Hudi 等。

需要说明的是,Apache Doris 目前对数据湖的读取已经比较完备,包括支持 Snapshot 读和 Time Travel,而后续还会进一步支持湖上数据的写回,形成更加闭环的数据分析和流转。 除了对数据湖的集成与分析,Apache Doris 目前还支持了对当前常见的关系型数据库、对象存储以及 HDFS 上 CSV、Parquet 等格式数据的直接查询分析。

未来计划

围绕着存算分离,SelectDB 技术团队会与 Apache Doris 社区未来一起推进下面相关方向的研发: Workload Group 与多计算集群的融合

当前存算一体架构下的 Workload Group 与存算分离架构的多计算集群实际都是用来解决负载隔离的,一个偏软限,一个是硬限,当前具体实现方式存在一定差异,后面将考虑二者融合,对用户而言提供统一一致的使用体验。

与外部数据湖更便捷的数据导入导出

外部数据湖的数据可以增量持续写入内表,也可以使得内表的数据可以增量持续写入到外表数据湖的格式。

通过提供更加便捷的外表导入内表的功能,Doris 可以持续加载最新的数据湖数据,以便提供更高的数据计算性能。

通过提供更加便捷的内表导出外表的功能,使得内表的数据可以增量写出为开放的外表格式。数据转换为开放格式,一个是方便与相关大数据生态系统打通,另一个是打消企业对封闭数据格式被锁定的担忧。

实现共享的高速缓存,与计算节点进一步分离

当前存算分离模式下,高速缓存使用的是计算节点的本地磁盘,所以计算节点还不能做成真正的无状态。当进行节点快速扩容的时候,需要考虑缓存的预热均衡;当进行节点快速缩容的时候,需要考虑缓存的失效,以及向其他节点的缓存转移。未来,我们将实现一种与计算节点分离的共享高速缓存,实现计算、缓存和对象存储完全的分离,以便提供秒级扩缩容能力。 存算一体和存算分离两种模式的融合

存算一体和存算分离的架构在部署之初就需要确定下来,而对于多数用户都可能存在不同架构之间的转化,因此后续也会不断改进实现方式,让两种模式间可以更便捷地进行相互转换,甚至逐步融合成一套架构。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7452

    浏览量

    163591
  • 计算机
    +关注

    关注

    19

    文章

    7414

    浏览量

    87704
  • 耦合器
    +关注

    关注

    8

    文章

    718

    浏览量

    59631
  • MPP
    MPP
    +关注

    关注

    0

    文章

    24

    浏览量

    10578
  • HDFS
    +关注

    关注

    1

    文章

    30

    浏览量

    9570

原文标题:Apache Doris巨大飞跃:存算分离新架构

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    直播预约 |开源芯片系列讲座第24期:SRAM一体:赋能高能效RISC-V计算

    RISC-V计算报告简介一体是一种先进的计算架构技术,以克服传统冯诺依曼架构中计算单元与存储单元分离导致的“内存墙”问题。北京大学集成电
    的头像 发表于 11-16 01:10 76次阅读
    直播预约 |开源芯片系列讲座第24期:SRAM<b class='flag-5'>存</b><b class='flag-5'>算</b>一体:赋能高能效RISC-V计算

    一体化与边缘计算:重新定义智能计算的未来

    随着数据量爆炸式增长和智能化应用的普及,计算与存储的高效整合逐渐成为科技行业关注的重点。数据存储和处理需求的快速增长推动了对计算架构的重新设计,“一体化”技术应运而生。同时,随着物联网、5G网络
    的头像 发表于 11-12 01:05 132次阅读
    <b class='flag-5'>存</b><b class='flag-5'>算</b>一体化与边缘计算:重新定义智能计算的未来

    一体架构创新助力国产大力AI芯片腾飞

    在湾芯展SEMiBAY2024《AI芯片与高性能计算(HPC)应用论坛》上,亿铸科技高级副总裁徐芳发表了题为《一体架构创新助力国产大力AI芯片腾飞》的演讲。
    的头像 发表于 10-23 14:48 226次阅读

    【「力芯片 | 高性能 CPU/GPU/NPU 微架构分析」阅读体验】--全书概览

    、GPU、NPU,给我们剖析了力芯片的微架构。书中有对芯片方案商处理器的讲解,理论联系实际,使读者能更好理解力芯片。 全书共11章,由浅入深,较系统全面进行讲解。下面目录对全书内容有一个整体了解
    发表于 10-15 22:08

    科技新突破:首款支持多模态一体AI芯片成功问世

    一体介质,通过存储单元和计算单元的深度融合,采用22nm成熟工艺制程,有效把控制造成本。与传统架构下的AI芯片相比,该款芯片在力、能效比,功耗等方面都具有明显的优势。芯片采用AI
    发表于 09-26 13:51 345次阅读
    科技新突破:首款支持多模态<b class='flag-5'>存</b><b class='flag-5'>算</b>一体AI芯片成功问世

    名单公布!【书籍评测活动NO.43】 力芯片 | 高性能 CPU/GPU/NPU 微架构分析

    社会资源和资本力量关注力芯片的发展,希望我们的国家能够更独立自主地设计制造高性能力芯片。 内容简介: 本书介绍了超级计算机力和AI
    发表于 09-02 10:09

    后摩智能推出边端大模型AI芯片M30,展现出一体架构优势

    电子发烧友网报道(文/李弯弯)近日,后摩智能推出基于一体架构的边端大模型AI芯片——后摩漫界™️M30,最高力100TOPS,典型功耗12W。为了进一步提升部署的便捷性,后摩智能
    的头像 发表于 07-03 00:58 4094次阅读

    浅谈内计算生态环境搭建以及软件开发

    )适配到内计算架构中。 (二)研究现状 随着内计算硬件的发展,软件开发社区正在寻找方法将这种新技术集成到传统的软件开发工作流程中。例如,流行的开源框架Apache Spark已经开
    发表于 05-16 16:40

    科技助力AI应用落地:WTMDK2101-ZT1评估板实地评测与性能揭秘

    中得到彰显。一体架构的突破传统冯·诺依曼架构的范式探索成为重要趋势。这种架构改变了
    发表于 05-16 16:38

    内计算WTM2101编译工具链 资料

    内计算是突破物理极限的下一代力技术- AIGC等人工智能新兴产业的快速发展离不开力,力的基础是人工智能芯片。 当前CPU/GPU在执行计算密集型任务时需要将海量参数(ωij)
    发表于 05-16 16:33

    探索内计算—基于 SRAM 的内计算与基于 MRAM 的一体的探究

    本文深入探讨了基于SRAM和MRAM的一体技术在计算领域的应用和发展。首先,介绍了基于SRAM的内逻辑计算技术,包括其原理、优势以及在神经网络领域的应用。其次,详细讨论了基于MR
    的头像 发表于 05-16 16:10 2527次阅读
    探索<b class='flag-5'>存</b>内计算—基于 SRAM 的<b class='flag-5'>存</b>内计算与基于 MRAM 的<b class='flag-5'>存</b><b class='flag-5'>算</b>一体的探究

    从潮汐架构和安第斯大模型,看智能手机的未来演进

    手机和普通PC一样,也是遵照著名的冯·诺依曼架构进行工作。这种架构,属于分离。运算单元负责计算,存储器负责存储。计算时,需要先将数据从存
    的头像 发表于 01-30 16:22 782次阅读
    从潮汐<b class='flag-5'>架构</b>和安第斯大模型,看智能手机的未来演进

    Apache Doris聚合函数源码解析

    笔者最近由于工作需要开始调研 Apache Doris,通过阅读聚合函数代码切入 Apache Doris 内核,同时也秉承着开源的精神,开发了 array_agg 函数并贡献给社区。
    的头像 发表于 01-16 09:52 949次阅读
    <b class='flag-5'>Apache</b> <b class='flag-5'>Doris</b>聚合函数源码解析

    什么是Apache日志?Apache日志分析工具介绍

    Apache Web 服务器在企业中广泛用于托管其网站和 Web 应用程序,Apache 服务器生成的原始日志提供有关 Apache 服务器托管的网站如何处理用户请求以及访问您的网站时经常遇到的错误的重要信息。
    的头像 发表于 01-04 10:09 790次阅读

    浅谈为AI大力而生的-体芯片

    大模型爆火之后,一体获得了更多的关注与机会,其原因之一是因为一体芯片的裸力相比传统架构
    发表于 12-06 15:00 366次阅读
    浅谈为AI大<b class='flag-5'>算</b>力而生的<b class='flag-5'>存</b><b class='flag-5'>算</b>-体芯片