IP Library Granted Patent US 9,128,983
Granted Patent B2
US 9,128,983 · App. 13/271,561 · Granted Sep 8, 2015

Systems and methods for query optimization

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 9,128,983
App. No.
13/271,561
Granted
Sep 8, 2015
Kind
B2
Abstract

In accordance with certain embodiments, a query from a client may be received at a server, and a default query range may be applied to the query. The query may be executed in a first execution using an index comprising a category of information stored in the database and subject to the default query range. If the number of query results from the first execution is outside a predetermined range, then the query range may be adjusted to obtain a number of query results closer to or within the predetermined range. Additionally, the query may be executed in a second execution using the index comprising the category of information stored in the database and subject to the adjusted query range. Thereafter, the query results obtained from the second execution of the query may be sent to the client.

Claims (64)

1. A computer-implemented method of querying a database, comprising:

receiving, at a server, a query from a client;

applying a default query range to the query;

executing the query upon the database in a first execution, wherein the query is executed using an index comprising a category of information stored in the database and is executed subject to the default query range;

determining if the number of query results from the first execution is outside a predetermined range;

when it is determined that the number of query results from the first execution is outside the predetermined range, adjusting the query range to obtain a number of query results closer to or within the predetermined range;

executing the query upon the database in a second execution, wherein the query is executed using the index comprising the category of information stored in the database and is executed subject to the adjusted query range;

determining whether the query has been executed upon the database a number of times that exceeds a preset threshold;

in response determining that the query has been executed upon the database a number of times that exceeds the preset threshold, determining whether to send the query results obtained from the second execution of the query to the client.

2. The computer-implemented method of claim 1 , further comprising:

determining if the number of query results from the second execution is outside the predetermined range;

when it is determined that the number of query results from the second execution is outside the predetermined range, performing a second adjustment to the query range to obtain a number of query results closer to or within the predetermined range;

executing the query upon the database in a third execution, wherein the query is executed using the index comprising the category of information stored in the database and is executed subject to the secondly adjusted query range; and

sending the query results obtained from the third execution of the query to the client.

3. The computer-implemented method of claim 1 , further comprising:

determining if the number of query results from the second execution is outside the predetermined range;

when it is determined that the number of query results from the second execution is outside the predetermined range and it is determined that the query has been executed upon the database a number of times that exceeds the preset threshold; and

sending the query results obtained from the second execution of the query to the client.

4. The computer-implemented method of claim 3 , wherein the preset threshold comprises at least two executions of the query upon the database.

5. The computer-implemented method of claim 1 , wherein the default query range and the adjusted query range specify time periods within which data from the database was published.

6. The computer-implemented method of claim 1 , wherein the adjusted query range is stored in a look up table accessible for future queries.

7. The computer-implemented method of claim 1 , wherein adjusting the query range comprises adjusting the query range in proportion to the number of query results from the first execution that is outside the predetermined range.

8. The computer-implemented method of claim 1 , wherein default query range is associated with the category of information stored in the database.

9. The computer-implemented method of claim 1 , wherein the category of information stored in the database comprises multiple genres of information, and wherein the default query range is associated with the multiple genres of information.

10. The computer-implemented method of claim 1 , wherein determining if the number of query results from the first execution is outside a predetermined range comprises:

determining a query range ratio, based on the first execution, which is expressed in documents per time;

comparing the query range ratio to a threshold query range ratio; and

determining that the query range ratio exceeds the threshold query range ratio.

11. A computer-based system comprising at least one processor and one or more storage media storing a plurality of instructions, the plurality of instructions being executable by the at least one processor for:

receiving a query from a client;

applying a default query range to the query;

executing the query upon the database in a first execution, wherein the query is executed using an index comprising a category of information stored in the database and is executed subject to the default query range;

determining if the number of query results from the first execution is outside a predetermined range;

when it is determined that the number of query results from the first execution is outside the predetermined range, adjusting the query range to obtain a number of query results closer to or within the predetermined range;

