IP Library Granted Patent US 7,185,012
Granted Patent B1
US 7,185,012 · App. 10/775,056 · Granted Feb 27, 2007

Method and apparatus for ranked join indices

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,185,012
App. No.
10/775,056
Granted
Feb 27, 2007
Kind
B1
Abstract

A method and apparatus for ranked join indices includes a solution providing performance guarantees for top-k join queries over two relations, when preprocessing to construct a ranked join index for a specific join condition is permitted. The concepts of ranking join indices presented herein are also applicable in the case of a single relation. In this case, the concepts herein provide a solution to the top-k selection problem with monotone linear functions, having guaranteed worst case search performance for the case of two ranked attributes and arbitrary preference vectors.

Claims (51)

1. A method of creating a ranked join index for ordered data entries, comprising:

determining a dominating set of said ordered data entries;

mapping said dominating set of ordered data entries according to rank attributes;

determining a separating vector for each set of adjacent mapped data entries; and

ordering and indexing said data entries according to a separating point associated with each of said separating vectors.

2. The method of claim 1 , wherein determining the dominating set of said ordered data entries, comprises:

maintaining a priority queue of a predetermined size of said ordered data entries according to rank attributes, wherein data entries having the highest combined rank attribute values are maintained in said priority queue;

wherein, if said priority queue has reached a maximum capacity, only data entries having combined rank attribute values greater than the attribute value of data with a minimum rank value present in the queue are added to the queue.

3. The method of claim 2 , wherein said predetermined size corresponds to a minimum number of data entries necessary to generate, in the worst case, a ranked join index providing answers with a desired guaranteed performance on any top-k join query.

4. The method of claim 1 , wherein ordering and indexing said data entries, comprises:

sweeping a vector across a plane of said mapped data entries, wherein each time said vector crosses a separating vector, a current composition of highest ranked data entries changes by swapping at least one of the data entries in the adjacent data entries set if it causes a change in the index; and

wherein each time a data entry is swapped, the highest ranked data entries are materialized and a new index entry is initiated.

5. The method of claim 1 , wherein said indexing is query independent such that substantially any user preference query may be resolved using said index.

6. The method of claim 1 , wherein said adjacent data entry set comprises more than two mapped data points if data entries are collinear.

7. The method of claim 1 , wherein performance guarantees are provided for an amount of time said index requires for resolving user queries.

8. The method of claim 1 , further comprising merging ordered data entries.

9. The method of claim 8 , wherein said merging results in a storage space requirement for said index that is characterized according to the following equation:

O ( nK 2 ( K+m )/ m )

wherein n represents a total number of data entries to be indexed, K represents an upper bound on a number of high ranking data entries that may be requested by a user, and m represents a total number of data entries to be merged.

10. The method of claim 8 , wherein said merging results in a query time for said index that is characterized according to the following equation:

O (log( nK 2 /m )+( K+m )log( K+m ))

wherein n represents a total number of data entries to be indexed, K represents an upper bound on a number of high ranking data entries that may be requested by a user, and m represents a total number of data entries to be merged.

11. The method of claim 8 , wherein merging said ordered data entries provides space and time tradeoffs.

12. The method of claim 11 , wherein a space and time tradeoff comprises reducing query time of said index by increasing storage space of said index.

13. The method of claim 11 , wherein a space and time tradeoff comprises reducing storage space required by said index by increasing query time of said index.

14. A method of providing solutions to top-k join queries of ranked data entries for user specified preferences, comprising:

determining a dominating set of said ranked data entries;

mapping said dominating set of ranked data entries according to rank attributes;

creating a ranked join index for said ranked data entries by determining a separating vector for each set of adjacent mapped data entries;

ordering and indexing said data entries according to a separating point associated with each of said separating vectors; and

providing a solution for a user preference query using said ranked join index.

15. A computer-readable medium for storing a set of instructions, which when executed by a processor, perform a method of creating a ranked join index for ordered data entries, comprising:

determining a dominating set of said ordered data entries;

mapping said dominating set of ordered data entries according to rank attributes;

determining a separating vector for each set of adjacent mapped data entries; and

ordering and indexing said data entries according to a separating point associated with each of said separating vectors.

16. A computer-readable medium for storing a set of instructions, which when executed by a processor, perform a method of providing solutions to top-k join queries of ranked data entries for user specified preferences, comprising:

determining a dominating set of said ranked data entries;

mapping said dominating set of ranked data entries according to rank attributes;

creating a ranked join index for said ranked data entries by determining a separating vector for each set of adjacent mapped data entries;

ordering and indexing said data entries according to a separating point associated with each of said separating vectors; and

providing a solution for a user preference query using said ranked join index.

17. An apparatus, comprising a memory for storing information and program instructions and a processor for executing said instructions, said apparatus adapted to perform a method of creating a ranked join index for ordered data entries by performing the steps of:

determining a dominating set of said ordered data entries;

mapping said dominating set of ordered data entries according to rank attributes;

determining a separating vector for each set of adjacent mapped data entries; and

ordering and indexing said data entries according to a separating point associated with each of said separating vectors.

18. The apparatus of claim 17 , wherein for determining the dominating set of said ordered data, said apparatus is adapted to perform the step of:

maintaining a priority queue of a predetermined size of said ordered data entries according to rank attributes, wherein data entries having the highest combined rank attribute values are maintained in said priority queue;

wherein, if said priority queue has reached a maximum capacity, only data entries having combined rank attribute values greater than the attribute value of data entries with a minimum rank value present in the queue are added to the queue.

19. The apparatus of claim 18 , wherein the predetermined size of said priority queue corresponds to a minimum number of data entries necessary to generate, in the worst case, a ranked join index providing answers with a desired guaranteed performance on any top-k join query.

Assignments (6)
CORRECTION TO INCLUDE THE EFFECTIVE DATE OF 6/30/2008 OF THE ASSIGNMENT RECORDED AT 012345/0123 ON 031555/0467 ON 11/6/2013. Recorded May 14, 2014
From: AT&T CORP.
To: AT&T PROPERTIES, LLC
Reel/Frame 032894/0469 →
CORRECTION TO INCLUDE THE EFFECTIVE DATE OF 6/30/2008 OF THE ASSIGNMENT RECORDED AT 31558/0408 ON 11/7/2013 Recorded May 14, 2014
From: AT&T PROPERTIES, LLC
To: AT&T INTELLECTUAL PROPERTY II, L.P.
Reel/Frame 032894/0480 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2014
From: AT&T INTELLECTUAL PROPERTY II, L.P.
To: BAMPTON TECHNOLOGIES LLC
Reel/Frame 032522/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2013
From: AT&T PROPERTIES, LLC
To: AT&T INTELLECTUAL PROPERTY II, L.P.
Reel/Frame 031558/0408 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2013
From: AT&T CORP.
To: AT&T PROPERTIES, LLC
Reel/Frame 031555/0467 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2004
From: KOUDAS, NIKOLAOS; KOTIDIS, IOANNIS; SRIVASTAVA, DIVESH; PALPANAS, THEMISTOPKLIS; TSAPARAS, PANAYIOTIS
To: AT & T CORP.
Reel/Frame 014776/0495 →