IP Library Granted Patent US 10,528,565
Granted Patent B2
US 10,528,565 · App. 14/610,259 · Granted Jan 7, 2020

Logical level predictive caching in relational databases

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,528,565
App. No.
14/610,259
Granted
Jan 7, 2020
Kind
B2
Abstract

A system, method, and computer-readable medium for performing a predictive caching operation in which a hit rate is improved by pre executing statements that are predicted based upon previous use patterns. More specifically, by analyzing a stream of statements provided to a server, such as a database server, patterns of usage are detected and based upon these patterns, statements provided to the server are executed before the actual application executes the predicted statements. Thus the application executes faster because the data requested is already cached based upon the predictive execution.

Claims (50)

1. A computer-implementable method to perform a predictive caching operation, the method comprising:

analyzing a stream of statements provided to a database server;

determining a pattern of usage within the stream of statements;

determining, within a predetermined level of certainty, that the pattern of usage includes a first statement that will be executed after a second statement;

predictively pre-executing the first statement on the database server based on the pattern of usage within the stream of statements so as to improve performance of the server when executing the stream of statements, wherein predictively pre-executing the first statement comprises receiving rules relating to the stream of statements, each rule comprising a trigger statement and associated actions;

providing the pre-executed first statement for storage in a cache that is accessible to an application; and

upon detecting the first statement, retrieving the pre-executed first statement from the cache and initiating execution of the second statement.

2. The method of claim 1 , further comprising:

monitoring statements that are sent to the database server by an application; and,

collecting the statements that are sent to the database server.

3. The method of claim 2 , wherein:

the collecting further comprises collecting a plurality of characteristics relating to each statement, the plurality of characteristics comprising one or more of a query text, any optional bind variables and bind variable values for the query, a unique identifier for a session to the database and an amount of time spent executing the query.

4. The method of claim 1 , wherein:

the analyzing comprises processing the stream of statements and detecting patterns of execution within the stream of statements.

5. The method of claim 4 , wherein determining the patterns of usage further comprises performing a pattern matching operation, the pattern matching operation recognizing that an application obtains a detail record for a certain entity following several successive queries to obtain additional data for that entity.

6. A system comprising:

a processor;

a data bus coupled to the processor; and

a non-transitory, computer-readable storage medium embodying computer program code, the non-transitory, computer-readable storage medium being coupled to the data bus, the computer program code interacting with a plurality of computer operations and comprising instructions executable by the processor to perform operations comprising:

analyze a stream of statements provided to a database server;

determine a pattern of usage within the stream of statements;

determine, within a predetermined level of certainty, that the pattern of usage includes a first statement that will be executed after a second statement;

predictively pre-execute the first statement on the database server based on the pattern of usage within the stream of statements so as to improve performance of the server when executing the stream of statements, wherein predictively pre-executing the first statement comprises receiving rules relating to the stream of statements, each rule comprising a trigger statement and associated actions;

provide the pre-executed first statement for storage in a cache that is accessible to an application; and

upon detecting the first statement, retrieve the pre-executed first statement from the cache and initiate execution of the second statement.

7. The system of claim 6 , wherein the instructions are further configured to cause the processor to perform operations comprising:

monitor statements that are sent to the database server by an application; and;

collect statements that are sent to the database server.

8. The system of claim 7 , wherein execution of the instruction to collect causes the processor to:

collect a plurality of characteristics relating to each statement, the plurality of characteristics comprising one or more of a query text, any optional bind variables and bind variable values for the query, a unique identifier for a session to the database and an amount of time spent executing the query.

9. The system of claim 6 , wherein execution of the instruction to analyze causes the processor to:

process the stream of statements and detect patterns of execution within the stream of statements.

10. The system of claim 9 , wherein execution of the instruction to determine the pattern of usage causes the processor to:

perform a pattern matching operation, the pattern matching operation recognizing that an application obtains a detail record for a certain entity following several successive queries to obtain additional data for that entity.

11. A non-transitory, computer-readable storage medium embodying computer program code, the computer program code comprising computer executable instructions configured to cause a processor to perform operations comprising:

analyze a stream of statements provided to a database server;

determine a pattern of usage within the stream of statements;

determine, within a predetermined level of certainty, that the pattern of usage includes a first statement that will be executed after a second statement;

predictively pre-execute the first statement on the database server based on the pattern of usage within the stream of statements so as to improve performance of the server when executing the stream of statements, wherein predictively pre-executing the first statement comprises receiving rules relating to the stream of statements, each rule comprising a trigger statement and associated actions;

provide the pre-executed first statement for storage in a cache that is accessible to an application; and

upon detecting the first statement, retrieve the pre-executed first statement from the cache and initiating execution of the second statement.

12. The non-transitory, computer-readable storage medium of claim 11 , wherein the computer executable instructions are further configured to cause the processor to:

monitor statements that are sent to the database server by an application; and,

collect statements that are sent to the database server.

13. The non-transitory, computer-readable storage medium of claim 11 , wherein:

when collecting the statements that are sent to the database server, the processor is configured to collect a plurality of characteristics relating to each statement, the plurality of characteristics comprising one or more of a query text, any optional bind variables and bind variable values for the query, a unique identifier for a session to the database and an amount of time spent executing the query.

14. The non-transitory, computer-readable storage medium of claim 11 , wherein:

when analyzing the stream of statements provided to the database server, the processor is configured to process the stream of statements and detect patterns of execution within the stream of statements.

15. The non-transitory, computer-readable storage medium of claim 14 , wherein:

when determining the pattern of usage, the processor is configured to perform a pattern matching operation, the pattern matching operation recognizing that an application obtains a detail record for a certain entity following several successive queries to obtain additional data for that entity.

Assignments (33)
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 Jul 20, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 043276/0815 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME PREVIOUSLY RECORDED AT REEL: 034938 FRAME: 0729. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Jul 20, 2017
From: WOOD, DANIEL T.; JONSSON, JAN HENRIK
To: DELL SOFTWARE INC.
Reel/Frame 043275/0216 →
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 035104 FRAME 0043 (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.
Reel/Frame 040027/0123 →
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 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 →
RELEASE OF REEL 035103 FRAME 0809 (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.
Reel/Frame 040027/0934 →
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 →
RELEASE OF REEL 035103 FRAME 0536 (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.
Reel/Frame 040016/0864 →
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 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Feb 26, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 035103/0809 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Feb 26, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035104/0043 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Feb 26, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 035103/0536 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2015
From: WOOD, DANIEL T.; JONSSON, JAN HENRIK
To: DELL SOFTWARE, INC.
Reel/Frame 034938/0729 →