当前位置: 首页 > 专利查询>复旦大学专利>正文

基于部分二进制前缀编码的XML流缓存管理方法技术

技术编号:2835486 阅读:405 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于可扩充标记语言(XML)管理技术领域,具体为一种基于部分二进制前缀编码的XML流缓存管理方法。该方法包括:通过运行时栈驱动的基于二进制的前缀编码,在运行时确定结果集中节点之间的关系,避免中间结果集之间的连接操作;定义一个查询的“最低公共祖先谓词节点”,以便尽早删除缓存中的节点,处理在XQuery查询中包含“∥”并且XML文档中含有递归、嵌套结构的情况;缓存管理方法同时处理多个含有复杂谓词的XQuery查询,并支持多个XQuery查询结果中公共缓存节点的共享。本发明专利技术能够有效支持针对XQuery查询的XML流的缓存管理,缓存的效率明显提高,可应用于基于Web的个性化推荐服务、信息监测等领域。

【技术实现步骤摘要】

本专利技术属于可扩充标记语言(XML)管理
,具体涉及一种针对XML流的XQuery查询的缓存管理方法。
技术介绍
在新的需求背景下,人们在20世纪90年代初,提出了一种新型的数据模型,即数据流处理模型。例如,在事件驱动的股票行情系统中,一个典型用例是将过去10分钟内价格上升10%的所有股票的名称发送给某个用户;再例如,在一个网络分析系统中,报告所有具有某些特定目的地址的包。这类应用的共同特点是实时地、持续地处理连续到达的、无限的数据流。传统的数据库管理技术不能适用于这样的应用。传统数据库管理系统的主要特点是数据持久存储,在某一时刻执行查询并通过稳定查询计划给出精确的回答;而数据流管理系统强调数据在线到达、查询持久存储,并且能够在有限内存中单遍处理数据流。由于可扩充标记语言(XML)已经成为Web上数据交换的标准,用于各种应用和信息源之间的数据交换,XML流处理的理论和技术引起工业界和学术界的广泛关注。这类系统面临的一个挑战是面对海量的用户查询(通常用XQuery[1]查询语言或XPath[2]查询语言)所产生的大量结果,如何对返回结果集进行有效管理,使系统能够在有限的内存本文档来自技高网...

【技术保护点】
一种基于部分二进制前缀编码的XML流缓存管理方法,其特征在于具体步骤如下:    (1)构造XQuery查询的紧凑查询树,将用户提交的所有XQuery查询构造为单颗紧凑查询树,并为每一个返回节点构造一个缓存池;在紧凑查询树中,所有查询共享公共前缀;    (2)查询匹配,查询匹配过程包括自顶向下和自底向上两部分,在查询匹配的过程中,执行缓存管理的基本操作,包括进行缓存结果的加入和删除;    (3)缓存管理过程,缓存管理过程优化与XQuery查询匹配的返回结果的缓存,包括:    (a)建立缓管理的数据结构:XQuery查询中的每一个缓存节点对应于一个缓存池,所有缓存池构成一个链表,其中,每两...

【技术特征摘要】
1.一种基于部分二进制前缀编码的XML流缓存管理方法,其特征在于具体步骤如下(1)构造XQuery查询的紧凑查询树,将用户提交的所有XQuery查询构造为单颗紧凑查询树,并为每一个返回节点构造一个缓存池;在紧凑查询树中,所有查询共享公共前缀;(2)查询匹配,查询匹配过程包括自顶向下和自底向上两部分,在查询匹配的过程中,执行缓存管理的基本操作,包括进行缓存结果的加入和删除;(3)缓存管理过程,缓存管理过程优化与XQuery查询匹配的返回结果的缓存,包括(a)建立缓管理的数据结构XQuery查询中的每一个缓存节点对应于一个缓存池,所有缓存池构成一个链表,其中,每两个缓冲池之间的链接由缓存池中返回节点之间的语义关系定义,包括父子关系、子孙关系、兄弟关系和共同祖先关系;(b)建立基于运行时栈的部分二进制前缀编码表示,通过运行时栈驱动基于二进制的前缀编码,在运行时确定结果集中节点之间的关系,迟早构成返回结果元组,避免中间结果集之间的连接操作;(c)进行返回结果的缓存管理。2.根据权利要求1所述的方法,其特征在于所述的XQuery的紧凑查询树定义如下定义1一颗紧凑查询树是表示XQuery的查询树,其中的节点称为查询节点,记为QNode,具有惟一标识,查询节点分为以下两种类型(1)OQNode不带有谓词的定位步,称为通常查询节点,在紧凑查询树中,OQNode关联相关信息,包括节点名字“name”和表示父子“/”或子孙“//”关系的算子,用两元组<name,“/”or“//”>表示;(2)PQNode带有谓词的定位步,称为谓词查询节点,谓词查询节点是紧凑查询树中的特殊节点,它通过AND/OR逻辑谓词将其子树连接起来;除了节点标识,节点名和父子或者子孙外,还关联一个逻辑表达式;该逻辑表达式在内部表示为抽象语法树;该抽象语法树的每一个叶子节点都维护一个到其对应的节点的引用;(3)RNode返回结果节点,即是指那些构成XQuery结果元组的节点;定义2谓词子树,在一个紧凑查询树中,以距离根节点最近的谓词节点为根所形成的子树称为谓词子树;同时扩充相应的节点结构谓词子树中的OQNode,也关联一个逻辑表达式,该逻辑表达式是只含有一个项,即其孩子节点的标识;而如果OQNode是叶子节点,则含有一个逻辑标记,初始为真,当遇到CLOSE事件后,将逻辑标记的值赋为假;定义3接受节点,在一颗紧凑查询树的表示中,距离根节点最近的谓词节点称为该树所表示查询的接受节点;如果计算过程中,接受节点相关逻辑表达式的值为真,则该文档与查询匹配;如果一个XQuery是不带谓词的一般查询XP{/,//,*},其接受节点则是其通常查询树的叶子节点;如果在匹配过程中到达接受节点,则该文档与查询匹配。3.根据权利要求1所述的方法,其特征在于所述的查询匹配过程分为OPEN和CLOSE两部分,其中(a)OPEN事件通过回调函数调用该句柄,传入事件名字,元素名字和元素的文档层次;对每一个到达的XML元素,进行节点测试和文档层次检查;如果节点检查返回TRUE,则该节点被压入一个运行时栈;若遇到的节点是PQNode或谓词子树的子节点,其状态标记的值设为FALSE;若遇到的节点是一个查询的接受节点,且不是PQNode节点,则一个查询匹配发生;若遇到的节点是同一节点的不同层次,则将其作为不同的状态节点,用节点标识和文档层次来共同识别该状态节点;如果该接受节点是PQNode,则需要等到遇到CLOSE事件时才能判定文档与查询是否匹配;若遇到的是返回结果节点RNode,则将该节点放入缓存池中;(b)在CLOSE事件发生时,如果遇到的节点是OQNode,简单地将节点从栈中弹出;如果遇到的节点是PQNode或谓词子树的子节点,将执行下列步骤a)如果是叶子节点,将其状态标记赋为TRUE,意味着该节点匹配成功,从运行栈弹出该节点,并将当前栈顶对应的节点中...

【专利技术属性】
技术研发人员:杨卫东王清明朱皓
申请(专利权)人:复旦大学
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1