CMU 15445 12. 并发模型

背景

所有并行执行查询的DBMS都提供了以下几个好处:

  • 提高吞吐量和延迟性能。
  • 提高可用性。
  • 可能降低总体拥有成本(TCO)。

在并行或分布式DBMS中,数据库分布在多个资源上以提高并行性。
数据库“显示”为应用程序的单个数据库实例。单节点DBMS的SQL查询应该在并行或分布式DBMS上生成相同的结果。

并行DBMS:

  • 节点在物理上彼此靠近。
  • 节点与高速LAN连接。
  • 假设节点之间的通信成本快速可靠。

分布式DBMS:

  • 节点可以相距很远。
  • 节点使用公共网络连接。
  • 节点之间的通信成本较慢,故障也不容忽视。

并行的类型

  • Inter-Query:DBMS同时执行不同的查询。这可以提高吞吐量并减少延迟。查询更新数据库时,并发性很棘手。
  • Intra-Query:DBMS并行执行单个查询的操作。这减少了长时间运行的查询的延迟。

Process Models

DBMS Process Model定义了系统如何支持来自多用户应用程序/环境的并发请求。
DBMS由更多或更多的Worker组成,他们负责代表客户端执行任务并返回结果。

方法#1 - Process per Worker:

  • 每个worker都是一个单独的OS进程,因此依赖于OS调度程序。
  • 将共享内存用于全局数据结构。
  • 进程崩溃不会导致整个系统崩溃。

方法#2 - 进程池:

  • Worker使用池中任何可用的任何进程。
  • 仍然依赖于OS调度程序和共享内存。
  • 由于无法保证在查询之间使用相同的进程,因此这种方法可能对CPU缓存局部性不利。

方法#3 - 每个WORKER一个线程:

  • 具有多个工作线程的单个进程。
  • DBMS必须管理自己的计划。
  • 可能会或可能不会使用调度线程。
  • 虽然线程崩溃(可能)会导致整个系统崩溃,但我们必须确保编写高质量的代码以确保不会发生这种情况。

使用多线程体系结构的优点是每个上下文切换的开销更少,并且您不必管理共享模型。 每个工作者模型的线程并不意味着您具有查询内并行性(intra-query
parallelism)。
对于每个查询计划,DBMS必须决定执行的位置,时间和方式:
• 它应该使用多少个任务?
• 它应该使用多少个CPU核心?
• 任务执行的CPU核心是什么?
• 任务应在何处存储其输出?

多个QUERY的并行

如果都是读,比较简单。涉及到写,很难做对。要用到隔离或者锁。我会在之后的2PL,OCC,MVCC里介绍

单个QUERY的并行

此类并行性的目标是通过并行执行其运算符来提高单个查询的性能。 每个关系运算符都有并行算法。


image.png

Intra-Operator Parallelism

  • 查询计划的运算符被分解为独立实例,这些实例在不同的数据子集上执行相同的函数。
  • DBMS在查询计划中插入exchange运算符,以合并来自子运算符的结果。

交换运算符阻止DBMS在计划中执行它上面的运算符,直到它从子节点接收到所有数据


image.png

Inter-Operator Parallelism

  • 操作重叠,以便将数据从一个阶段传递到下一个阶段而不实现。这有时称为流水线并行。
  • 此方法未在传统关系DBMS中广泛使用。 并非所有算子都能在他们看到孩子们的所有元组之前发出输出。 这在流处理系统中更常见,该系统是在输入元组流上不断执行查询的系统。


    image.png

IO 并行

如果磁盘始终是主要瓶颈,则使用其他进程/线程并行执行查询将无法提高性能。因此,我们需要一种方法将数据库拆分为多个存储设备。

多磁盘并行

配置OS /硬件以将DBMS的文件存储在多个存储设备中。可以通过存储设备和RAID配置来完成。这对DBMS是透明的。它不能让Worker在不同的设备上运行,因为它不知道潜在的并行性。

基于文件的分区

某些DBMS允许您指定每个单独数据库的磁盘位置。缓冲池管理器将页面映射到磁盘位置。如果DBMS将每个数据库存储在单独的目录中,这在文件系统级别也很容易。但是,可能会共享日志文件。

逻辑分区

将单个逻辑表拆分为单独存储/管理的不相交的物理段。这种分区对于应用程序来说理想地是透明的。也就是说,应用程序应该能够访问逻辑表而无需关心事物的存储方式。

垂直分区:
  • 将表的属性存储在单独的位置(如列存储)。
  • 必须存储元组信息以重建原始记录。


    image.png
水平分区:
  • 根据某些分区键将表的元组划分为不相交的段。
  • 有不同的方法来决定如何分区(例如,散列,范围或谓词分区)。每种方法的功效取决于查询。


    image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容