Skip to main content
QUICK REVIEW

[論文レビュー] Fast In-Memory XPath Search over Compressed Text and Tree Indexes

Diego Arroyuelo, Francisco Claude|arXiv (Cornell University)|Jul 13, 2009
Algorithms and Data Compression参考文献 56被引用数 9
ひとこと要約

本稿では、XMLのテキストおよび木構造の両方のデータに対して圧縮自己索引を用いる高速なメモリ内XPathクエリシステム、SXSIを提案する。RLCSA(ランレングス圧縮サフィックスアレイ)を用いた圧縮テキスト索引と、括弧とラベルのビットベクトルによる効率的な木構造表現を統合することで、木オートマトンと適応的クエリ最適化を用いて効率的なハイブリッドXPathクエリを実現し、テキスト豊富なクエリにおいて既存システム比1~3桁の高速化を達成した。メモリ使用量はドキュメントサイズの2倍未満に抑えられている。

ABSTRACT

A large fraction of an XML document typically consists of text data. The XPath query language allows text search via the equal, contains, and starts-with predicates. Such predicates can efficiently be implemented using a compressed self-index of the document's text nodes. Most queries, however, contain some parts of querying the text of the document, plus some parts of querying the tree structure. It is therefore a challenge to choose an appropriate evaluation order for a given query, which optimally leverages the execution speeds of the text and tree indexes. Here the SXSI system is introduced; it stores the tree structure of an XML document using a bit array of opening and closing brackets, and stores the text nodes of the document using a global compressed self-index. On top of these indexes sits an XPath query engine that is based on tree automata. The engine uses fast counting queries of the text index in order to dynamically determine whether to evaluate top-down or bottom-up with respect to the tree structure. The resulting system has several advantages over existing systems: (1) on pure tree queries (without text search) such as the XPathMark queries, the SXSI system performs on par or better than the fastest known systems MonetDB and Qizx, (2) on queries that use text search, SXSI outperforms the existing systems by 1--3 orders of magnitude (depending on the size of the result set), and (3) with respect to memory consumption, SXSI outperforms all other systems for counting-only queries.

研究の動機と目的

  • ディスクストレージに依存せずに効率的なXPathクエリ評価を可能にする、コンパクトでメモリ内のXMLデータインデックスの設計。
  • テキストコンテンツと木構造の両方の圧縮自己索引を統合し、統一されたクエリシステムとして実装すること。
  • テキスト索引における高速なカウント結果を活用して、トップダウンとボトムアップの走査のどちらを選ぶかを自動的に最適化することで、クエリ実行順序を最適化すること。
  • 構造的およびテキストベースの述語を含むハイブリッドXPathクエリにおいて高いパフォーマンスを達成すること。
  • メモリ使用量を元のドキュメントサイズの2倍以内に抑えることで、完全なメモリ内動作を実現すること。

提案手法

  • ノードのラベルを含む、開き括弧と閉じ括弧のビットベクトルを用いてXML木構造を表現する。
  • すべてのテキストノードを、RLCSA(ランレングス圧縮サフィックスアレイ)データ構造を用いたグローバルな圧縮自己索引に格納する。
  • XPathクエリの評価に木オートマトンを用い、テキスト索引からの高速カウント結果に基づいて、動的にトップダウンまたはボトムアップ走査を選択する。
  • ビットベクトルおよびテキスト索引における効率的なランク/セレクト操作を可能にする、簡潔なデータ構造を活用して、素早いナビゲーションとパターンマッチングを実現する。
  • 生物配列パターンのPSSM(位置特異的スコア行列)クエリをサポートするようにテキスト索引を拡張し、コアクエリエンジンの変更なしに実装する。
  • テキスト索引の拡張(例:PSSM)を分離することで、木構造およびオートマトンの論理を変更せずにクエリ評価を最適化する。

実験結果

リサーチクエスチョン

  • RQ1テキストと構造の両方を含むハイブリッドXPathクエリにおいて、XMLの圧縮メモリ内インデックスが既存システムを上回る性能を発揮できるか?
  • RQ2インデックスの特性に基づいて、クエリ実行戦略(トップダウン vs. ボトムアップ)を自動的に選択することで、パフォーマンスを最大化できるか?
  • RQ3自己索引を用いたXML表現によって、メモリ使用量をどれだけ削減できるか?
  • RQ4PSSMのような高度なテキスト索引技術をXPathエンジンに統合できるか?この際、コアロジックの変更なしに実現できるか?
  • RQ5異なる結果セットサイズおよびクエリタイプにおいて、システムのスケーリング特性はどのように変化するか?

主な発見

  • 純粋な木クエリ(例:XPathMark)において、SXSIはMonetDBやQizx(既知の最速システム)と同等またはそれ以上の性能を発揮した。
  • テキスト検索を含むハイブリッドクエリにおいて、SXSIは既存システムを1~3桁の速度向上で上回った。これは結果セットサイズに依存する。
  • テストされたすべてのデータおよびクエリにおいて、SXSIのメモリ使用量は常に元のXMLドキュメントサイズの2倍未満に保たれた。
  • 生物学的配列(例:プロモーター領域やエクソン領域)に対するPSSMベースのクエリは、大規模な結果セットでも100ms未満のエンドツーエンドのクエリ時間で効率的にサポートされた。
  • 特にテキスト中心のクエリにおいて、SXSIのパフォーマンス優位性は顕著であり、テキスト索引による高速カウントが、高速化に大きく寄与した。
  • モジュラーな設計により、PSSMなどの新しいテキストクエリ機能を追加できるが、木構造やオートマトンのコンポONENTを変更せずに実現でき、拡張性が証明された。

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

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

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

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