Hybrid binary XML storage model for efficient XML processing
First Claim
Patent Images
1. A method for determining a storage representation for nodes within an eXtensible Markup Language (XML) document, the method comprising:
- for each node in said nodes within the XML document,determining a storage representation for said each node based at least on characteristics of a sub-tree rooted at said each node;
wherein determining the storage representation for said each node further comprises;
determining whether the characteristics of the sub-tree rooted at said each node meet a first criterion; and
in response to determining that the characteristics of the sub-tree rooted at said each node meet the first criterion, determining to store said each node in navigable storage;
wherein storing said each node in the navigable storage causes said each node to be stored in a navigable representation of said each node, the navigable representation of said each node includes at least one pointer to another node in the navigable storage,said at least one pointer to the other node in the navigable storage being one of;
a pointer to a parent node of said each node,
a pointer to a child node of said each node,
a pointer to a sibling node of said each node, or
a pointer to a previous sibling node of said each node;
in response to determining that the characteristics of the sub-tree rooted at said each node do not meet the first criterion, determining to store said each node in streamable storage;
wherein storing said each node in the streamable storage causes said each node to be stored in a document order of the XML document;
wherein the steps of the method are performed by one or more computing devices.
0 Assignments
0 Petitions
Accused Products
Abstract
A method for storing XML documents a hybrid navigation/streaming format is provided to allow efficient storage and processing of queries on the XML data that provides the benefits of both navigation and streaming and ameliorates the disadvantages of each. Each XML document to be stored is independently analyzed to determine a combination of navigable and streamable storage format that optimizes the processing of the data for anticipated access patterns.
-
Citations
22 Claims
-
1. A method for determining a storage representation for nodes within an eXtensible Markup Language (XML) document, the method comprising:
-
for each node in said nodes within the XML document, determining a storage representation for said each node based at least on characteristics of a sub-tree rooted at said each node; wherein determining the storage representation for said each node further comprises; determining whether the characteristics of the sub-tree rooted at said each node meet a first criterion; and in response to determining that the characteristics of the sub-tree rooted at said each node meet the first criterion, determining to store said each node in navigable storage; wherein storing said each node in the navigable storage causes said each node to be stored in a navigable representation of said each node, the navigable representation of said each node includes at least one pointer to another node in the navigable storage, said at least one pointer to the other node in the navigable storage being one of;
a pointer to a parent node of said each node,
a pointer to a child node of said each node,
a pointer to a sibling node of said each node, or
a pointer to a previous sibling node of said each node;in response to determining that the characteristics of the sub-tree rooted at said each node do not meet the first criterion, determining to store said each node in streamable storage; wherein storing said each node in the streamable storage causes said each node to be stored in a document order of the XML document; wherein the steps of the method are performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. One or more non-transitory computer-readable media storing instructions, wherein the instructions include:
instructions which, when executed by one or more hardware processors, cause, for each node in nodes within an eXtensible Markup Language (XML) document, determining a storage representation for said each node based at least on characteristics of a sub-tree rooted at said each node; wherein determining the storage representation for said each node further comprises; determining whether the characteristics of the sub-tree rooted at said each node meet a first criterion; and in response to determining that the characteristics of the sub-tree rooted at said each node meet the first criterion, determining to store said each node in navigable storage; wherein storing said each node in the navigable storage causes said each node to be stored in a navigable representation of said each node, the navigable representation of said each node includes at least one pointer to another node in the navigable storage, said at least one pointer to the other node in the navigable storage being one of;
a pointer to a parent node of said each node,
a pointer to a child node of said each node,
a pointer to a sibling node of said each node, or
a pointer to a previous sibling node of said each node;in response to determining that the characteristics of the sub-tree rooted at said each node do not meet the first criterion, determining to store said each node in streamable storage; wherein storing said each node in the streamable storage causes said each node to be stored in a document order of the XML document. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
Specification