IP Library › Granted Patent US 12,579,066
Granted Patent B2
US 12,579,066 · App. 18/731,851 · Granted Mar 17, 2026

Data driven caching strategy

Inventors: Aneesh Dahiya (Zurich, CH); Renata Khasanova (Zurich, CH)
Assignee: Oracle International Corporation
G06F12/0802
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,579,066
App. No.
18/731,851
Granted
Mar 17, 2026
Kind
B2
Abstract

A computer-implemented method includes receiving an input for a model from a data stream, computing an output from the model, and storing the input and the output as an element of a cache. The method also includes using an algorithm to determine a set of parameters associated with the cache; the algorithm optimizes a function including a time taken by the model to generate outputs from a set of inputs sampled from the data stream. The method further includes calculating a caching score associated with each cache element, based on the set of parameters and the time taken by the model to generate the output, a usage of the element expressed as a number of iterations over which the element has been retained in the cache, and a frequency of usage of the element. The method also includes subsequently removing from the cache the element having the lowest caching score.

Claims (50)

1 . A computer-implemented method comprising:

receiving an input for a deterministic model, the input comprising data from a data stream, the input having an index value;

in accordance with the input not being stored in a cache:

computing an output from the model based on the input,

storing the input and the output in the cache as an element of the cache, and

in accordance with the index value being at a limit value:

using an optimization algorithm to determine a set of parameters associated with the cache, wherein the algorithm optimizes a function including a time taken by the model to generate outputs from a set of inputs sampled from the data stream;

calculating a caching score associated with each element of the cache, wherein the caching score for an element comprises a sum of a first product of a first score related to the element and a first parameter of the set of parameters, a second product of a second score related to the element and a second parameter of the set of parameters, and a third product of a third score related to the element and a third parameter of the set of parameters; and

subsequently, in accordance with receiving an additional input not stored in the cache, removing from the cache the element having the lowest caching score.

2 . The computer-implemented method of claim 1 , wherein the algorithm comprises a Bayesian optimization algorithm.

3 . The computer-implemented method of claim 1 , wherein elements of the cache have a priority order according to the time taken by the model to generate the output from the input.

4 . The computer-implemented method of claim 1 , wherein the cache comprises a plurality of elements each comprising an input-output pair, wherein each input-output pair in the plurality of elements is stored in a hashmap.

5 . The computer-implemented method of claim 4 , wherein each input-output pair comprises a key value pair stored in the hashmap.

6 . The computer-implemented method of claim 1 , further comprising calculating a first normalized score, a second normalized score and a third normalized score based on the first score, the second score and the third score respectively.

7 . The computer-implemented method of claim 6 , wherein the calculating comprises a min-max normalization procedure.

8 . The computer-implemented method of claim 1 , wherein the first, second, third scores respectively correspond to the time taken by the model to generate the output, a usage of the element expressed as a number of iterations over which the element has been retained in the cache, and a frequency of usage of the element.

9 . A non-transitory computer-readable medium comprising instructions executable by a processor to:

receive an input for a deterministic model, the input comprising data from a data stream, the input having an index value;

determining whether the input is stored in a cache;

in accordance with the input not being stored in the cache:

compute an output from the model based on the input,

store the input and the output in the cache as an element of the cache, and

determine whether the index value is at a limit value;

in accordance with the index value being at the limit value:

use an algorithm to determine a set of parameters associated with the cache, wherein the algorithm optimizes a function including a time taken by the model to generate outputs from a set of inputs sampled from the data stream;

calculate a caching score associated with each element of the cache, wherein the caching score for an element comprises a sum of a first product of a first score related to the element and a first parameter of the set of parameters, a second product of a second score related to the element and a second parameter of the set of parameters, and a third product of a third score related to the element and a third parameter of the set of parameters; and

subsequently, in accordance with receiving an additional input not stored in the cache, remove from the cache the element having the lowest caching score.

10 . The non-transitory computer-readable medium of claim 9 , wherein the algorithm comprises a Bayesian optimization algorithm.

11 . The non-transitory computer-readable medium of claim 9 , further comprising instructions executable by the processor to:

store the input and the output in the cache, in accordance with the input not being stored in the cache and the index value being less than the limit value, the elements of the cache having a priority order according to the time taken by the model to generate the output from the input.

12 . The non-transitory computer-readable medium of claim 9 , wherein the cache comprises a plurality of elements each comprising an input-output pair, wherein each input-output pair in the plurality of elements is stored in a hashmap.

