IP Library Granted Patent US 12,197,444
Granted Patent B2
US 12,197,444 · App. 18/470,034 · Granted Jan 14, 2025

System and method for query resource caching

Inventors: Oleksiy Ignatyev (Belmont, CA); Mihail Mihaylov (Redwood Shores, CA)
Assignee: Oracle International Corporation
G06F16/24552G06F9/4494G06F16/2282G06F16/24539G06F16/2456G06F16/2471G06F16/9017
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 12,197,444
App. No.
18/470,034
Granted
Jan 14, 2025
Kind
B2
Abstract

Operations include determining whether to cache resources accessed by a query based on the execution time of the query. The system identifies a set of executions of a same query. The system determines a cumulative execution time for the set of executions of the same query. If the cumulative execution time exceeds a threshold value, then the system caches a resource used for execution of the query.

Claims (62)

1. One or more non-transitory computer readable media comprising instructions which, when executed by one or more hardware processors, causes performance of operations comprising:

identifying a first plurality of executions of a first query during a first period of time;

comparing an execution time of each execution, of the first plurality of executions of the first query, to a first threshold value;

identifying a first subset of executions, of the first plurality of executions, with corresponding execution times that exceed the first threshold value;

determining whether a first number of executions, in the first subset of executions, exceeds a second threshold value;

responsive to determining that the first number of executions, in the first subset of executions, exceeds the second threshold value;

caching a first resource, used for execution of the first query, for a second period of time.

2. The one or more non-transitory computer readable media of claim 1 , wherein the operations further comprise:

identifying a second plurality of executions of a second query during the first period of time;

comparing an execution time of each execution, of the second plurality of executions of the second query, to a first threshold value;

identifying a second subset of executions, of the second plurality of executions, with corresponding execution times that exceed the first threshold value;

determining whether a second number of executions, in the second subset of executions, exceeds a second threshold value;

responsive at least to determining that the second number of executions, in the second subset of executions, does not exceed the second threshold value;

refraining from caching a second resource, used for execution of the second query, for the second period of time.

3. The non-transitory computer readable media of claim 1 , wherein the resource is a table.

4. The non-transitory computer readable media of claim 1 , wherein determining the execution time for a particular execution of the first plurality of executions of the first query comprises:

determining a time period between transmitting a request to execute the first query and receiving results from execution of the first query.

5. The non-transitory computer readable media of claim 1 , wherein a particular execution, of the first plurality of executions, is determined to be computationally expensive responsive to the execution time of the particular execution exceed the first threshold value.

6. The non-transitory computer readable media of claim 1 , wherein the operations further comprise storing a log record for the first subset of executions with corresponding execution times that exceed the first threshold value.

7. The non-transitory computer readable media of claim 1 , wherein first resource is stored further in response to determining that a cumulative execution time for the first subset of executions exceeds a third threshold value.

8. A method including operations comprising:

identifying a first plurality of executions of a first query during a first period of time;

comparing an execution time of each execution, of the first plurality of executions of the first query, to a first threshold value;

identifying a first subset of executions, of the first plurality of executions, with corresponding execution times that exceed the first threshold value;

determining whether a first number of executions, in the first subset of executions, exceeds a second threshold value;

responsive to determining that the first number of executions, in the first subset of executions, exceeds the second threshold value;

caching a first resource, used for execution of the first query, for a second period of time, wherein the method is executed by at least one device including a hardware processor.

9. The method of claim 8 , wherein the operations further comprise:

identifying a second plurality of executions of a second query during the first period of time;

comparing an execution time of each execution, of the second plurality of executions of the second query, to a first threshold value;

identifying a second subset of executions, of the second plurality of executions, with corresponding execution times that exceed the first threshold value;

determining whether a second number of executions, in the second subset of executions, exceeds a second threshold value;

responsive at least to determining that the second number of executions, in the second subset of executions, does not exceed the second threshold value;

refraining from caching a second resource, used for execution of the second query, for the second period of time.

10. The method of claim 8 , wherein the resource is a table.

11. The method of claim 8 , wherein determining the execution time for a particular execution of the first plurality of executions of the first query comprises:

determining a time period between transmitting a request to execute the first query and receiving results from execution of the first query.

12. The method of claim 8 , wherein a particular execution, of the first plurality of executions, is determined to be computationally expensive responsive to the execution time of the particular execution exceed the first threshold value.

13. The method of claim 8 , wherein the operations further comprise storing a log record for the first subset of executions with corresponding execution times that exceed the first threshold value.

14. The method of claim 8 , wherein first resource is stored further in response to determining that a cumulative execution time for the first subset of executions exceeds a third threshold value.

15. A system comprising:

at least one device including a hardware processor and memory storing instructions;

the hardware processor being configured to execute the instructions to perform operations comprising:

identifying a first plurality of executions of a first query during a first period of time;

comparing an execution time of each execution, of the first plurality of executions of the first query, to a first threshold value;

identifying a first subset of executions, of the first plurality of executions, with corresponding execution times that exceed the first threshold value;

determining whether a first number of executions, in the first subset of executions, exceeds a second threshold value;

responsive to determining that the first number of executions, in the first subset of executions, exceeds the second threshold value;

caching a first resource, used for execution of the first query, for a second period of time.

16. The system of claim 15 , wherein the operations further comprise:

