IP Library Granted Patent US 9,904,707
Granted Patent B1
US 9,904,707 · App. 14/672,791 · Granted Feb 27, 2018

Systems and methods for optimized database sampling

Inventors: Shree A. Dandekar (Cedar Park, TX); Mark William Davis (Tracy, CA)
Assignee: Quest Software Inc.
G06F17/30457G06F17/30474
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,904,707
App. No.
14/672,791
Granted
Feb 27, 2018
Kind
B1
Abstract

In one embodiment, a method includes receiving a request to execute a database statement in satisfaction of a time constraint. The method further includes determining a pattern of the database statement. Additionally, the method includes comparing the pattern to pattern metadata associated with cached samples of the distributed database. Also, the method includes, responsive to a determination that the comparing has resulted in one or more matches, selecting a target sample and causing the database statement to be executed on the target sample. The method further includes, responsive to a determination that the target sample resolves the database statement in satisfaction of the time constraint, returning a resulting dataset to a requestor. Moreover, the method includes, responsive to a determination that the target sample does not resolve the database statement in satisfaction of the time constraint, causing a new real-time sampling of the distributed database to be executed.

Claims (76)

1. A method comprising, by a computer system:

receiving a request to execute a database statement in satisfaction of a time constraint, wherein the database statement specifies a distributed database as a data source;

determining a pattern of the database statement based, at least in part, on an analysis of syntax in the database statement;

comparing the pattern to stored pattern metadata associated with cached samples of the distributed database;

wherein, for each cached sample of the cached samples, the stored pattern metadata characterizes an assortment of data values stored in the cached sample;

responsive to a determination that the comparing has resulted in one or more matches between the pattern and the stored pattern metadata, selecting a target sample from among the cached samples;

causing the database statement to be executed on the target sample;

responsive to a determination that the target sample resolves the database statement in satisfaction of the time constraint, returning a resulting dataset to a requestor; and

responsive to a determination that the target sample does not resolve the database statement satisfaction in of the time constraint, causing a new real-time sampling of the distributed database to be executed.

2. The method of claim 1 , wherein the causing of the new real-time sampling comprises:

determining a new sample of the distributed database based, at least in part, on the database statement;

retrieving the new sample;

adding the new sample to the cached samples; and

storing metadata related to the new sample in the stored pattern metadata.

3. The method of claim 1 , comprising:

monitoring storage operations in relation to the distributed database;

responsive to a determination that a storage operation on the distributed database causes at least one cached sample of the cached samples to reach a change threshold:

updating the at least one cached sample; and

refreshing a portion of the stored pattern metadata related to the at least one cached sample.

4. The method of claim 1 , wherein the stored pattern metadata indicates a size of each of the cached samples relative to a size of a complete result set.

5. The method of claim 1 , wherein the pattern comprises information related to columns and operations of the database statement.

6. The method of claim 1 , wherein the comparing comprises:

analyzing an ability of each of the cached samples to satisfy the database statement; and

analyzing an ability of combinations of the cached samples to satisfy the database statement.

7. The method of claim 1 , wherein the target sample comprises a combination of two or more of the cached samples.

8. The method of claim 1 , comprising:

responsive to two or more matches being determined, ranking the two or more matches; and

wherein the selecting is based, at least in part, on the ranking.

9. An information handling system comprising at least one processor, wherein the at least one processor is operable to implement a method comprising:

receiving a request to execute a database statement in satisfaction of a time constraint, wherein the database statement specifies a distributed database as a data source;

determining a pattern of the database statement based, at least in part, on an analysis of syntax in the database statement;

comparing the pattern to stored pattern metadata associated with cached samples of the distributed database;

wherein, for each cached sample of the cached samples, the stored pattern metadata characterizes an assortment of data values stored in the cached sample;

responsive to a determination that the comparing has resulted in one or more matches between the pattern and the stored pattern metadata, selecting a target sample from among the cached samples;

