📜  数据仓库数据库并行性的类型

📅  最后修改于: 2020-12-30 00:56:19             🧑  作者: Mango

数据库并行性的类型

并行用于支持加速,因为提供了更多资源(例如处理器和磁盘),因此查询执行速度更快。并行性还用于提供扩展,其中通过增加并行度来管理不断增加的工作负载而无需增加响应时间。

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

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

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

查询内并行

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

查询间并行性在此函数无济于事,因为每个查询都按顺序运行。

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

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

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

查询间并行

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

这种并行形式可以提高事务吞吐量。单个事务的响应时间不会比独立运行时的响应时间快。

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

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

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

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

共享磁盘架构

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

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

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

从积极的方面来看,共享磁盘体系结构可以减少由于数据偏斜(数据分布不均)导致的性能瓶颈,并且可以显着提高系统可用性。

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

共享内存架构

共享内存或全部共享样式是在SMP硬件上实现RDBMS的传统方法。

它实现起来相对简单,并且在碰到共享所有架构的可伸缩性限制时一直非常成功。

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

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

所有处理器都可以访问所有数据,这些数据跨本地磁盘进行了分区。

无共享架构

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

无共享的RDBMS可以在多个处理节点之间并行执行SQL查询。

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

该体系结构专门针对MPP和群集系统进行了优化。

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