数据库系统概念 第十八章 并行数据库
I/O并行:
划分技术:
1 轮转法
2 散列划分:
3 范围划分:
划分技术比较:
数据访问可以分类如下:
1 扫描整个关系
2 按相关性定位元组,点查询
3 定位出给定属性取值处于指定范围内的所有元组
不同划分技术支持访问类型的效率是不同的:
轮转法:
适合于希望对每个查询顺序地读整个关系的应用。点查询和范围查询的处理都很复杂,因为n张磁盘全部要用于查找
散列划分:
最适合于基于划分属性的点查询。对于顺序扫描整个关系也有用。不能很好地适用于非划分属性上的点查询,
也不能很好地回答范围查询。
范围划分:
很适合于在划分属性上的点查询和范围查询,缺点:如果查询范围有许多元组,那么就会有许多元组必须从少量磁盘中检索
出来,导致磁盘上的I/O瓶颈
偏斜处理:
当划分一个关系时(不是轮转法),元组的分布有可能发生偏斜,即某些分区中放置了很高百分比的元组,而其他分区中只有很少的元组
偏斜的表现形式如下:
1 属性值偏斜:
某些值出现在许多元组的划分属性中,在划分属性上取相同值的所有元组落入同一分区中,从而导致偏斜
2 划分偏斜
即使不存在属性值偏斜,划分也可能会出现负载不均衡。
平衡的范围划分向量:
排序→1/n,这种方法主要缺点是初始排序带来的额外I/O开销
通过为每个关系的每个属性创建和存储该属性值的频率表或直方图,可以降低由于构建平衡的范围划分向量而产生的I/O开销
查询间并行:
不同查询或事物彼此并行地执行,这种形式的并行可以提高事务吞吐量,但是单个事务的响应时间不会比事务以隔离方式运行更快
查询间并行的主要用处是扩展事务处理系统,使它能在每秒内能支持更大数量的事务
当一个处理器访问或更新数据时,数据库系统必须保证该处理器在它的缓冲池中拥有该数据的最新版本,称为高速缓存一致性问题
多种协议可用于保证高速缓存一致性,通常将高速缓存一致性协议与并发控制协议集成在一起,以减小开销
用于共享磁盘系统中的一个这样的协议如下:
1 事务对一个页面进行任何读或写访问之前,先用相应的共享或排他模式封锁该页面,一旦事务得到锁之后,从共享磁盘读取最新版本
2 当事务释放一个页面的排他锁之前,它将该页面刷新到共享磁盘中,然后释放封锁
查询内并行:
单个查询在多个处理器和磁盘上并行执行。对于加快运行时间长的查询的速度,采用查询内并行
单个查询的执行可以有两种不同的并行化方式:
1 操作内并行:并行地执行每个运算,如排序、选择、投影和连接,来加快一个查询的处理速度
2 操作间并行: 并行地执行一个查询表达式中的多个不同的运算,来加快一个查询的处理速度
操作内并行:
并行排序:
范围划分排序:
1 采用范围划分策略对关系中的元组进行重新分布,使得处于第i个范围的所有元组都发送给处理器i,存放在磁盘i中
每个处理器并行地从它的磁盘上读取元组,并将这些元组发送到它们的目的处理器
2 每个处理器对属于自己的分区进行排序,不与其他处理器交互
3 合并
并行的外部排序归并:
1 每个处理器对本地磁盘中的数据进行排序
2 系统对每个处理器排好序的归并段进行合并,得到最终的排序输出
a 系统将每个处理器排好序的分区范围划分到各处理器,系统用排序顺序发送元组使得各个处理器接收的都是排好序的元组流
b 每个处理器进行归并
c 合并
并行连接:
基于划分的连接:
只有在连接是等值连接而且在连接属性上用同样的划分函数对关系r和s进行划分的情况下,基于划分的连接技术才能正确工作
两种划分方法:
1 基于连接属性进行范围划分
2 基于连接属性进行散列划分
分片-复制连接:
非对称的分片-复制连接:
1 系统对一个关系进行划分
2 系统将另一个关系复制到所有处理器上
3 连接
4 合并
分片-复制连接:
系统将关系r划分为m个分区,将关系s划分为n个分区,处理器数量是m*n
当两个关系的规模基本相同时,分片-复制连接的代价通常比基于划分的连接要高,因为分片-复制连接必须至少要复制其中的一个关系
基于划分的并行散列连接
用相同的散列函数处理关系,映射到处理器上,处理器再用散列连接算法连接,合并
并行嵌套循环连接
其他关系运算:
1 选择
2 去重
3 投影
4聚集
运算的并行计算代价
1 启动代价
2 偏斜
3 对资源的竞争
4 组装代价
操作间并行:
流水线并行:
独立并行
查询优化:
并行系统设计
多核处理器的并行性

浙公网安备 33010602011771号