MatrixOne架构概述

整体架构

MatrixOne作为一个从零开始打造的全新数据库,其整体架构由多个模块组成。对应架构图如下图所示: MatrixOne Architecture

查询解析层(Query Parser Layer)

  • 解析器(Parser): 将SQL、流处理或Python语言解析为抽象语法树,以便进一步处理。
  • 计划器(Planner): 通过一系列基于规则、基于成本的优化算法找到最佳的执行计划,并将抽象语法树转换为计划树。
  • IR生成器(IR Generator): 将Python代码转变为LLVM IR的中间码。

计算层(Computation Layer)

  • 即时编译(JIT Compilation): 在运行时使用LLVM将SQL计划树或IR代码转换为本地程序。
  • 向量化执行(Vectorized Execution): MatrixOne利用SIMD指令构造向量化执行通道。
  • 缓存(Cache): 用于查询的数据、索引和元数据的多版本的缓存。

集群管理层(MatrixCube)

MatrixCube是构建分布式系统的基础库,它保证数据库集群的高可靠性、强一致性和可扩展性。它用于保证分布式、有状态的应用程序构建,使开发人员只需要关注单节点的业务逻辑实现即可。MatrixCube目前基于multi-raft搭建来提供强一致能力,之后将迁移到Paxos,用于更好服务跨数据中心的应用场景。

  • 调度器(Prophet): MatrixCube中用于管理、调度MatrixOne集群的工具。
  • 事务管理器(Transaction Manager): MatrixOne支持快照隔离级别(snapshot isolation)的分布式事务。
  • 复制状态机(Replicated State Machine): MatrixOne使用基于raft的共识协议和超逻辑时钟来实现集群的强一致性。

存储引擎层(Replicated Storage Layer)

  • 行存(Row Storage): 存储交易类负载数据、元数据和Catalog。
  • 列存(Column Storage): 存储分析负载类数据与物化视图。

存储介质层(Storage Provision Layer)

MatrixOne作为无需绑定底层基础设施的数据库,可以支持共享存储S3/HDFS,或本地磁盘、私有数据中心、混合云,甚至智能设备等存储介质的数据存储。

相关信息

本节介绍了MatrixOne的整体架构概览。若您想了解更详细的模块技术设计问题,可阅读: MatrixOne模块概览

其他信息可参见: