第十五章 并行数据库系统
1. 并行数据库系统中有哪几种常用的数据划分方法?
正确答案: 答案要点: 划分数据时可以依据一个属性的值,也可以同时依据多个属性的值,前者称为一维数据划分,后者则称为多维数据划分。 一维数据划分方法相对比较简单,常用的数据划分方法有: •轮转法 •Hash法 •值域划分法 此外,还有用户定义的划分法、模式划分法、Hybrid_Range划分法等。 具体说明可参考《概论》15.5.1。
2. 什么是并行数据库系统的伸缩比和加速比?
正确答案: 答案要点: 线性伸缩比是指当任务扩大N倍,系统处理和存储能力也扩大N倍时系统性能不变。 线性伸缩比= (小任务在小系统上的运行时间)/(大(N倍)任务在大任务上的运行时间)=1 线性加速比是指当任务不变而系统处理和存储能力扩大N倍时,系统性能也提高N倍。 线性加速比= (小系统上执行一个任务的时间)/(大(N倍)系统上执行同一任务的时间)=N
3. 什么是并行数据库系统?
正确答案: 答案要点: 并行数据库系统是在并行机上运行的具有并行处理能力的数据库系统。并行数据库系统是数据库技术与并行计算技术相结合的产物。
4. 试述并行数据库系统的研制目标。
正确答案: 答案要点: 并行数据库系统该实现如下目标: 高性能 并行数据库系统通过将数据库管理技术与并行处理技术有机结合,发挥多处理机结构 的优势,提供比相应的大型机系统更高的性能价格比和可用性。 高可用性 并行数据库系统可通过数据复制来增强数据库的可用性。 可扩充性 系统通过增加处理和存储能力来平滑地扩展性能,应具有线性伸缩比和线性加速比。 具体说明可参考《概论》15.2。
5. 并行数据库系统有哪几种体系结构?试比较它们的特点。
正确答案: 答案要点:从硬件结构来看,根据处理机与磁盘、内存的相互关系可以将并行计算机分为三种基本的体系结构: •共享内存结构(SM); •共享磁盘结构(SD); •无共享资源结构(SN)。 此外还有混合结构,即整个系统是Shared_Nothing结构而每个结点是Shared_Memory结构。这种结构综合了SM与SN的优点。 (1) SM并行结构 SM并行结构由多个处理机、一个共享内存(主存储器)和多个磁盘存储器构成。多处理机和共享内存由高速通讯网络连接,每个处理机可直接存取一个或多个磁盘,即所有内存与磁盘为所有处理机共享。 (2) SD并行结构 SD并行结构由多个具有独立内存的处理机和多个磁盘构成。每个处理机都可以读写任何磁盘。 (3) SN并行结构 SN并行结构由多个处理节点构成。每个处理节点具有自己独立的处理机、内存和磁盘存储器。多个处理机结点由高速通信网络连接。 并行数据库系统体系结构的详细说明可参考《概论》15.3.1、15.3.2、15.3.3。
6. 阐述并行数据库系统中并行粒度的概念。
正确答案: 答案要点: 并行粒度是用来刻画查询执行的并行程度,有四种并行粒度: 不同用户事务间的并行性、同一事务内不同查询间的并行性、同一查询内不同操作间的并行性和同一操作内的并行性。 具体说明可参考《概论》15.4.1。
7. 举例说明水平并行和垂直并行的概念。
正确答案: 水平并行化指:互相独立的多个操作或者一个操作内互相独立的多个子操作分别由不同的处理机并行执行的形式。 如果两个操作OP1和OP2之间没有数据的依赖关系,这两个操作可以独立地并行执行。例如图(a)中对不同表的扫描操作Scan S和Scan P,由不同的处理机并行执行就是水平并行化的实例。 如果把操作的输入数据分解为多个子集,该操作就可以分成多个独立的子操作,每个子操作只处理一部分数据,这种针对单个操作的并行被称为操作内并行。例如图(c)中的Scan S和Sort S都被分解成三个子操作,每个子操作只对部分数据进行扫描和排序。 如果一个操作的输出流是另一个操作的输入流,这两个操作之间就存在着流水线并行性,操作间流水线并行又被直观地称为垂直并行。垂直并行化也就是指存在流水线方式依赖关系的操作分别由不同处理机并行执行的形式。例如图(b)中的四个操作都可以采用流水线方式并行执行。 详细说明可参考《概论》15.4.2。
8. 并行数据库系统中并行查询优化的必要性和困难何在?
正确答案: 答案要点: 查询优化始终是数据库管理系统的重要组成部分,查询优化的目标在于提高执行效率。由于并行数据库环境中存在多个处理机,并行查询优化应尽可能地使每个操作并行处理,充分利用系统资源提高并行度来达到提高系统性能的目的。 并行查询优化面临的两大困难在于: (1) 执行计划的搜索空间十分庞大 (2) 执行时的某些系统参数比如CPU数目、内存大小在优化时是未知的。 具体说明可参考《概论》15.4.4。
9. 试述数据划分在并行查询处理中的重要性。
正确答案: 答案要点: 数据划分是并行查询处理的重要基础。研究和实际表明,数据划分对于并行数据库系统的性能具有很大的影响。 通过将每个关系的数据划分为小的片段,并把这些小片段均匀地分布在系统的多个磁盘驱动器上可以降低数据的聚集度,使得每个操作能够由多个处理机来承担,从而减少查询的响应时间并提高整个系统的吞吐量。若负载不均,往往会造成多个处理机结点能力的浪费。所以使用正确的数据分布算法以达到负载均衡是并行数据库中数据分布的关键问题。 具体说明可参考《概论》15.5.1。
10. 试述并行数据库系统与分布式数据库系统的区别。
正确答案: 答案要点: 分布式数据库系统与并行数据库系统特别是与SN结构的并行数据库系统具有很多相似点: 它们都是用网络连接各个数据处理结点; 整个网络中的所有结点构成一个逻辑上统一的整体; 用户可以对各个结点上的数据进行透明存取等等。 分布式数据库系统和并行数据库系统的应用目标和具体实现方法不同,使得它们具有很大的不同: 应用目标不同 并行数据库系统的目标是充分发挥并行计算机的优势,利用各个处理机结点并行地完成任务,提高系统的整体性能。 分布式数据库系统的目标是实现场地自治和数据的全局透明共享,而不要求利用网络中的各个结点来提高系统处理性能。 实现方式不同 在并行数据库系统中各结点间采用高速网络互连,结点间的数据传输代价相对较低,因此当某些结点处于空闲状态时,可以将工作负载过大的结点上的部分任务通过高速网传送给空闲结点处理,从而实现系统的负载平衡。 在分布式数据库系统中,各结点间一般采用局域网或广域网相连,网络带宽较低,点到点的通信开销较大,因此在查询处理时一般应尽量减少结点间的数据传输量。 各结点的地位不同 在并行数据库系统中,不存在全局应用和局部应用的概念。各结点是非独立的。 而在分布式数据库系统中,各结点除了能通过网络协同完成全局事务外,更重要的是各结点具有场地自治性。