暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

理想的数据库架构是怎样的

百分 2024-01-25
68

从数据库角度看,大多企业关键业务的特点是:主要操作是交易型(OLTP),也要执行一些分析型(OLAP)操作。对于这样的应用,最理想的数据库架构是什么?是SQL Server/MySQL/PostgreSQL这样单机数据库?还是Oracle RAC这样的基于共享存储的集群?或者是OceanBase、TiDB这样的share nothing分布式集群?

在我看来,理想的数据库架构是:基于共享存储的集群 + 全闪分布式存储 + 算子下推。为什么?

1、为什么不是share nothing的分布式数据库?

分布式数据库的优点是:横向可扩展(scale-out)能力很强、总体聚合性能高、处理分析型负载的能力强。

缺点是:

(1)相对于集中式数据库来说,分布式数据库平均单节点事务处理能力比较低,主要原因是分布式事务处理流程更复杂;
(2)分布式数据库的架构更加复杂,运维成本比较高,精通分布式数据库的专家比较少,故障排查,性能调优等,都比较困难;
(3)分布式数据库对复杂的SQL语句支持不好,例如:触发器、存储过程、JOIN等等,企业应用往往更喜欢使用复杂的SQL语句;
(4)分布式数据库自己管硬盘,少了一层存储抽象,也丢失了很多能力。专业存储都支持快照、克隆、高速的远程复制等,让备份更方便。专业存储支持EC,比三副本每TB成本更低;

(5)存算一体架构,存储和计算强绑定,配比是固定的,无法单独对存储扩容,也不能单独扩容计算能力。

2、为什么不是单机版数据库?

相对于基于共享存储的数据库集群,对单机版数据库定期做冷备份,故障时用冷备数据来恢复业务,故障恢复时间比较长,可用性不高。

另外,PostgreSQL 和 MySQL 的高可用方案复杂,管理成本比较高。

3、为什么是全闪分布式存储,而不是全闪阵列?

全闪阵列是专用硬件,成本比较高,也有单一厂商锁定问题。一般来说,分布式存储也是软件定义存储(SDS),标准化服务器,价格透明,也没有被单一硬件厂商锁定的问题。

全闪阵列一般分为高端、低端等不同系列,高端阵列价格很高,低端阵列可扩展性比较差,

4、为什么需要算子下推?

多数企业应用,并不是只有单纯的交易型操作,也有一些分析型操作。基于共享存储的集群数据库不擅长完成大规模分析型任务,外部存储系统与运行数据库的主机之间带宽有限,如果能够把这些分析型任务拆分之后下发到分布式存储节点上去执行,存储节点把执行结果返回给主机,在主机和存储节点之间,不再需要很高的网络带宽。这将会大大提升执行效率,缩短执行时间。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论