今年度は、1.大規模XMLデータの分割およびその分散問合せ処理、2.XMLデータソースからストリーム時制問合せ処理、ならびに3.分散したXMLデータソースの統合を支援する問合せエンジンに関して研究を行なった。 1.に関して、大規模なXMLデータを効率良く処理するために、XMLデータを分割し、それらを複数の計算機に配置した上で、問合せ処理する手法を提案した。データの分割に関しては、データ量と元のXMLデータの構造を考慮した分割を行い、分割した部分XMLデータを各計算機へ分散配置を行う方式を提案した。また、特定の計算機へ問合せが集中した場合、分割した部分XMLデータの動的な再配置を行うことで負荷分散を試みた。計算機クラスタを用いて、XMarkのXMLデータを用いて実験したところ、データ量とXMLデータの構造だけで分割して分散処理しても、スケーラブルな性能向上は実現できないが、部分XMLデータの動的再配置により、各計算機の負荷が均衡することを確認した。負荷を分散させるための再配置により、問合せ処理が約20%高速化することを示した。 2.に関しては、時系列のXMLデータを一度だけ読むことにより、時制問合せを行なう問合せ処理器の合成方法に関して、Snoopと呼ばれるイベント処理のための代数とXPathを処理するトランスデューサを合成する方法を提案した。分散環境では、複数のXMLデータを分散処理する必要があり、時間情報も含めた問合せにより情報を効率よくフィルタリングする必要がある。XPathを処理するトランスデューサの合成方法は既に知られており、多くの場合トランスデューサに基づく手法が問合せの効率の面で優れているが、時間を含めた問合せに関して、それを処理するトランスデューサの合成方法は明らかにされていない。そこで、時間を含むイベントを効率よく処理するSnoopの枠組みを用い、Snoopの演算子をトランスデューサに変換し、さらにXPathのトランスデューサと合成する手法を提案した。Snoopを処理するトランスデューサの状態遷移条件に着目することにより、冗長な状態を減らす最適化を行なうことが可能であることを示した。 3.のXMLデータソースを統合するための問合せエンジンは、分散環境におけるXMLの取り扱いで重要である。そこで、問合せの表現能力に優れるXQueryを前提に、複数のビューを効率よく併合するために、FLWOR arrangingと呼ばれる問合せ最適化手法を利用して実現した。
|