探秘数据库中的并行计算技术应用
内容提要
本文介绍了数据库中的并行计算技术应用,包括分布式并行处理架构、MPP和SMP并行。MySQL和PostgreSQL应用了Shared Nothing和SMP技术。GaussDB进一步提升了分布式处理性能。
延伸解读
Shared Nothing 架构的历史地位与影响
文章指出,Shared Nothing 架构因在成本、扩展性和可用性方面的优势,自 1985 年 Michael Stonebraker 的论文发表后成为主流设计思路。最早的商业产品是 1984 年 Teradata 的 DBC/1012,它通过增加 AMP 数量来提升容量和性能,帮助 Teradata 赢得大客户。这反映了 Shared Nothing 在并行数据库发展中的奠基作用,其设计思想至今仍影响 MPP 数据库。
MPP 与 SMP/NUMA 的架构差异
文章对比了 MPP、SMP 和 NUMA:MPP 由多台服务器节点通过互联网络连接,各节点只访问本地资源,节点间 Shared Nothing;SMP 所有资源(内存、I/O)共享,扩展能力有限;NUMA 是单台物理服务器内多个 CPU 模块通过互联模块连接,访问本地内存速度远高于其他节点。NUMA 和 MPP 的关键区别在于 NUMA 是一台物理服务器,而 MPP 是多台。
开源数据库的并行技术实现路径
MySQL 和 PostgreSQL 在 Shared Nothing 和 SMP 并行上采取了不同路径。Shared Nothing 方面,两者主要依赖中间件(如 GoldenDB、TDSQL、Postgres-XL、citus 等)构建分布式集群,但文章指出这类架构存在功能降级、全局事务和高可用等短板。SMP 方面,MySQL 8.0.14 引入并行查询,由 InnoDB 提供并行扫描和 DDL 线程控制;PostgreSQL 从 9.6 开始支持并行顺序扫描和聚合,11 版本增加更多并行算子。
并行技术的演进与 GaussDB 的定位
文章提到,随着单台服务器硬件资源增强(几十至上百核),仅靠 Shared Nothing 横向扩展无法充分挖掘硬件潜力,因此业界发展 SMP 并行以提升单机纵向扩展能力。此外,SIMD 指令集可进一步压榨芯片性能,但文章未展开。GaussDB 结合了 Shared Nothing 和 SMP 技术,并针对实际场景添加特色实现,以进一步提升分布式处理性能,具体细节将在下一篇文章说明。
Q&A
什么是并行计算技术,它在数据库中有什么应用?
并行计算技术是通过多台服务器和多核处理器实现任务并行化处理,从而提高系统性能。在数据库中,它用于分布式并行处理架构、MPP和SMP并行等。
Shared Nothing架构的优势是什么?
Shared Nothing架构在成本、扩展性和可用性方面具有优势,因此成为主流设计思路。
MySQL和PostgreSQL如何实现并行处理?
MySQL通过中间件和NDB Cluster实现Shared Nothing,PostgreSQL则使用开源中间件如Postgres-XL和Postgres-XC,并在9.6版本后支持并行处理。
MPP和SMP架构有什么区别?
MPP是多台服务器节点通过互联网络连接,各服务器之间共享本地资源,而SMP是单台服务器中所有资源共享,扩展能力有限。
GaussDB在并行处理方面有什么特色?
GaussDB结合实际场景,进一步提升了分布式处理性能,采用了Shared Nothing和SMP技术。
SMP并行技术如何提升数据库性能?
SMP并行技术通过多线程多子任务并行执行,充分高效地利用系统计算资源,从而提升数据库性能。