IP Library Granted Patent US 10,198,474
Granted Patent B2
US 10,198,474 · App. 15/000,867 · Granted Feb 5, 2019

Delaying one or more searches to cause multiple searches to load and evaluate segments together

Inventors: Artem Nikolaevich Gusev (St. Petersburg, RU); Vadim Alexandrovich Senchukov (St. Petersburg, RU)
Assignee: QUEST SOFTWARE INC.
G06F17/30477
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 10,198,474
App. No.
15/000,867
Granted
Feb 5, 2019
Kind
B2
Abstract

The performance of a server can be improved by causing multiple searches to load segments of an index and search within them together. When multiple search requests are received and executed within a minimal time difference, the first search can be delayed to allow the second search—and possibly additional searches—to catch up so that the searches do not require loading segments multiple times.

Claims (43)

1. A method for optimizing the performance of a server that executes searches of an index, the method comprising:

receiving a first client request comprising a first query for searching the index;

commencing execution of the first query by evaluating the first query against a first segment of the index;

receiving a second client request comprising a second query for searching the index;

commencing execution of the second query after the first query has been evaluated against one or more additional segments;

temporarily delaying the execution of the first query while the second query is evaluated against the first segment and the one or more additional segments; and

once the second query has been evaluated against the first segment and the one or more additional segments, proceeding with the execution of the first query and the second query together by loading subsequent segments of the index and evaluating the first and second queries against the subsequent segments.

2. The method of claim 1 , wherein commencing execution of the first query comprises loading the first segment of the index.

3. The method of claim 1 , wherein evaluating the first query against the one or more additional segment comprises loading the one or more additional segments.

4. The method of claim 1 , wherein commencing the execution of the second query comprises loading the first segment of the index.

5. The method of claim 1 , wherein the first segment and the one or more additional segments are contiguous.

6. The method of claim 1 , wherein the one or more additional segments comprise a plurality of additional segments.

7. The method of claim 1 , wherein loading the subsequent segments of the index and evaluating the first and second queries against the subsequent segments comprises loading each remaining segment of the index and evaluating the first and second queries against each remaining segment.

8. The method of claim 1 , further comprising:

prior to temporarily delaying the execution of the first query, estimating how long the execution of the first query would have to be delayed to allow the execution of the first and second queries to proceed together; and

determining that the estimate is within a minimal time difference.

9. The method of claim 8 , wherein the estimate is based on an average amount of time required to load segments.

10. The method of claim 8 , wherein the estimate is based on how many segments the first query has been evaluated against.

11. The method of claim 1 , further comprising:

receiving one or more additional client requests that each comprise an additional query for searching the index;

commencing execution of the one or more additional queries after the first and second queries have commenced execution; and

temporarily delaying the execution of the first and second queries while the one or more additional queries are executed to thereby allow the execution of the first query, the second query, and the one or more additional queries to proceed together.

12. The method of claim 1 , wherein temporarily delaying the execution of the first query comprises preventing the first query from loading the subsequent segments of the index.

13. The method of claim 1 , wherein the index is stored on network storage.

14. The method of claim 1 , wherein the first and second client requests are received from one or more clients via a REST API.

15. A system comprising:

network storage that stores an index; and

a server that is configured to access the network storage to load segments of the index, the server including an interface for receiving client requests to search the index and a processor for executing the searches, wherein the processor is configured to perform the following method to optimize the performance of the server:

receiving a first client request comprising a first query for searching the index;

commencing execution of the first query by evaluating the first query against a first segment of the index;

receiving a second client request comprising a second query for searching the index;

commencing execution of the second query after the first query has been evaluated against one or more additional segments;

temporarily delaying the execution of the first query while the second query is evaluated against the first segment and the one or more additional segments; and

once the second query has been evaluated against the first segment and the one or more additional segments, proceeding with the execution of the first query and the second query together by loading subsequent segments of the index and evaluating the first and second queries against the subsequent segments.

16. The system of claim 15 , wherein the processor temporarily delays the execution of the first query upon determining that the second query is commenced within a minimal time difference that is calculated at least partially on how many segments the first search has been evaluated against.

17. The system of claim 16 , wherein the minimal time difference is also calculated by identifying an average amount of time required to load a segment.

18. The system of claim 15 , wherein a first subsequent segment is loaded prior to temporarily delaying the execution of the first query such that proceeding with the execution of the first query and the second query together comprises evaluating the first and second queries against the first subsequent segment that was already loaded and then loading a second subsequent segment and evaluating the first and second queries against the second subsequent segment.

19. One or more computer storage media storing computer-executable instructions which when executed by one or more processors implement a method comprising:

commencing execution of a first query by evaluating the first query against a first segment of an index;

commencing execution of a second query after the first query has been evaluated against one or more additional segments;

based on an estimate of how long the execution of the first query would need to be delayed to allow the execution of the first and second queries to proceed together, temporarily delaying the execution of the first query while the second query is evaluated against the first segment and the one or more additional segments; and

once the second query has been evaluated against the first segment and the one or more additional segments, proceeding with the execution of the first query and the second query together by loading subsequent segments of the index and evaluating the first and second queries against the subsequent segments.

20. The computer storage media of claim 19 , wherein the execution of the first query is temporarily delayed in response to determining that the estimate is within a minimal time difference.

Assignments (32)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
CHANGE OF NAME Recorded Sep 13, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 043834/0852 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF REEL 037848 FRAME 0001 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0152 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF REEL 038664 FRAME 0908 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0390 →
RELEASE OF REEL 038665 FRAME 0041 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0375 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF REEL 037848 FRAME 0210 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040031/0725 →
RELEASE OF REEL 037847 FRAME 0843 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0366 →
RELEASE OF REEL 038665 FRAME 0001 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040021/0348 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded May 11, 2016
From: DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 038664/0908 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 038665/0041 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 038665/0001 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Feb 18, 2016
From: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037847/0843 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Feb 18, 2016
From: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 037848/0210 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Feb 18, 2016
From: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037848/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2016
From: GUSEV, ARTEM NIKOLAEVICH; SENCHUKOV, VADIM ALEXANDROVICH
To: DELL SOFTWARE, INC.
Reel/Frame 037561/0561 →
Continuity (1)
Related Publication 20170206247A1 · Jul 20, 2017