论文部分内容阅读
随着XML文档在网络上的应用不断广泛,如何有效地对一个XML文档进行多查询处理这一问题变得更加广泛和迫在眉睫。然而以往的查询处理方法都没有考虑到XML文档自身的冗余性,事实上这一问题造成了查询处理的低效和网络带宽的耗费。因此我们在这篇论文中将探讨在分布式协作的服务器/客户端网络下,如何有效地克服XML文档自身的冗余问题,并高效地实现多查询处理。全文的贡献主要为以下几点:
对于查询文档,我们采用了针对XML文档的同构压缩技术,不仅有效的减小了文档和查询结果的规模,也保留了压缩文档的直接查询处理能力;对于多个客户端提交的查询任务,我们通过挖掘查询间的关系来提高系统的处理效率。
1.针对分布式协作场景下的XPath简单路径查询,我们设计了一种动态查询树的方法。该方法建立在XGRIND压缩方法的基础上,查询树构建和查询处理都以分布式的方式进行。然而这一方法不仅较大地依赖于客户端的稳定性,也受到XGRIND对查询支持的局限,还对中转客户端带来了较大的查询执行压力。
2.为了克服上述缺点,我们采用XPress方法对文档进行预处理,并改良了查询树的构建过程,并将其转移到服务器端。同时由服务器端直接负责查询收集、包含关系计算和查询处理过程。此外,我们将简单的查询树扩展为查询索引树,使之包含了查询结果的位置信息作为中转客户继续传播结果的索引。
3.为了进一步的处理客户端的不稳定,以及支持更加复杂的查询,我们在静态查询索引树的基础上研究了结构化查询索引树(SQIT)。在SQIT当中,所有复杂的查询都根据逆向数字编码的特性转化成为一种复杂路径结构(SXP)结构。而SQIT的构建在查询问包含关系的基础上还挖掘了父子节点之间的共享层次,并在查询处理之后将结果位置作为索引插入到SQIT当中。考虑到分布式网络中节点的不稳定性,我们在SQIT的方法上探讨了如何在客户端瘫痪、客户申请新查询、客户撤销已有查询这三种情况下有效地维护SQIT。
以上三个工作中,我们以循序渐进的方法对XML压缩文档上的多查询处理这一问题进行了充分地探索,通过在真实数据集和模拟数据集上的大量实验,我们验证了所提出的方法实现了分布式网络下由客户端参与查询结果发布的高效查询处理,同时通过XML压缩极大地节省了结果发布过程中的带宽压力。