causing the database statement to be executed on the target sample;

responsive to a determination that the target sample resolves the database statement in satisfaction of the time constraint, returning a resulting dataset to a requestor; and

responsive to a determination that the target sample does not resolve the database statement satisfaction in of the time constraint, causing a new real-time sampling of the distributed database to be executed.

10. The information handling system of claim 9 , wherein the causing of the new real-time sampling comprises:

determining a new sample of the distributed database based, at least in part, on the database statement;

retrieving the new sample;

adding the new sample to the cached samples; and

storing metadata related to the new sample in the stored pattern metadata.

11. The information handling system of claim 9 , the method comprising:

monitoring storage operations in relation to the distributed database;

responsive to a determination that a storage operation on the distributed database causes at least one cached sample of the cached samples to reach a change threshold:

updating the at least one cached sample; and

refreshing a portion of the stored pattern metadata related to the at least one cached sample.

12. The information handling system of claim 9 , wherein the stored pattern metadata indicates a size of each of the cached samples relative to a size of a complete result set.

13. The information handling system of claim 9 , wherein the pattern comprises information related to columns and operations of the database statement.

14. The information handling system of claim 9 , wherein the comparing comprises:

analyzing an ability of each of the cached samples to satisfy the database statement; and

analyzing an ability of combinations of the cached samples to satisfy the database statement.

15. The information handling system of claim 9 , wherein the target sample comprises a combination of two or more of the cached samples.

16. The information handling system of claim 9 , the method comprising:

responsive to two or more matches being determined, ranking the two or more matches; and

wherein the selecting is based, at least in part, on the ranking.

17. A computer-program product comprising a non-transitory computer-usable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method comprising:

receiving a request to execute a database statement in satisfaction of a time constraint, wherein the database statement specifies a distributed database as a data source;

determining a pattern of the database statement based, at least in part, on an analysis of syntax in the database statement;

comparing the pattern to stored pattern metadata associated with cached samples of the distributed database;

wherein, for each cached sample of the cached samples, the stored pattern metadata characterizes an assortment of data values stored in the cached sample;

responsive to a determination that the comparing has resulted in one or more matches between the pattern and the stored pattern metadata, selecting a target sample from among the cached samples;

causing the database statement to be executed on the target sample;

responsive to a determination that the target sample resolves the database statement in satisfaction of the time constraint, returning a resulting dataset to a requestor; and

responsive to a determination that the target sample does not resolve the database statement satisfaction in of the time constraint, causing a new real-time sampling of the distributed database to be executed.

18. The computer-program product of claim 17 , wherein the causing of the new real-time sampling comprises:

determining a new sample of the distributed database based, at least in part, on the database statement;

retrieving the new sample;

adding the new sample to the cached samples; and

storing metadata related to the new sample in the stored pattern metadata.

19. The computer-program product of claim 17 , the method comprising:

monitoring storage operations in relation to the distributed database;

responsive to a determination that a storage operation on the distributed database causes at least one cached sample of the cached samples to reach a change threshold:

updating the at least one cached sample; and

refreshing a portion of the stored pattern metadata related to the at least one cached sample.

20. The computer-program product of claim 17 , wherein the stored pattern metadata indicates a size of each of the cached samples relative to a size of a complete result set.

Assignments (27)
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 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 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 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 →
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 →
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 →
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 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044719/0565 →
CHANGE OF NAME Recorded Nov 28, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044827/0842 →
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 →
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 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 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 REEL 035860 FRAME 0878 (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.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040027/0158 →
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 →
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 035860 FRAME 0797 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040028/0551 →
RELEASE OF REEL 035858 FRAME 0612 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040017/0067 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 035860/0797 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 035858/0612 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035860/0878 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2015
From: DANDEKAR, SHREE A.; DAVIS, MARK WILLIAM
To: DELL SOFTWARE INC.
Reel/Frame 035306/0724 →