Methods and systems for latency-free database queries
First Claim
Patent Images
1. A method for operating a database apparatus, comprising:
- storing each of a plurality of data identifiers in a distributed memory apparatus as a two-level indexed data structure, wherein a first level of each data structure includes a first unique set of decreasing integers, wherein a second level of the data structure includes a plurality of unique sets of decreasing integers, wherein each of the plurality of unique sets is linked to one of the integers in the first unique set, wherein each integer in the first unique set represents a first portion of the data identifier and each unique integer in the plurality of sets represent a second portion of the data identifier;
performing a query operation using the data identifiers and storing the result of the query operation in the distributed memory apparatus as a resultant two-level data structure, the query operation finding a union set between a first data structure and a second data structure by performing a first series of comparison operations between the first level integer sets of the first and second data structures to identify matched and unmatched integers in the first level integers sets;
if a first integer in the first level of the first data structure is not found in the first level of the second data structure, retrieving the unique set of second level integers that is linked to the first integer and storing the unique set of second level integers in the second level of an indexed data structure, and adding the first integer to the union set;
if a matched integer is identified in the first level integers sets, performing a second series of comparison operations between the second level integer sets of the first and second data structures to identify matched and unmatched integers in the second level integer set of the first and second data structures, and storing the matched unmatched integers in the second level of the second data structure with a link to the matched integer in the first level of the second data structure; and
repeating the steps of performing the first and second series of comparison operations until done.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for performing latency-free database searches using two-level indexed data structures having decreasing integer sets as identifiers to represent actual data. The indexed data structures are stored in distributed memory. Data operations such as intersection and union are performed using the indexed data structures. A binary interval reduction technique is used to quickly move through the data sets looking for common elements for the intersection set, or unique elements to add to the union set.
119 Citations
28 Claims
-
1. A method for operating a database apparatus, comprising:
-
storing each of a plurality of data identifiers in a distributed memory apparatus as a two-level indexed data structure, wherein a first level of each data structure includes a first unique set of decreasing integers, wherein a second level of the data structure includes a plurality of unique sets of decreasing integers, wherein each of the plurality of unique sets is linked to one of the integers in the first unique set, wherein each integer in the first unique set represents a first portion of the data identifier and each unique integer in the plurality of sets represent a second portion of the data identifier; performing a query operation using the data identifiers and storing the result of the query operation in the distributed memory apparatus as a resultant two-level data structure, the query operation finding a union set between a first data structure and a second data structure by performing a first series of comparison operations between the first level integer sets of the first and second data structures to identify matched and unmatched integers in the first level integers sets; if a first integer in the first level of the first data structure is not found in the first level of the second data structure, retrieving the unique set of second level integers that is linked to the first integer and storing the unique set of second level integers in the second level of an indexed data structure, and adding the first integer to the union set; if a matched integer is identified in the first level integers sets, performing a second series of comparison operations between the second level integer sets of the first and second data structures to identify matched and unmatched integers in the second level integer set of the first and second data structures, and storing the matched unmatched integers in the second level of the second data structure with a link to the matched integer in the first level of the second data structure; and repeating the steps of performing the first and second series of comparison operations until done. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for operating a database apparatus, comprising:
-
storing each of a plurality of data identifiers in a distributed memory apparatus as a two-level indexed data structure, wherein a first level of each data structure includes a first unique set of decreasing integers, wherein a second level of the data structure includes a plurality of unique sets of decreasing integers, wherein each of the plurality of unique sets is linked to one of the integers in the first unique set, wherein each integer in the first unique set represents a first portion of the data identifier and each unique integer in the plurality of sets represent a second portion of the data identifier; performing a query operation using the data identifiers and storing the result of the query operation in the distributed memory apparatus as a resultant two-level data structure, the query operation finding an intersection set between a first data structure and a second data structure by performing a first series of comparison operations between the first level integer sets of the first and second data structures to identify a first matching integer in the first level integer sets, the first series of comparison steps including a first comparison step for comparing a plurality of the first level integers of the first data structure to a single integer of the first level integers of the second data structure and a second comparison step for comparing a plurality of the first level integers of the second data structure to a single integer of the first level integers of the first data structure; if a first matching integer is identified in the first level integer sets, performing a second series of comparison operations between the second level integer sets of the first and second data structures that are linked to the first matching integer in the first level integer sets process to identify at least one second matching integer in the second level integer sets of the first and second data structures; if at least one second matching integer is identified in the second level integer sets, storing the first and second matching integers as an intersection set having the indexed data structure in distributed memory; and repeating the steps of performing the first and second series of comparison operations until done. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A machine-readable medium having one or more sequences of instructions for performing a database search, which instructions, when executed by one or more processors, cause the one or more processors to:
-
store each of a plurality of data identifiers in a distributed memory apparatus as a two-level indexed data structure, wherein a first level of each data structure includes a first unique set of decreasing integers, wherein a second level of the data structure includes a plurality of unique sets of decreasing integers, wherein each of the plurality of unique sets is linked to one of the integers in the first unique set, wherein each unique integer in the first set represents a first portion of the data identifier and each unique integer in the plurality of sets represent a second portion of the data identifier; perform a query operation for desired data attributes using the data identifiers and store the result in the distributed memory as a resultant two-level data structure, the query operation finding a union set between a first data structure representing a first data attribute and a second data structure representing a second data attribute by performing a first series of comparison operations between the first level of the first data structure and the first level of the second data structure to identify matched and unmatched integers in the first level of the first and second data structures; if a first integer in the first level of the first data structure is not found in the first level of the second data structure, then retrieve the unique set of integers that is linked to the first integer and store the unique set of integers in the second level of an indexed data structure, and add the first integer to the union set, and if a matched integer is identified in the first level of the first and second data structures, then perform a second series of comparison operations between the second level of the first data structure and the second level of the second data structure to identify matched and unmatched integers in the second level of the first data structures, and store the matched and unmatched integers in the second level of the second data structure with a link to the matched integer in the first level of the second data structure; and repeat the steps of performing the first and second series of comparison operations until done.
-
-
26. A machine-readable medium having one or more sequences of instructions for performing a database search, which instructions, when executed by one or more processors, cause the one or more processors to:
-
store each of a plurality of data identifiers in a distributed memory apparatus as a two-level indexed data structure, wherein a first level of each data structure includes a first unique set of decreasing integers, wherein a second level of the data structure includes a plurality of unique sets of decreasing integers, wherein each of the plurality of unique sets is linked to one of the integers in the first unique set, wherein each unique integer in the first set represents a first portion of the data identifier and each unique integer in the plurality of sets represent a second portion of the data identifier; perform a query operation for desired data attributes using the data identifiers and store the result in the distributed memory as a resultant two-level data structure, the query operation finding an intersection set between a first data structure and a second data structure by performing a first series of comparison operations between the first level of the first data structure and the first level of the second data structure to identify a first matching integer in the first level of the first and second data structures, the first series of comparison steps including a first comparison step for comparing a plurality of the first level integers of the first data structure to a single integer of the first level integers of the second data structure and a second comparison step for comparing a plurality of the first level integers of the second data structure to a single integer of the first level integers of the first data structure; when a first matching integer is identified in the first level of the first and second data structures, performing a second series of comparison operations between the second level of the first data structure that is linked to the first matching integer and the second level of the second data structure that is linked to the first matching integer to identify a second matching integer in the second level of the first and second data structures; when a second matching integer is identified in the second level of the first and second data structures, storing the first and second integer as an intersection set; and repeating the steps of performing the first and second series of comparison operations until done.
-
-
27. A data management apparatus, comprising:
-
a database having a plurality of data records stored therein; a database manager program having executable instructions for managing storage, indexing and retrieval of the data records, including first and second instructions; a distributed memory system accessible to the database and operable in accord with the first instructions of the database manager program, said first instructions for; storing data identifiers for the data records in the distributed memory apparatus as two-level indexed data structures, wherein a first level of each data structure includes a first unique set of decreasing integers, wherein a second level of the data structure includes a plurality of unique sets of decreasing integers, wherein each of the plurality of unique sets is linked to one of the integers in the first unique set, wherein each integer in the first unique set represents a first portion of the data identifier and each unique integer in the plurality of sets represent a second portion of the data identifier; a search interface in communication with the database manager program and operable in accord with second instructions, said second instructions for performing query operations on the data records using the indexed data structures to find an intersection set between a first data structure and a second data structure by performing a first series of comparison operations between a first level of the first data structure and a first level of the second data structure to identify a first matching integer in the first level of the first and second data structures, the first series of comparison steps including a first comparison step for comparing a plurality of the first level integers of the first data structure to a single integer of the first level integers of the second data structure and a second comparison step for comparing a plurality of the first level integers of the second data structure to a single integer of the first level integers of the first data structure; when a first matching integer is identified in the first level of the first and second data structures, performing a second series of comparison operations between the second level of the first data structure that is linked to the first matching integer and the second level of the second data structure that is linked to the first matching integer to identify a second matching integer in the second level of the first and second data structures; when a second matching integer is identified in the second level of the first and second data structures, storing the first and second integer as an intersection set; and repeating the steps of performing the first and second series of comparison operations until done.
-
-
28. A data management apparatus, comprising:
-
a database having a plurality of data records stored therein; a database manager program having executable instructions for managing storage, indexing and retrieval of the data records, including first and second instructions; a distributed memory system accessible to the database and operable in accord with the first instructions of the database manager program, said first instructions for; storing data identifiers for the data records in the distributed memory apparatus as two-level indexed data structures, wherein a first level of each data structure includes a first unique set of decreasing integers, wherein a second level of the data structure includes a plurality of unique sets of decreasing integers, wherein each of the plurality of unique sets is linked to one of the integers in the first unique set, wherein each integer in the first unique set represents a first portion of the data identifier and each unique integer in the plurality of sets represent a second portion of the data identifier; a search interface in communication with the database manager program and operable in accord with second instructions, said second instructions for performing query operations on the data records using the indexed data structures to find a union set between the first data structure and the second data structure by performing a first series of comparison operations between the first level integer sets of the first and second data structures to identify matched and unmatched integers in the first level of the first and second data structures; if a first integer of the first level of the first data structure is not found in the first level of the second data structure, retrieving the unique set of second level integers that is linked to the first integer and storing the unique set of second level integers in the second level of an indexed data structure, and adding the first integer to the union set; if a matched integer is identified in the first level integer sets, performing a second series of comparison operations between the second level integer sets of the first and second data structures to identify matched and unmatched integers in the second level integer sets of the first and second data structures, and storing the matched and unmatched integers in the second level of the second data structure with a link to the matched integer in the first level of the second data structure; and repeating the steps of performing the first and second series of comparison operations until done.
-
Specification