全部产品
云市场

DRDS 扩展性原理

更新时间:2019-05-14 09:21:52

并发和存储容量扩展性

扩展性本质在于分而治之,DRDS 通过水平拆分(分库分表)垂直拆分,将数据分散到多个 RDS for MySQL 以获取数据读写并发和存储容量的分散, 同时 DRDS 层本身是无状态的,如同业务应用,简单扩展节点数量应对并发 SQL 负载。

水平拆分(分库分表)

数据放置按照一定的规则进行计算和路由,从而达到分散到多个 RDS for MySQL 目的,实际上 DRDS 具备相当丰富的算法来应对各种场景的负载。

sharding_argorithem_demo

sharding_deploy

垂直拆分

垂直拆分是具备业务语义的,比如和交易紧相关的表组成一个交易库,和用户紧相关的表组成一个用户库,和商品紧相关的表组成一个商品库,分别放置在不同或相同的 RDS for MySQL 实例上,也可以针对特别大的库进行水平拆分。

DRDS 垂直拆分能力将不同 RDS for MySQL 实例下的业务库汇聚到一个连接下,业务可以通过一个连接,操作不同库的数据,也可以横跨多个 RDS 实例数据库进行联合查询及事务写入操作。

vertical_split

计算扩展性

无论是水平拆分,还是垂直拆分,DRDS 常常碰到需要对远超单机容量数据进行复杂计算的需求,这些 SQL 包括多表 join、多层嵌套子查询、grouping、sorting、aggregation 等组合。

dag_computer_new

针对这类在线数据库上复杂 SQL 的处理, DRDS 额外扩展了单机并行处理器(SMP,Symmetric Multi-Processing) 和多机并行处理器(DAG),前者完全集成在 DRDS 内核中 , 后者 , DRDS 构建了一个计算集群 ,运行时动态获取执行计划进行分布式计算,通过增加节点提升计算能力。

目前多机并行数据处理的 DRDS 实例以分析型只读实例产品形态提供给业务使用。

read-only_instance