基本原理

水平分表

在云数据库 DRDS 中,一张分布式表(table)会按照指定的 partition key 和 partition mode(一般是hashmode)被水平拆分成多个数据片(称为tablet),分散在多个数据存储节点(tsc)中。分布式表主要解决单机容量问题,并且通过平行写入提升整体的写入能力。开发时不需要再考虑数据如何拆分和数据路由等问题,只需要设定 partition key 即可实现水平分表的能力。

并行计算

对于一次查询大量数据的场景,云数据库 DRDS 支持把一次大数据量查询分散到多个存储节点上小数据量查询,并对数据结果进行合并聚合返回给用户,这样可以提升大结果集大数据量查询的性能。

读写分离

云数据库 DRDS 首先对 query 拆分成多个子句并路由到一个或多个存储节点上,每个存储节点实现透明的读写分离策略,写请求统一到存储节点主库,读请求被分流到多个只读节点上,提升集群的读能力。一个事务内的读请求,不会被读写分离,而是和写请求一样在主库上执行。

负载均衡

如果一个存储节点存在多个只读节点,那么只读节点间实现负载均衡,避免单个节点或少数节点出现负载过大。

高可用

云数据库 DRDS 中每个存储节点主库都有一个热备节点,当检测到主库服务异常或不可用情况,会启动故障切换流程,保证服务高可用。

可扩展

云数据库 DRDS 支持三种类型的扩展:

  • 存储节点套餐扩展,通过提升存储节点磁盘、CPU、内存,获得单节点更大存储空间和性能。
  • 只读节点扩展,通过增加只读节点,获得整个集群更高的读吞吐能力。
  • 分片扩展,通过对数据拆分和增加分片,使得整个集群写能力和存储容量更高。