Hilbert ordering of multidimensional tuples within computing systems
First Claim
1. A method comprising:
- receiving multidimensional data elements, wherein each multidimensional data element is defined by a plurality of objects having different object types, wherein each object type is associated with a different dimension within a multidimensional data space, and wherein an object value is stored to each object;
forming a respective tuple for each of the multidimensional data elements by mapping each object value to an associated reference;
applying, with a processor, a Hilbert function to two or more of the references of each of the tuples to determine a respective Hilbert ordering for each of the tuples; and
storing each of the Hilbert orderings to a respective record within a tree data structure allocated within a linear data storage structure,wherein the tree data structure comprises a plurality of pages, wherein the plurality of pages comprises a first page having a first record corresponding to a first Hilbert value and a second record corresponding to a second Hilbert value, wherein the plurality of pages further comprises a second page having a third record corresponding to a third Hilbert value, and wherein the third Hilbert value is greater than the first Hilbert value and less than the second Hilbert value.
4 Assignments
0 Petitions
Accused Products
Abstract
A system provides multidimensional tuple Hilbert ordering within a linear storage structure to enable more consistent and efficient access to stored multidimensional tuples. The database system comprises a tuple storage module that receives multidimensional data elements, where each multidimensional data element is defined by a plurality of different object types, and where each object is associated with a different dimension within a multidimensional data space. The tuple storage module further forms a respective tuple for each of the multidimensional data elements by mapping each object to an associated reference and applies a Hilbert function to the references of each of the tuples to determine a respective Hilbert ordering for each of the tuples. The system further comprises a linear data storage structure that includes a B-tree for storing the Hilbert ordering.
12 Citations
15 Claims
-
1. A method comprising:
-
receiving multidimensional data elements, wherein each multidimensional data element is defined by a plurality of objects having different object types, wherein each object type is associated with a different dimension within a multidimensional data space, and wherein an object value is stored to each object; forming a respective tuple for each of the multidimensional data elements by mapping each object value to an associated reference; applying, with a processor, a Hilbert function to two or more of the references of each of the tuples to determine a respective Hilbert ordering for each of the tuples; and storing each of the Hilbert orderings to a respective record within a tree data structure allocated within a linear data storage structure, wherein the tree data structure comprises a plurality of pages, wherein the plurality of pages comprises a first page having a first record corresponding to a first Hilbert value and a second record corresponding to a second Hilbert value, wherein the plurality of pages further comprises a second page having a third record corresponding to a third Hilbert value, and wherein the third Hilbert value is greater than the first Hilbert value and less than the second Hilbert value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system comprising:
-
a programmable processor; a linear storage structure that includes a B-tree for storing multidimensional data; a tuple storage module, executing on the programmable processor, that receives multidimensional data elements to store to the B-tree, where each multidimensional data element is defined by a plurality of objects having different object types, wherein each object type is associated with a different dimension within a multidimensional data space, and wherein an object value is stored to each object, wherein the tuple storage module forms a respective tuple for each of the multidimensional data elements at least in part by mapping each object value to an associated reference, applies a Hilbert function to two or more of the references of each of the tuples to determine a respective Hilbert ordering for each of the tuples, and stores each of the Hilbert orderings to a respective record within the B-tree, wherein the tuple storage module applies the Hilbert function to a subset of the references of the tuple, and wherein the subset of references is selected based on a size of the respective dimension associated with each of the references. - View Dependent Claims (13, 14, 15)
-
Specification