80后聊架构:3小时搞透数据库扩展性架构实践(附免费学习资料) | 架构师之路

科技   2024-11-12 18:16   北京  
《架构师之路:架构设计中的100个知识点》
8.数据库扩展性架构实践

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

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

最早的数据库都是单机的,其最大的痛点是啥?
无法线性扩展。

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

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

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

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

如何来提升系统的并行能力呢?
最容易想到的,就是把无状态的逻辑计算部分,从DBMS进程内拆分出来,做成可扩展的微服务集群,实现“计算与存储分离”。

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

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

存储部分磁盘IO仍有集中的资源竞争,还有没有进一步的优化空间呢?
最容易想到的,就是把数据打散,分布到不同的数据库实例上,每部分数据享有单独的资源。

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

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

稍作总结,数据库扩展性scalability架构:
Shared Everything:数据库单机系统,资源竞争;
Shared DiskOracle Rac,计算与存储分离;
Shared Nothing水平切分复制集群,资源完全隔离;

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

补充阅读材料
《数据库扩展性架构设计

https://planetscale.com/learn/courses/database-scaling

一个针对数据库架构设计的免费课程,分3章20小节,每节10分钟左右,有图文有视频,数据库架构设计相关的知识点基本都涵盖了。

==全文完==

我将以短视频+图文+直播+星球社群的形式,系统性的分享架构设计中的100个相关知识点,欢迎感兴趣的童鞋关注。
画外音:均免费。
短视频:何时优化延时?何时优化吞吐量?

平台对专业内容不推流,大家多帮忙标星,以及点赞,转发,在看三连。感谢!

下一期,和大家聊聊一致性模型与工程实践。

架构师之路
架构师之路,坚持撰写接地气的架构文章
 最新文章