Skip to main content
QUICK REVIEW

[論文レビュー] Fast and Tiny Structural Self-Indexes for XML

Sebastian Maneth, Tom Sebastian|arXiv (Cornell University)|Dec 27, 2010
Advanced Database Systems and Queries参考文献 32被引用数 17
ひとこと要約

本稿では、繰り返しのあるマークアップに起因する高い圧縮比を実現する、文法圧縮された構造的自己索引を提案する。この索引は、直線木(SLT)文法を用い、効率的な taggedDesc / taggedFoll 操作を補完することで、完全なXPathクエリ評価を可能にし、特にカウントとシリアル化において、従来のシステムと比較して最大100倍の高速化を達成しながら、元のデータサイズの僅か数パーセントのメモリオーバーヘッドで実現する。

ABSTRACT

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.

研究の動機と目的

  • XPathのナビゲーション軸を完全にサポートできない従来の構造的XML索引の非効率さと高いメモリコストを解消すること。
  • 文法ベースの圧縮(SLT文法)を用いてXMLツリー構造を圧縮しつつ、完全なクエリ表現力を維持する自己索引を設計すること。
  • 完全な展開なしに、圧縮された索引上で任意のツリーアルゴリズムやXPathクエリを高速に評価できること。
  • 特にメモリ制約のある環境において、結果のカウントやシリアル化といった主要な処理で、既存のシステムを上回るパフォーランスを達成すること。

提案手法

  • 繰り返しのあるマークアップに起因する高い圧縮比を実現する、直線木(SLT)文法にXMLツリー構造を圧縮する。
  • 各非終端記号および終端記号に対してビットベクトルを追加し、非終端記号がその終端記号を生成するかを示すことで、 taggedDesc および taggedFoll 操作を高速化する。
  • 任意のツリー処理(例:深さ優先走査、XPath評価)を圧縮された文法上で直接実行可能な汎用的な順次インタフェースを提供する。
  • XPathの結果カウントおよびクエリ結果のシリアル化/マテリアライゼーションのための特別な評価器を実装し、効率的な文法走査によりマテリアライゼーションを回避する。
  • パスクエリに対しては、文法構造を活用して不要なノードをスキップする下位から上位へのアプローチを採用し、走査コストを低減する。
  • 非終端記号のランクを低減するため、自動機の評価関数におけるオーバーヘッドを最小限に抑えるために、bCNF(二進チェンスキー正規形)変換を適用する。

実験結果

リサーチクエスチョン

  • RQ1文法圧縮されたツリー表現を用いて、元データを完全に展開せずに効率的かつ完全なXPath評価を可能にする自己索引を構築できるか?
  • RQ2従来の構造的索引と比較して、文法ベースの圧縮が索引サイズをどれほど削減できるか、かつクエリパフォーマンスを維持または向上できるか?
  • RQ3文法索引上で特別に設計された評価器が、結果のカウントやシリアル化といった一般的なXPathタスクにおいて、既存のシステムを上回るパフォーマンスを発揮できるか?
  • RQ4文法における非終端記号のランクが、圧縮索引上でのクエリ評価パフォーマンスに与える影響はどの程度か?
  • RQ5この索引は、XMLデータベースにおける選択性推定や高速シリアル化のための構造的サムネイルとして効果的に使用できるか?

主な発見

  • TinyT索引は、116MBのXMarkドキュメントに対してわずか83MBのメモリ使用量を達成し、極めて高い空間効率性を示した。
  • XMark116MをTreeRePair文法で評価した場合、XPathの結果カウントは、MonetDB や Qizx といった従来のシステムと比較して最大100倍高速で、評価時間は5msであった。
  • 文法の繰り返しを効率的に処理し、マテリアライゼーションを回避することで、クエリ結果のシリアル化およびマテリアライゼーションが、既存のシステムと比較して2〜3倍高速になった。
  • 評価器のパフォーマンスは文法ランクに強く依存しており、ランク8の文法ではクエリに38ms、ランク3の文法では28msを要した。これは、低いランクがパフォーマンス向上に寄与することを示している。
  • SXSIのツリー・ストアを本インターフェースに置き換えた場合、パフォーマンスは4倍程度の遅延にとどまり、メモリ使用量は3分の1に削減された。これは、時間と空間のトレードオフにおいて好都合な結果であった。
  • 索引は非常に小さく(例:116MBのデータに対して83MB)、メインメモリに保持できるため、選択性推定やクエリ最適化のための高速なメモリ内処理が可能になった。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。