Page 209 - 《软件学报》2021年第10期
P. 209

危剑豪  等:多查询共享技术研究综述                                                              3181


                        行器构成,数据在各执行器之间相互传递,这就需要良好的调度机制以使得各执行器之间能够合理地
                        分配资源,减少阻塞,保证程序的正常运行.因此,也有相关文章对该方向进行了探讨.
                    (4)  多查询共享技术的应用
                    目前,多查询共享技术应用较多的领域有数据仓库、连续查询、MapReduce                      [43] 计算框架等.该研究方向大致
                 是将自身查询引擎、数据存储以及查询的特点与共享查询技术结合起来进行特殊的优化,并设计一套基于本系
                 统的多查询共享方案.这类研究往往与某个领域的兴衰息息相关,例如:MapReduce计算框架的流行,也激励着许
                 多学者为 MapReduce 设计多任务共享方案;半结构化存储引擎的研究逐渐衰落,也导致多查询共享技术在该领
                 域应用的研究越来越少.

                 2    支持多查询的原型系统

                    在关系数据模型之下,几乎所有的多查询共享技术都围绕着以下两种原型系统进行设计.在本节中,我们将
                 详细介绍这两种原型系统的架构以及它们各自的优缺点.
                 2.1   基于全局查询计划的多查询原型系统
                    基于全局查询计划的多查询原型系统 GQP 目前较为主流,大部分支持多查询共享的系统均采用该原型系
                                                             [4]
                 统的设计模式,例如早期的 CScan        [23] 到最近的 SharedDB 和 DataPath [21] .
                    GQP 的核心思想如下:首先,将多个并发查询根据表达式合并规则进行合并,生成多查询解析树;之后,通过
                 多查询优化生成全局查询计划;最后执行该全局查询计划,并将结果返回给相应的客户端.该系统的查询执行流
                 程如图 3 所示,不同的颜色代表不同的线程.


                                    SELECT  FROM  WHERE
                          提交查询1                          解析1&转换1
                         Send query 1                                     解析树1
                                          查询1           Parse 1 & Convert 1
                        客户端1  Client 1   Query 1                         Parse tree 1
                                    SELECT  FROM  WHERE   解析2&转换2                        合并
                          提交查询2
                                                                          解析树2
                         Send query 2     查询2           Parse 2 & Convert 2  Parse tree 2  Merge
                        客户端2  Client 2   Query 2
                                    SELECT  FROM  WHERE
                          提交查询3                          解析3&转换3
                         Send query 3     查询3           Parse 3 & Convert 3  解析树3
                                         Query 3                         Parse tree 3
                        客户端3  Client 3                     解析器&转换器                         合并器
                                                          Parser & Convert                 Merger
                                          数据                            数据字典
                                          Data
                                                                      Data dictionary
                       ID  Name  Age  Country
                          查询结果1
                           Result 1
                       ID  Name  Age  Country   执行                            全局查询优化
                                               Evaluate                       Global optimize
                          查询结果2                               全局物理执行计划                      全局逻辑执行计划
                           Result 2                          Global physical plan           Global logical plan
                      ID  Name  Age  Country       执行引擎                             优化器
                          查询结果3                  Evaluation engine                  Optimizer
                           Result 3
                                        Fig.3    Query execution process based on GQP system
                                             图 3   基于 GQP 系统的查询执行流程
                    在该系统中,多个查询语句首先在查询分析和重写阶段进行公共子表达式的合并,生成一个全局查询计划
                 图,在查询路径选择过程生成一个最优或次优全局查询计划图.查询执行器执行该计划中的每个运算符.生成的
   204   205   206   207   208   209   210   211   212   213   214