学习·Apache Doris元数据管理

Apache Doris的元数据管理涉及FE(前端)和BE(后端)节点,使用bdbje存储元数据以确保持久性和一致性。FE节点通过bdbje进行选举和数据同步,保证服务高可用。元数据内容包括用户数据、作业信息、用户权限和集群信息。Doris通过image和日志回放的方式实现元数据持久化和高可用,确保在节点故障时能快速恢复。
摘要由CSDN通过智能技术生成

一、 关键词

FE、BE、bdbje

  1. FE
    Frontend,即 Doris 的前端节点。主要负责接收和返回客户端请求、元数据以及集群管理、查询计划生成等工作。
  2. BE
    Backend,即 Doris 的后端节点。主要负责数据存储与管理、查询计划执行等工作。
  3. bdbje
    全称Oracle Berkeley DB Java Edition,在Doris 中,使用 bdbje 存放Doris元数据,保证元数据持久性和一致性、FE 高可用等功能。
    Berkeley DB是一款分布式支持事务嵌入式KV数据库。

二、 整体架构

在这里插入图片描述Doris 的整体架构分为两层。多个 FE 组成第一层,提供 FE 的横向扩展和高可用。多个 BE 组成第二层,负责数据存储与管理。元数据的设计与实现方式,主要与第一层的设计架构相关。

  1. FE 节点分为 follower 和 observer 两类。各个 FE 之间,通过 bdbje(BerkeleyDB Java Edition (opens new window))进行 leader 选举数据同步等工作。
  2. follower 节点通过选举,其中一个 follower 成为 leader 节点,负责元数据的写入操作。当 leader 节点宕机后,其他 follower 节点会重新选举出一个 leader,保证服务的高可用。
  3. observer 节点仅从 leader 节点进行元数据同步,不参与选举。可以横向扩展以提供元数据的读服务的扩展性。

三、 元数据内容

Doris 的元数据是全内存的。每个 FE 内存中,都维护一个完整的元数据镜像。
元数据在内存中整体采用树状的层级结构存储,并且通过添加辅助结构,能够快速访问各个层级的元数据信息。
下图是 Doris 元信息所存储的内容。
在这里插入图片描述
如上图,Doris 的元数据主要存储4类数据:

  1. 用户数据信息。包括数据库、表的 Schema、分片信息等。
  2. 各类作业信息。如导入作业,Clone 作业、SchemaChange 作业等。
  3. 用户及权限信息。
  4. 集群及节点信息。

四、 高可用元数据

在这里插入图片描述
元数据的数据流周期具体过程如下:

  1. 只有 leader FE 可以对元数据进行写操作。 写操作在修改 leader 的内存后,会序列化为一条log,按照 key-value 的形式写入 bdbje。其中 key 为连续的整型数字,全局唯一、递增,作为 log id;value 即为序列化后的操作日志,由2部分组成。OperationType为操作类型,如建库操作、建表操作等。Writable Entity为序列化后的操作具体内容,通过反序列化该值,可以从镜像上回放元数据操作。
    在这里插入图片描述

在这里插入图片描述

  1. 集群节点同步元数据
    主节点按照元数据操作顺序,将元数据日志log࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值