executing the query upon the database in a second execution, wherein the query is executed using the index comprising the category of information stored in the database and is executed subject to the adjusted query range;

determining whether the query has been executed upon the database a number of times that exceeds a preset threshold;

in response determining that the query has been executed upon the database a number of times that exceeds preset threshold, determining whether to send the query results obtained from the second execution of the query to the client.

12. The system of claim 11 , further comprising instructions executable by the at least one processor for:

determining if the number of query results from the second execution is outside the predetermined range;

when it is determined that the number of query results from the second execution is outside the predetermined range, performing a second adjustment to the query range to obtain a number of query results closer to or within the predetermined range;

executing the query upon the database in a third execution, wherein the query is executed using the index comprising the category of information stored in the database and is executed subject to the secondly adjusted query range; and

sending the query results obtained from the third execution of the query to the client.

13. The system of claim 11 , further comprising instructions executable by the at least one processor for:

determining if the number of query results from the second execution is outside the predetermined range;

when it is determined that the number of query results from the second execution is outside the predetermined range and it is determined that the query has been executed upon the database a number of times that exceeds the preset threshold; and

sending the query results obtained from the second execution of the query to the client.

14. The system of claim 13 , wherein the preset threshold comprises at least two executions of the query upon the database.

15. The system of claim 11 , wherein the default query range and the adjusted query range specify time periods within which data from the database was published.

16. The system of claim 11 , wherein the adjusted query range is stored in a look up table accessible for future queries.

17. The system of claim 11 , wherein adjusting the query range comprises adjusting the query range in proportion to the number of query results from the first execution that is outside the predetermined range.

18. The system of claim 11 , wherein default query range is associated with the category of information stored in the database.

19. The system of claim 11 , wherein the category of information stored in the database comprises multiple genres of information, and wherein the default query range is associated with the multiple genres of information.

20. The system of claim 11 , wherein determining if the number of query results from the first execution is outside a predetermined range comprises:

determining a query range ratio, based on the first execution, which is expressed in documents per time;

comparing the query range ratio to a threshold query range ratio; and

determining that the query range ratio exceeds the threshold query range ratio.

21. The computer-implemented method of claim 1 , wherein determining if the number of query results from the first execution is outside a predetermined range comprises:

determining a query range ratio, based on the first execution, which is expressed in documents per time;

comparing the query range ratio to a threshold query range ratio; and

determining that the query range ratio is less than the threshold query range ratio.

22. The system of claim 11 , wherein determining if the number of query results from the first execution is outside a predetermined range comprises:

determining a query range ratio, based on the first execution, which is expressed in documents per time;

comparing the query range ratio to a threshold query range ratio; and

determining that the query range ratio is less than the threshold query range ratio.

Assignments (7)
PATENT SECURITY AGREEMENT (FIRST LIEN) Recorded Sep 29, 2022
From: YAHOO ASSETS LLC
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 061571/0773 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2021
From: YAHOO AD TECH LLC (FORMERLY VERIZON MEDIA INC.)
To: YAHOO ASSETS LLC
Reel/Frame 058982/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: OATH INC.
To: VERIZON MEDIA INC.
Reel/Frame 054258/0635 →
CHANGE OF NAME Recorded Aug 24, 2017
From: AOL INC.
To: OATH INC.
Reel/Frame 043672/0369 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS -RELEASE OF 030936/0011 Recorded Jul 1, 2015
From: JPMORGAN CHASE BANK, N.A.
To: AOL ADVERTISING INC.; AOL INC.; BUYSIGHT, INC.; MAPQUEST, INC.; PICTELA, INC.
Reel/Frame 036042/0053 →
SECURITY AGREEMENT Recorded Aug 2, 2013
From: AOL INC.; AOL ADVERTISING INC.; BUYSIGHT, INC.; MAPQUEST, INC.; PICTELA, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 030936/0011 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2011
From: CHENG, TAO-JUNG
To: AOL INC.
Reel/Frame 027433/0754 →