数据库并行类型

2025年3月17日 | 阅读 3 分钟

并行性用于支持加速,因为通过提供更多资源(如处理器和磁盘)可以更快地执行查询。 并行性还用于提供向上扩展,即通过增加并行度来管理不断增加的工作负载,而不会增加响应时间。

并行数据库系统的不同架构是共享内存、共享磁盘、共享无和分层结构。

(a)水平并行性: 它意味着数据库跨多个磁盘进行分区,并且并行处理发生在特定任务(即,表扫描)中,该任务针对不同的数据组在不同的处理器上并发执行。

(b)垂直并行性: 它发生在各种任务之间。 所有组件查询操作(即,扫描、连接和排序)都以流水线方式并行执行。 换句话说,一旦记录可用,就从一个函数(例如,连接)输出。

Types of Database Parallelism

查询内并行性

查询内并行性定义了在多个处理器和磁盘上并行执行单个查询。 使用查询内并行性对于加速长时间运行的查询至关重要。

查询间并行性无助于此功能,因为每个查询都是按顺序运行的。

为了改善这种情况,许多 DBMS 供应商开发了利用查询内并行性的产品版本。

这种并行性应用将串行 SQL 查询分解为较低级别的操作,例如扫描、连接、排序和聚合。

这些较低级别的操作并发地并行执行。

查询间并行性

在查询间并行性中,不同的查询或事务彼此并行执行。

这种形式的并行性可以增加事务吞吐量。 与事务隔离运行相比,单个事务的响应时间并没有更快。

因此,查询间并行性的主要用途是扩展事务处理系统,以支持每秒更多的事务。

数据库供应商开始通过实施多服务器和多线程系统来利用并行硬件架构,这些系统旨在有效地处理大量客户端请求。

这种方法自然会导致查询间并行性,其中不同的服务器线程(或进程)同时处理多个请求。

查询间并行性已在 SMP 系统上成功实施,它提高了吞吐量并允许支持更多的并发用户。

共享磁盘架构

共享磁盘架构实现了 RDBMS 服务器之间共享整个数据库所有权的概念,每个 RDBMS 服务器都在分布式内存系统的节点上运行。

每个 RDBMS 服务器都可以从同一个共享数据库中读取、写入、更新和删除信息,这需要系统实施一种分布式锁管理器 (DLM) 的形式。

DLM 组件可以在硬件、操作系统和单独的软件层中找到,所有这些都取决于系统供应商。

从积极的一面来看,共享磁盘架构可以减少数据倾斜(数据分布不均匀)导致的性能瓶颈,并可以显着提高系统可用性。

共享磁盘分布式内存设计消除了大型 SMP 系统通常存在的内存访问瓶颈,并有助于减少 DBMS 对数据分区的依赖。

Types of Database Parallelism

共享内存架构

共享内存或共享所有内容的风格是在 SMP 硬件上实现 RDBMS 的传统方法。

它相对容易实现,并且非常成功,直到达到共享所有内容架构的可扩展性限制。

该技术的关键点在于,单个 RDBMS 服务器可以可能应用所有处理器、访问所有内存并访问整个数据库,从而为客户端提供一致的单系统映像。

Types of Database Parallelism

在共享内存 SMP 系统中,DBMS 认为执行 SQL 语句的多个数据库组件通过共享内存交换消息和信息来相互通信。

所有处理器都可以访问所有数据,这些数据分布在本地磁盘上。

共享无架构

在共享无分布式内存环境中,数据分布在所有磁盘上,并且 DBMS 在多个协同服务器上“分区”,每个协同服务器都位于并行系统的各个节点上,并且拥有其磁盘,从而拥有其数据库分区。

共享无 RDBMS 将 SQL 查询的执行并行化到多个处理节点上。

每个处理器都有其内存和磁盘,并通过互连网络交换消息和数据与其他处理器通信。

此架构专门针对 MPP 和集群系统进行了优化。

共享无架构提供接近线性的可扩展性。 处理器节点的数量仅受硬件平台限制(和预算限制),并且每个节点本身都可以是功能强大的 SMP 系统。

Types of Database Parallelism
下一个主题数据仓库工具