Doris架构中包含哪些技术?

news2024/12/26 10:48:38

Doris主要整合了Google Mesa(数据模型),Apache Impala(MPP Query Engine)和Apache ORCFile (存储格式,编码和压缩)的技术。

为什么要将这三种技术整合?

Mesa可以满足我们许多存储需求的需求,但是Mesa本身不提供SQL查询引擎。

Impala是一个非常好的MPP SQL查询引擎,但是缺少完美的分布式存储引擎。

自研列式存储:存储层对存储数据的管理通过storage_root_path路径进行配置,路径可以是多个。存储目录下一层按照分桶进行组织,分桶目录下存放具体的tablet,按照tablet_id命名子目录。因此选择了这三种技术的组合。

Doris技术整合

Doris的系统架构如下,Doris主要分为FE和BE两个组件。

整体架构

Doris的架构很简洁,使用MySQL协议,用户可以使用任何MySQL ODBC/JDBC和MySQL客户端直接访问Doris,只设FE(Frontend)、BE(Backend)两种角色、两个进程,不依赖于外部组件,方便部署和运维。

FE:Frontend,即Doris的前端节点。主要负责接收和返回客户端请求、元数据以及集群管理、查询计划生成等工作。

BE:Backend,即Doris的后端节点。主要负责数据存储与管理、查询计划执行等工作。

FE,BE都可线性扩展FE主要有两个角色,一个是follower,另一个是observer。多个follower组成选举组,会选出一个master,master是follower的一个特例,Master跟follower,主要是用来达到元数据的高可用,保证单节点宕机的情况下,元数据能够实时地在线恢复,而不影响整个服务。

Observer节点仅从leader节点进行元数据同步,不参与选举。可以横向扩展以提供元数据的读服务的扩展性。

数据的可靠性由BE保证,BE会对整个数据存储多副本或者是三副本。副本数可根据需求动态调整。

Doris整体架构

元数据结构

Doris采用Paxos协议以及Memory+ Checkpoint + Journal的机制来确保元数据的高性能及高可靠。元数据的每次更新,都会遵照以下几步:

(1)写入到磁盘的日志文件中

(2)再写到内存中

(3)定期checkpoint到本地磁盘上

相当于是一个纯内存的一个结构,也就是说所有的元数据都会缓存在内存之中,从而保证FE在宕机后能够快速恢复元数据,而且不丢失元数据。

Leader、follower和observer它们三个构成一个可靠的服务,如果发生节点宕机的情况,一般是部署一个leader两个follower,目前来说基本上也是这么部署的。就是说三个节点去达到一个高可用服务。单机的节点故障的时候其实基本上三个就够了,因为FE节点毕竟它只存了一份元数据,它的压力不大,所以如果FE太多的时候它会去消耗机器资源,所以多数情况下三个就足够了,可以达到一个很高可用的元数据服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/946494.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【IEEE会议】第六届IEEE机械工程与智能制造国际会议(WCMEIM 2023)

2023年第六届IEEE机械工程与智能制造国际会议(WCMEIM 2023) 2023 6th World Conference on Mechanical Engineering and Intelligent Manufacturing 坚定不移加快发展智能制造,推进信息化和工业化深度融合,实现制造业质量变革、…

uniapp 配置小程序分包

分包可以减少小程序首次启动时的加载时间 分包页面(例如:商品详情页、商品列表页)。在 uni-app 项目中,配置分包的步骤如下: 1、右键点击根目录,新建,点击创建分包的根目录,命名为 …

YOLO目标检测——Kylberg纹理数据集下载分享

Kylberg纹理数据集共同4640图片,可应用于:纹理分类与识别、材料识别与质检、医学图像分析、地质勘探与地表覆盖分类等等 数据集点击下载:YOLO目标检测Kylberg纹理数据集4640图片.rar

《开发实战》11 | 空值处理:分不清楚的null和恼人的空指针

11 | 空值处理:分不清楚的null和恼人的空指针 修复和定位恼人的空指针问题 NullPointerException 是 Java 代码中最常见的异常,最可能出现的场景归为以下5 种: 参数值是 Integer 等包装类型,使用时因为自动拆箱出现了空指针异常…

02调制+滤波器+冲激函数的傅立叶变换

目录 一、调制方式 1.1 什么是调制? 1.2 为什么要调制? 1.3 如何调制? 1.4 调制包含的信号类型? 1. 消息信号 2. 载波信号 3. 调制信号 1.5 调制类型? 1. 调幅 2. 调频 3. 调相 4. 模拟脉冲调制 5. 脉冲…

07:STM32----ADC模数转化器

目录 1:简历 2:逐次逼近型ADC 3:ADC基本结构 4:输入通道 5:规则组的4种转换模式 1:单次转化,非扫描模式 2:连续转化,非扫描模式 3:单次转化,扫描模式 4:单次转化,扫描模式 6:触发控制 7:数据对齐 8:转化时间 9:校准 10:ADC的硬件电路 A: AD单通道 1:连接图 2:函…

