[论文解读] Fast and Tiny Structural Self-Indexes for XML
本文提出了一种新颖的、基于语法压缩的结构化自索引(self-index)用于XML,可在极低的空间开销下实现快速的XPath查询评估。通过利用无环树(SLT)语法并增强其支持高效的 taggedDesc/taggedFoll 操作,该索引支持完整的XPath查询评估——尤其是计数与序列化操作——相比以往系统提速最高达100倍,同时仅需原始数据大小的一小部分空间。
XML document markup is highly repetitive and therefore well compressible using dictionary-based methods such as DAGs or grammars. In the context of selectivity estimation, grammar-compressed trees were used before as synopsis for structural XPath queries. Here a fully-fledged index over such grammars is presented. The index allows to execute arbitrary tree algorithms with a slow-down that is comparable to the space improvement. More interestingly, certain algorithms execute much faster over the index (because no decompression occurs). E.g., for structural XPath count queries, evaluating over the index is faster than previous XPath implementations, often by two orders of magnitude. The index also allows to serialize XML results (including texts) faster than previous systems, by a factor of ca. 2-3. This is due to efficient copy handling of grammar repetitions, and because materialization is totally avoided. In order to compare with twig join implementations, we implemented a materializer which writes out pre-order numbers of result nodes, and show its competitiveness.
研究动机与目标
- 解决传统结构化XML索引在支持XPath导航轴时效率低下且空间成本过高的问题。
- 设计一种自索引,利用基于语法的压缩(SLT语法)对XML树结构进行压缩,同时保持完整的查询表达能力。
- 实现在无需完全解压原始数据的前提下,直接在压缩索引上高效评估任意树算法与XPath查询。
- 在关键操作(如结果计数与序列化)上超越现有系统,尤其在资源受限环境中表现更优。
提出的方法
- 将XML树结构压缩为无环树(SLT)语法,由于标记重复性而实现高比率压缩。
- 为每个非终结符和终结符增强位向量,指示该非终结符是否能生成该终结符,以支持 taggedDesc 和 taggedFoll 操作的快速执行。
- 提供通用的顺序接口,用于在压缩语法上直接执行任意树算法(如深度优先遍历、XPath评估)。
- 为XPath结果计数与查询结果的序列化/物化实现专用求值器,通过高效的语法遍历避免物化过程。
- 采用自底向上的方法处理路径查询,利用语法结构跳过无关节点,降低遍历开销。
- 采用bCNF(二元乔姆斯基正规形式)变换以降低非终结符的秩,最小化自动机求值函数的开销。
实验结果
研究问题
- RQ1能否利用语法压缩的树表示构建一种自索引,实现在不解压原始数据的前提下高效且完整的XPath评估?
- RQ2与传统结构化索引相比,基于语法的压缩在多大程度上能减少索引大小,同时保持或提升查询性能?
- RQ3针对常见XPath任务(如结果计数与序列化)的专用求值器,能否在性能上超越现有系统?
- RQ4语法中非终结符的秩如何影响在压缩索引上查询评估的性能?
- RQ5该索引能否作为XML数据库中选择性估计与快速序列化的有效结构摘要?
主要发现
- TinyT索引在116MB的XMark文档上仅使用83MB空间,展现出极高的空间效率。
- 在索引上进行XPath结果计数,性能最高达100倍于MonetDB与Qizx等先前系统,使用TreeRePair语法在XMark116M上评估时间仅5ms。
- 由于高效处理语法重复并避免物化,查询结果的序列化与物化速度比现有系统快2–3倍。
- 求值器性能对语法秩高度敏感:秩为8的语法查询耗时38ms,而秩为3的语法仅耗时28ms,表明更低的秩可提升性能。
- 将SXSI的树存储替换为新接口仅导致4倍性能下降,但内存使用减少3倍,展现出有利的时间-空间权衡。
- 该索引极为紧凑(如116MB数据仅需83MB空间),可完整保留在主内存中,从而支持选择性估计与查询优化的快速内存处理。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。