论文部分内容阅读
随着Internet在金融证券管理、Web日志等领域的广泛应用,对半结构化数据的管理不断提出新的需求,半结构化的数据及其相关技术已经成为当前数据处理领域的研究热点之一。XML是半结构化数据的一种特殊表现形式,是一种全新的Web数据表示和交互标准,越来越多的Web数据通过XML格式进行存储和交互。而对于任何数据库,过滤都是其中重要的一环,因此对于XML数据的过滤研究具有非常重要的意义。本文结合自动机的相关理论和方法,对XML在本地以及网络上的过滤算法进行深入地研究。本文首先研究XML过滤过程中的缓存失效问题,提出用一种两阶段评估方法来对XML过滤过程中的缓存失效进行量化分析。通过分析基于DFA的XML数据过滤过程,来评估过滤过程中强制失效和容量失效发生的数量。首先在一个过滤周期内通过构造标签树来统计出查询过滤过程中强制性失效的数量。其次在第i个过滤周期,考虑对之前i-1个周期过滤结果的重用,通过对工作集的交、并、差运算,估算出了第i个过滤查询周期的强制性缓存失效和容量失效的数量。最后通过实验验证评估的结果具有较高的精确度。其次,在LazyDFA过滤系统的基础上,引入频繁访问区的概念,提出一种DFA-FA过滤机制。通过减少存取过程中的缓存失效,提高过滤的性能。首先给出频繁访问区的概念,再给频繁访问区的大小设置一个限制,然后考虑频繁访问区中节点在存取频率上最佳阈值的选择。最后实验证明优化后的过滤机制在性能上有明显的改善。再次,针对P2P网络节点上的XML数据流,提出分布式NFA的过滤机制,解决peer节点之间交互的XPath过滤。首先将NFA加入到Chord环中,然后在本地YFilter系统中递增地构造分布式的NFA。然后提出两种方法执行分布式NFA:迭代方式和递归方式,并通过实验验证递归方式具有更好的执行性能。最后的实验证明,针对各种不同的负载情况,当改变查询数量及网络大小时,分布式NFA过滤机制都具有很好的过滤性能,并且对于存储负载和过滤负载都可以得到较好的负载均衡性。最后在XPush自动机的基础上提出了一种集成XPush过滤机制,解决XML数据流查询过程中的动态更新问题。首先定义了集成XPush自动机中的数据表示,集成状态表和集成状态转移表,以及集成状态表的集成键和每个子XPush自动机的键值。然后对集成XPush自动机进行动态地更新,更新的过程分为两类,一类是分离进程,就是在一个集成XPush自动机上分离一个子XPush自动机,这就相当于过滤要求的删减,另一类是增加新的过滤进程,用来处理增加了新的子XPush自动机后的集成XPush自动机。并通过实验与原来的XPush自动机进行比较,证明集成XPush方法受过滤要求改变的影响远远小于XPush自动机。本文的工作围绕利用自动机对XML数据进行过滤的改进而展开,先是利用缓存访问定位技术对本地XML进行过滤优化,然后研究结合分布式哈希表P2P网络节点中的XML数据的过滤,以及动态条件下的优化过滤,并通过与原有方法的实验对比证明改进后方法的有用性和有效性。其中涉及到P2P网络的过滤机制和动态过滤的研究对于未来的研究提供了良好的理论基础和思路。