使用克隆选择过程生成最优分布式查询计划
摘要
本文提出了一种受生物启发的方法,可从大规模搜索空间中选择成本最小的最优Top‐k查询计划。我们还表明,所提出的方法在分布式查询计划生成(DQPG)中计算Top‐k查询计划的传输成本方面更具优势。
关键词
克隆选择、选择、人工免疫系统、遗传算法
1 引言
由于分布式数据库管理系统的复制特性,响应从不同的节点收集。这些响应作为查询计划的输出被收集,而查询计划的数量随着分布式SQL查询中关系数R的增加呈指数级增长[1]。正因如此,DQPG成为一个NP难问题,必须为查询计算出最高效的执行计划。根据对DQPG问题的各种分析,需在指数级搜索空间中选择计算资源消耗最少的最优执行策略,其中执行成本是I/O成本、CPU成本和通信成本的总和[2]。在所有成本中,通信成本被视为最主要的因素。早期曾尝试使用进化算法求解DQPG问题以获得次优解[3, 6],遗传算法GA利用邻近性原则生成最优执行计划[4]。
本文的结构安排如下:第2节讨论问题的表述,接着第3节介绍所提出的方法。第4节展示了所提方法与遗传算法的基于图表的对比,最后第5节给出结论。
2 问题描述
为了理解DQPG,让我们考虑一个用户查询,该查询由六个关系组成,例如T1、T2、T3、T4、T5和T6,这些关系分布在DDBS中的各个站点上,例如N1、N2、N3、N4、N5和N6。关系及其对应的承载站点如表1所示。单元格中的条目‘1’表示相应节点上存在该关系,‘0’则表示不存在。例如:E1执行计划用关系集合表示为 {T1, T2, T3, T4, T5, T6},承载这些关系的相应节点为{2, 1, 1, 4, 3, 6},如表2所示。
表1. 关系与节点矩阵,其中列表示的1、2、…6分别对应N1、N2、…N6,行表示的1、2、…6分别对应T1、T2、…T6。
| T | N1 | N2 | N3 | N4 | N5 | N6 |
|---|---|---|---|---|---|---|
| T1 | 1 | 0 | 1 | 0 | 1 | 1 |
| T2 | 0 | 0 | 1 | 0 | 1 | 0 |
| T3 | 1 | 0 | 1 | 0 | 1 | 1 |
| T4 | 0 | 0 | 1 | 1 | 0 | 0 |
| T5 | 0 | 1 | 0 | 1 | 0 | 0 |
| T6 | 1 | 1 | 0 | 0 | 0 | 1 |
表2. 两代连续的查询计划
| QPN | 查询计划 | QPC | 下一代查询计划 | QPC |
|---|---|---|---|---|
| E1 | {2,1,1,4,3,6} | 0.780 | {6,5,5,5,5,6} | 0.278 |
| E2 | {3,2,3,4,4,5} | 0.860 | {4,4,1,4,4,5} | 0.389 |
| E3 | {4,4,5,4,4,5} | 0.444 | {4,4,5,4,4,5} | 0.444 |
| E4 | {6,5,5,5,5,6} | 0.444 | {6,5,5,5,5,6} | 0.444 |
| E5 | {2,1,3,4,5,6} | 0.830 | {4,4,5,4,4,5} | 0.444 |
| E6 | {2,2,5,5,2,5} | 0.500 | {4,4,5,5,4,5} | 0.500 |
| E7 | {6,2,3,4,5,6} | 0.780 | {6,2,3,4,5,6} | 0.500 |
| E8 | {3,4,1,5,2,6} | 0.830 | {4,5,3,5,3,5} | 0.611 |
| E9 | {4,5,3,5,3,5} | 0.611 | {4,5,3,5,3,5} | 0.611 |
| E10 | {6,1,5,4,5,6} | 0.720 | {6,2,5,5,5,6} | 0.611 |
启发式方法:此处使用的两种启发式方法是参与用户查询的关系数量以及包含这些关系的节点的集中程度。邻近性取决于参与查询计划的节点数量,查询计划中涉及的节点数越少,通信成本就越低。在此,我们的目标是为SQL查询计算最优成本的查询计划,而通信成本等同于计算查询接近成本(QPC)。其中,
$$
QPC = \sum_{i=1}^{M} N_i \times R \times (1 - N_i)
$$
3 提出的方法:M‐DQPGCLNG
一种基于克隆选择的M‐DQPGCLNG方法用于解决DQPG的问题在此进行说明。
符号说明:RxN:关系‐节点矩阵;P:种群大小;GP:查询(执行)计划的总代数;R:查询计划中的关系数;N:承载关系的节点数;b:克隆率;n:前n个高适应度(较低QPC)查询计划。其中Cn、Clonei和QPC分别表示克隆总数、第ith个最优查询计划的克隆以及查询接近成本。
第一步从RxN关系和P初始化抗体执行计划的种群,如表2所示。这些执行计划的适应度(通信成本)使用QPC函数计算,如[5]中的公式1所示。在步骤3中,选择QPC较低的前‘n’个抗体执行计划。步骤4计算要从前‘n’个执行计划生成的克隆总数,其中b用作归一化常数。步骤5使用轮盘赌选择算子[7]将总Cn克隆分配给选出的前‘n’个执行计划,该算子以与查询计划的适应度值成正比的概率随机选择ith执行计划,并为其生成克隆。在步骤6中,应用适应度比例选择[7]对步骤5中计算出的克隆执行计划进行变异,变异率为常数。适应度更高的执行计划的变异概率较低,反之亦然。在同一步骤中,再次使用步骤2的函数计算变异后克隆执行计划的适应度。在步骤7中,将所有变异后的克隆添加到同一代种群的抗体执行计划中,并选择前‘P’个执行计划作为下一代的新种群,如表2所示。除了前两个算法外,每个函数将在代数中重复执行,直到根据实验部分中解释的不同参数获得最适查询计划种群。
4 实验结果与分析
对遗传算法和M‐DQPGCLNG进行了仿真研究,通过绘制不同关系集下代数与通信成本(QPC)之间的关系图,基于多种参数,例如遗传算法和M‐DQPGCLNG的变异率分别为{0.05}和{0.05, 0.01}。M‐DQPGCLNG采用的克隆率为{0.99, 0.98},而遗传算法的交叉率为{0.8}。遗传算法和M‐DQPGCLNG的Top‐k查询计划均为{0.4, 0.6}。仿真过程执行了400代。所提出的方法使用MATLAB 7.9 (R2009a)实现,结果图形在MS-access中绘制。
12个关系的遗传算法与M‐DQPGCLNG对比 (b) 16个关系的遗传算法与M‐DQPGCLNG对比 (c) 20个关系的遗传算法与M‐DQPGCLNG对比 (d) 24个关系的遗传算法与M‐DQPGCLNG对比)
在图1中,读者可以看到,随着代数的增加,QPC值逐渐下降。图中的蓝线表示遗传算法,另一条线表示M‐DQPGCLNG在不同参数下的表现。这些图形表明,所提出的方法比遗传算法的传输成本低约5–15%。从这些图形结果可以推测,该成本在未来某个时刻将趋于稳定。
遗传算法与M‐DQPGCLNG前k个查询计划在12个关系下的对比 (b) 遗传算法与M‐DQPGCLNG前k个查询计划在16个关系下的对比 (c) 遗传算法与M‐DQPGCLNG前k个查询计划在20个关系下的对比 (d) 遗传算法与M‐DQPGCLNG前k个查询计划在24个关系下的对比)
图2展示了平均QPC与关系集{12, 16, 20, 24}的Top-k查询计划之间的关系图,适用于M‐DQPGCLNG和遗传算法。从图中可以观察到,随着用户查询中关系数量的增加,Top‐k查询计划的QPC也随之上升,这种增长趋势表明具有最低QPC的查询计划是最合适的查询计划。最终,图2的图形还表明,在分布式SQL查询中,对于较小的关系集合,M‐DQPGCLNG比遗传算法更有能力收集到更多成本效益高的Top‐k执行计划。
5 结论
提出方法的目标是生成高效的查询计划以回答用户查询。通过遗传算法和M‐DQPGCLNG进行实验,计算最小平均QPC,结果表明M‐DQPGCLNG比遗传算法具有更好的接近性。此外,我们还表明,与遗传算法相比,M‐DQPGCLNG在收集最匹配的前k个查询计划方面更加高效。
392

被折叠的 条评论
为什么被折叠?



