80后聊架构:3小时搞透数据库扩展性架构实践 | 架构师之路

数据库
有看了短视频的同学吐槽:“讲了这么多scalability理论,也不知道究竟有什么用”。今天就和大家聊聊scalability理论,在数据库架构设计上的实践。

有看了短视频的同学吐槽:“讲了这么多scalability理论,也不知道究竟有什么用”。今天就和大家聊聊scalability理论,在数据库架构设计上的实践。

我还是那句话:思路比结论重要。

最早的数据库都是单机的,其最大的痛点是啥?

无法线性扩展。

磁盘能力无法线性扩展,内存能力无法线性扩展,计算能力无法线性扩展。

架构师们称之为“Shared Everything”架构。

如上图所示,DISK/MEM/CPU 都耦合在一个DBMS进程内,必须部署在一台服务器上,完全处于竞争态,无法线性扩展,并行处理较差。

数据库单机部署,就是典型的“Shared Everything”架构。

如何来提升系统的并行能力呢?

最容易想到的,就是把无状态的逻辑计算部分,从DBMS进程内拆分出来,做成可扩展的微服务集群,实现“计算与存储分离”。

如上图所示:

  • CPU逻辑计算拆分出了独立的进程,可以集群部署,能够线程扩展;
  • DISK/MEM 仍耦合在一个进程内,仍处于竞争态,无法线性扩展;

Oracle Rac,就是典型的“Shared Disk”架构,核心思路是“计算与存储分离”。

存储部分磁盘IO仍有集中的资源竞争,还有没有进一步的优化空间呢?

最容易想到的,就是把数据打散,分布到不同的数据库实例上,每部分数据享有单独的资源。

如上图所示:

  • 把整体数据存储分为了N份,每份之间没有交集;
  • 每份数据的 DISK/MEM/CPU 都在一个DBMS进程内,部署在一台服务器上;
  • 每份数据的资源之间的没有竞争;

没错,这就是“水平切分”,它是典型的”Shared Nothing”架构。

稍作总结,数据库扩展性scalability架构:

  • Shared Everything:数据库单机系统,资源竞争;
  • Shared Disk:Oracle Rac,计算与存储分离;
  • Shared Nothing:水平切分,复制集群,资源完全隔离;

补充一句,这三类架构并没有解决Availability与Consistency相关的问题,这两类问题是通过其它架构方案解决的,后面再讲。

责任编辑:赵宁宁 来源: 架构师之路
相关推荐

2024-11-13 06:03:45

架构设计架构系统

2024-11-13 14:52:58

2024-11-14 15:00:00

线程架构吞吐量

2024-11-14 07:30:00

架构吞吐量

2010-03-18 10:29:11

Hyper-V

2020-10-28 08:07:58

TCP负载均衡网络协议

2017-05-08 08:44:07

TCP负载均衡扩展性架构

2018-07-03 15:46:24

Java架构师源码

2019-07-23 18:15:26

技术大数据数据库

2021-10-25 09:41:04

架构运维技术

2013-04-19 15:12:17

架构师WEB架构师

2023-08-20 12:21:18

软件开发架构设计

2020-08-05 08:23:19

架构Java微服务

2009-02-23 11:18:06

J2EE架构师Java

2018-02-06 09:58:48

架构师MVCiOS

2022-06-15 10:04:51

存储选型MySQL

2020-11-25 09:56:48

架构运维技术

2012-04-09 09:41:24

WEB架构师

2022-08-29 09:14:01

战略设计核心域支撑域

2010-10-28 15:37:36

高可用架构
点赞
收藏

51CTO技术栈公众号