YMatrix 架构

本文档介绍了 YMatrix 的整体架构及相关概念。

掣肘于堆叠式复杂数据技术栈的不稳定性、高成本、低性能、高延迟等弱点,企业很难从其中最大化获益。 YMatrix 为降低数据生态的复杂性,设计了具有超融合基因的简洁架构,将计算、存储和网络资源整合在一个统一系统中。其基于大规模并行处理(MPP)系统构建,符合微内核架构特点。

此架构可灵活、融合适应多个场景,不仅对于物联网时序场景友好,也支持传统分析型数据仓库环境及商业智能(BI)工作。

相比于复杂数据技术栈,YMatrix 架构的优势是?


使用超融合架构替换传统数据技术栈看似是一项艰巨的任务。那么,为什么我们一定要这样做?

实际上,无论在哪种情况下,全面使用超融合架构对于许多企业都能带来助益,为企业庞杂的 IT 系统提供统一的数据基座,包括智能网联汽车、工业互联网、智能制造、智慧城市、能源、金融、制药等。

相比于如 Hadoop 生态等复杂数据技术栈,YMatrix 架构有以下优势:

  • 超融合
    • 健壮性:一个复杂技术栈通常由 N 个单独的数据处理系统组成。假设任何一个组件出现故障的概率为 P,那么整个系统的稳定性可以近似看成是 (1-P)^N,即每多一个组件,稳定性都会大打折扣。超融合架构由于只有一个系统,自然最为稳定、健壮。
    • 经济性:因其超融合特性,YMatrix 可在单个系统中消费与管理数据,而无需在多个分布式系统间传递,避免了一份数据的多系统存储。物理硬件如磁盘等需求小,存储开销低。
    • 时效性:超融合架构中数据无需在多个系统间传递,延迟低,时效性高。
    • 简化管理:超融合方案使整个数据生态更容易管理,无需精通多种产品技术和程序语言,懂 SQL 即可操作。
  • 高可用
    • 在少数节点失效的情况下,YMatrix 的状态数据管理服务可以自动完成节点故障转移,无需人工参与,对业务透明。减少你的人工成本,降低人工风险。
  • 丰富的工具链生态
    • 兼容 Postgres / Greenplum 生态。覆盖数据迁移、写入、性能测试、备份、恢复等多种场景。
  • 支持标准 SQL
    • 支持 SQL:2016 标准,内容涵盖数据类型、标量表达式、查询表达式、字符集、数据分配规则、集合运算符等。
  • 完整支持 ACID 事务
    • 保证数据不重、不丢,保持数据一致,避免用户层复杂的错误检查处理,减少你的操作负担。

超融合架构图解


与其他架构的数据库相比,YMatrix 的超融合体现在融合了多种数据类型与数据操作,从而在一个数据库内实现多种数据类型 + 多场景的高性能支持;就 YMatrix 内部架构而言,其具有微内核特征。在公共基础组件之上,为不同业务场景需求提供不同的存储、执行引擎组合,实现不同的微内核,以得到针对性的写入、存储、查询性能提升。

下图描述了 YMatrix 内部的超融合架构组成及其功用:

以下部分详细介绍了 YMatrix 超融合架构的组成。

  • 公共基础组件 主要指数据库内部的公共资源,如内存管理、网络通讯包、基础数据结构等。
  • 存储引擎与执行引擎 指不同场景下 YMatrix 建表时可选用的存储引擎与执行引擎组合,每种组合可成为一个微内核。
  • 优化器 将 SQL 字符串转变为一个查询计划,根据选择的底层存储引擎提供的能力生成最好的计划。
  • 日志、事务、并发、锁管理、快照
    指 YMatrix 内核中提供并发控制,事务机制,故障恢复等通用功能的标准组件。
  • SQL 指 YMatrix 与客户端的标准 SQL 接口。
  • 认证、角色、审计、加密、监控、备份、恢复、高可用 指 YMatrix 支持的一些其他常见的数据库功能。

数据库架构图解


YMatrix 的高层数据库架构在经典的 MPP(大规模并行处理)数据库技术架构基础上有所发展。

下图描述了组成一个 YMatrix 数据库系统的核心组件以及它们如何一起工作:

以下部分详细介绍了 YMatrix 数据库系统中的各个组件及其功能。

  • 主节点(Master)
    • 负责建立与管理同客户端的会话连接。
    • 负责解析 SQL 语句并形成查询计划(Query Plan)。
    • 向 Segment 分发查询计划,监控查询执行过程,并收集反馈结果返回到客户端。
    • Master 不存储业务数据,只存储数据字典,即系统中使用的所有数据元素的定义及属性集合。
    • 在一个集群中,Master 只被允许有一个,可以采用一主一备,备用节点称为 Standby。
  • 数据节点(Segment)
    • 负责存储与分布式执行查询 SQL 语句。
    • 从 YMatrix 获得最佳性能的关键在于在大量能力相同的 Segment 之间平均地分布数据和工作负载,这样所有的 Segment 可以同时开始为一个任务工作并且同时完成它们的工作。
  • 客户端(Client)
    • 在此为泛称,泛指一切可以接入数据库的设备、客户端、应用程序等。
  • MatrixGate
    • MatrixGate 简称 mxgate,是 YMatrix 的高速流式数据写入工具,更多信息请见 mxgate
  • 网络层(Interconnect)
    • 指数据库架构中的网络层,是 Segment 之间的进程间通信以及这种通信所依赖的网络基础设施。
  • 状态数据管理服务 (Cluster Service)
    • Cluster Service 通过对节点状态信息的管理保证了数据库的高可用。YMatrix 使用 etcd 集群实现这一服务:当有一个数据库节点宕机时,etcd 调用自身存储的节点状态数据信息,确认当前健康节点成为新的主节点,从而通过提升此节点来保障整个集群可用。
      例如,如果是 Master 宕机,则其 Standby 提升为 Master;如果是 Standby 宕机,则对整体集群无影响。同理,如果 Primary 宕机,则其 Mirror 提升为 Primary;Mirror 自身宕机对整体集群无影响。更多信息请见故障恢复