单变量图的类型与直方图绘图基础

文章目录 单变量图的类型1.直方图(histogram plot)2.密度图(density plot)3.Q-Q 图(Quantile- Quantile plot,又称分位图)4.P-P 图(Probability-Probability plot)5.经验…

illegal cyclic inheritance involving trait Iterable_2种解决方式

一、报错内容 /Users/liyangda/Code/DemoProject/demo-scala/src/scala/old04/T4.scala:11:20 illegal cyclic inheritance involving trait Iterableval value List(1, 2, 3, 4, 5, 6, 7, 8)二、问题解决 1、方式一:降低scala版本 可以选择降低Scala的版本&…

《探花交友》之开篇

《探花交友》 功能介绍项目介绍工程搭建短信验证码实现用户登录功能前后端开发视频及相关资源领取Q作者 1、功能介绍 探花交友是一个陌生人的在线交友平台,在该平台中可以搜索附近的人,查看好友动态,平台还会通过大数据计算进行智能推荐&a…

若依自定义详情页(传多个参数)

【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】【创作不易,点个赞就是对我最大的支持】 前言 仅作为学习笔记,供大家参考 总结的不错的话,记得点赞收藏关注哦! 不知道…

gerrit 如何提交进行review

前言 本文主要介绍如何使用gerrit进行review。 下述所有流程都是参考: https://gerrit-review.googlesource.com/Documentation/intro-gerrit-walkthrough.html 先给一个commit后但是还没有push上去的一个办法: git reset --hard HEAD^可以多次reset.…

5V升压充电16.8V芯片充电管理IC

航誉微HU5912四节锂电池升压充电IC 概要 HU5912是一款 5V输入,支持四节锂电池的升压充电管理 IC。 HU5912 ,采用异步开关架构,使其在应用时仅需 要极少的外围器件,可有效减少整体方案尺寸,降低 BOM 成本。 HU5912…

腾讯云便宜购买指南(腾讯云怎样购买划算)

腾讯云是国内知名的云计算服务商,拥有广泛的应用和用户群体。对于有需要的用户来说,怎样便宜购买腾讯云产品是一个值得关注的问题,下面给大家分享腾讯云便宜购买指南。 腾讯云便宜购买指南:1、新用户专属礼包;2、老用户…

网路日志服务器

网络日志服务器是用于集中存储、管理和分析网络设备生成的日志数据的服务器。它扮演着收集、存储和分析网络日志的关键角色,对于网络安全、故障排除和性能优化等方面具有重要意义。 网络日志服务器的工作原理是通过与网络设备建立连接,接收并保存设备生成…

《人月神话》:chapter 4 系统设计中的“专制”和“民主”

以下总结来自于《人月神话》 第四章 :贵族制,民主制和系统设计 系统设计中最重要的因素:概念完整性 1.设计必须由一个人或者具有共识的小型团队来完成 2.大型系统架构设计与具体实现相分离 3.必须有人控制概念,确保完整性&…

WebSocket- 前端篇

官网代码 // 为了浏览器兼容websocketconst WebSocket window.WebSocket || window.MozWebSocket// 创建连接 this.socket new WebSocket(ws://xxx)// 连接成功this.socket.onopen (res)>{console.log(websocket 连接成功)this.socket.send(入参字段) // 传递的参数字段}…

【Android】AES解密抛出异常Cipher functions:OPENSSL_internal:WRONG_FINAL_BLOCK_LENGTH

Java使用AES加密的时候没得问题,但是在解密的时候就出错了,一起来找找原因吧。 首先,Java运行的代码如下,使用AES加解密 Cipher cipher Cipher.getInstance("AES/CBC/NOPadding"); //...主要问题 可调试运行控制台抛…

Figma怎么导出源文件,超详细教程来了

Figma怎么导出源文件,超详细教程来了要说近几年话题最多的界面设计软件,Figma当之无愧。用一句话去定义Figma,它是一款基于浏览器的全能型设计工具。Figma允许设计师、开发者和其他团队成员无论身在何处,都可以共同协作创建和编辑…

FastStone Capture

FastStone Capture 简介下载安装注册 简介 FastStone Capture是一款用于屏幕截图和屏幕录制的工具。它允许用户捕捉屏幕上的内容,并将其保存为图像文件,还可以录制屏幕活动为视频文件。 FastStone Capture官网: https://www.faststone.org/FSCaptureDet…

JDK源码解析-ArrayList

1. ArrayList类 1.1 ArrayList类结构图 ArrayList 是一个用数组实现的集合,支持随机访问,元素有序且可以重复。 (1)ArrayList 是一种变长的集合类,基于定长数组实现。 (2)ArrayList 允许空值…