C-tree for multi-attribute indexing
First Claim
1. An indexing system, comprising:
- a memory;
a C-tree contained in memory that exploits search space containment in connection with indexing a database, wherein the C-tree comprises a plurality of disk-based leaf (data) pages, each of the leaf (data) pages associated with a declared home search space that does not change as index terms are added, at least one leaf (data) page containing a side pointer to another leaf (data) page associated with a declared side search space, the search spaces forming a fragment of a containment tree, the C-tree further comprising a page level above the leaf level of the containment tree indexing structure as a collection of index pages that contain a complete containment tree, each page containing a plurality of nodes wherein each node of the containment tree denotes one leaf (data) page of the containment tree and search spaces for the nodes of the containment tree act as index terms for the leaf (data) page in the containment tree, wherein the C-tree handles data page index terms with extended object space descriptions formed by excluding the overlapping object spaces of pages that were created earlier; and
a query component that receives a search request from the database and returns one or more objects associated with the C-tree satisfying the search request, wherein when an original index page of the C-tree splits into a first and second index page by moving subtree from the original index page to the second index page, a containment-tree node in the first index page has a search space description of a root of the moved subtree of the second index page and a side pointer to the second index page enabling reconstruction of an original containment tree without the second index page containing a side pointer to the first index page.
2 Assignments
0 Petitions
Accused Products
Abstract
An abstract indexing structure called a C-tree that it is an access method that exploits search space “containment” is described. The C-tree structure includes objects spaces that overlap, but search spaces that are disjoint. Every part of the search space is indexed by some node. Moreover, every object has a unique location in the index, despite the object space overlap. The C-tree is a tree of pages, typically disk based, like a B-tree, but it handles a greater variety of data, e.g., spatial data, temporal data, etc. In particular, it can handle the indexing of objects that have extents, not merely point data, and hence objects that can overlap. These objects can be indexed without remapping them to a higher dimensional point space. At least one particular aspect of the invention is premised on a notion of an object being contained in some kind of search space.
-
Citations
28 Claims
-
1. An indexing system, comprising:
-
a memory; a C-tree contained in memory that exploits search space containment in connection with indexing a database, wherein the C-tree comprises a plurality of disk-based leaf (data) pages, each of the leaf (data) pages associated with a declared home search space that does not change as index terms are added, at least one leaf (data) page containing a side pointer to another leaf (data) page associated with a declared side search space, the search spaces forming a fragment of a containment tree, the C-tree further comprising a page level above the leaf level of the containment tree indexing structure as a collection of index pages that contain a complete containment tree, each page containing a plurality of nodes wherein each node of the containment tree denotes one leaf (data) page of the containment tree and search spaces for the nodes of the containment tree act as index terms for the leaf (data) page in the containment tree, wherein the C-tree handles data page index terms with extended object space descriptions formed by excluding the overlapping object spaces of pages that were created earlier; and a query component that receives a search request from the database and returns one or more objects associated with the C-tree satisfying the search request, wherein when an original index page of the C-tree splits into a first and second index page by moving subtree from the original index page to the second index page, a containment-tree node in the first index page has a search space description of a root of the moved subtree of the second index page and a side pointer to the second index page enabling reconstruction of an original containment tree without the second index page containing a side pointer to the first index page. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 26)
-
-
14. An abstract indexing system that comprises:
-
a memory; object spaces contained in memory that overlap and search spaces that are disjoint, the object spaces formed by a C-tree indexing structure comprising a leaf level a plurality of leaf (data) pages containing data for querying, a side pointer in at least one leaf (data) page that points to another leaf (data) page, and a fragment of a containment tree in each of the plurality of leaf (data) pages, the fragment describing a home search space of the respective leaf (data) page and a search space of the leaf (data) page pointed to by the side pointer, the C-tree indexing structure further comprising a page level above the leaf level as a collection of index pages that contain a complete containment tree, each page containing a plurality of nodes wherein each node of the containment tree denotes one leaf (data) page of the containment tree and search spaces for the nodes of the containment tree act as index terms for the leaf (data) page in the containment tree; and a query component that searches via the search spaces and returns one or more objects satisfying a search request, wherein when an original index page of the C-tree splits into a first and second index page by moving subtree from the original index page to the second index page, a containment-tree node in the first index page has a search space description of a root of the moved subtree of the second index page and a side pointer to the second index page enabling reconstruction of an original containment tree without the second index page containing a side pointer to the first index page. - View Dependent Claims (15, 16, 17, 18, 19, 27)
-
-
20. An indexing methodology, comprising:
receiving data in connection with a relational database; employing a C-tree in connection with indexing the database, the C-tree comprising a plurality of pages, each of the pages associated with a declared search space that does not change, the plurality of pages comprising a leaf level and a page level, wherein the leaf level comprises a plurality of leaf (data) pages containing data for querying, a side pointer in at least one leaf (data) page that points to another leaf (data) page, and a fragment of a containment tree in each of the plurality of leaf (data) pages, the fragment describing a home search space of the respective leaf (data) page and a search space of the leaf (data) page pointed to by the side pointer, wherein the page level above the leaf level comprises a collection of index pages that contain a complete containment tree, each page containing a plurality of nodes wherein each node of the containment tree denotes one leaf (data) page of the containment tree and search spaces for the nodes of the containment tree act as index terms for the leaf (data) page in the containment tree; receiving a search request to find an object within the C-tree; and indicating the object that satisfies the request, wherein when an original index page of the C-tree splits into a first and second index page by moving subtree from the original index page to the second index page, a containment-tree node in the first index page has a search space description of a root of the moved subtree of the second index page and a side pointer to the second index page enabling reconstruction of an original containment tree without the second index page containing a side pointer to the first index page. - View Dependent Claims (21, 22, 23, 24, 28)
-
25. A computer-implemented method for forming an abstract indexing structure that can handle a greater variety of data, comprising:
-
processing on a processor the computer implemented method for forming an abstract indexing structure that can handle a greater variety of data; storing on a computer readable storage media computer-executable instructions that, when executed by the processor, performs the computer implemented method for forming an abstract indexing structure that can handle a greater variety of data; defining a leaf level of a containment tree indexing structure by providing a plurality of leaf (data) pages containing data for querying, inserting a side pointer in at least one leaf (data) page that points to another leaf (data) page, and inserting a fragment of a containment tree in each of the plurality of leaf (data) pages, the fragment describing a home search space of the respective leaf (data) page and a search space of the leaf (data) page pointed to by the side pointer; defining a page level above the leaf level of the containment tree indexing structure as a collection of index pages that contain a complete containment tree, each page containing a plurality of nodes wherein each node of the containment tree denotes one leaf (data) page of the containment tree and search spaces for the nodes of the containment tree act as index terms for the leaf (data) page in the containment tree; and defining a plurality of upper levels, each containing a subset of nodes of the containment tree of the page level, each having a space description associated with index pages of the page level, wherein when an original index page of the C-tree splits into a first and second index page by moving subtree from the original index page to the second index page, a containment-tree node in the first index page has a search space description of a root of the moved subtree of the second index page and a side pointer to the second index page enabling reconstruction of an original containment tree without the second index page containing a side pointer to the first index page.
-
Specification