当前位置: 首页 > news >正文

Doris架构中包含哪些技术?

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.lryc.cn/news/145627.html

相关文章:

  • 《vue3实战》通过indexOf方法实现电影评价系统的模糊查询功能
  • java对时间序列每x秒进行分组
  • 八月更新 | CI 构建计划触发机制升级、制品扫描 SBOM 分析功能上线!
  • Spring核心配置步骤-完全基于XML的配置
  • 宏基官网下载的驱动怎么安装(宏基笔记本如何安装系统)
  • 基于AVR128单片机抢答器proteus仿真设计
  • openGauss学习笔记-54 openGauss 高级特性-MOT
  • InsCode AI 创作助手
  • java对时间序列根据阈值进行连续性分片
  • Pillow:Python的图像处理库(安装与使用教程)
  • 自然语言处理-NLP
  • 柠檬水找零【贪心算法-】
  • el-date-picker设置开始时间小于结束时间
  • Linux内核学习(十三)—— 设备与模块(基于Linux 2.6内核)
  • 计算机视觉工程师学习路线
  • c#多线程—基础概念到“双色球”项目实现(附知识点目录、代码、视频)
  • 【OpenCV入门】第一部分——图像处理基础
  • vue3+ts+tinynce富文本编辑器+htmlDocx+file-saver 配合实现word下载
  • 论文阅读 The Power of Tiling for Small Object Detection
  • 【FreeRTOS】【应用篇】消息队列【下篇】
  • 芯片技术的崭新时代:探索未来的可能性
  • 博流RISC-V芯片Eclipse环境搭建
  • 智慧水产养殖方案,守护养殖水产品安全!
  • 前端vue引入高德地图入门教程
  • 【LeetCode题目详解】第八章 贪心算法 part05 435. 无重叠区间 763.划分字母区间 56. 合并区间 (day36补)
  • 数据的语言:学习数据可视化的实际应用
  • 【Flutter】Flutter简介
  • 做区块链卡牌游戏有什么好处?
  • C语言每日一练------Day(5)
  • (Windows )本地连接远程服务器(Linux),免密码登录设置