IP Library Granted Patent US 10,346,396
Granted Patent B2
US 10,346,396 · App. 15/226,747 · Granted Jul 9, 2019

Altering search sequence to cause multiple searches to load and evaluate segments together

Inventors: Artem Nikolaevich Goussev (St. Petersburg, RU); Vadim Alexandrovich Senchukov (St. Petersburg, RU)
Assignee: QUEST SOFTWARE INC.
G06F16/2453
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,346,396
App. No.
15/226,747
Granted
Jul 9, 2019
Kind
B2
Abstract

The sequence of one or more searches can be altered to cause multiple searches to load and evaluate segments together. When a first search query is executed, a query processor can commence loading segments of an indexed store to thereby evaluate the first search query against the segments. Then, if a second search query is received while the first search query is executing, the query processor can cause the second search query to commence on the same segment that the first search query is currently being evaluated against. The first and second search queries can then continue execution together until the first search query has been evaluated against all segments. The query processor can then continue executing the second search query against the remaining segments until it reaches the segment on which its execution commenced.

Claims (51)

1. In a server system that includes a query processor for executing search queries against an indexed store containing a plurality of segments, a method, performed by the query processor, for altering a search sequence of a search query, the method comprising:

executing a first search query by loading segments of the indexed store and evaluating the first search query against the loaded segments;

while the first search query is being evaluated against a particular segment of the plurality of segments of the indexed store and after the first search query has been evaluated against a first set of one or more segments of the indexed store but before the first search query has been evaluated against a second set of one or more segments of the indexed store, receiving a second search query;

in response to receiving the second search query, determining that the first search query is being evaluated against the particular segment;

in response to determining that the first search query is being evaluated against the particular segment, commencing execution of the second search query on the particular segment such that the first and second search queries are both evaluated against the particular segment while the particular segment remains loaded;

continuing the execution of the first and second search queries by loading the second set of one or more segments and evaluating that first and second search queries against each of the one or more segments of the second set; and

after the first and second search queries have been evaluated against each of the one or more segments in the second set, continuing execution of the second search query by loading and evaluating the second search query against the one or more segments in the first set.

2. The method of claim 1 , further comprising:

storing an indication that the second search query was commenced on the particular segment.

3. The method of claim 1 , wherein the query processor is configured to load the segments of the indexed store in a defined order.

4. The method of claim 2 , wherein the first set of one or more segments precede the particular segment in the defined order and the second set of one or more segments follow the particular segment in the defined order.

5. The method of claim 1 , further comprising:

determining that the second search query has been evaluated against all segments in the indexed store by determining that a next segment to be loaded is the particular segment.

6. The method of claim 1 , further comprising:

while the second search query is being evaluated against a second particular segment in the first set of one or more segments, receiving a third search query; and

commencing execution of the third search query on the second particular segment.

7. The method of claim 1 , further comprising:

while the first and second search queries are being evaluated against the one or more segments in the second set, receiving one or more additional search queries; and

commencing each of the one or more additional search queries on the segment against which the first and search queries are being evaluated when the additional search query is received.

8. The method of claim 1 , wherein the indexed store comprises a plurality of indexes.

9. The method of claim 8 , wherein each of the plurality of indexes includes a single segment.

10. The method of claim 8 , wherein a majority of the plurality of indexes includes a single segment.

11. The method of claim 1 , wherein the indexed store is created by defining a plurality of indexes where each of the indexes includes one of the plurality of segments.

12. The method of claim 11 , wherein the indexed store also includes at least one index that includes more than one segment.

13. One or more computer storage media storing computer executable instructions which, when executed by one or more processors of a computing system that includes a query processor for executing search queries against an indexed store containing a plurality of segments, implement a method for altering a sequence of a search query, the method comprising:

executing a first search query by loading segments of the indexed store and evaluating the first search query against the loaded segments;

while the first search query is being evaluated against a particular segment of the plurality of segments of the indexed store and after the first search query has been evaluated against a first set of one or more segments of the indexed store but before the first search query has been evaluated against a second set of one or more segments of the indexed store, receiving a second search query;

in response to receiving the second search query, determining that the first search query is being evaluated against the particular segment;

in response to determining that the first search query is being evaluated against the particular segment, commencing execution of the second search query on the particular segment such that the first and second search queries are both evaluated against the particular segment while the particular segment remains loaded;

continuing the execution of the first and second search queries by loading the second set of one or more segments and evaluating that first and second search queries against each of the one or more segments of the second set; and

after the first and second search queries have been evaluated against each of the one or more segments in the second set, continuing execution of the second search query by loading and evaluating the second search query against the one or more segments in the first set.

14. The computer storage media of claim 13 , wherein the method further comprises:

storing an indication that the second search query was commenced on the particular segment.

15. The computer storage media of claim 13 , wherein the query processor is configured to load the segments of the indexed store in a defined order, and wherein the first set of one or more segments precede the particular segment in the defined order and the second set of one or more segments follow the particular segment in the defined order.

16. The computer storage media of claim 13 , wherein the method further comprises:

receiving one or more additional search queries while the second search query is executing;

for each of the additional search queries:

determining which segment of the indexed store the second search query is being evaluated against when the additional search query is received; and

commencing execution of the additional search query on the determined segment.

17. The computer storage media of claim 16 , wherein at least one of the additional search queries is received when the first search query is still executing such that the at least one additional search query is commenced on a segment against which the first and second search queries are being evaluated.

18. The computer storage media of claim 13 , wherein the indexed store comprises a plurality of indexes, wherein determining that the first search query is being evaluated against the particular segment comprises determining an index that contains the particular segment, and wherein commencing execution of the second search query on the particular segment comprises reading and searching the index that contains the particular segment.

19. The computer storage media of claim 18 , wherein the index that contains the particular segment does not include any other segment.

20. One or more computer storage media storing computer executable instructions which when executed on a server implement the following components:

an interface for receiving search queries; and

a query processor for executing the received search queries against an indexed store that includes a plurality of segments, the query processor being configured to:

execute a first search query by loading segments of the indexed store and evaluating the first search query against the loaded segments;

while the first search query is being evaluated against a particular segment of the plurality of segments of the indexed store and after the first search query has been evaluated against a first set of one or more segments of the indexed store but before the first search query has been evaluated against a second set of one or more segments of the indexed store, receiving a second search query;

in response to receiving the second search query, determining that the first search query is being evaluated against the particular segment,

in response to determining that the first search query is being evaluated against the particular segment, commencing execution of the second search query on the particular segment such that the first and second search queries are both evaluated against the particular segment while the particular segment remains loaded;

continuing the execution of the first and second search queries by loading the second set of one or more segments and evaluating that first and second search queries against each of the one or more segments of the second set; and

after the first and second search queries have been evaluated against each of the one or more segments in the second set, continuing execution of the second search query by loading and evaluating the second search query against the one or more segments in the first set.

Assignments (12)
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 →
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 →
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 →
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 →
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 →
CHANGE OF NAME Recorded Sep 13, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 043834/0852 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2016
From: GOUSSEV, ARTEM NIKOLAEVICH; SENCHUKOV, VADIM ALEXANDROVICH
To: DELL SOFTWARE, INC.
Reel/Frame 039320/0434 →
Continuity (1)
Related Publication 20180039670A1 · Feb 8, 2018