Page 360 - 《软件学报》2025年第8期
P. 360

郭娜 等: DRAMA: 更新分布感知的学习型索引                                                       3783


                    此外, DRAMA   的内存占用并不随插入比例的增加而持续增加, 这个结果主要归功于                       DRAMA  使用缓冲区处
                 理更新. 当没有查询操作时, 节点缓冲区越大, 其处理插入的性能就越好. 然而, 在个别工作负载下, DRAMA                            的索
                 引大小会略高于其他索引结构, 尤其是与             PGM  相比较. 一方面是因为      PGM  参数压缩策略是有损的; 另外一方面
                 是因为   PGM  使用贪心策略构建索引, 只要在误差阈值内就无须创建新的段. 这种贪心构建方式可以减少段的数
                 量, 但由于每段的范围不固定, 同样会导致查询过程中的多次修正. 这也是为什么                       PGM  的查询性能低于      DRAMA、
                 ALEX  和  LIPP. 在个别工作负载下, DRAMA     的索引大小高于      ALEX , 这是由于虽然二者都采用启发式构建策略,
                 但开销模型的设计不同会导致选择不同的扇出值, 进而导致不同的索引结构和索引大小.

                 4.3.4    压缩策略分析
                    用户可根据实际需求有选择地使用压缩策略, 通过调节有损压缩系数                        ε 选择不同程度的有损压缩效果. 为了
                 对比分析   HPC  中  LLPC  和  LPC  对内存占用和查询性能的影响, 本节采用消融实验的形式进行评估, 对比项包括:
                 (1) 无任何压缩策略     (DRAMA); (2) 在  (1) 的基础上对内部节点使用      LLPC  策略  (DRAMA+LLPC); (3) 在  (2) 的基
                 础上对叶子节点使用压缩系数为            0.5  的  LPC  策略  (DRAMA+LLPC+LPC ε=0.5 ); (4) 在  (2) 的基础上对叶子节点使用
                 压缩系数为    1.0  的  LPC  策略  (DRAMA+LLPC+LPC ε=1.0 ). 图  8  显示了在不同数据集下, 内存占用与查询吞吐量随
                 插入比变化的动态对比关系. 结果表明, DRAMA+LLPC              可以在不影响查询性能的情况下            (最低只损失了     0.46%,
                 最高损失了    5.68%), 轻量级地减少模型参数的内存占用. 如图            8(a) 所示, DRAMA+LLPC  的内存占用在     0  和  1  的
                 插入比例下分别压缩了        20.75%  与  24.45%, 同时吞吐量只比   DRAMA  降低了   1.77%  与  3.21%. 这是因为  Osmc 数
                 据集的数据分布更倾斜, 需要更多内部节点进行划分, 此时                    DRAMA   内部节点占节点总数的比例较高, 所以
                 LLPC  压缩的目标节点更多, 可压缩空间更大. 因为           DRAMA+LLPC   只针对内部节点进行无损压缩, 不会破坏内部
                 节点模型精准预测的特性, 因此并不影响查询性能. 综上所述, LLPC                  在非均匀数据集上, 以及在零          bulkload  或全
                 bulkload  的负载环境下效果最佳.


                                        DRAMA   DRAMA+LLPC  DRAMA+LLPC+LPCε=0.5  DRAMA+LLPC+LPCε=1.0  内存占用
                                        DRAMA   DRAMA+LLPC   DRAMA+LLPC+LPCε=0.5  DRAMA+LLPC+LPCε=1.0  吞吐量
                   6              30  10           40  0.03         35  0.03         30  3            60
                   5              24  8            30               30
                  索引大小 (MB)  4 3 2  18 12  6       20  0.02         20 10  0.02      20 10  2 1       40 20 吞吐量 (10 6  ops/s)
                                                    0.01
                   0 1            6 0  4 2         10 0  0          0 0.01           0  0             0
                     0  0.2  0.4  0.6  0.8  1.0  0  0.2  0.4  0.6  0.8  1.0  0  0.2  0.4  0.6  0.8  1.0  0  0.2  0.4  0.6  0.8  1.0  0  0.2  0.4  0.6  0.8  1.0
                         插入比例             插入比例             插入比例             插入比例             插入比例
                        (a) Osmc 数据集     (b) Lat 数据集     (c) Uniform 数据集   (d) Amzn 数据集     (e) Wiki 数据集
                                                   图 8 压缩策略消融实验

                    图  8  中, 与  DRAMA+LLPC  相比, DRAMA+LLPC+LPC ε=0. 和 5  DRAMA+LLPC+LPC ε=1. 可以显著降低模型参
                                                                                       0
                 数的内存占用, 但同时查询性能的损失也会随之升高. 如图                 8(c) 所示, 在  Uniform  数据集上, 当  workload  的插入比
                 是  1.0  时, DRAMA+LLPC+LPC ε=0. 在 5  DRAMA+LLPC  的基础上进一步压缩了   38.70%  的内存占用, 同时也多损失
                 了  14.16%  的查询性能. 这是因为叶子节点占节点总数的比例更大, 在叶子节点使用                    LPC  会导致叶子节点模型更
                 大的预测误差, 查询时延相应地有所升高. 与             DRAMA+LLPC+LPC ε=0. 相比, 当  DRAMA+LLPC+LPC ε=1. 时, 在
                                                                       5
                                                                                                   0
                 Uniform  数据集上进一步压缩了      10.89%  的内存占用, 同时也多损失了        17.07%  的查询性能. 这是因为当     ε=0.5  时,
                 只合并斜率的区间重叠度更高的叶子节点, 即参数的选择更接近最小二乘法拟合的结果, 模型预测误差更低. 当
                 ε=1.0  时, 只要叶子节点的斜率区间重叠就执行合并, 偏离最小二乘法拟合结果的叶子节点更多, 导致整个索引的
                 模型预测误差更大. 但因为合并了更多的叶子节点, 实现了更低的内存占用.
                    结合表   3  的数据可以分析出, DRAMA      的结构本身就很紧凑, 如果叠加有损压缩策略, 压缩效果会更好.

                 4.3.5    查询时延比较
                    图  9(a)–(j) 展示了处理不同工作负载以及不同查询分布的查找时延. 根据图                  9(a)–(e) 可以观察到, DRAMA  的
                 平均查询时间比其他索引结构更稳定, 且对数据插入频率不敏感. 例如, 在                       Uniform  数据集下, DRAMA   的  Zipf
                 (α=0) 查询时延分别比      ALEX、LIPP、PGM    和 B+Tree 最高减少了     21.87%、28.05%、94.83%   和  89.52%.
                 DRAMA  的  Zipf (α=40) 查询时延分别比   ALEX、LIPP、PGM    和  B+Tree 最高减少了   21.88%、25.92%、93.71%
   355   356   357   358   359   360   361   362   363   364   365