DATABASE CONTROLLER, METHOD, AND PROGRAM FOR HANDLING RANGE QUERIES
First Claim
1. A database controller for a database of information encoded as a set of data items distributed among a plurality of storage units distinguishable from one another by respective identifying information and each data item comprising a value of each of two or more data elements, the set of data items having a prescribed order of the two or more data elements of which the first one or two data elements are assigned as a prefix portion, the database controller comprising:
- a query receiving module configured to receive a range query specifying a value of the or each of one or more data elements as a search prefix portion which each data item returned as a range query result must include in its prefix portion;
an ordered list storage module configured to store an ordered list comprising, for each of the data items from the set of data items individually, the identifying information of the storage unit upon which the data item is stored, the order of the identifying information being determined by an ordering metric applied to the prefix portions of the respective data items;
a prefix frequency storage module configured to maintain a frequency record, recording the values of the data elements assigned as prefix portions of the set of data items and the number of data items having each prefix portion;
a list position calculating module configured to calculate, based on the frequency record, the one or more list positions in the ordered list at which the identifying information of storage units upon which data items including the search prefix portion in their prefix portion are stored; and
a result retrieving module configured to request the data items including the search prefix portion in their prefix portion from the storage units identified in the calculated one or more list positions.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of the present invention include a database controller for a database of information encoded as a set of data items distributed among a plurality of storage units distinguishable from one another by respective identifying information and each data item comprising a value of each of two or more data elements, the set of data items having a prescribed order of the two or more data elements of which the first one or two data elements are assigned as a prefix portion. The database controller comprises:
- a query receiving module configured to receive a range query specifying a value of the or each of one or more data elements as a search prefix portion which each data item returned as a range query result must include in its prefix portion; an ordered list storage module configured to store an ordered list comprising, for each of the data items from the set of data items individually, the identifying information of the storage unit upon which the data item is stored, the order of the identifying information being determined by an ordering metric applied to the prefix portions of the respective data items; a prefix frequency storage module configured to maintain a frequency record, recording the values of the data elements assigned as prefix portions of the set of data items and the number of data items having each prefix portion; a list position calculating module configured to calculate, based on the frequency record, the one or more list positions in the ordered list at which the identifying information of storage units upon which data items including the search prefix portion in their prefix portion are stored; and a result retrieving module configured to request the data items including the search prefix portion in their prefix portion from the storage units identified in the calculated one or more list positions.
16 Citations
15 Claims
-
1. A database controller for a database of information encoded as a set of data items distributed among a plurality of storage units distinguishable from one another by respective identifying information and each data item comprising a value of each of two or more data elements, the set of data items having a prescribed order of the two or more data elements of which the first one or two data elements are assigned as a prefix portion, the database controller comprising:
-
a query receiving module configured to receive a range query specifying a value of the or each of one or more data elements as a search prefix portion which each data item returned as a range query result must include in its prefix portion; an ordered list storage module configured to store an ordered list comprising, for each of the data items from the set of data items individually, the identifying information of the storage unit upon which the data item is stored, the order of the identifying information being determined by an ordering metric applied to the prefix portions of the respective data items; a prefix frequency storage module configured to maintain a frequency record, recording the values of the data elements assigned as prefix portions of the set of data items and the number of data items having each prefix portion; a list position calculating module configured to calculate, based on the frequency record, the one or more list positions in the ordered list at which the identifying information of storage units upon which data items including the search prefix portion in their prefix portion are stored; and a result retrieving module configured to request the data items including the search prefix portion in their prefix portion from the storage units identified in the calculated one or more list positions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15)
-
-
13. A method for obtaining range query results from a database of information encoded as a set of data items distributed among a plurality of storage units distinguishable from one another by respective identifying information and each data item comprising a value of each of three data elements, the set of data items having a prescribed order of the three data elements of which the first one or two data elements are assigned as a prefix portion, the plurality of storage units being connected to a database controller storing:
-
an ordered list comprising, for each of the data items from the set of data items individually, the identifying information of the storage unit upon which the data item is stored, the order of the identifying information being determined by an ordering metric applied to the prefixes of the respective data items; and a frequency record, recording the values of the data elements assigned as prefix portions of the set of data items and the number of data items having each prefix portion; the method comprising; receiving a range query specifying a value of the or each of one or more data elements as a search prefix portion which each data item returned as a range query result must include in its prefix portion; calculating, based on a frequency record, the one or more list positions in the ordered list at which the storage unit IDs of storage units upon which data items including the search prefix portion in their prefix portion are stored; and requesting data items including the search prefix portion in their prefix portion from the storage units identified in the calculated one or more list positions. - View Dependent Claims (14)
-
Specification