MPP 架构

我们将通过本文档来介绍 YMatrix 在物理层面采用的数据库技术架构:MPP(Massive Parallel Processing,大规模并行处理)架构。

1 MPP 架构是什么?

MPP 是指在数据库非共享(Shared Nothing)集群中,每个节点(Node)都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点(Segment Node)通过专有网络或者商业通用网络互相连接,彼此协同计算,提供数据库服务。非共享数据库集群具备可扩展性、高可用、高性能、高性价比等优势。

简单来说,MPP 架构是将任务并行地分散到多个服务器和节点上,在每个节点的计算完成后,将结果汇总在一起得到最终的结果。

2 MPP 架构的无共享特性指的是什么?

从数据技术架构的角度来说,分布式数据库架构分为完全共享(Shared Everything)、无共享(Shared Nothing)和共享磁盘(Shared Disk):

  • Shared Everything 一般针对单个主机,安全透明共享 CPU、内存、I/O,但并行处理能力不足。
  • Shared Disk 是一种用于分布式计算的架构,其中节点共享相同的磁盘设备,但每个节点都有自己的私有内存。这些磁盘具有活动节点,可以在出现任何故障时共享内存。在此体系结构中,用户可以从所有集群节点访问磁盘。该架构能够快速适应不断变化的工作负载。它使用强大的优化技术。
  • Shared Nothing 是一种用于分布式计算的架构,其中每个节点都是独立的,不同节点通过网络互连。每个节点都由处理器、主内存和磁盘组成。该架构的主要动机是消除节点之间的竞争。此架构中节点不共享内存或存储,磁盘也具有无法共享的单独节点,以便在大容量和读写环境中有效工作。

3 MPP 架构的特点是什么?

MPP 架构特点如下:

  • 不需要将中间数据写入磁盘。
  • 任务并行执行。
  • 数据分布式存储(本地化)。
  • 分布式计算,所有数据节点(Segment)角色一样。可以提升并行计算能力。
  • Master 的稳定性,可用性影响整体的性能。
  • 横向扩展,支持集群节点的扩容。
  • 木桶效应,如果一个节点总是执行的慢于集群中其他的节点,整个集群的性能就会受限于这个故障节点的执行速度。