集中分布式一体化架构

集中分布式一体化

更新时间:

文本介绍 PolarDB-X 集中分布式一体化的相关概念。

背景

选择集中式数据库还是分布式数据库一直是数据库选型讨论的热点。对于大部分中小企业来说,集中式数据库就能满足其日常的业务需求,其资源规模适中,成本适中,运维起来也比较简单。分布式数据库具备较高的性能,能够处理复杂的业务场景,满足客户对高吞吐、大存储、低延时、易扩展和超高可用数据库服务的需求。但是,分布式数据库的价格较高,技术门槛和运维成本都较高,对大部分中小企业来说其适用范围比较窄。

然而中小企业可能也会出现业务突增的情况,需要高并发高吞吐的数据库来处理业务,对数据库的扩展性有一定的要求。或者随着业务规模的发展,使用集中式数据库的业务也会有分布式扩展的需求。

因此 云原生数据库 PolarDB 分布式版 (简称: PolarDB-X )推出集中分布式一体化的能力,在一套数据库上兼具分布式数据库的可用性与扩展性和集中式数据库的功能与性能。

核心能力

在集中分布式一体化数据库中,存储节点被独立出来作为集中式形态,完全兼容单机数据库形态。当业务增长到需要分布式扩展的时候,架构原地升级成分布式形态,分布式组件无缝对接到原有的存储节点,不需要数据迁移,也不需要应用侧做改造,即可享受分布式带来的可用性与扩展性。

集中分布式一体化的产品形态

PolarDB-X 的产品主售形态分为 标准版(集中式) 和 企业版(分布式) ,技术架构如下:

image
  • 标准版(集中式)

    PolarDB-X 标准版是集中式形态,由分布式中的存储节点(DN)多副本单独提供服务。标准版最小支持 2 核 4 GB 规格 。

    image

    PolarDB-X 标准版采用 Paxos 的多数派复制协议,相比于 MySQL 的主备复制协议,能保证副本间的强一致性,满足金融级 高可用(RPO=0、RTO<10 秒) 。同时自研 Lizard 分布式事务引擎,相比于原生 MySQL 分布式引擎,具有更可靠的高可用和 35%左右的性能提升。

  • 企业版(分布式)

    PolarDB-X 企业版是分布式形态,包含完整的分布式组件(计算节点(CN)、存储节点(DN),日志节点(CDC),列存节点(COLUMNAR)和元数据中心(GMS))。 PolarDB-X 企业版高度兼容 MySQL 生态,支持强一致分布式事务和分布式并行查询,支持分布式水平扩展。技术架构如下:

    image

标准版升级至企业版

随着业务的高速发展, PolarDB-X 标准版可能会遇到集中式的瓶颈,例如单表过大导致查询效率下降、高并发查询导致数据库长期处于高负载状态、无法满足分析型需求等,此时对数据库做垂直升配,已经无法满足新的需求,且垂直升配后性价比也不高。

PolarDB-X 提供 标准版升级至企业版 的能力,借助分布式特性和 HTAP 功能来解决集中式数据库上遇到的问题,同时满足使用单机 MySQL 数据库的体验与性能。

image
说明
  • 标准版和企业版使用一套 DN,升级过程直接为标准版增加 CN、CDC、GMS 等分布式的组件,无需数据迁移。无论是切换还是回滚,都是一份数据,不用担心数据错乱。

  • 集中式表原地转换成分布式单表,再结合 Online DDL 的能力,便可以拥有分布式的扩展性。

  • 标准版升级至企业版 后,连接串不变,无需业务变更,升级过程仅存在分钟级连接闪断。

  • 什么是透明分布式 , 深度兼容集中式 MySQL 生态 ,无需应用改造。

  • 为了解决分布式特性带来的额外性能开销的问题, PolarDB-X 结合 表组与分区组 的技术,保证了关联数据按照集中式的形态分布,从而对分布式事务和复杂查询进行优化,在单分区场景下对齐集中式形态的性能。

存储资源池与弹性规格

PolarDB-X 在面向分布式线性扩展设计上,针对集中式的能力,引入存储池和 Locality 的概念,可以按需进行分布式扩展。

  • 存储资源池:将 DN 划分为互不交叉的资源池,支持在单个存储池维度添加或减少 DN。

  • Locality:将数据库中的对象(数据库、表、分区)通过 Locality 属性关联到不同的资源池。

image
说明

结合两个典型场景介绍存储资源池与 Locality 是如何按需进行分布式扩展的:

  • 场景 1:如果原来的集中式业务是多租户的 SAAS 系统,从标准版升级到企业版后,可以通过垂直拆分的方式,将租户打散到不同的存储资源池,每个资源池仍维持单表的形式,实现分布式的扩展,如上图中的存储资源池 1 所示。

  • 场景 2:如果原来集中式电商业务,随着用户量和并发量的增加,需要进行水平拆分,将集中式的数据水平拆分打散到一个资源池的多个 DN 节点上实现扩展的目标,如上图中的存储资源池 3 所示。

集中式的数据在分布式形态下,利用 Online DDL 的能力需进行分布,示意图如下:

image
说明
  • 原始业务的多个单表:可以继续保持单表的形态,演进为分布式的垂直拆分,通过扩展单个存储池内的分布式节点后,可以实现多个单表在存储池多 DN 上均衡分布。

  • 原始业务的大表:可以在线变更为分布式表,演进为分布式的水平扩展,通过扩展单个存储池内的分布式节点后,分布式表的分区会自动进行数据均衡调度。

  • 原始业务的多张表:大表在线变更为分布式表,单表继续保持并划分到多个存储池,整体演进为分布式的垂直拆分、水平拆分的组合场景,通过资源扩展实现线性能力。

  • 对于每个 DN,由于数据分布的不同,实际对资源的需求也有区别。可以通过 数据节点管理 对每个 DN 节点单独升降配,实现灵活的弹性规格,提升整体的资源利用率。