identifying a second plurality of executions of a second query during the first period of time;

comparing an execution time of each execution, of the second plurality of executions of the second query, to a first threshold value;

identifying a second subset of executions, of the second plurality of executions, with corresponding execution times that exceed the first threshold value;

determining whether a second number of executions, in the second subset of executions, exceeds a second threshold value;

responsive at least to determining that the second number of executions, in the second subset of executions, does not exceed the second threshold value;

refraining from caching a second resource, used for execution of the second query, for the second period of time.

17. The system of claim 15 , wherein the resource is a table.

18. The system of claim 15 , wherein determining the execution time for a particular execution of the first plurality of executions of the first query comprises:

determining a time period between transmitting a request to execute the first query and receiving results from execution of the first query.

19. The system of claim 15 , wherein a particular execution, of the first plurality of executions, is determined to be computationally expensive responsive to the execution time of the particular execution exceed the first threshold value.

20. The system of claim 15 , wherein the operations further comprise storing a log record for the first subset of executions with corresponding execution times that exceed the first threshold value.

21. The system of claim 15 , wherein first resource is stored further in response to determining that a cumulative execution time for the first subset of executions exceeds a third threshold value.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2023
From: ORACLE INTERNATIONAL CORPORATION
To: NETSUITE, INC.
Reel/Frame 065457/0832 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2023
From: MIHAYLOV, MIHAIL L.
To: NETSUITE INC.
Reel/Frame 065054/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2023
From: IGNATYEV, OLEKSIY
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 065054/0669 →
Continuity (2)
Continuation 15600518 · May 19, 2017
Related Publication 20240004881A1 · Jan 4, 2024
References Cited (42)
US 7627618B2 · Honigfort · 2009 [cited by applicant]
US 9158814B2 · Barsness et al. · 2015 [cited by applicant]
US 9910892B2 · Krompass et al. · 2018 [cited by applicant]
US 20020198867A1 · Lohman et al. · 2002 [cited by applicant]
US 20030093647A1 · Mogi et al. · 2003 [cited by applicant]
US 20040122802A1 · Allen et al. · 2004 [cited by applicant]
US 20040205053A1 · Bird et al. · 2004 [cited by applicant]
US 20050228779A1 · Chaudhuri et al. · 2005 [cited by applicant]
US 20050283494A1 · Colossi · 2005 [cited by examiner]
US 20060080285A1 · Chowdhuri · 2006 [cited by applicant]
US 20070143246A1 · Bestgen et al. · 2007 [cited by applicant]
US 20070192372A1 · Bestgen et al. · 2007 [cited by applicant]
US 20080109424A1 · Day et al. · 2008 [cited by applicant]
US 20090037923A1 · Smith et al. · 2009 [cited by applicant]
US 20090198651A1 · Shiffer et al. · 2009 [cited by applicant]
US 20100145929A1 · Burger et al. · 2010 [cited by applicant]
US 20120047125A1 · Day · 2012 [cited by examiner]
US 20120054175A1 · Barsness et al. · 2012 [cited by applicant]
US 20130080462A1 · Behne · 2013 [cited by examiner]
US 20140025441A1 · Eberlein et al. · 2014 [cited by applicant]
US 20150278276A1 · Konik et al. · 2015 [cited by applicant]
US 20150347263A1 · Chau et al. · 2015 [cited by applicant]
US 20160070753A1 · Carpenter et al. · 2016 [cited by applicant]
US 20160147833A1 · Chaudhry et al. · 2016 [cited by applicant]
US 20170031967A1 · Chavan et al. · 2017 [cited by applicant]
US 20170031976A1 · Chavan et al. · 2017 [cited by applicant]
US 20170039245A1 · Wholey et al. · 2017 [cited by applicant]
US 20170161105A1 · Barrett et al. · 2017 [cited by applicant]
US 20170220610A1 · Laethem · 2017 [cited by applicant]
US 20170351615A1 · Agombar et al. · 2017 [cited by applicant]
US 20180218039A1 · Steinbeck et al. · 2018 [cited by applicant]
US 20180307728A1 · Crupi et al. · 2018 [cited by applicant]
US 20190050336A1 · Bagal et al. · 2019 [cited by applicant]
CN 101178727A · 2008 [cited by applicant]
CN 103493029A · 2014 [cited by applicant]
CN 105283872A · 2016 [cited by applicant]
WO 2017020765A1 · 2017 [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2017/068651, mailed on Apr. 4, 2018, 10 pages. [cited by applicant]
Surapaneni et al., “Exploring Caching for Efficient Collection Operations”, 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), Nov. 6-10, 2011, pp. 468-471. [cited by applicant]
Witkowski et al., “Continuous Queries in Oracle”, Proceedings of the 33rd international conference on Very large data bases, VLDB '07, 2007, pp. 1173-1184. [cited by applicant]
Xiaodong et al., “Two-level Synchronization: A Parallel Simulation Mechanism for Many-Core Architecture”, Journal of System Simulation, No. 12, Dec. 6, 2013. [cited by applicant]
Yi-Jun et al., “Bottom-up mining of XML query patterns to improve XML querying”, Journal of Zhejiang University—SCIENCE A, vol. 9, Jun. 1, 2008, pp. 744-757. [cited by applicant]