OushuDB学习笔记(基本原理)
二、基本原理
1、基础架构
OushuDB 基础架构分为:客户端、主节点、虚拟计算集群、虚拟存储集群
架构特点:
1)存算分离
多个 Master 处理用户请求,处理用户认证,协调分布式执行计划引擎
2)分布式执行计划引擎
负责 SQL 解析,语义分析,基于代价的查询优化,产生分布式查询任务
3)分布式任务调度引擎 QD
负责执行计划分发、状态跟踪,节点间数据分发
4)SIMD 向量化执行引擎
逻辑计划转化为物理计划,完成资源分配,启动并控制查询计划的执行,并将执行结果回传
5)分布式可插拔存储引擎
支持 HDFS/S3/本地表,支持行存/列存,数据编码,压缩,存储和读写
6)分布式事务管理
提供 ACID 机制,支持分布式锁,支持并发读写
7)元数据管理
数据库对象管理与存储、基于 MVCC 的事务处理机制
8)全局资源管理
多租户、多级资源队列的资源统一分配
2、基本组件
1)Master 节点:接收客户端查询,分解任务,分派到 segment 节点,汇总 Segment 节点执行结果并返回客户端
2)Segment 节点:接收到任务,fork 出 QE 进程,协同完成任务,结果返回 master 节点
3)Standby 节点(5.0 版本之前):保证集群高可用
4)Magma:OushuDB4.0 时引入的分布式存储,在主节点配置 observer 用来提供 magma 的可用节点,magma node 用于提供读写服务,支持数据增删改,支持索引,行列混存,
5)HDFS:主节点配置 namenode,数据节点配置 datanode
6)运行模式:standalone,独占系统资源,自己管理资源;yarn,OushuDB 作为应用注册到 yarn,由 yarn 做资源管理和分配,在主节点配置 resource manager,在各个子节点配置 node manager
7)interconnect:节点间的数据传输服务
组件间运行模式:
1)元数据存储在 Master 节点本地(5.0 版本之前)
2)Master 节点认证和接受客户端请求
3)解释器生成语法树,优化器生成执行计划,从资源管理器得到可用节点资源
4)从 HDFS Catalog 获取存储在 HDFS 上的数据的分布,生成最优查询计划,决定在哪些节点访问哪些数据
5)QD 将查询计划分派给各个 segment 节点
6)处理事务
计算节点:
1)物理节点就是一个 segment 节点
2)segment 节点可分为多个 vsegment 节点,一般为 2、4、6、8,缺省 8
3)vsegment 是并行查询的基本计算单元,container
3、部署架构
OushuDB Master:配置 Magma observer,Standby Namenode
OushuDB Standby:配置 Magma observer,Active Namenode
Zookeeper node:3 个,有两个尽量在 Master 和 Standby 节点上
segment 与 hdfs 的 datanode 混布可以利用到本地读提高性能
4、进程架构
1)postmaster:监听用户请求的守护进程,为每个用户 fork 单独的 postgres 服务
2)logger:收集各个子进程的输出,写到 pg_log
3)stats collect:收集统计信息写入。stat 文件
4)Writer:共享内存数据刷到磁盘
5)resource manager:资源管理,segment 可用性检查
6)DFS metadata cache:缓存 block 信息
7)checkpoint:周期性 checkpoint 或 checkpoint 请求
8)sequenceserver:生成序列
9)Wal send server/sync agent:发送 WAL 日志,接收并执行 WAL 日志