CN103493043B - 用于有效的xml处理的混合二进制xml存储模型 - Google Patents
用于有效的xml处理的混合二进制xml存储模型 Download PDFInfo
- Publication number
- CN103493043B CN103493043B CN201180064212.0A CN201180064212A CN103493043B CN 103493043 B CN103493043 B CN 103493043B CN 201180064212 A CN201180064212 A CN 201180064212A CN 103493043 B CN103493043 B CN 103493043B
- Authority
- CN
- China
- Prior art keywords
- node
- pointer
- crossfire
- navigating
- expression
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24575—Query processing with adaptation to user needs using context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/83—Querying
- G06F16/835—Query processing
- G06F16/8373—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/146—Coding or compression of tree-structured data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/149—Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
提供用于以混合导航/串流格式存储XML文档的方法中,以允许有效地存储和处理XML数据上的查询,该方法提供导航和串流两者的益处,并且改善每个的缺点。将存储的各XML文档被独立地分析,以确定对于预期的访问模式优化数据的处理的可导航和可串流存储格式的组合。
Description
技术领域
本发明涉及存储XML文档以用于有效检索和导航。
背景技术
XML
可扩展标记语言(XML)是用于表示数据的万维网协会(W3C)标准。许多应用被设计为输出XML文档形式的数据。可以利用各种技术以将数据从这种XML文档存储到关系型数据库中。
XML数据包含形成层次的结构化数据项。在XML中,称为要素的数据项由开始标签和结束标签定界。要素还可包含在要素的开始标签中规定的属性。要素的标签之间的文本可表示诸如串、日期或整数的任意类型的数据值。要素可具有一个或更多个孩子。在与用于讨论家庭树的方面类似的方面中讨论XML格式化数据的得到的分层结构。例如,可以说孩子要素从其父亲要素或从其父亲下来的任何要素下来。可以说父亲要素是自身的任何孩子要素或者其后代要素中的一个的祖先要素。要素连同其属性和后代被统称为树或子树。具有父亲/孩子关系的节点被称为具有中间分层关系,原因是在它们之间可存在直接导航路径。
XML数据可通过使用对象关系型存储或二进制XML BLOB存储或CLOB存储被存储于关系型数据库中,原因是这些数据库可非常有效地操作数据。但是,虽然可在从父亲到孩子沿XML层次向下有效地搜索对象关系型存储或二进制XML存储,但是,这些存储结构不适于执行要求沿层次向上遍历祖先链接或者同胞遍历的分层导航。
用于XML的存储和查询系统
使用各种类型的存储机构以存储XML文档。可通过将文档切碎成各单个要素并在表格的各单个列中存储要素,将XML文档存储于关系型数据库中。在数据库服务器中,XML文档可存储于表的行中,并且,可在行中的单独的列中存储XML文档的节点。
作为替代方案,整个XML文档可作为大对象(LOB)存储于数据库表的列中。大对象列可存储存储为文本的字符大对象(CLOB),或者也可存储为二进制大对象(BLOB)。二进制对象可包含XML数据的令牌化串流。这种用于XML文档的令牌化串流可替代性地存储于易失性存储器中。
XML查询和XPATH
对于存储XML数据的数据库系统来说,能够通过使用XML查询语言执行查询是十分重要的。XML查询语言(XQuery)和XML路径语言(XPath)是查询语言的重要标准,它们可与SQL结合使用以表达各种有用查询。XPath在这里加入作为参考并且可在写入http://www.w3.org/TR/xpath时得到的XML Path Language(XPath),version 1.0(W3CRecommendation 16 November 1999)以及在这里加入作为参考并且可在写入http://www.w3.org/TR/xpath时得到的XMP Path Language(XPath),2.0(W3C Recommendation 23January 2007)中被描述。XQuery在这里加入作为参考并在写入http://www.w3.org/TR/xquery时得到的XQuery 1.0:An XML Query Language(W3C Recommendation 23 January2007)中被描述。并且,存在XQuery脚本语言:http://www.w3.org/TR/xquery-sx-10/。
路径表达
XML文档的结构在XML文档内的节点之间建立父亲-孩子关系。XML文档中的节点的“路径”反映从“根”节点到特定节点的一系列的父亲-孩子链接。例如,在表1所示的示例文档中,由于“UnitPrice”是“Part”节点的孩子、“Part”节点是“LineItem”节点的孩子、而“LineItem”节点是“LineItems”节点的孩子并且“LineItems”节点是“PurchaseOrder”节点的孩子,因此,到“UnitPrice”节点的路径是/PurchaseOrder/LineItems/LineItem/Part/UnitPrice。
关于作为导航的开始点的称为“语境”的特定节点评估路径表达。通过使用路径轴(“.”、“/”、“//”和“..”)规定导航。这些轴中的每一个选择一个或更多个节点,这些节点然后进一步基于什么名称测试或节点测试跟随轴被过滤。
表1:示例购买订单文档
XPath轴和名称/节点测试的子集包含:
这里使用的句法是标准XPath句法。但是,应当理解,可以使用与以上轴具有相当的语义的任何句法。
在树中从父亲到孩子下降被称为正向导航。从孩子到父亲沿层次向上上升被称为反向导航。反向导航的另一例子是访问前一同胞。以斜线号(“/”)开始的路径在层次的根节点处开始被评估。
导航XML数据
XPath/Query语言支持可在树上执行的动作。但是,存储上述的XML数据并且索引数据不能提供树遍历的有效导航。为了克服该问题,可以创建存储器内文档对象模型(DOM),并且,可在DOM上执行导航动作。该方法的一个问题是,即使只需要整个树中的几个节点以评估表达,在可执行树遍历之前也必须在存储器中构建整个DOM树。对于大的文档,这在构建树的时间和处理XPath表达所需要的存储器量方面均存在可量测性的问题。构建存储器内DOM可能需要如DOM表示的XML文档的尺寸的10倍那样多的空间。因此,100MB的文档可能需要千兆的存储器以保持DOM树。
为了避免在易失性存储器中构建DOM的上述问题,可以使用另一方法以与XML内容一起永久地存储层次的导航链接。换句话说,XML数据可在盘上存储为树,使得层次的各节点存储内容和导航链接两者。层次的各节点可包含向层次中的其它节点提供随机访问的链接。但是,这种方法可能要求与各节点的内容交错地存储支持访问祖先、同胞和孩子的导航链接。
以树取向方式存储XML可有效地处理更大的文档,这里,XML文档中的各节点连同对于其父亲、第一孩子和同胞的指针或者这些指针中的一个或更多个的组合一起被存储,原因是可通过遵循存储的指针直接沿各种XPath轴导航并且一般读取和处理文档的少得多的部分。由于相关的指针已存储于盘上,因此,在存储器中创建DOM也更快。但是,这种类型的存储要求更多的用于处理的存储器以及更多的用于存储的盘空间(由此导致更高的I/O费用,特别是对于较小的文档)。它在存储过程中也要求更多的存储器和处理费用。
支持导航要求与允许直接访问节点的父亲、第一孩子、第一同胞和先前的同胞的文档中的各节点相关联地存储附加的信息。这些对于其它节点的指针允许有效地处理使用祖先轴的指针表达。但是,由于与节点相关联的指针允许直接访问相邻的节点即与节点具有直接分层关系的节点,因此,不需要以任何特定的次序存储节点。通过使用指针执行节点的遍历,并且,节点的存储次序不重要。
串流XML数据
XML文档的永久串流表示是以从文档解析令牌相同的次序存储令牌值的串行序列的XML文档的二进制表示。令牌值是从文档的文本表示解析的字符次序令牌的紧凑表示。这里,从文本文档解析令牌的次序被称为“文档次序”。因此,可通过读取文档的存储的串流表示来串流XML文档。
创建XML文档的二进制串流表示是十分有效的,原因是在任意给定的时间内只需要在存储器中保持文档的一小部分。并且,二进制串流是节省盘空间的紧凑的存储形式。不与文档数据一起存储导航指针。对于评估在小的文档上的简单的XPath和XQery以及对于需要依次(文档)次序读取文档的大部分的动作以及当不需要祖先导航时,基于SAX类的事件的串流的XML存储模型是有效的。
模式处理是需要以文档次序处理整个XML文档的例子。模式处理的应用包括测试XML文档对于其模式的符合性以及向数据库系统登记模式。对于模式处理,要素在模式中以及在XML文档中出现的次序是重要的。文档中的要素的次序必须匹配在模式中规定它们的次序。对于这种应用,可串流二进制表示是有用的,原因是它保留文档中的节点的次序。
当文档变大时,将整个文档读取入存储器中并扫描串流中的事件会在I/O和CPU时间两者方面构成明显的费用。当XML数据被存储为诸如SAX串流令牌序列的二进制XML时,为了向前导航,必须依次读取令牌,直到找到希望的节点。在文档内不存在用于在不读取并跳过所有前面的后代的情况下直接导航到孩子节点的随机访问。
评估需要存储为二进制串流的XML文档上的祖先导航的XPath表达会是特别昂贵的。由于在序列中父亲和祖先在当前节点之前出现,因此,找到父亲或祖先节点需要从序列的开始处理。找到同胞节点依赖于同胞在序列中在当前节点前或后出现。虽然可通过以这种方式遵循正向链接识别祖先和同胞,但是,可能需要通过文档的多个轮次。串流XPath评估引擎可每当评估查询时遍历整个文档。如果输入XML文档是大的文档,那么遍历整个文档的处理是高度低效的,从而构成不匹配查询中的XPath表达的大的子树。
需要使I/O费用和存储器使用最小化的更有效的存储机制以及向大尺寸的文档和更复杂的查询的缩放。
在本部分中描述的方法是可设想的方法,但未必是前面构想或设想的方法。因此,除非另外指示,否则,不应仅通过包含于在本部分中假定在本部分中描述的方法中的任一个是现有技术。
发明内容
根据一个方面,提供了一种用于存储多个文档的XML文档的方法,所述方法包括以下步骤:在永久仓库中存储所述XML文档的包括可导航表示和与所述可导航表示分开的可串流表示的永久表示;其中,所述XML文档包括分层关系的节点的树,所述节点的树的各节点与所述节点的树中的至少一个其它节点具有中间分层关系;其中,所述可串流表示包含所述节点的树的按照文档次序的节点;其中,所述可导航表示包含少于所述节点的树的所有节点;以及其中,所述可导航表示中的各特定节点包含对于所述可串流表示中的节点中的内容的至少一个指针以及对于所述可导航表示中的另一节点的至少一个指针;对于所述可导航表示中的另一节点的所述至少一个指针是以下指针中的一个:对于父亲节点的指针、对于孩子节点的指针、对于同胞节点的指针和对于先前的同胞节点的指针;其中,通过一个或更多个计算装置执行这些步骤。
根据一个方面,提供了一种用于确定多个XML文档中的XML文档内的节点的存储表示的方法,所述方法包括:对于所述多个XML文档中的XML文档中的各节点,至少基于以所述各节点为根的子树的特性确定所述各节点的存储表示;其中,确定所述各节点的存储表示还包括:确定以所述各节点为根的子树的特性是否满足第一准则;以及响应确定以所述各节点为根的子树的特性满足第一准则,确定在可导航存储中存储所述各节点;其中,通过一个或更多个计算装置执行所述方法的这些步骤。
根据一个方面,提供了一种用于向可导航存储添加节点的方法,所述方法包括:解析多个XML文档的XML文档;响应解析所述XML文档,从所述XML文档接收第一令牌;确定所述第一令牌是第一XML要素的开始;对于表示所述第一XML要素的第一节点分配在可导航存储内的第一空间量;从所述XML文档接收第二令牌;响应确定所述第二令牌表示第二XML要素的开始,在所述可导航存储内对于第二节点分配第二空间量;响应确定所述第二令牌表示所述第一XML要素的结束,确定是否在所述可导航存储中存储所述第一节点;以及响应确定不在所述可导航存储中存储所述第一节点,从所述可导航存储解除分配所述第一空间量;其中,通过一个或更多个计算装置执行所述方法的这些步骤。
根据一个方面,提供了一种用于存储多个文档的XML文档的设备,所述设备包括:用于在永久仓库中存储所述XML文档的包括可导航表示和与所述可导航表示分开的可串流表示的永久表示的装置;其中,所述XML文档包括分层关系的节点的树,所述节点的树的各节点与所述节点的树中的至少一个其它节点具有中间分层关系;其中,所述可串流表示包含所述节点的树的按照文档次序的节点;其中,所述可导航表示包含少于所述节点的树的所有节点,以及其中,所述可导航表示中的各特定节点包含对于所述可串流表示中的节点中的内容的至少一个指针以及对于所述可导航表示中的另一节点的至少一个指针;对于所述可导航表示中的另一节点的所述至少一个指针是以下指针中的一个:对于父亲节点的指针、对于孩子节点的指针、对于同胞节点的指针和对于先前的同胞节点的指针。
根据一个方面,提供了一种用于确定多个XML文档中的XML文档内的节点的存储表示的设备,所述设备包括:用于对于所述多个XML文档中的XML文档中的各节点,至少基于以所述各节点为根的子树的特性确定所述各节点的存储表示的装置;其中,用于确定所述各节点的存储表示的装置还包括:用于确定以所述各节点为根的子树的特性是否满足第一准则的装置;以及用于响应确定以所述各节点为根的子树的特性满足第一准则,确定在可导航存储中存储所述各节点的装置。
根据一个方面,提供了一种用于向可导航存储添加节点的设备,所述设备包括:用于解析多个XML文档的XML文档的装置;用于响应解析所述XML文档,从所述XML文档接收第一令牌的装置;用于确定所述第一令牌是第一XML要素的开始的装置;用于对于表示所述第一XML要素的第一节点分配在可导航存储内的第一空间量的装置;用于从所述XML文档接收第二令牌的装置;用于响应确定所述第二令牌表示第二XML要素的开始,在所述可导航存储内对于第二节点分配第二空间量的装置;用于响应确定所述第二令牌表示所述第一XML要素的结束,确定是否在可导航存储中存储所述第一节点的装置;以及用于响应确定不在所述可导航存储中存储所述第一节点,从所述可导航存储解除分配所述第一空间量的装置。
附图说明
在附图中作为例子而不是限制示出本发明,在这些附图中,类似的附图标记指的是类似的要素,其中,
图1是表示根据本发明的实施例的可导航存储的节点的内容的示图。
图2是表示根据本发明的实施例的以混合可导航/可串流格式存储示例XML文档的示图。
图3是根据本发明的实施例的用于创建混合可导航/可串流存储的步骤的流程图。
图4表示根据本发明的实施例的在图2中引入的示例XML文档的可导航存储的构建中的状态的快照。
图5表示根据本发明的实施例的来自作为混合存储格式给出的表1的示例XML文档。
图6是用于实现本发明的计算机系统的框图。
具体实施方式
在以下的描述中,出于解释的目的,阐述大量的特定的细节以能够彻底地理解本发明。但是,很显然,可以在没有这些特定的细节的情况下实施本发明。在其它实例中,为了避免不必要地混淆本发明,以框图的形式表示公知的结构和器件。
一般概要
对于包括评估需要导航的XPath表达以及以文档次序处理整个文档或碎片的各种用途,需要通用存储系统以存储和检索XML数据。给出提供可导航或可串流存储两者的优点并使每个的缺点最小化的混合存储方法。
内容管理系统可管理大的XML文档的集合。与任何单个叶节点相比,各更高层级节点(即最接近根节点的节点)会被更频繁地访问。但是,在文档的可串流表示中,对于大量的内容存储于叶节点中的文档,更高层级的节点会远离。因此,串流方法会要求读取更多的内容以找到文档的频繁访问的节点。提供从父亲到孩子和同胞节点的直接导航的树模型会增加找到这些节点的效率。但是,为了创建树模型,所有叶节点中的所有内容可能必须加载到存储器中。
这里描述的方法在可导航存储中存储XML文档的一些而不是全部的节点。另外,一些并且可能是全部的节点被存储于单独的可串流存储中。在该语境中,单独的意味着不需要从用于可导航存储的相同的存储器段分配用于可串流存储段的空间,并且,不要求可串流存储段与可导航段邻接。与以可串流存储格式存储的节点不同地表示以可导航存储格式存储的节点。其间在文档中存在许多交错内容的频繁访问的节点可能被放在可导航存储中,而不频繁访问的节点和/或访问整个子树的碎片的节点可能存储为可串流表示。来自树表示中的节点的指针可指向仅存储于可串流表示的节点。存储为串流的一部分的文本数据从树模型内指向,以避免文本的重复存储。对于不存储为串流的内容,出于该目的创建单独的文本区域。
该方法还包括对于文档中的各单个节点确定应使用哪个存储表示来表示节点的一种方式。另外,一旦在可导航和可串流存储的组合中存储文档的节点时,该方法包括如何使用存储表示以评估在根据这里描述方法存储的一组XML文档上的查询。
表示可导航节点
图1是示出可导航存储100的节点的示图。在展开图110中表示可导航存储120的多个节点中的节点中的一个124。示出可导航存储的节点的内容中的一些。各导航链接可以是指针。例如,节点124内的父亲链接130指向节点121,从而表示节点121是节点124的父亲节点。类似地,节点124的第一孩子链接132指向节点126,从而表示节点126存储节点124的第一孩子节点。下一同胞链接134和前一同胞链接136分别是与节点124的下一同胞链接和前一同胞链接链接。在实施例中,以可串流节点中或者以单独的文本段在可导航存储外面存储文本内容。要素名称或内容138指向文本内容180。
以混合导航/串流格式中表示XML文档
图2是表示以混合可导航/可串流格式存储的示例XML文档的示图。在本例子中,节点层次200是表示文档的节点层次的示图。出于解释的目的,可串流节点220表示可串流格式的示例文档的节点(实际的二进制表示可能不以这种方式出现)。可串流节点被示为在节点层次200中表示的层次的串行化表示,使得节点按文档次序。
可导航节点210仅包含以完全可导航格式存储的某些节点A、B和C。剩余的节点D、E和F仅以可串流格式被存储。另外,对于不完全可导航的某些节点,在可导航存储段中创建虚设节点。节点占据可导航存储段内的邻接的空间,并且,各节点的地址可相对于可导航节点段的开始。完全可导航节点可以均具有相同的尺寸,并且,虚设节点可均具有相同的尺寸,但是虚设节点占据比完全可导航节点少的空间。例如,地址x和地址z处的节点不是完全可导航节点(它们是虚设节点),由于关于这些节点存储最少的信息(不存储导航指针)。
出于阐述的目的,图2在概念上表示各可导航节点存储几条信息(虽然信息未必表示为在图中被表示。例如,标签“F”、“P”、“C”等可能没有如所示的那样逐字存储于节点中)。“F”表示指示当前节点是完全具有导航指针的完全节点还是仅指向在可串流存储中的节点处的虚设节点的标记。无论什么时候完全可导航节点的第一孩子不完全可导航,都提供表示该第一孩子的虚设节点。随后的孩子不需要由虚设节点表示。“Id”指示由节点表示的要素的标识符。标识符可以是诸如例子所示的名称,或者它可以是占据比名称少的空间并且与名称相关联地存储在诸如符号表中的节点外面的令牌标识符。作为替代方案,Id可以是进入包含要素的名称的文本段的指针。
可导航节点中的剩余的条目是指针。指针被用于找到存储于由指针指示的位置中的数据。指针可以是偏移地址,诸如从可导航节点210的开始偏移的字节或字。指针可以是绝对比特地址或者存储内的位置的任何其它指示。“P”表示父亲指针。文档的根节点A没有父亲,并且,其父亲指针是空(null)。节点B和C是节点A的孩子,并且,由于节点A位于地址u处,因此,它们的父亲指针包含地址u。“C”表示第一孩子指针。B是A的第一孩子,因此,由于节点B存储于地址w处,因此节点A的孩子指针包含地址w。节点B和C的第一孩子没有完全存储于可导航存储中,因此,对于它们分配虚设节点(节点D和F)。节点B的第一孩子是节点D,并且,其第一孩子指针指向地址x处的虚设节点。类似地,节点C的第一孩子是节点F,并且,其第一孩子指针指向地址z处的虚设节点。“S”是下一同胞指针。节点B是本例子中的仅有的可导航节点,该可导航节点具有也存储于完全可导航节点中的同胞。节点B的下一同胞指针指向地址y,原因是其同胞节点C存储于地址y处。“PS”表示前一同胞。节点C的前一同胞指针参照地址w,这里,存储其前一同胞节点B。
可导航节点的文本内容不存储于可导航节点内。如果相同节点也存储于可串流存储中,那么可导航节点可包含对于可串流存储或文本段中的节点的文本内容的开始的指针。这使得不需要重复存储文本内容。内容指针231~235示出指向可串流存储中的各可导航节点。在实施例中,如果节点不具有文本内容,那么内容指针可指向在本简单的例子中表示的可串流节点的开始。当在节点中存在文本内容时,内容指针可直接指向文本,而不指向节点的开始。
除了包含按照文档次序的文档节点的二进制表示,可串流表示可对于各可串流节点包含进入可导航存储的指针,以识别存储为完全可导航节点按照文档次序的下一节点。例如,虽然图2没有示出,但是,节点B的可串流表示会包含对于作为可导航存储中的地址y(包含节点C)的指针,其是按照文档次序在节点B后面的下一完全可导航节点。如果在文档中不存在更多的可导航节点,那么指针可以是空,或者指针可不被规定。(图5表示从可串流存储回到可导航存储中的指针)。
在图2所示的实施例中,仅通过也以可导航格式存储的某些节点以串流格式中存储整个文档。在替代性实施例中,作为以可串流表示中存储整个文档的替代,可以只在可串流存储中存储某些节点。在实施例中,只有不存储于可导航表示中的节点存储于可串流表示中。在替代性实施例中,可通过两种格式存储节点(诸如本例子中的节点A、B和C)。具有至少一个以可导航格式存储的孩子的节点自身也应以可导航格式被存储。因此,与层次的叶节点相比,文档层次的顶部节点更可能以可导航格式被存储。
确定XML文档内的哪些节点以可导航格式和可串流格式存储可以依赖于共用查询访问模式、将存储的文档的内容和上面运行存储系统的硬件平台的相对处理和I/O速度。因此,在每个文档的基础上以及在每个系统的基础上决定哪些文档节点要以可导航和可串流格式被存储。一个文档可能不会以与另一文档相同的方式被存储,即使这两个文档符合共同的结构。类似地,存储于一个存储系统上的文档可能不以与存储于具有不同的处理和I/O速度特性的另一存储系统上的相同的文档相同的方式被表示。
确定将存储于可导航存储中的节点
对于表1所示的示例文档的各节点,确定是否以支持导航(可导航表示)的格式、可串流表示或者两者存储节点。文档的各节点的特性被评估,以确定是否在可导航存储中存储节点。在实施例中,以树的各节点为根的子树的尺寸被评估。可关于节点计数和内容尺寸(例如,在包含内容的尺寸的盘上占据的空间)测量子树的尺寸。节点计数是处理子树所需要的处理的量的指示,并且,内容尺寸是从盘读取子树的I/O成本的指示。
表2表示分别用于以节点为根的各子树的节点计数和子树尺寸。通过计数在XML文档的文本表示中表示子树的字符的数量,确定子树尺寸。内容的字符的数量从一个购买订单到下一个改变。因此,基于内容尺寸确定在哪里存储节点意味着,可对于由不同的购买订单内的相同的XPath识别的不同的节点实例做出不同的存储确定。
确定在哪里存储各节点还基于主机平台的处理速度和I/O速度。处理速度是可多快地处理子树的指示。I/O速度是可多快从永久存储读取数据的指示。因此,可基于子树的节点计数和将存储文档的系统的处理能力以及内容尺寸和系统的I/O速度来计算合适性度量。当合适性度量的值超过阈值时,系统决定在可导航存储中存储该节点。
示例性合适性度量可被计算为:
合适性度量=节点计数*处理速度+内容尺寸*I/O速度这里,处理速度和I/O速度是上面执行从文本到二进制表示的转换的计算机系统所特定的。在实施例中,处理速度数以数以千计的百万指令每秒(kMIPS)被测量。在例子中,用于处理文档的处理速度是10kMIPS。在实施例中,以兆字节每秒MB/s测量I/O速度。在例子中,I/O系统的速度是300MB/s。因此,对具有节点计数21和子树尺寸535的表2中的示例Purchase Order节点计算的合适性度量被计算为:
21*10+535*300=160710
表2用子树尺寸注解的购买订单
出于阐述的目的,示例文档被选择为较小。在实际的系统中,将存储的文档会相当大,并且,可以以千字节(kB)或者甚至百万字节(MB)测量子树尺寸。但是,针对其比较合适性度量以确定节点是否应存储于可导航存储中的阈值可被适当地缩放。对于本例子,阈值被手动选择为85000。表3表示示例文档中的节点中的每一个的合适性度量以及基于合适性度量是否超过用户阈值确定哪些节点存储于可导航存储中。
表3确定各节点的存储表示
将该处理应用于表2所示的文档的所有节点会导致选择路径/PurchaseOrder和/PurchaseOrder/LineItems处的节点,并且只有这些节点要被存储于可导航存储中。因此,用于保持导航指针的存储的量对于导航提供最小的益处的那些节点被最小化。
确定合适性度量的阈值
确定是否在完全可导航存储中存储节点依赖于建立针对其比较基于期望的访问模式、文档节点属性和系统平台属性计算的自动计算的度量的阈值。选择正确的阈值可作为练习留给系统管理员基于管理员的经验。换句话说,他可进行试验并通过修改阈值参数并监视查询性能进行调整。
但是,可以构建工具以有利于有用的阈值的智能选择。例如,自动化工具可分析历史查询日志以提取一组XPath动作,并在对于文档的特定的文集(corpus)执行一组动作时评估成本权衡。这种工具可自动地对于各文档节点评估通向和来自该节点的导航动作的频率以及读取以该节点为根的子树的频率。通过该信息,可对于各节点确定处理和I/O要求。一旦要求被确定,就可比较它们与系统能力以确定最佳权衡。
确定将在可串流存储中存储的节点
如上所述,在一个实施例中,在可串流存储中存储所有的文档节点。在另一实施例中,只有不存储于可导航存储中的节点被存储为可串流存储。在又一实施例中,与各其它节点无关地并且与该节点是否存储于可导航存储中无关地对于包含于可串流存储中评估各节点,除了要求各节点至少存储于可导航存储或可串流存储中之外。
可通过与对于确定是否在可导航存储中存储节点描述的方式类似的方式评估是否在可串流存储中包含节点。例如,可以分析历史工作负载组合,并且,如果全部文档检索的百分比低于一定的阈值,那么没有节点会存储为可串流表示。可在子树级别处应用相同的准则,以确定是否应在可串流存储中存储文档的各单个节点。子树级别处的分析可考虑检索完全子树的频率。当不满足在可串流存储中存储节点的准则时,来自节点的文本可被放在单独的文本段中,并且,通过指向文本段而不是可串流存储的栈上的节点存储指针。
构建可导航和可串流存储
当存储系统接收用于存储的XML文档时,文档的文本表示被解析,并且,并行地创建可导航和可串流存储表示。图3是创建可导航和可串流存储节点的处理的流程图。在步骤310中,从文档解析下一令牌。当解析的令牌在步骤312中识别为XML要素的开始时,表示该要素的栈帧在步骤314中被推到栈上。对与该要素对应的完全可导航节点,在可导航存储段中分配空间。关于该节点的信息存储于栈帧中,包括指向可导航存储中的新分配空间的指针连同与该节点相关联的值,诸如子树中的节点的数量(初始化为1)、子树的尺寸(初始化为节点的尺寸)和指示节点的孩子中的任一个是否位于可导航存储中的标记(初始化为假)。当解析附加的令牌时,这些值可被更新。在将节点信息放在栈上时,节点的孩子还均未被处理。
解析下一令牌。如果下一令牌是前一节点的孩子要素,那么发生上述的处理。在可导航存储中分配空间,并且,与该要素对应的节点被推到栈上,而对于新的节点具有在新的栈帧中初始化的值。栈条目中的值不仅包含到新分配的可导航存储的指针,而且,进入对于父亲分配的可导航存储中的指针在孩子节点的栈帧内被复制到孩子的父亲指针中。一般地,本领域技术人员可以理解,在创建节点时,跟踪对于可导航存储中的节点的导航指针,并且将其存储在栈中。另外,存储于栈中的前一的要素的节点计数递增,并且,孩子节点的尺寸被添加到前一节点(其是当前的节点的父亲)的子树的尺寸。
在步骤316中,如果下一令牌不是结束要素,那么,在步骤318中,将令牌复制到可串流节点中并且解析下一令牌(步骤310)。当在步骤316中下一令牌指示要素的结束时,在步骤320中确定是否在先前分配的可导航存储节点中存储该要素。基于以上描述的合适性度量以及节点的孩子中的任一个是否位于可导航存储中来进行确定。合适性度量使用存储于要素的栈帧中的节点计数和子树尺寸的当前值。
如果确定不在可导航存储中存储节点(即,合适性度量不超过预先建立的阈值),那么释放对于节点先前分配的空间。通过解除分配不被用于在可导航存储中存储节点的空间,限制了构建可导航存储所需要的存储器的量。不需要立即在存储器中表示整个文档。即使节点是父亲节点的第一孩子,在该处理点上,还不知道节点的父亲节点是否位于可导航存储中,并因此不知道是否需要对于该节点创建可导航存储中的虚设节点。数据被存储于父亲的栈帧中,以指示第一孩子节点不被存储于可导航存储中并且包含对于第一孩子的可串流节点的指针。如果父亲稍后被存储于为完全可导航的,那么将创建虚设可导航节点以指向可串流存储中的第一孩子的节点。
如果在步骤320中节点要被存储于完全可导航存储节点中,那么,在步骤326中,适当的值从栈被复制到可导航存储中以表示节点。节点的仍处于栈上的父亲节点被更新,以指示其孩子节点中的一个位于可导航存储中。在步骤328中,如果存储于节点内的信息指示节点的第一孩子不存储于完全可导航存储中,那么在步骤330中,对于节点的第一孩子节点创建虚设节点。在步骤324中,用于节点的栈帧离开栈。
以上描述的流程假定所有节点被存储于可串流存储中。在替代性实施例中,可以评估整个文档以确定是否在可串流存储中存储该文档。如果确定不在可串流存储中存储文档,那么所有节点存储为完全可导航,而内容指针指向单独的文本段。在本实施例中,步骤318可将内容复制到单独的文本段。不需要从用于可导航存储的相同的存储器段分配文本段,并且,不要求文本段与可导航段邻接。在另一实施例中,可独立地对于包含于可串流存储中评估各节点。存储于完全可导航存储中的节点也可被存储于可串流存储中,或者,可导航节点可指向其内容的文本段。不存储于可串流存储中的节点必须被存储为完全可导航。
对于添加到可串流存储的节点,指向可串流节点的开始的指针在栈中存储于节点的内容指针中。如果节点不被包含于可串流存储中,那么栈内容指针被设定于节点的内容的文本段内的位置。
另外,可串流节点可包含回到可导航存储段的指针,以定位在文档次序上为下一个的完全可导航节点。存在虚设节点的可串流节点的后退指针可指向虚设可导航节点的结束。这将是下一完全可导航节点的位置。否则,所有其它可串流节点中的后退指针指向可导航存储如下:如果在可导航存储中分配的最后的空间仅被暂时分配,那么可串流节点的后退指针会以指向该存储的开始或结束为结束。如果针对其暂时分配可导航存储的节点稍后被解除分配,那么后退指针将指向存储的开始。如果针对其暂时分配可导航存储的节点稍后被永久指派使用该存储,那么后退指针将指向暂时分配的存储的结束。但是,如果在可导航存储器中分配的最后的存储被永久指派给节点,那么当前的可串流节点的后退指针将指向该永久分配的可导航空间的结束。在一个实施例中,直到确定正确的位置才能插入这种后退指针。在替代性实施例中,在可串流节点内存储的到下一完全可导航节点的指针会初始地指向紧接着最后分配的可导航节点(与其相邻)的可导航节点。如果用于父亲的空间稍后被解除分配,那么可向解除分配的空间的开始重新指派指针。另外,如果没有节点占据分配给下一完全可导航节点的空间,那么可以去除指针或者将其指派为空。
图4表示构建在图2中引入的示例XML文档的可导航存储时的状态的快照。以下描述直到图4所示的状态的事件的序列。一些步骤的描述比其它步骤更详细,但是,对于各类似的节点使用同一组步骤:
·将A推到栈490上,并且在可导航存储420中分配空间。
·将B推到栈490上,并且在可导航存储420中对于B分配节点。在栈帧中存储对于B的可导航存储的指针430。B的父亲链接(指针)被初始化,并且,A的孩子链接被更新。B的节点的尺寸被添加到A的子树尺寸,并且,A的节点计数递增。标记480被初始化以指示没有B的孩子被存储于可导航存储中。
·将D推到栈490上,并且更新B的孩子指针450,并且,将节点D的尺寸添加到用于B(472)和A的子树尺寸,并且,用于B(474)和A的节点计数递增。
在这些步骤结束时,在图4中表示所构建的状态。随后的步骤包括:
·确定D的合适性度量不超过阈值:使D离开栈并解除分配D的可导航存储。
·与D相同地处理节点E。
·确定B的合适性度量超过阈值。将B的链接值从栈帧复制到在可导航存储420中分配的节点。注意B的第一孩子D不存储于可导航存储中,并且,创建指向D的可串流存储节点的D的虚设可导航节点。
·使B离开栈
·在A中设定标记以指示在可导航存储中存储A的孩子。
此时,B的子树被完全处理并且C的子树被下一个处理。一旦C的子树被处理,就将A复制到对于它分配的可导航存储并且使其离开栈。
通过使用混合可导航和可串流存储评估查询
一旦解析文档并且在可导航和可串流存储结构的组合中存储其节点时,可对于评估查询使用这些结构。图5表示作为混合存储格式表示的表1的示例XML文档。以下是用于在图5所示的混合二进制表示上评估随后的查询的一系列的步骤:
for $t in/PurchaseOrder/LineItems
where $t/LineItem/Description=“The Life of Brian”
return($t/../Reference)
PurchaseOrder是已知存储于节点530中的根节点。LineItems是下一个要找到的节点。遍历第一孩子指针534定位虚设节点,从而指示第一孩子(Reference)不存储于可导航存储中。图5中的虚线阴影被用于表明虚设节点。虚设节点的指针被遍历,以找到存储Reference要素的可串流节点。Reference节点被扫描到结束,并且,指针572指向表示LineItems的下一可导航节点550。为了评估“where”语句,下一个要找到的节点是作为LineItems的孩子的LineItem。第一孩子指针554指向虚设节点560,从而指示LineItems的第一孩子不存储于可导航存储中。虚设节点560的指针568指向可串流存储中的LineItem节点的开始。可串流存储中的LineItem节点被扫描以找到作为LineItem的孩子的Description节点。当找到Description节点时,将其值(“Robocop”)与“The Life ofBrian”相比较,因此,谓词(predicate)不被第一LineItem满足。在第一LineItem的结束不存在指针,从而表示不存在更多的完全可导航节点。作为替代方案,可存在具有空值的指针。但是,在随后的可串流节点中存在另一LineItem。扫描下一LineItem节点,找到Description,并且,Description的内容是满足谓词的“Life of Brian”。由于在满足谓词的一组LineItems中找到LineItem,因此,$t被设定以表示节点550(LineItems)。
为了评估$t/../Reference,使用LineItems可导航节点的父亲指针552以找到LineItems的父亲,即节点530(PurchaseOrder)。虽然没有存储于可导航存储中,但是,可以通过遍历第一孩子链接534以访问虚设节点并遍历内容指针548以找到Reference,在可串流存储中很容易地找到Reference节点。
硬件概要
根据一个实施例,通过一个或更多个特殊用途计算装置实现这里描述的技术。特殊用途计算装置可被硬接线以执行技术,或者,可包含数字电子器件,诸如可被永久编程以执行技术的一个或更多个应用特定集成电路(ASIC)或场可编程门阵列(FPGA),或者可包含被编程为根据固件、存储器、其它存储或组合中的程序指令执行技术的一个或更多个通用硬件处理器。这种特殊用途计算装置还可组合定制硬接线逻辑、ASIC或FPGA与定制的编程以实现技术。特殊用途计算装置可以是台式计算机系统、便携式计算机系统、手持装置、联网装置或者加入硬接线和/或程序逻辑以实现技术的任何其它装置。
例如,图6是示出其上可实现本发明的实施例的计算机系统600的框图。计算机系统600包括总线602或用于传送信息的其它通信机构,以及与总线602耦合用于处理信息的硬件处理器604。硬件处理器604例如可以是通用微处理器。
计算机系统600还包括与总线602耦合的用于存储要由处理器604执行的信息和指令的主存储器606,诸如随机存取存储器(RAM)或其它动态存储装置。主存储器606还可被用于存储在将由处理器604执行的指令的执行过程中的临时变量或其它中间信息。这些指令当存储于可由处理器604访问的非暂时性存储介质中时,使得计算机系统600成为被定制以执行在指令中规定的动作的特殊用途机器。
计算机系统600还包括与总线602耦合的用于存储用于处理器604的静态信息和指令的只读存储器(ROM)608或其它静态存储装置。用于存储信息和指令的存储装置610,诸如磁盘或光盘,被设置并与总线602耦合。
计算机系统600可通过总线602与用于向计算机用户显示信息的诸如阴极射线管(CRT)的显示器612耦合。用于向处理器604传送信息和命令选择的包括文字数字和其它键的输入装置614与总线602耦合。另一类型的用户输入装置是用于向处理器604传送方向信息和命令选择并用于控制显示器612上的光标移动的光标控制616,诸如鼠标、轨迹球或光标方向键。该输入装置通常具有两个轴即第一(例如,x)和第二轴(例如,y)的自由度,该自由度允许装置规定面中的位置。
计算机系统600可通过使用与计算机系统组合导致计算机系统600或者将其编程为特殊用途机器的定制的硬接线逻辑、一个或更多个ASIC或FPGA、固件和/或程序逻辑来实现这里描述的技术。根据一个实施例,响应处理器604执行包含于主存储器606中的一个或更多个指令的的一个或更多个序列,由计算机系统600执行这里的技术。可从诸如存储装置610的另一存储介质将这些指令读取到主存储器606中。执行包含于主存储器606中的指令序列导致处理器604执行这里描述的处理步骤。在替代性实施例中,作为软件指令的替代或者与其组合,可以使用硬接线电路。
这里使用的术语“存储介质”指的是存储导致机器以特定的方式动作的数据和/或指令的任何非暂时性介质。这些存储介质可包含非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储装置610。易失性介质包括动态存储器,诸如主存储器606。存储介质的通用形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔的图案的任何物理介质、RAM、PROM和EPROM、FLASH-EROM、NVRAM、任何其它存储器芯片或盒。
存储介质与传送介质不同,但可与其结合使用。传送介质参与存储介质之间的信息传送。例如,传送介质包括同轴电缆、铜线和光纤,包括包含总线602的导线。传送介质还可采取声波或光波的形式,诸如在无线电波和红外数据通信中产生的那些。
在将一个或更多个指令的一个或更多个序列携带到处理器604以供执行的过程中,可以包括各种形式的介质。例如,可首先在远程计算机的磁盘或固态驱动器上承载指令。远程计算机可将指令加载到其动态存储器中并通过使用调制解调器在电话线上传送指令。计算机系统600本地的调制解调器可在电话线上接收数据,并使用红外传送器以将数据转换成红外信号。红外检测器可接收在红外信号中承载的数据并且适当的电路可将数据置于总线602上。总线602将数据携带到主存储器606,从该主存储器606,处理器604检索和执行指令。由主存储器606接收的指令可任选地在被处理器604执行之前或者之后存储于存储装置610上。
计算机系统600还包含与总线602耦合的通信接口618。通信接口618向与局域网络622连接的网络链接620提供双向数据通信耦合。例如,通信接口618可以是集成服务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器或用于向相应的类型的电话线提供数据通信连接的调制解调器。作为另一例子,通信接口618可以是用于向兼容的LAN提供数据通信连接的局域网络(LAN)卡。也可实现无线链接。在任何这种实现中,通信接口618发送和接收承载表示各种类型的信息的数字数据流的电气、电磁或光学信号。
网络链接620通常通过一个或更多个网络向其它数据装置提供数据通信。例如,网络链接620可通过局域网络622提供到主机计算机624或者由因特网服务提供商(ISP)626操作的数据设备的连接。ISP626继而通过现在一般称为“因特网”628的世界范围数据包通信网络提供数据通信服务。局域网络622和因特网628两者均使用承载数字数据流的电气、电磁或光学信号。通过各种网络的信号和处于网络链接620上并通过承载通去往和来自计算机系统600的数字数据的通信接口618的信号是传送介质的示例形式。
计算机系统600可通过网络、网络链接620和通信接口618发送消息并接收数据,包括程序代码。在因特网的例子中,服务器630可通过因特网628、ISP 626、局域网络622和通信接口618传送用于应用程序的请求代码。
接收的代码可在被接收时被处理器604执行,并且/或者存储于存储装置610或其它非易失性存储中以供稍后执行。
在以上的说明书中,参照可在实现之间改变的大量的特定细节描述了本发明的实施例。因此,说明书和附图应被视为解释而不是限制意义。本发明的专有范围的指示以及申请人所意图的本发明的范围是从本申请书发布的一组权利要求的文字和等同范围,该范围采取这些权利要求发布的特定的形式,包括任何随后的校正。
Claims (56)
1.一种用于存储多个文档的XML文档的方法,所述方法包括以下步骤:
在永久仓库中存储所述XML文档的包括可导航表示和与所述可导航表示分开的可串流表示的永久表示;
其中,所述XML文档包括分层关系的节点的树,所述节点的树的各节点与所述节点的树中的至少一个其它节点具有中间分层关系;
其中,所述可串流表示包含所述节点的树的按照文档次序的节点;
其中,所述可导航表示包含少于所述节点的树的所有节点;以及
其中,所述可导航表示中的各特定节点包含对于所述可串流表示中的节点中的内容的至少一个指针以及对于所述可导航表示中的另一节点的至少一个指针;
对于所述可导航表示中的另一节点的所述至少一个指针是以下指针中的一个:对于父亲节点的指针、对于孩子节点的指针、对于同胞节点的指针和对于先前的同胞节点的指针;
其中,通过一个或更多个计算装置执行这些步骤。
2.根据权利要求1所述的方法,
其中,对于所述可导航表示中包含的一个或更多个节点,所述可导航表示包含对于包含于所述可导航表示内的父亲节点的指针。
3.根据权利要求1所述的方法,
其中,对于一个或更多个节点,所述可导航表示包括对于包含于所述可导航表示内的同胞节点的指针。
4.根据权利要求1所述的方法,
其中,对于一个或更多个节点,所述可导航表示包括对于包含于所述可导航表示内的孩子节点的指针。
5.根据权利要求1所述的方法,其中,所述可串流表示包含所述XML文档中的所有节点。
6.根据权利要求1所述的方法,其中,在所述XML文档中存在不包含于所述可串流表示中的至少一个节点。
7.根据权利要求1所述的方法,
其中,对于包含于所述可导航表示中的一个或更多个节点中的各节点,所述可导航表示包含对于包含于所述可串流表示中并且不存储于所述可导航表示中的孩子节点的孩子指针。
8.根据权利要求1所述的方法,其中,对于包含于所述可导航表示中的一个或更多个节点中的各节点,所述可导航表示包含对于包含于所述可串流表示中并且不存储于所述可导航表示中的同胞节点的同胞指针。
9.根据权利要求1所述的方法,其中,一个或更多个节点包含于所述可导航表示和所述可串流表示两者中;并且
其中,对于所述一个或更多个节点的各节点,所述可导航表示包含对于包含于所述可串流表示中的所述各节点的指针。
10.根据权利要求1所述的方法,其中,一个或更多个节点包含于所述可导航表示中并且不包含于所述可串流表示中;并且
对于所述一个或更多个节点的各节点,所述可导航表示包含对于与所述可导航表示分开存储的文本段的指针。
11.根据权利要求1所述的方法,
其中,所述XML文档是符合XML方案的第一XML文档和符合所述XML方案的第二XML文档;并且
其中,对于特定的XPath表达,
与所述第一XML文档中的特定的XPath表达匹配的至少一个节点包含于所述第一XML文档的可导航表示内,并且
所述第二XML文档中的与特定的XPath表达匹配的至少一个节点不包含于所述第二XML文档的可导航表示内。
12.根据权利要求1所述的方法,还包括通过以下来评估路径表达:
通过遍历所述可导航表示来检索对于所述可串流表示中的某个节点的指针,并且
使用对于所述可串流表示中的某个节点的指针来访问所述可串流表示中的所述节点。
13.根据权利要求12所述的方法,其中,评估路径表达还包括:在访问所述可串流表示中的某个节点之后,
从所述可串流表示检索对于所述可导航表示中的另一节点的指针,并且
使用所述可导航表示中的节点以进一步遍历所述可导航表示。
14.根据权利要求1所述的方法,
其中,对于一个或更多个节点,所述可导航表示包含对于所述可串流表示中的节点的指针;并且
其中,对于一个或更多个节点,所述可串流表示包含对于所述可导航表示中的节点的指针。
15.根据权利要求1所述的方法,其中,在所述XML文档中存在包含在所述可串流表示中而不包含在所述可导航表示中的至少一个节点。
16.根据权利要求1所述的方法,其中,所述可导航表示中包含的节点并不包含对于所述可导航表示中的节点的任何指针。
17.根据权利要求16所述的方法,其中,所述节点包含对于所述可串流表示中的节点的指针。
18.一种用于确定多个XML文档中的XML文档内的节点的存储表示的方法,所述方法包括:
对于所述多个XML文档中的XML文档中的各节点,至少基于以所述各节点为根的子树的特性确定所述各节点的存储表示;
其中,确定所述各节点的存储表示还包括:
确定以所述各节点为根的子树的特性是否满足第一准则;以及
响应确定以所述各节点为根的子树的特性满足第一准则,确定在可导航存储中存储所述各节点;
其中,通过一个或更多个计算装置执行所述方法的这些步骤。
19.根据权利要求18所述的方法,其中,确定以所述各节点为根的子树的特性是否满足第一准则包括:
确定在以所述各节点为根的子树上评估的合适性度量是否超过阈值。
20.根据权利要求19所述的方法,其中,所述合适性度量至少基于包含于子树中的节点的数量和由所述子树的内容占据的空间的量。
21.根据权利要求19所述的方法,其中,所述合适性度量至少基于计算机的处理速度或I/O速度中的一个。
22.根据权利要求19所述的方法,其中,所述阈值是手动配置的。
23.根据权利要求19所述的方法,其中,所述阈值是基于评估历史查询访问模式和在所述历史查询访问模式中访问的文档的集合的节点的特性而自动确定的。
24.一种用于向可导航存储添加节点的方法,所述方法包括:
解析多个XML文档的XML文档;
响应解析所述XML文档,从所述XML文档接收第一令牌;
确定所述第一令牌是第一XML要素的开始;
对于表示所述第一XML要素的第一节点分配在可导航存储内的第一空间量;
从所述XML文档接收第二令牌;
响应确定所述第二令牌表示第二XML要素的开始,在所述可导航存储内对于第二节点分配第二空间量;
响应确定所述第二令牌表示所述第一XML要素的结束,确定是否在所述可导航存储中存储所述第一节点;以及
响应确定不在所述可导航存储中存储所述第一节点,从所述可导航存储解除分配所述第一空间量;
其中,通过一个或更多个计算装置执行所述方法的这些步骤。
25.根据权利要求24所述的方法,还包括:
接收作为所述第二XML要素的结束的第三令牌;以及
确定所述第二节点应被存储于可导航存储中。
26.根据权利要求24所述的方法,其中,确定是否在所述可导航存储中存储所述第一节点至少部分基于评估所述第一节点的一个或更多个特性。
27.根据权利要求26所述的方法,其中,所述第一节点的一个或更多个特性包括以所述第一节点为根的子树中的节点的数量的计数以及表示所述第一节点的串流表示所需要的磁盘空间的量。
28.根据权利要求24所述的方法,还包括:
更新所述第一节点中的数据,以包含节点的数量的计数和所述第二节点的子树的尺寸。
29.一种用于存储多个文档的XML文档的设备,所述设备包括:
用于在永久仓库中存储所述XML文档的包括可导航表示和与所述可导航表示分开的可串流表示的永久表示的装置;
其中,所述XML文档包括分层关系的节点的树,所述节点的树的各节点与所述节点的树中的至少一个其它节点具有中间分层关系;
其中,所述可串流表示包含所述节点的树的按照文档次序的节点;
其中,所述可导航表示包含少于所述节点的树的所有节点,以及
其中,所述可导航表示中的各特定节点包含对于所述可串流表示中的节点中的内容的至少一个指针以及对于所述可导航表示中的另一节点的至少一个指针;
对于所述可导航表示中的另一节点的所述至少一个指针是以下指针中的一个:对于父亲节点的指针、对于孩子节点的指针、对于同胞节点的指针和对于先前的同胞节点的指针。
30.根据权利要求29所述的设备,
其中,对于所述可导航表示中包含的一个或更多个节点,所述可导航表示包含对于包含于所述可导航表示内的父亲节点的指针。
31.根据权利要求29所述的设备,
其中,对于一个或更多个节点,所述可导航表示包括对于包含于所述导航表示内的同胞节点的指针。
32.根据权利要求29所述的设备,
其中,对于一个或更多个节点,所述可导航表示包括对于孩子节点的指针;并且
其中,所述孩子节点包含于所述可导航表示内。
33.根据权利要求29所述的设备,其中,所述可串流表示包含所述XML文档中的所有节点。
34.根据权利要求29所述的设备,其中,在所述XML文档中存在不包含于所述可串流表示中的至少一个节点。
35.根据权利要求29所述的设备,
其中,对于包含于所述可导航表示中的一个或更多个节点中的各节点,所述可导航表示包含对于包含于所述可串流表示中并且不存储于所述可导航表示中的孩子节点的孩子指针。
36.根据权利要求29所述的设备,其中,对于包含于所述可导航表示中的一个或更多个节点中的各节点,所述可导航表示包含对于包含于所述可串流表示中并且不存储于所述可导航表示中的同胞节点的同胞指针。
37.根据权利要求29所述的设备,其中,一个或更多个节点包含于所述可导航表示和所述可串流表示两者中;并且
其中,对于所述一个或更多个节点的各节点,所述可导航表示包含对于包含于所述可串流表示中的所述各节点的指针。
38.根据权利要求29所述的设备,其中,一个或更多个节点包含于所述可导航表示中并且不包含于所述可串流表示中;并且
对于所述一个或更多个节点的各节点,所述可导航表示包含对于与所述可导航表示分开存储的文本段的指针。
39.根据权利要求29所述的设备,
其中,所述XML文档是符合XML方案的第一XML文档和符合所述XML方案的第二XML文档;并且
其中,对于特定的XPath表达,
与所述第一XML文档中的特定的XPath表达匹配的至少一个节点包含于所述第一XML文档的可导航表示内,并且
所述第二XML文档中的与特定的XPath表达匹配的至少一个节点不包含于所述第二XML文档的可导航表示内。
40.根据权利要求29所述的设备,还包括用于评估路径表达的装置,包括:
用于通过遍历所述可导航表示来检索对于所述可串流表示中的某个节点的指针的装置,并且
用于使用对于所述可串流表示中的某个节点的指针来访问所述可串流表示中的所述节点的装置。
41.根据权利要求40所述的设备,其中,用于评估路径表达的装置还包括:用于在访问所述可串流表示中的某个节点之后,
从所述可串流表示检索对于所述可导航表示中的另一节点的指针,并且
使用所述可导航表示中的节点以进一步遍历所述可导航表示的装置。
42.根据权利要求29所述的设备,
其中,对于一个或更多个节点,所述可导航表示包含对于所述可串流表示中的节点的指针;并且
其中,对于一个或更多个节点,所述可串流表示包含对于所述可导航表示中的节点的指针。
43.根据权利要求29所述的设备,其中,在所述XML文档中存在包含在所述可串流表示中而不包含在所述可导航表示中的至少一个节点。
44.根据权利要求29所述的设备,其中,所述可导航表示中包含的节点并不包含对于所述可导航表示中的节点的任何指针。
45.根据权利要求44所述的设备,其中,所述节点包含对于所述可串流表示中的节点的指针。
46.一种用于确定多个XML文档中的XML文档内的节点的存储表示的设备,所述设备包括:
用于对于所述多个XML文档中的XML文档中的各节点,至少基于以所述各节点为根的子树的特性确定所述各节点的存储表示的装置;
其中,用于确定所述各节点的存储表示的装置还包括:
用于确定以所述各节点为根的子树的特性是否满足第一准则的装置;以及
用于响应确定以所述各节点为根的子树的特性满足第一准则,确定在可导航存储中存储所述各节点的装置。
47.根据权利要求46所述的设备,其中,用于确定以所述各节点为根的子树的特性是否满足第一准则的装置包括:
用于确定在以所述各节点为根的子树上评估的合适性度量是否超过阈值的装置。
48.根据权利要求47所述的设备,其中,所述合适性度量至少基于包含于子树中的节点的数量和由所述子树的内容占据的空间的量。
49.根据权利要求47所述的设备,其中,所述合适性度量至少基于计算机的处理速度或I/O速度中的一个。
50.根据权利要求47所述的设备,其中,所述阈值是手动配置的。
51.根据权利要求47所述的设备,其中,所述阈值是基于评估历史查询访问模式和在所述历史查询访问模式中访问的文档的集合的节点的特性而自动确定的。
52.一种用于向可导航存储添加节点的设备,所述设备包括:
用于解析多个XML文档的XML文档的装置;
用于响应解析所述XML文档,从所述XML文档接收第一令牌的装置;
用于确定所述第一令牌是第一XML要素的开始的装置;
用于对于表示所述第一XML要素的第一节点分配在可导航存储内的第一空间量的装置;
用于从所述XML文档接收第二令牌的装置;
用于响应确定所述第二令牌表示第二XML要素的开始,在所述可导航存储内对于第二节点分配第二空间量的装置;
用于响应确定所述第二令牌表示所述第一XML要素的结束,确定是否在可导航存储中存储所述第一节点的装置;以及
用于响应确定不在所述可导航存储中存储所述第一节点,从所述可导航存储解除分配所述第一空间量的装置。
53.根据权利要求52所述的设备,还包括:
接收作为所述第二XML要素的结束的第三令牌的装置;以及
用于确定所述第二节点应被存储于可导航存储中的装置。
54.根据权利要求52所述的设备,其中,确定是否在所述可导航存储中存储所述第一节点至少部分基于评估所述第一节点的一个或更多个特性。
55.根据权利要求54所述的设备,其中,所述第一节点的一个或更多个特性包括以所述第一节点为根的子树中的节点的数量的计数以及表示所述第一节点的串流表示所需要的磁盘空间的量。
56.根据权利要求52所述的设备,还包括:
用于更新所述第一节点中的数据,以包含节点的数量的计数和所述第二节点的子树的尺寸的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/961,394 US9165086B2 (en) | 2010-01-20 | 2010-12-06 | Hybrid binary XML storage model for efficient XML processing |
US12/961,394 | 2010-12-06 | ||
PCT/US2011/063310 WO2012078518A2 (en) | 2010-12-06 | 2011-12-05 | A hybrid binary xml storage model for efficient xml processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103493043A CN103493043A (zh) | 2014-01-01 |
CN103493043B true CN103493043B (zh) | 2017-02-08 |
Family
ID=45464086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180064212.0A Active CN103493043B (zh) | 2010-12-06 | 2011-12-05 | 用于有效的xml处理的混合二进制xml存储模型 |
Country Status (4)
Country | Link |
---|---|
US (3) | US9165086B2 (zh) |
EP (1) | EP2652643B1 (zh) |
CN (1) | CN103493043B (zh) |
WO (1) | WO2012078518A2 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8365193B2 (en) * | 2003-08-14 | 2013-01-29 | Oracle International Corporation | Recoverable asynchronous message driven processing in a multi-node system |
US9128895B2 (en) | 2009-02-19 | 2015-09-08 | Oracle International Corporation | Intelligent flood control management |
US8713426B2 (en) | 2009-06-25 | 2014-04-29 | Oracle International Corporation | Technique for skipping irrelevant portions of documents during streaming XPath evaluation |
US9165086B2 (en) | 2010-01-20 | 2015-10-20 | Oracle International Corporation | Hybrid binary XML storage model for efficient XML processing |
US8346813B2 (en) | 2010-01-20 | 2013-01-01 | Oracle International Corporation | Using node identifiers in materialized XML views and indexes to directly navigate to and within XML fragments |
US8566343B2 (en) | 2010-06-02 | 2013-10-22 | Oracle International Corporation | Searching backward to speed up query |
CN102651009B (zh) * | 2011-02-28 | 2014-09-24 | 国际商业机器公司 | 一种存储系统中检索数据的方法和设备 |
GB2510887A (en) | 2013-02-18 | 2014-08-20 | Ibm | Markup language parser |
WO2015058331A1 (en) * | 2013-10-21 | 2015-04-30 | Hewlett-Packard Development Company, L.P. | Extract data from xml stream |
US9588975B2 (en) | 2014-06-11 | 2017-03-07 | International Business Machines Corporation | Processing large XML files by splitting and hierarchical ordering |
US9678670B2 (en) | 2014-06-29 | 2017-06-13 | Plexistor Ltd. | Method for compute element state replication |
US9560136B2 (en) * | 2014-08-07 | 2017-01-31 | Sap Se | High speed communication protocol |
US10140029B2 (en) * | 2014-12-10 | 2018-11-27 | Netapp, Inc. | Method and apparatus for adaptively managing data in a memory based file system |
US9851919B2 (en) * | 2014-12-31 | 2017-12-26 | Netapp, Inc. | Method for data placement in a memory based file system |
US10187264B1 (en) * | 2017-02-14 | 2019-01-22 | Intuit Inc. | Gateway path variable detection for metric collection |
CN108509414B (zh) * | 2018-03-09 | 2021-09-03 | 黑龙江工程学院 | 基于排序的抄袭检测文本匹配方法 |
US11748560B2 (en) * | 2020-08-14 | 2023-09-05 | Kyndryl, Inc. | Converting between tabular and structured data formats |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1618066A (zh) * | 2001-11-23 | 2005-05-18 | 捷讯研究有限公司 | 用于处理可扩展标示语言(xml)文档的系统和方法 |
CN101010674A (zh) * | 2004-06-16 | 2007-08-01 | 甲骨文国际公司 | Lob中存储的xml内容的有效提取 |
US7840590B2 (en) * | 2006-12-18 | 2010-11-23 | Oracle International Corporation | Querying and fragment extraction within resources in a hierarchical repository |
Family Cites Families (314)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4318182A (en) | 1974-04-19 | 1982-03-02 | Honeywell Information Systems Inc. | Deadlock detection and prevention mechanism for a computer system |
CA1341310C (en) | 1988-07-15 | 2001-10-23 | Robert Filepp | Interactive computer network and method of operation |
US5222217A (en) | 1989-01-18 | 1993-06-22 | International Business Machines Corporation | System and method for implementing operating system message queues with recoverable shared virtual storage |
US8700458B2 (en) | 1989-05-01 | 2014-04-15 | Catalina Marketing Corporation | System, method, and database for processing transactions |
US5113522A (en) | 1989-05-17 | 1992-05-12 | International Business Machines Corporation | Data processing system with system resource management for itself and for an associated alien processor |
US6044205A (en) | 1996-02-29 | 2000-03-28 | Intermind Corporation | Communications system for transferring information between memories according to processes transferred with the information |
EP0444376B1 (en) | 1990-02-27 | 1996-11-06 | International Business Machines Corporation | Mechanism for passing messages between several processors coupled through a shared intelligent memory |
US5257365A (en) | 1990-03-16 | 1993-10-26 | Powers Frederick A | Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records |
US5151987A (en) | 1990-10-23 | 1992-09-29 | International Business Machines Corporation | Recovery objects in an object oriented computing environment |
US5627764A (en) | 1991-10-04 | 1997-05-06 | Banyan Systems, Inc. | Automatic electronic messaging system with feedback and work flow administration |
US5283856A (en) | 1991-10-04 | 1994-02-01 | Beyond, Inc. | Event-driven rule-based messaging system |
GB2276737A (en) | 1993-03-30 | 1994-10-05 | Ibm | Fault-tolerant transaction-oriented data processing |
GB2281644A (en) | 1993-09-02 | 1995-03-08 | Ibm | Fault tolerant transaction-oriented data processing. |
GB2284494B (en) | 1993-11-26 | 1998-09-09 | Hitachi Ltd | Distributed shared memory management system |
US5870599A (en) | 1994-03-01 | 1999-02-09 | Intel Corporation | Computer system employing streaming buffer for instruction preetching |
US6029205A (en) | 1994-12-22 | 2000-02-22 | Unisys Corporation | System architecture for improved message passing and process synchronization between concurrently executing processes |
US6515968B1 (en) | 1995-03-17 | 2003-02-04 | Worldcom, Inc. | Integrated interface for real time web based viewing of telecommunications network call traffic |
US5802278A (en) | 1995-05-10 | 1998-09-01 | 3Com Corporation | Bridge/router architecture for high performance scalable networking |
US5774668A (en) | 1995-06-07 | 1998-06-30 | Microsoft Corporation | System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing |
US5666486A (en) | 1995-06-23 | 1997-09-09 | Data General Corporation | Multiprocessor cluster membership manager framework |
US7095871B2 (en) | 1995-07-27 | 2006-08-22 | Digimarc Corporation | Digital asset management and linking media signals with related data using watermarks |
US5754841A (en) | 1995-10-20 | 1998-05-19 | Ncr Corporation | Method and apparatus for parallel execution of user-defined functions in an object-relational database management system |
US5790807A (en) | 1995-12-20 | 1998-08-04 | Tandem Computers Incorporated | Computer sysem data I/O by reference among CPUS and I/O devices |
JP3935986B2 (ja) | 1995-12-26 | 2007-06-27 | 富士通株式会社 | ネットワークにおける情報資源の変化を通知するネットワーク情報資源監視システム |
US5862325A (en) | 1996-02-29 | 1999-01-19 | Intermind Corporation | Computer-based communication system and method using metadata defining a control structure |
US5721825A (en) | 1996-03-15 | 1998-02-24 | Netvision, Inc. | System and method for global event notification and delivery in a distributed computing environment |
GB2311443A (en) | 1996-03-23 | 1997-09-24 | Ibm | Data message transfer in batches with retransmission |
US5995980A (en) | 1996-07-23 | 1999-11-30 | Olson; Jack E. | System and method for database update replication |
US6601083B1 (en) | 1996-08-29 | 2003-07-29 | Frederick John Reznak | Multitasking data processing system and method of controlling allocation of a shared resource |
US5870559A (en) * | 1996-10-15 | 1999-02-09 | Mercury Interactive | Software system and associated methods for facilitating the analysis and management of web sites |
US6092168A (en) | 1996-10-25 | 2000-07-18 | Hewlett-Packard Co. | Data storage system and method for deallocating space by writing and detecting a predefined data pattern |
US5852818A (en) | 1996-12-23 | 1998-12-22 | Oracle Corporation | Non-recursive method for parameter evaluation within an information management system |
US6222840B1 (en) | 1996-12-30 | 2001-04-24 | Compaq Computer Corporation | Method and system for performing concurrent read and write cycles in network switch |
US6035379A (en) | 1997-01-09 | 2000-03-07 | Microsoft Corporation | Transaction processing for user data employing both logging and shadow copying |
US6006274A (en) | 1997-01-30 | 1999-12-21 | 3Com Corporation | Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer |
US6041357A (en) | 1997-02-06 | 2000-03-21 | Electric Classified, Inc. | Common session token system and protocol |
AU6440398A (en) | 1997-02-26 | 1998-09-18 | Siebel Systems, Inc. | Method of using a cache to determine the visibility to a remote database client of a plurality of database transactions |
US6067540A (en) | 1997-02-28 | 2000-05-23 | Oracle Corporation | Bitmap segmentation |
US5970439A (en) | 1997-03-13 | 1999-10-19 | International Business Machines Corporation | Performance monitoring in a data processing system |
US5867667A (en) | 1997-03-24 | 1999-02-02 | Pfn, Inc. | Publication network control system using domain and client side communications resource locator lists for managing information communications between the domain server and publication servers |
US5870562A (en) | 1997-03-24 | 1999-02-09 | Pfn, Inc. | Universal domain routing and publication control system |
US6026430A (en) | 1997-03-24 | 2000-02-15 | Butman; Ronald A. | Dynamic client registry apparatus and method |
US5884035A (en) | 1997-03-24 | 1999-03-16 | Pfn, Inc. | Dynamic distributed group registry apparatus and method for collaboration and selective sharing of information |
US5867665A (en) | 1997-03-24 | 1999-02-02 | Pfn, Inc | Domain communications server |
US5940839A (en) | 1997-04-04 | 1999-08-17 | Hewlett-Packard Company | Fault-tolerant system and method of managing transaction failures in hierarchies |
US5890167A (en) | 1997-05-08 | 1999-03-30 | Oracle Corporation | Pluggable tablespaces for database systems |
US7031987B2 (en) | 1997-05-30 | 2006-04-18 | Oracle International Corporation | Integrating tablespaces with different block sizes |
US6243751B1 (en) | 1997-06-11 | 2001-06-05 | Oracle Corporation | Method and apparatus for coupling clients to servers |
US6088728A (en) | 1997-06-11 | 2000-07-11 | Oracle Corporation | System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server |
US6338074B1 (en) | 1997-07-23 | 2002-01-08 | Filenet Corporation | System for enterprise-wide work flow automation |
US5918059A (en) | 1997-08-15 | 1999-06-29 | Compaq Computer Corporation | Method and apparatus for responding to actuation of a power supply switch for a computing system |
US5999931A (en) | 1997-10-17 | 1999-12-07 | Lucent Technologies Inc. | Concurrency control protocols for management of replicated data items in a distributed database system |
US6334114B1 (en) | 1997-10-31 | 2001-12-25 | Oracle Corporation | Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm |
US6058389A (en) | 1997-10-31 | 2000-05-02 | Oracle Corporation | Apparatus and method for message queuing in a database system |
US6178529B1 (en) | 1997-11-03 | 2001-01-23 | Microsoft Corporation | Method and system for resource monitoring of disparate resources in a server cluster |
US6188699B1 (en) | 1997-12-11 | 2001-02-13 | Pmc-Sierra Ltd. | Multi-channel encoder/decoder |
US6490574B1 (en) | 1997-12-17 | 2002-12-03 | International Business Machines Corporation | Method and system for managing rules and events in a multi-user intelligent agent environment |
US6073129A (en) | 1997-12-29 | 2000-06-06 | Bull Hn Information Systems Inc. | Method and apparatus for improving the performance of a database management system through a central cache mechanism |
US6182086B1 (en) | 1998-03-02 | 2001-01-30 | Microsoft Corporation | Client-server computer system with application recovery of server applications and client applications |
US6230183B1 (en) | 1998-03-11 | 2001-05-08 | International Business Machines Corporation | Method and apparatus for controlling the number of servers in a multisystem cluster |
US6560592B1 (en) | 1998-03-19 | 2003-05-06 | Micro Data Base Systems, Inc. | Multi-model computer database storage system with integrated rule engine |
US6247017B1 (en) | 1998-03-20 | 2001-06-12 | Sun Microsystems, Inc. | Server-client communication over a network |
US6529932B1 (en) | 1998-04-01 | 2003-03-04 | Microsoft Corporation | Method and system for distributed transaction processing with asynchronous message delivery |
US7756892B2 (en) | 2000-05-02 | 2010-07-13 | Digimarc Corporation | Using embedded data with file sharing |
US6304882B1 (en) | 1998-05-05 | 2001-10-16 | Informix Software, Inc. | Data replication system and method |
EP0959416A3 (en) | 1998-05-08 | 2005-08-10 | International Business Machines Corporation | Using database query technology for message subscriptions in messaging systems |
US6192378B1 (en) | 1998-05-13 | 2001-02-20 | International Business Machines Corporation | Method and apparatus for combining undo and redo contexts in a distributed access environment |
US6243501B1 (en) | 1998-05-20 | 2001-06-05 | Canon Kabushiki Kaisha | Adaptive recognition of documents using layout attributes |
WO2000010084A2 (en) | 1998-08-17 | 2000-02-24 | Microsoft Corporation | Object load balancing |
US6327622B1 (en) | 1998-09-03 | 2001-12-04 | Sun Microsystems, Inc. | Load balancing in a network environment |
US6668291B1 (en) | 1998-09-09 | 2003-12-23 | Microsoft Corporation | Non-blocking concurrent queues with direct node access by threads |
US6263433B1 (en) | 1998-09-30 | 2001-07-17 | Ncr Corporation | Provision of continuous database service and scalable query performance using active redundant copies |
US6421656B1 (en) | 1998-10-08 | 2002-07-16 | International Business Machines Corporation | Method and apparatus for creating structure indexes for a data base extender |
US6308315B1 (en) | 1998-10-14 | 2001-10-23 | Sun Microsystems, Inc. | System and method for automatically and selectively promoting object variables to method fields and variables in a digital computer system |
JP3004008B1 (ja) | 1998-10-20 | 2000-01-31 | 三菱電機株式会社 | 更新履歴管理装置及び更新履歴管理方法 |
US6185555B1 (en) | 1998-10-31 | 2001-02-06 | M/A/R/C Inc. | Method and apparatus for data management using an event transition network |
US6728748B1 (en) | 1998-12-01 | 2004-04-27 | Network Appliance, Inc. | Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet |
US6442568B1 (en) | 1998-12-11 | 2002-08-27 | Compaq Computer Corporation | Customer information control system application programming interface with transient data functions, in a loosely coupled data processing environment |
DE10003015A1 (de) | 1999-02-06 | 2000-08-17 | Ibm | Die Erzeugung von Ereignis-Bedingungs-Aktions-Regeln aus Prozessmodellen |
US6393423B1 (en) | 1999-04-08 | 2002-05-21 | James Francis Goedken | Apparatus and methods for electronic information exchange |
US20020198791A1 (en) | 1999-04-21 | 2002-12-26 | Perkowski Thomas J. | Internet-based consumer product brand marketing communication system which enables manufacturers, retailers and their respective agents, and consumers to carry out product-related functions along the demand side of the retail chain in an integrated manner |
US6539381B1 (en) | 1999-04-21 | 2003-03-25 | Novell, Inc. | System and method for synchronizing database information |
US7167853B2 (en) | 1999-05-20 | 2007-01-23 | International Business Machines Corporation | Matching and compensation tests for optimizing correlated subqueries within query using automatic summary tables |
US6721713B1 (en) | 1999-05-27 | 2004-04-13 | Andersen Consulting Llp | Business alliance identification in a web architecture framework |
US6519571B1 (en) | 1999-05-27 | 2003-02-11 | Accenture Llp | Dynamic customer profile management |
US6536037B1 (en) | 1999-05-27 | 2003-03-18 | Accenture Llp | Identification of redundancies and omissions among components of a web based architecture |
US6473794B1 (en) | 1999-05-27 | 2002-10-29 | Accenture Llp | System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework |
US6556659B1 (en) | 1999-06-02 | 2003-04-29 | Accenture Llp | Service level management in a hybrid network architecture |
US7165252B1 (en) | 1999-06-21 | 2007-01-16 | Jia Xu | Method of scheduling executions of processes with various types of timing properties and constraints |
US6405191B1 (en) | 1999-07-21 | 2002-06-11 | Oracle Corporation | Content based publish-and-subscribe system integrated in a relational database system |
US7430670B1 (en) | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US6549922B1 (en) * | 1999-10-01 | 2003-04-15 | Alok Srivastava | System for collecting, transforming and managing media metadata |
US6721727B2 (en) | 1999-12-02 | 2004-04-13 | International Business Machines Corporation | XML documents stored as column data |
US20020116371A1 (en) | 1999-12-06 | 2002-08-22 | David Dodds | System and method for the storage, indexing and retrieval of XML documents using relation databases |
US6584581B1 (en) | 1999-12-06 | 2003-06-24 | Ab Initio Software Corporation | Continuous flow checkpointing data processing |
US6826182B1 (en) | 1999-12-10 | 2004-11-30 | Nortel Networks Limited | And-or multi-cast message routing method for high performance fault-tolerant message replication |
JP2001167087A (ja) | 1999-12-14 | 2001-06-22 | Fujitsu Ltd | 構造化文書検索装置,構造化文書検索方法,構造化文書検索用プログラム記録媒体および構造化文書検索用インデックス作成方法 |
AU2099201A (en) | 1999-12-21 | 2001-07-03 | Tivo, Inc. | Intelligent system and methods of recommending media content items based on userpreferences |
US6535970B1 (en) | 2000-01-04 | 2003-03-18 | International Business Machines Corporation | Method and apparatus for enhanced performance caching for path names |
US6587866B1 (en) | 2000-01-10 | 2003-07-01 | Sun Microsystems, Inc. | Method for distributing packets to server nodes using network client affinity and packet distribution table |
AU2001227857A1 (en) | 2000-01-14 | 2001-07-24 | Saba Software, Inc. | Method and apparatus for a business applications management system platform |
WO2001061565A1 (en) | 2000-02-16 | 2001-08-23 | Askit Systems Inc. | Customer service system and method |
US6728823B1 (en) | 2000-02-18 | 2004-04-27 | Hewlett-Packard Development Company, L.P. | Cache connection with bypassing feature |
US7117246B2 (en) | 2000-02-22 | 2006-10-03 | Sendmail, Inc. | Electronic mail system with methodology providing distributed message store |
US7080382B2 (en) | 2000-02-25 | 2006-07-18 | Oracle International Corporation | Accessing shorter-duration instances of activatable objects based on object references stored in longer-duration memory |
US20010052137A1 (en) | 2000-03-01 | 2001-12-13 | Trustees Of The University Of Pennsylvania | Axin domain-like polypeptide inhibitors of glycogen synthase kinase 3 beta activity and activators of wnt signaling |
US20020152305A1 (en) | 2000-03-03 | 2002-10-17 | Jackson Gregory J. | Systems and methods for resource utilization analysis in information management environments |
US6658596B1 (en) | 2000-03-13 | 2003-12-02 | International Business Machines Corporation | Automated queue recovery using element- based journaling |
US6601101B1 (en) | 2000-03-15 | 2003-07-29 | 3Com Corporation | Transparent access to network attached devices |
US7627694B2 (en) | 2000-03-16 | 2009-12-01 | Silicon Graphics, Inc. | Maintaining process group membership for node clusters in high availability computing systems |
US6647514B1 (en) | 2000-03-23 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request |
US6427146B1 (en) | 2000-03-31 | 2002-07-30 | Wesley W. Chu | Database event detection and notification system using type abstraction hierarchy (TAH) |
US6687735B1 (en) | 2000-05-30 | 2004-02-03 | Tranceive Technologies, Inc. | Method and apparatus for balancing distributed applications |
US20010032137A1 (en) | 2000-04-14 | 2001-10-18 | Shopsforme.Com | Information distribution and redemption system |
US20020144010A1 (en) | 2000-05-09 | 2002-10-03 | Honeywell International Inc. | Communication handling in integrated modular avionics |
US6769074B2 (en) | 2000-05-25 | 2004-07-27 | Lumigent Technologies, Inc. | System and method for transaction-selective rollback reconstruction of database objects |
KR100390853B1 (ko) | 2000-06-07 | 2003-07-10 | 차상균 | 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치 |
JP3851493B2 (ja) | 2000-06-12 | 2006-11-29 | 株式会社日立製作所 | データベース検索方法及びデータベース検索システム並びにデータベース検索プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2002007749A (ja) | 2000-06-27 | 2002-01-11 | Hitachi Ltd | サーバ振り分け装置、サービス提供システム及びサービス提供方法 |
US6802003B1 (en) | 2000-06-30 | 2004-10-05 | Intel Corporation | Method and apparatus for authenticating content |
WO2002005116A2 (en) | 2000-07-06 | 2002-01-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Automatic database replication server and methods |
JP4292693B2 (ja) | 2000-07-07 | 2009-07-08 | 株式会社日立製作所 | 計算機資源分割装置および資源分割方法 |
JP2004519749A (ja) | 2000-07-17 | 2004-07-02 | ギャラクティック・コンピューティング・コーポレイション | 離隔するアカウント/サイトを越えて動的にホストサービス管理を提供する方法及びシステム |
US6925476B1 (en) | 2000-08-17 | 2005-08-02 | Fusionone, Inc. | Updating application data including adding first change log to aggreagate change log comprising summary of changes |
US6816907B1 (en) | 2000-08-24 | 2004-11-09 | International Business Machines Corporation | System and method for providing differentiated services on the web |
US6728705B2 (en) | 2000-09-01 | 2004-04-27 | Disney Enterprises, Inc. | System and method for selecting content for displaying over the internet based upon some user input |
US7130885B2 (en) | 2000-09-05 | 2006-10-31 | Zaplet, Inc. | Methods and apparatus providing electronic messages that are linked and aggregated |
US7181492B2 (en) | 2000-10-17 | 2007-02-20 | Concerto Software, Inc. | Transfer of an internet chat session between servers |
US7336613B2 (en) | 2000-10-17 | 2008-02-26 | Avaya Technology Corp. | Method and apparatus for the assessment and optimization of network traffic |
ATE304261T1 (de) | 2000-11-08 | 2005-09-15 | Infonet Services Corp A Califo | Verfahren und vorrichtung für automatische dienststufenübereinkommen |
US6793625B2 (en) | 2000-11-13 | 2004-09-21 | Draeger Medical Systems, Inc. | Method and apparatus for concurrently displaying respective images representing real-time data and non real-time data |
US6704831B1 (en) | 2000-11-16 | 2004-03-09 | Sun Microsystems, Inc. | Method and apparatus for converting address information between PCI bus protocol and a message-passing queue-oriented bus protocol |
JP4774145B2 (ja) | 2000-11-24 | 2011-09-14 | 富士通株式会社 | 構造化文書圧縮装置および構造化文書復元装置並びに構造化文書処理システム |
US20030177187A1 (en) | 2000-11-27 | 2003-09-18 | Butterfly.Net. Inc. | Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications |
US7844666B2 (en) | 2000-12-12 | 2010-11-30 | Microsoft Corporation | Controls and displays for acquiring preferences, inspecting behavior, and guiding the learning and decision policies of an adaptive communications prioritization and routing system |
JP2002183125A (ja) * | 2000-12-14 | 2002-06-28 | Hitachi Ltd | 文書情報管理方法および装置 |
US6621083B2 (en) | 2000-12-29 | 2003-09-16 | Honeywell International Inc. | High-absorption wide-band pixel for bolometer arrays |
US20020091685A1 (en) | 2001-01-10 | 2002-07-11 | Letmeknow Technology | System and method for filtering data events |
US6704886B1 (en) | 2001-01-25 | 2004-03-09 | Emc Corporation | Data backup system having independent data restore execution |
US7162467B2 (en) | 2001-02-22 | 2007-01-09 | Greenplum, Inc. | Systems and methods for managing distributed database resources |
US7103586B2 (en) | 2001-03-16 | 2006-09-05 | Gravic, Inc. | Collision avoidance in database replication systems |
US7177866B2 (en) | 2001-03-16 | 2007-02-13 | Gravic, Inc. | Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only |
US7703009B2 (en) | 2001-04-09 | 2010-04-20 | Huang Evan S | Extensible stylesheet designs using meta-tag information |
US7269157B2 (en) | 2001-04-10 | 2007-09-11 | Internap Network Services Corporation | System and method to assure network service levels with intelligent routing |
US7519546B2 (en) | 2001-04-30 | 2009-04-14 | General Electric Company | Maintaining synchronization of information published to multiple subscribers |
US6697791B2 (en) | 2001-05-04 | 2004-02-24 | International Business Machines Corporation | System and method for systematic construction of correlation rules for event management |
US6868413B1 (en) | 2001-05-10 | 2005-03-15 | Networks Associates Technology, Inc. | System and method for customizing and processing business logic rules in a business process system |
JP4953518B2 (ja) | 2001-05-14 | 2012-06-13 | ケープレックス・インク | オブジェクト指向技術を用いた情報共有方法及び装置 |
US6651012B1 (en) | 2001-05-24 | 2003-11-18 | Simmonds Precision Products, Inc. | Method and apparatus for trending and predicting the health of a component |
US20020194015A1 (en) | 2001-05-29 | 2002-12-19 | Incepto Ltd. | Distributed database clustering using asynchronous transactional replication |
US6987765B2 (en) | 2001-06-14 | 2006-01-17 | Nortel Networks Limited | Changing media sessions |
US7734676B2 (en) | 2001-06-27 | 2010-06-08 | International Business Machines Corporation | Method for controlling the number of servers in a hierarchical resource environment |
US20030014523A1 (en) | 2001-07-13 | 2003-01-16 | John Teloh | Storage network data replicator |
US7174379B2 (en) | 2001-08-03 | 2007-02-06 | International Business Machines Corporation | Managing server resources for hosted applications |
GB0119145D0 (en) | 2001-08-06 | 2001-09-26 | Nokia Corp | Controlling processing networks |
US7031994B2 (en) | 2001-08-13 | 2006-04-18 | Sun Microsystems, Inc. | Matrix transposition in a computer system |
US6745209B2 (en) | 2001-08-15 | 2004-06-01 | Iti, Inc. | Synchronization of plural databases in a database replication system |
EP1421710B1 (en) | 2001-08-16 | 2017-11-15 | QUALCOMM Incorporated | Methods, mobile communications device and base station in a communication system having shared communications resources |
US7454446B2 (en) | 2001-08-31 | 2008-11-18 | Rocket Software, Inc. | Techniques for storing data based upon storage policies |
US7412492B1 (en) | 2001-09-12 | 2008-08-12 | Vmware, Inc. | Proportional share resource allocation with reduction of unproductive resource consumption |
US20030061260A1 (en) | 2001-09-25 | 2003-03-27 | Timesys Corporation | Resource reservation and priority management |
WO2003026589A2 (en) | 2001-09-28 | 2003-04-03 | Idenix (Cayman) Limited | Methods and compositions for treating hepatitis c virus using 4'-modified nucleosides |
US6980988B1 (en) | 2001-10-01 | 2005-12-27 | Oracle International Corporation | Method of applying changes to a standby database system |
US7222190B2 (en) | 2001-11-02 | 2007-05-22 | Internap Network Services Corporation | System and method to provide routing control of information over data networks |
US7281206B2 (en) | 2001-11-16 | 2007-10-09 | Timebase Pty Limited | Maintenance of a markup language document in a database |
JP3898498B2 (ja) | 2001-12-06 | 2007-03-28 | 富士通株式会社 | サーバ負荷分散システム |
US7146564B2 (en) | 2001-12-21 | 2006-12-05 | Xmlcities, Inc. | Extensible stylesheet designs using meta-tag and/or associated meta-tag information |
US7293105B2 (en) | 2001-12-21 | 2007-11-06 | Cisco Technology, Inc. | Methods and apparatus for implementing a high availability fibre channel switch |
US7058622B1 (en) | 2001-12-26 | 2006-06-06 | Tedesco Michael A | Method, apparatus and system for screening database queries prior to submission to a database |
JP4163870B2 (ja) | 2001-12-28 | 2008-10-08 | 富士通株式会社 | 構造化文書変換装置 |
US20030135609A1 (en) | 2002-01-16 | 2003-07-17 | Sun Microsystems, Inc. | Method, system, and program for determining a modification of a system resource configuration |
US7266099B2 (en) | 2002-01-23 | 2007-09-04 | Hewlett-Packard Development Company, L.P. | Method for hand-off of a data session |
US7392302B2 (en) | 2002-02-21 | 2008-06-24 | Bea Systems, Inc. | Systems and methods for automated service migration |
US7178050B2 (en) | 2002-02-22 | 2007-02-13 | Bea Systems, Inc. | System for highly available transaction recovery for transaction processing systems |
US7287075B2 (en) | 2002-02-22 | 2007-10-23 | Bea Systems, Inc. | System for monitoring managed server health |
JP2003248628A (ja) | 2002-02-25 | 2003-09-05 | Hitachi Ltd | ストレージ装置およびシステム |
US6832219B2 (en) | 2002-03-18 | 2004-12-14 | International Business Machines Corporation | Method and system for storing and querying of markup based documents in a relational database |
US7325017B2 (en) * | 2003-09-24 | 2008-01-29 | Swsoft Holdings, Ltd. | Method of implementation of data storage quota |
US7089228B2 (en) | 2002-04-18 | 2006-08-08 | International Business Machines Corporation | Computer apparatus and method for caching results of a database query |
US7496655B2 (en) | 2002-05-01 | 2009-02-24 | Satyam Computer Services Limited Of Mayfair Centre | System and method for static and dynamic load analyses of communication network |
US7127467B2 (en) | 2002-05-10 | 2006-10-24 | Oracle International Corporation | Managing expressions in a database system |
AU2003237296A1 (en) | 2002-05-31 | 2003-12-19 | Spatial Wireless, Inc. | Method and system for providing location information of a mobile station |
GB0213073D0 (en) | 2002-06-07 | 2002-07-17 | Hewlett Packard Co | Method of maintaining availability of requested network resources |
US7162485B2 (en) | 2002-06-19 | 2007-01-09 | Georg Gottlob | Efficient processing of XPath queries |
US6691155B2 (en) | 2002-06-20 | 2004-02-10 | Linda Gottfried | Multimedia system for sharing brand information keeps history of modifications of production information by consumers to allow recreating multimedia interface in its previous formats |
US7058957B1 (en) | 2002-07-12 | 2006-06-06 | 3Pardata, Inc. | Cluster event notification system |
US7185033B2 (en) | 2002-08-01 | 2007-02-27 | Oracle International Corporation | Buffered message queue architecture for database management systems with unlimited buffered message queue with limited shared memory |
US20040024771A1 (en) | 2002-08-01 | 2004-02-05 | Oracle International Corporation | Buffered message queue architecture for database management systems with transactional enqueue support |
US7203706B2 (en) | 2002-08-01 | 2007-04-10 | Oracle International Corporation | Buffered message queue architecture for database management systems with memory optimizations and “zero copy” buffered message queue |
US7031974B1 (en) | 2002-08-01 | 2006-04-18 | Oracle International Corporation | Replicating DDL changes using streams |
US7181482B2 (en) | 2002-08-01 | 2007-02-20 | Oracle International Corporation | Buffered message queue architecture for database management systems |
US7185034B2 (en) | 2002-08-01 | 2007-02-27 | Oracle International Corporation | Buffered message queue architecture for database management systems with guaranteed at least once delivery |
US6889231B1 (en) | 2002-08-01 | 2005-05-03 | Oracle International Corporation | Asynchronous information sharing system |
US7191298B2 (en) | 2002-08-02 | 2007-03-13 | International Business Machines Corporation | Flexible system and method for mirroring data |
US6917946B2 (en) | 2002-08-12 | 2005-07-12 | International Business Machines Corporation | Method and system for partitioning filter rules for multi-search enforcement |
US7200657B2 (en) | 2002-10-01 | 2007-04-03 | International Business Machines Corporation | Autonomic provisioning of network-accessible service behaviors within a federated grid infrastructure |
US7353538B2 (en) | 2002-11-08 | 2008-04-01 | Federal Network Systems Llc | Server resource management, analysis, and intrusion negation |
US8140677B2 (en) | 2002-11-21 | 2012-03-20 | International Business Machines Corporation | Autonomic web services hosting service |
US20040111506A1 (en) | 2002-12-10 | 2004-06-10 | International Business Machines Corporation | System and method for managing web utility services |
US7149738B2 (en) | 2002-12-16 | 2006-12-12 | International Business Machines Corporation | Resource and data administration technologies for IT non-experts |
US7340674B2 (en) | 2002-12-16 | 2008-03-04 | Xerox Corporation | Method and apparatus for normalizing quoting styles in electronic mail messages |
US7243351B2 (en) | 2002-12-17 | 2007-07-10 | International Business Machines Corporation | System and method for task scheduling based upon the classification value and probability |
JP4267336B2 (ja) | 2003-01-30 | 2009-05-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 構造パターン候補を生成する方法、システムおよびプログラム |
US7194462B2 (en) * | 2003-02-27 | 2007-03-20 | Bea Systems, Inc. | Systems and methods for implementing an XML query language |
US20040172385A1 (en) | 2003-02-27 | 2004-09-02 | Vikram Dayal | Database query and content transmission governor |
US7441046B2 (en) | 2003-03-03 | 2008-10-21 | Siemens Medical Solutions Usa, Inc. | System enabling server progressive workload reduction to support server maintenance |
US20040176996A1 (en) | 2003-03-03 | 2004-09-09 | Jason Powers | Method for monitoring a managed system |
US20040181476A1 (en) | 2003-03-13 | 2004-09-16 | Smith William R. | Dynamic network resource brokering |
JP4165747B2 (ja) | 2003-03-20 | 2008-10-15 | 株式会社日立製作所 | 記憶システム、制御装置及び制御装置のプログラム |
US7263590B1 (en) | 2003-04-23 | 2007-08-28 | Emc Corporation | Method and apparatus for migrating data in a computer system |
US7047337B2 (en) | 2003-04-24 | 2006-05-16 | International Business Machines Corporation | Concurrent access of shared resources utilizing tracking of request reception and completion order |
US7801851B2 (en) | 2003-06-30 | 2010-09-21 | Gravic, Inc. | Method for ensuring referential integrity in multi-threaded replication engines |
US7613822B2 (en) | 2003-06-30 | 2009-11-03 | Microsoft Corporation | Network load balancing with session information |
US7289988B2 (en) | 2003-07-08 | 2007-10-30 | Hewlett-Packard Development Company, L.P. | Method and system for managing events |
US7334187B1 (en) | 2003-08-06 | 2008-02-19 | Microsoft Corporation | Electronic form aggregation |
US20050033809A1 (en) | 2003-08-08 | 2005-02-10 | Teamon Systems, Inc. | Communications system providing server load balancing based upon weighted health metrics and related methods |
US7634498B2 (en) | 2003-10-24 | 2009-12-15 | Microsoft Corporation | Indexing XML datatype content system and method |
US7287023B2 (en) | 2003-11-26 | 2007-10-23 | International Business Machines Corporation | Index structure for supporting structural XML queries |
US7984021B2 (en) | 2003-12-05 | 2011-07-19 | International Business Machines Corporation | Optimal use of triggers for detecting database events |
US7506215B1 (en) | 2003-12-09 | 2009-03-17 | Unisys Corporation | Method for health monitoring with predictive health service in a multiprocessor system |
US7418456B2 (en) | 2004-01-16 | 2008-08-26 | International Business Machines Corporation | Method for defining a metadata schema to facilitate passing data between an extensible markup language document and a hierarchical database |
US8346909B2 (en) | 2004-01-22 | 2013-01-01 | International Business Machines Corporation | Method for supporting transaction and parallel application workloads across multiple domains based on service level agreements |
US7340678B2 (en) | 2004-02-12 | 2008-03-04 | Fuji Xerox Co., Ltd. | Systems and methods for creating an interactive 3D visualization of indexed media |
US8688634B2 (en) | 2004-02-27 | 2014-04-01 | International Business Machines Corporation | Asynchronous peer-to-peer data replication |
US7877366B2 (en) | 2004-03-12 | 2011-01-25 | Oracle International Corporation | Streaming XML data retrieval using XPath |
US7533138B1 (en) * | 2004-04-07 | 2009-05-12 | Sun Microsystems, Inc. | Practical lock-free doubly-linked list |
US7398265B2 (en) | 2004-04-09 | 2008-07-08 | Oracle International Corporation | Efficient query processing of XML data using XML index |
US7499915B2 (en) | 2004-04-09 | 2009-03-03 | Oracle International Corporation | Index for accessing XML data |
US7366735B2 (en) * | 2004-04-09 | 2008-04-29 | Oracle International Corporation | Efficient extraction of XML content stored in a LOB |
US7739418B2 (en) | 2004-04-12 | 2010-06-15 | Hewlett-Packard Development Company, L.P. | Resource management system |
US20050262205A1 (en) | 2004-04-30 | 2005-11-24 | Nikolov Radoslav I | Delivering messages in an enterprise messaging system using message selector hierarchy |
US20050267965A1 (en) | 2004-05-13 | 2005-12-01 | Ixi Mobile (R&D) Ltd. | Mobile router graceful shutdown system and method |
US20050289175A1 (en) * | 2004-06-23 | 2005-12-29 | Oracle International Corporation | Providing XML node identity based operations in a value based SQL system |
US7885980B2 (en) | 2004-07-02 | 2011-02-08 | Oracle International Corporation | Mechanism for improving performance on XML over XML data using path subsetting |
US7587400B2 (en) | 2004-08-12 | 2009-09-08 | Oracle International Corporation | Suspending a result set and continuing from a suspended result set for transparent session migration |
US7660719B1 (en) | 2004-08-19 | 2010-02-09 | Bevocal Llc | Configurable information collection system, method and computer program product utilizing speech recognition |
US20060047646A1 (en) | 2004-09-01 | 2006-03-02 | Maluf David A | Query-based document composition |
US7734582B2 (en) | 2004-11-16 | 2010-06-08 | International Business Machines Corporation | Apparatus, system, and method for cache synchronization |
US7203624B2 (en) | 2004-11-23 | 2007-04-10 | Dba Infopower, Inc. | Real-time database performance and availability change root cause analysis method and system |
US7617257B2 (en) | 2004-12-03 | 2009-11-10 | Oracle International Corporation | System for persistent caching of LDAP metadata in a cluster LDAP server topology |
US7672958B2 (en) | 2005-01-14 | 2010-03-02 | Im2, Inc. | Method and system to identify records that relate to a pre-defined context in a data set |
WO2006076315A1 (en) | 2005-01-14 | 2006-07-20 | Delta Design, Inc. | Heat sink pedestal with interface medium chamber |
US7370061B2 (en) | 2005-01-27 | 2008-05-06 | Siemens Corporate Research, Inc. | Method for querying XML documents using a weighted navigational index |
US20060173865A1 (en) * | 2005-02-03 | 2006-08-03 | Fong Joseph S | System and method of translating a relational database into an XML document and vice versa |
US8024353B2 (en) * | 2005-02-11 | 2011-09-20 | Fujitsu Limited | Method and system for sequentially accessing compiled schema |
US7685203B2 (en) | 2005-03-21 | 2010-03-23 | Oracle International Corporation | Mechanism for multi-domain indexes on XML documents |
US7734631B2 (en) | 2005-04-25 | 2010-06-08 | Microsoft Corporation | Associating information with an electronic document |
US7359910B2 (en) * | 2005-06-30 | 2008-04-15 | Microsoft Corporation | Scalable transformation and tree based query language node—set selection |
US7225103B2 (en) | 2005-06-30 | 2007-05-29 | Oracle International Corporation | Automatic determination of high significance alert thresholds for system performance metrics using an exponentially tailed model |
US7496589B1 (en) | 2005-07-09 | 2009-02-24 | Google Inc. | Highly compressed randomly accessed storage of large tables with arbitrary columns |
US8762410B2 (en) | 2005-07-18 | 2014-06-24 | Oracle International Corporation | Document level indexes for efficient processing in multiple tiers of a computer system |
US20070016605A1 (en) | 2005-07-18 | 2007-01-18 | Ravi Murthy | Mechanism for computing structural summaries of XML document collections in a database system |
US7424396B2 (en) | 2005-09-26 | 2008-09-09 | Intel Corporation | Method and apparatus to monitor stress conditions in a system |
US7512610B1 (en) | 2005-09-30 | 2009-03-31 | Miosoft Corporation | Processing data records |
US8280867B2 (en) | 2005-10-20 | 2012-10-02 | Teradata Us, Inc. | Identifying database request sources |
US8117505B2 (en) | 2005-11-07 | 2012-02-14 | Microsoft Corporation | Resource exhaustion prediction, detection, diagnosis and correction |
EP1974305A4 (en) * | 2006-01-11 | 2011-11-09 | Carmel Haifa University Economic Corp Ltd | UAV DECISION AND CONTROL SYSTEM |
US7904759B2 (en) | 2006-01-11 | 2011-03-08 | Amazon Technologies, Inc. | System and method for service availability management |
US20070174309A1 (en) | 2006-01-18 | 2007-07-26 | Pettovello Primo M | Mtreeini: intermediate nodes and indexes |
US20070198479A1 (en) | 2006-02-16 | 2007-08-23 | International Business Machines Corporation | Streaming XPath algorithm for XPath expressions with predicates |
CN100418092C (zh) * | 2006-02-20 | 2008-09-10 | 南京联创科技股份有限公司 | 海量数据内存数据库中快速定位的网格+t树索引的方法 |
US9367647B2 (en) | 2006-02-21 | 2016-06-14 | Hewlett Packard Enterprise Development Lp | Method of providing system design |
US8452981B1 (en) | 2006-03-01 | 2013-05-28 | Nvidia Corporation | Method for author verification and software authorization |
US7624130B2 (en) * | 2006-03-30 | 2009-11-24 | Microsoft Corporation | System and method for exploring a semantic file network |
US20070234199A1 (en) | 2006-03-31 | 2007-10-04 | Astigeyevich Yevgeniy M | Apparatus and method for compact representation of XML documents |
US8555274B1 (en) | 2006-03-31 | 2013-10-08 | Vmware, Inc. | Virtualized desktop allocation system using virtual infrastructure |
US8156156B2 (en) | 2006-04-06 | 2012-04-10 | Universita Di Pisa | Method of structuring and compressing labeled trees of arbitrary degree and shape |
US8429526B2 (en) | 2006-04-10 | 2013-04-23 | Oracle International Corporation | Efficient evaluation for diff of XML documents |
CN101055578A (zh) | 2006-04-12 | 2007-10-17 | 龙搜(北京)科技有限公司 | 基于规则的文档内容挖掘器 |
EP1847923A1 (en) | 2006-04-21 | 2007-10-24 | Microsoft Corporation | Localising unstructured resources |
US8024329B1 (en) | 2006-06-01 | 2011-09-20 | Monster Worldwide, Inc. | Using inverted indexes for contextual personalized information retrieval |
US7680764B2 (en) | 2006-06-21 | 2010-03-16 | Oracle International Corporation | Parallel population of an XML index |
US7849069B2 (en) | 2006-06-21 | 2010-12-07 | International Business Machines Corporation | Method and system for federated resource discovery service in distributed systems |
JP4189416B2 (ja) | 2006-08-28 | 2008-12-03 | 株式会社東芝 | 構造化文書管理システム及びプログラム |
US8108765B2 (en) | 2006-10-11 | 2012-01-31 | International Business Machines Corporation | Identifying and annotating shared hierarchical markup document trees |
US7797310B2 (en) | 2006-10-16 | 2010-09-14 | Oracle International Corporation | Technique to estimate the cost of streaming evaluation of XPaths |
US8326819B2 (en) | 2006-11-13 | 2012-12-04 | Exegy Incorporated | Method and system for high performance data metatagging and data indexing using coprocessors |
US20080155641A1 (en) | 2006-12-20 | 2008-06-26 | International Business Machines Corporation | Method and system managing a database system using a policy framework |
US7552119B2 (en) | 2006-12-20 | 2009-06-23 | International Business Machines Corporation | Apparatus and method for skipping XML index scans with common ancestors of a previously failed predicate |
US8125950B2 (en) | 2007-01-31 | 2012-02-28 | Broadcom Corporation | Apparatus for wirelessly managing resources |
US7627618B2 (en) | 2007-02-21 | 2009-12-01 | At&T Knowledge Ventures, L.P. | System for managing data collection processes |
EP1965354A1 (en) * | 2007-03-02 | 2008-09-03 | Gemmo S.p.A. | Service management system and method |
US7860899B2 (en) | 2007-03-26 | 2010-12-28 | Oracle International Corporation | Automatically determining a database representation for an abstract datatype |
US7917515B1 (en) | 2007-03-26 | 2011-03-29 | Lsi Corporation | System and method of accelerating processing of streaming data |
US8117182B2 (en) | 2007-04-23 | 2012-02-14 | International Business Machines Corporation | Apparatus and method for optimizing descendant path evaluation in xpath/xquery |
US20080301129A1 (en) | 2007-06-04 | 2008-12-04 | Milward David R | Extracting and displaying compact and sorted results from queries over unstructured or semi-structured text |
US7761411B2 (en) | 2007-07-20 | 2010-07-20 | Oracle International Corporation | Delta operations on a large object in a database |
US20090112809A1 (en) | 2007-10-24 | 2009-04-30 | Caterpillar Inc. | Systems and methods for monitoring health of computing systems |
US20090113350A1 (en) | 2007-10-26 | 2009-04-30 | Stacie Lynn Hibino | System and method for visually summarizing and interactively browsing hierarchically structured digital objects |
US8090731B2 (en) | 2007-10-29 | 2012-01-03 | Oracle International Corporation | Document fidelity with binary XML storage |
US8180791B2 (en) | 2007-11-08 | 2012-05-15 | Oracle International Corporation | Combining streaming and navigation for evaluating XML queries |
US9842090B2 (en) | 2007-12-05 | 2017-12-12 | Oracle International Corporation | Efficient streaming evaluation of XPaths on binary-encoded XML schema-based documents |
US7870124B2 (en) * | 2007-12-13 | 2011-01-11 | Oracle International Corporation | Rewriting node reference-based XQuery using SQL/SML |
JP4968117B2 (ja) | 2008-03-05 | 2012-07-04 | 富士通株式会社 | 経路計算装置および経路計算システム |
US8230269B2 (en) | 2008-06-17 | 2012-07-24 | Microsoft Corporation | Monitoring data categorization and module-based health correlations |
AU2010276462B1 (en) | 2010-12-27 | 2012-01-12 | Limelight Networks, Inc. | Partial object caching |
US8527238B2 (en) | 2008-09-30 | 2013-09-03 | Microsoft Corporation | Storage input/output utilization associated with a software application |
US8762367B2 (en) | 2008-12-08 | 2014-06-24 | Teradata Us, Inc. | Accurate and timely enforcement of system resource allocation rules |
US8244984B1 (en) | 2008-12-08 | 2012-08-14 | Nvidia Corporation | System and method for cleaning dirty data in an intermediate cache using a data class dependent eviction policy |
US8126932B2 (en) | 2008-12-30 | 2012-02-28 | Oracle International Corporation | Indexing strategy with improved DML performance and space usage for node-aware full-text search over XML |
US9911212B2 (en) | 2009-02-24 | 2018-03-06 | International Business Machines Corporation | Resetting of dynamically grown accelerated data structure |
US8255394B2 (en) | 2009-06-01 | 2012-08-28 | International Business Machines Corporation | Apparatus, system, and method for efficient content indexing of streaming XML document content |
US8713426B2 (en) | 2009-06-25 | 2014-04-29 | Oracle International Corporation | Technique for skipping irrelevant portions of documents during streaming XPath evaluation |
US9292702B2 (en) * | 2009-08-20 | 2016-03-22 | International Business Machines Corporation | Dynamic switching of security configurations |
US8266151B2 (en) | 2009-10-30 | 2012-09-11 | Oracle International Corporationn | Efficient XML tree indexing structure over XML content |
US8832142B2 (en) | 2010-08-30 | 2014-09-09 | Oracle International Corporation | Query and exadata support for hybrid columnar compressed data |
US8756215B2 (en) | 2009-12-02 | 2014-06-17 | International Business Machines Corporation | Indexing documents |
US9298846B2 (en) | 2009-12-23 | 2016-03-29 | Citrix Systems, Inc. | Systems and methods for efficient Xpath processing |
US8346813B2 (en) | 2010-01-20 | 2013-01-01 | Oracle International Corporation | Using node identifiers in materialized XML views and indexes to directly navigate to and within XML fragments |
US9165086B2 (en) | 2010-01-20 | 2015-10-20 | Oracle International Corporation | Hybrid binary XML storage model for efficient XML processing |
US20110208730A1 (en) | 2010-02-23 | 2011-08-25 | Microsoft Corporation | Context-aware searching |
US20110289118A1 (en) | 2010-05-20 | 2011-11-24 | Microsoft Corporation | Mapping documents to a relational database table with a document position column |
US8953444B2 (en) * | 2010-06-25 | 2015-02-10 | Qualcomm Incorporated | Load balancing |
US8458530B2 (en) | 2010-09-21 | 2013-06-04 | Oracle International Corporation | Continuous system health indicator for managing computer system alerts |
-
2010
- 2010-12-06 US US12/961,394 patent/US9165086B2/en active Active
-
2011
- 2011-12-05 WO PCT/US2011/063310 patent/WO2012078518A2/en active Application Filing
- 2011-12-05 CN CN201180064212.0A patent/CN103493043B/zh active Active
- 2011-12-05 EP EP11805686.0A patent/EP2652643B1/en active Active
-
2015
- 2015-10-17 US US14/886,031 patent/US10055128B2/en active Active
- 2015-10-17 US US14/886,032 patent/US10191656B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1618066A (zh) * | 2001-11-23 | 2005-05-18 | 捷讯研究有限公司 | 用于处理可扩展标示语言(xml)文档的系统和方法 |
CN101010674A (zh) * | 2004-06-16 | 2007-08-01 | 甲骨文国际公司 | Lob中存储的xml内容的有效提取 |
US7840590B2 (en) * | 2006-12-18 | 2010-11-23 | Oracle International Corporation | Querying and fragment extraction within resources in a hierarchical repository |
Non-Patent Citations (2)
Title |
---|
Indexing XML data stored in a relational database;Shankar Pal et al.;《Proceeding VLDB 04 Proceedings of the Thirtieth international conference on Very large data bases》;20041231;第1146-1157页 * |
Integrating document and data retrieval based on XML;Jan-Marco Bremer et al.;《THE VLDB Journal》;20060131;第53-83页 * |
Also Published As
Publication number | Publication date |
---|---|
US20120143919A1 (en) | 2012-06-07 |
WO2012078518A2 (en) | 2012-06-14 |
US10191656B2 (en) | 2019-01-29 |
US20160042086A1 (en) | 2016-02-11 |
EP2652643B1 (en) | 2018-03-07 |
US9165086B2 (en) | 2015-10-20 |
WO2012078518A3 (en) | 2013-09-26 |
EP2652643A2 (en) | 2013-10-23 |
US20160041763A1 (en) | 2016-02-11 |
US10055128B2 (en) | 2018-08-21 |
CN103493043A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103493043B (zh) | 用于有效的xml处理的混合二进制xml存储模型 | |
CN105849726B (zh) | 用于高效地支持通过分层标记数据的即席查询的通用索引 | |
US8266151B2 (en) | Efficient XML tree indexing structure over XML content | |
US9330124B2 (en) | Efficiently registering a relational schema | |
US7499915B2 (en) | Index for accessing XML data | |
US8346813B2 (en) | Using node identifiers in materialized XML views and indexes to directly navigate to and within XML fragments | |
US7353222B2 (en) | System and method for the storage, indexing and retrieval of XML documents using relational databases | |
US6636845B2 (en) | Generating one or more XML documents from a single SQL query | |
US7668806B2 (en) | Processing queries against one or more markup language sources | |
US7493305B2 (en) | Efficient queribility and manageability of an XML index with path subsetting | |
CN100541493C (zh) | 用于结构化文档管理的装置和方法 | |
US10915575B2 (en) | Evaluating XML full text search | |
US8566343B2 (en) | Searching backward to speed up query | |
US20060167929A1 (en) | Method for optimizing archival of XML documents | |
US8447785B2 (en) | Providing context aware search adaptively | |
US20090222473A1 (en) | Method for encoding, traversing, manipulating and querying a tree | |
US20140067819A1 (en) | Efficient xml tree indexing structure over xml content | |
Pokorny | Modelling stars using XML | |
EP1994480A1 (en) | Automatically determining a database representation for an abstract datatype | |
CA2561734C (en) | Index for accessing xml data | |
US7487439B1 (en) | Method and apparatus for converting between data sets and XML documents | |
JP2008234429A (ja) | 部分ライブラリ構築装置、プログラムおよび部分ライブラリ構築方法 | |
Pokorný | XML in the stars: a new approach to data warehouses | |
US20080147615A1 (en) | Xpath based evaluation for content stored in a hierarchical database repository using xmlindex |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |