Page 21 - 《软件学报》2026年第2期
P. 21

500                                                        软件学报  2026  年第  37  卷第  2  期


                               [5]
                 总数限制. Tsunami 在学习型网格的基础上对查询负载分布和数据中的二维相关情形做了优化, 由于作者未公开
                 其用于调优的模型, 无法使用该方法调优索引, 我们按照其论文中说明的另一种迭代方法调优参数, 考虑论文提及
                 调优模型的训练需在大量不同的数据集反复构建索引, 两种调优方法增加的索引离线构建用时是可比的.
                    (2) 实验  2: 泛化性能与动态场景. 学习型索引大多使用了查询负载优化索引性能, 因此应评价无查询负载训
                 练集和查询负载偏移场景的泛化能力. 对于查询负载偏移场景, 索引在每个数据表的                           Uniform  查询负载上离线构
                 建索引, 在线查询     Skew  负载. 此外, 相比其他多维索引方法, LA-tree 以高效的索引自适应增量更新方法拓展了其
                 更新支持能力, 故我们额外增加          LA-tree 索引更新性能纵向评估, 以朴素的定期重新构建             LA-tree 索引作为基准更
                 新方法与   LA-tree 索引自适应增量更新方法作纵向比较.
                    ● 读写混合负载. 为增强更新对原索引的影响, 提高实验挑战性, 该负载包含普通查询和新数据插入指令. 其
                 中包含的普通查询为        TPC-H Lineitem  数据集的  Skew  查询负载, 而考虑到  TPC-H Lineitem  数据集的相关性弱, 我
                 们新增的    3M  行数据用属性各维度单独排序的方式增强数据相关性. 实验                   2  在  TPC-H Lineitem  数据集及对应的
                 Uniform  查询负载训练集上离线构建        LA-tree 索引, 然后在线运行我们设计的读写混合负载. 基准更新方法将整个
                 负载分为   10  个区间, 在区间间隔处重新构建         LA-tree 索引而在每个区间中将新增数据保存至缓冲区, 与之前构建
                 好的索引一起处理查询结果. LA-tree 索引自适应增量更新则将每条新增数据通过中间节点                          LM  和叶子节点    PLM
                 自顶向下地插入到       LA-tree 的正确位置, 再对   LA-tree 做自适应重构.
                    ● 评测环境. 所有的基准方法及         LA-tree 都用  C++ 11  实现. 为公平比较, 各方法的入口函数、计时框架、回归
                 模型  (如  LM) 等部分代码都尽量一致. 评测环境: 系统          Ubuntu 20.04.6 LTS; 处理器  Dual CPU System: 2×Intel(R)
                 Xeon(R) Gold 6230 CPU@2.10 GHz (20C40T); 运行内存  1 TB DDR4 ECC; 外存磁盘  4×8 TB HDD (RAID5).
                  6.3   实验  1: 静态场景索引查询性能评测
                    我们首先按照在线查询平均用时对索引查询性能做总体比较, 然后通过平均访问单元数量和扫描比两个指标
                 分析造成索引性能瓶颈的问题所在, 最后比较索引的离线构建用时和索引大小. 其中, LA-tree 使用第                           3  节提出的
                 临近搜索法, 在数据与查询负载         1%  采样率的小样本上确定了超参数           h 和  b. 具体地, 在  Stock 数据集上  h = 8, b = 3;
                 在  TPC-H Lineitem  数据集上  h = 7, b = 10; 在  DSB Sales 数据集上  h = 9, b = 5.
                    如表  2  所示, 最优结果用加粗表示. 传统索引整体性能有限, 其中, Clustered            作为单维索引, 整体性能最差. 但
                 其在  Stock  数据集上表现相对较好, 这是因为        Stock  中“股价”维度的取值重复较少, 使谓词筛选效果较佳, 从而提
                 升了单维索引性能. KD-tree 与     Octree 作为典型的多维索引, 整体明显优于单维索引. 但二者均缺乏查询感知, 并
                 在筛选时依赖大量数值比较, 其查询用时仍比学习型索引多                   1–2  倍. 相对而言, 多维划分的     KD-tree 性能优于三维
                 划分的   Octree, 原因在于前者更简洁的节点功能带来的较低算法开销.

                                            表 2 索引在线查询平均每条查询用时比较

                                   Clustered  KD-tree  Octree  Qd-tree  Tsunami  LA-tree  比SOTA提升  比学习型提升
                   数据集     查询负载
                                    (ms)     (ms)    (ms)   (ms)    (ms)    (ms)      (%)        (%)
                           Uniform   41      456     468     43      56      31        24         28
                    Stock
                            Skew     30      419     338     32      79      26        13         19
                    TPC-H  Uniform   178      23     30      19      31      12        37         37
                   Lineitem  Skew    182      24     29      17      19      12        29         29
                           Uniform   483     313     442    148     1 109    71        52         52
                  DSB Sales  Skew    429     314     445    134     1 559    74        45         45
                             HD      901     128     251    256     1 017    84        34         67
                      平均情况          320.6    240.0  286.1   92.7    552.9   44.3       52         52

                    相比之下, 学习型索引在大多数场景下更具优势. Qd-tree               在部分查询负载下平均查询用时较短, 但在 DSB
                 Sales 数据集的高维场景中性能显著下降, 原因在于其非均匀数据划分在高维下劣势凸显. Tsunami 的查询用时整
                 体偏高, 并在   DSB Sales 上性能退化更为严重. 这些结果表明, 基于网格结构的学习型索引在拟合高维数据分布时
                 存在局限.
                    综合来看, LA-tree 在所有测试中均取得最佳结果, 总体性能相比其余现有最优方法提升约 52%. 其优势来自
   16   17   18   19   20   21   22   23   24   25   26