13 . The non-transitory computer-readable medium of claim 9 , further comprising instructions executable by the processor to calculate a first normalized score, a second normalized score and a third normalized score based on the first score, the second score and the third score respectively.

14 . The non-transitory computer-readable medium of claim 9 , wherein the first, second, third scores respectively correspond to the time taken by the model to generate the output, a usage of the element expressed as a number of iterations over which the element has been retained in the cache, and a frequency of usage of the element.

15 . A system comprising:

a processor; and

a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, the operations comprising:

receiving an input for a model, the input comprising data from a data stream, the input having an index value;

determining whether the input is stored in a cache;

in accordance with the input not being stored in the cache:

computing an output from the model based on the input,

storing the input and the output in the cache as an element of the cache, and

determining whether the index value is at a limit value;

in accordance with the index value being at the limit value:

using an algorithm to determine a set of parameters associated with the cache, wherein the algorithm optimizes a function including a time taken by the model to generate outputs from a set of inputs sampled from the data stream;

calculating a caching score associated with each element of the cache, wherein the caching score for an element comprises a sum of a first product of a first score related to the element and a first parameter of the set of parameters, a second product of a second score related to the element and a second parameter of the set of parameters, and a third product of a third score related to the element and a third parameter of the set of parameters; and

subsequently, in accordance with receiving an additional input not stored in the cache, removing from the cache the element having the lowest caching score.

16 . The system of claim 15 , wherein the algorithm comprises a Bayesian optimization algorithm.

17 . The system of claim 15 , wherein the cache comprises a plurality of elements each comprising an input-output pair, wherein each input-output pair in the plurality of elements is stored in a hashmap.

18 . The system of claim 15 , further comprising calculating a first normalized score, a second normalized score and a third normalized score based on the first score, the second score and the third score respectively.

19 . The system of claim 15 , wherein the first, second, third scores respectively correspond to the time taken by the model to generate the output, a usage of the element expressed as a number of iterations over which the element has been retained in the cache, and a frequency of usage of the element.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2024
From: DAHIYA, ANEESH; KHASANOVA, RENATA
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 067599/0741 →
Continuity (1)
Related Publication 20250370929A1 · Dec 4, 2025
References Cited (23)
US 6266742B1 · Challenger · 2001 [cited by applicant]
US 6754662B1 · Li · 2004 [cited by applicant]
US 9773026B1 · Tetreault · 2017 [cited by applicant]
US 10685295B1 · Ross · 2020 [cited by applicant]
US 12045698B1 · May · 2024 [cited by applicant]
US 20030225974A1 · Bopardikar · 2003 [cited by applicant]
US 20100332436A1 · Yanagisawa · 2010 [cited by applicant]
US 20120042126A1 · Krick · 2012 [cited by applicant]
US 20120051537A1 · Chishti · 2012 [cited by applicant]
US 20150067088A1 · Guerin · 2015 [cited by applicant]
US 20150095581A1 · Stairs · 2015 [cited by applicant]
US 20160077926A1 · Mutalik · 2016 [cited by applicant]
US 20160246733A1 · Condict · 2016 [cited by applicant]
US 20170192892A1 · Pundir · 2017 [cited by examiner]
US 20170315932A1 · Moyer · 2017 [cited by applicant]
US 20190303480A1 · Canis · 2019 [cited by applicant]
US 20210073808A1 · Gu · 2021 [cited by applicant]
US 20220051088A1 · Meng · 2022 [cited by applicant]
US 20230079746A1 · Chen · 2023 [cited by applicant]
O'Neil et al., “The LRU-K Page Replacement Algorithm for Database Disk Buffering”, SIGMOD Rec., Jun. 1993,vol. 22, No. 2, p. 297-306. [cited by applicant]
Cormen et al., “Intorduction to Algorithms”, The Mit Press, Massachusetts Institute of Technology, 2022, pp. 161-182. [cited by applicant]
Bojanowski et al., “EnrichingWord Vectors with Subword Information”, arXiv:1607.04606v2 [cs.CL], Jun. 19, 2017, 12 pages. [cited by applicant]
Sanders et al., “A Baysian Approach for the Robust Optimisation of Expensive-To-Evaluate Functions” IEEE Transactions on Evolutionary Computation, May 9, 2019 (12 pages). [cited by applicant]