Prosecution Insights
Last updated: October 02, 2026
Application No. 18/949,822

CACHING USING MACHINE LEARNED PREDICTIONS

Final Rejection §103
Filed
Nov 15, 2024
Priority
Feb 12, 2018 — continuation of PCTGR2018000005 +1 more
Examiner
LOONAN, ERIC T
Art Unit
2137
Tech Center
2100 — Computer Architecture & Software
Assignee
Google LLC
OA Round
2 (Final)
65%
Grant Probability
Moderate
3-4
OA Rounds
1y 10m
Est. Remaining
92%
With Interview

Examiner Intelligence

Grants 65% of resolved cases
65%
Career Allowance Rate
284 granted / 438 resolved
+9.8% vs TC avg
Strong +27% interview lift
Without
With
+27.1%
Interview Lift
resolved cases with interview
Typical timeline
3y 9m
Avg Prosecution
16 currently pending
Career history
467
Total Applications
across all art units

Statute-Specific Performance

§101
7.7%
-32.3% vs TC avg
§103
45.9%
+5.9% vs TC avg
§102
23.0%
-17.0% vs TC avg
§112
20.2%
-19.8% vs TC avg
Black line = Tech Center average estimate • Based on career data from 438 resolved cases

Office Action

§103
DETAILED ACTION This Office Action, based on application 18/949,822 on 15 November 2024, is filed in response to applicant’s amendment and remarks filed 2 July 2026. Claims 1-18 are currently pending and have been fully considered below. Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Response to Arguments Applicant’s remarks, filed 2 July 2026 in response to the Office Action filed 6 January 2026, have been fully considered below. Claim Objections The Office withdraws the previously issued objections in view of applicant’s amendment and remarks. Claim Rejections under 35 U.S.C. § 103 The applicant traverses the prior art rejection alleging the amended subject matter distinguishes the claims from the references applied in the rejection. The Office has fully reviewed applicant’s remarks; however, is not persuaded and maintains a prior art rejection based on grounds previously set forth and for further reasons noted below. First, the applicant argues TIRUNAGARI outputs a policy selection, and not a memory address as amended. While the applicant further notes the teachings of FLYNN including the functions of maintaining an eviction policy, the applicant asserts the combination of TIRUNAGARI and FLYNN fails to directly output the memory address. The Office asserts applicant’s arguments merely argue that cited prior art fails to disclose the recited invention not due to whether or not the combination of TIRUNAGARI and FLYNN teach the same functions as applicant’s claimed ‘machine learning system’, but merely argue the component or entity that is used to perform the functions. The Office asserts TIRUNAGARI uses machine learning to determine an optimal caching policy that may be used for eviction of cache data. The Office further asserts FLYNN teaches implementing the caching policy including identifying victim data via metadata including an address for eviction. The Office maintains the combination of TIRUNAGARI’s machine learning to determine a caching policy with the noted functions performed by FLYNN’s cache controller meet the claimed ‘machine learning system’ because the combination teaches every function of the claimed system. Second, the applicant argues TIRUNAGARI’s machine learning system selects the non-machine learned caching process while Claim 1 now requires that the non-machine learned caching process “is not selected by the machine learning process”. Applicant’s specification at ¶[0040] recites the following: “If the predicted eviction accuracy does not satisfy the threshold prediction accuracy, the caching system 100 uses another process to determine which data set to evict from the cache 102. The caching system 100 may use a non-machine learning process as the other process with which to determine a data set to evict from the cache 102. The non-machine learning process may be a random replacement selection process; a least recently used selection process; a first-in, first-out selection process; a last-in, first-out selection process; a most recently used selection process; a least frequently used selection process; or an adaptive replacement selection process.” The Office notes TIRUNAGARI explicitly teaches at ¶[0067] that “Functionality may be separated or combined in blocks differently in various realizations of the systems and methods described herein or described with different terminology”. Similar to applicant’s first argument, the applicant merely argues the component or entity that is used to perform the claimed function. The Office asserts the TIRUNAGARI’s selection of an LRU policy may be called a ’non-machine learning process’ because such a selection may be separated and labeled as such. Furthermore, the Office asserts TIRUNAGARI teaches the limitation as selection of a caching algorithm may be a random action to which the Office asserts meets applicant’s definition of a ‘non-machine learning process’. Third, the applicant alleges the combination of references fails to teach the claimed accuracy determination. Applicant’s arguments are based on TIRUNAGARI’s evaluation of historical cache hit rates to select a caching algorithm which does not directly predict a memory address. In response, the Office asserts the basis of applicant’s arguments is the same as what was presented in applicant’s first argument above; the Office maintains the response provided above. The applicant further argues against the combination of references in the paragraphs spanning Pages 12-13 of applicant’s response. Applicant’s core argument, again, does not address whether or not the combination of prior art teaches the functions of the claims, but merely the component or entity that performs the claimed function. The Office asserts applicant’s claimed invention constitutes merely a relabeling of components to execute the functions already known to be performed in the art. Claim Rejections - 35 USC § 103 The text of those sections of Title 35, U.S. Code not included in this action can be found in a prior Office action. Claim(s) 1-18 is/are rejected under 35 U.S.C. 103 as being unpatentable over TIRUNAGARI (US PGPub 2012/0041914) in view of FLYNN et al (US PGPub 2011/0066808). With respect to Claim 1, TIRUNAGARI discloses a system comprising a data processing apparatus (Fig 7, Processor 770) and one or more storage devices on which are stored instructions that are operable (Fig 7, System Memory 710 comprises Application Code 715), when executed by the data processing apparatus, to cause the data processing apparatus to perform operations comprising: determining that particular data is not stored in a cache (¶ [0017] – “cache miss”) that is full (¶ [0018] – “when a cache is full, a caching algorithm may be applied to determine which data to remove to make room for new data to be cached); in response to determining that the particular data is not stored in the cache that is full, determining, by a caching process, whether to use a machine learning system or a non-machine learned caching process to evict data stored in the cache (Abstract – a neural network may select and apply a caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached; ¶ [0024] – a selected caching algorithm may or may not change as a result of evaluating performance related parameters; ¶ [0020] – the neural cache {‘machine learning system’} may apply an optimal caching algorithm; ¶ [0018] – the cache replacement algorithm applied may comprise LRU {‘non-machine learned caching process’}), wherein: the machine learning system generates, as a prediction and by using a machine learned process, … a data set to evict from the cache (Abstract – a neural network may select and apply a caching algorithm; ¶ [0028] – a caching algorithm may be selected based on various reasons including historical cache hit rates for a previous execution of a given or similar application; ¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a caching algorithm by the neural network analogous to ‘the machine learning system generates, as a prediction and by using a machine learned process, … a data set to evict from the cache’}); and the non-machine learned caching process is separate from the machine learning system and is not selected by the machine learning process, (¶[0067] – “Functionality may be separated or combined in blocks differently in various realizations of the systems and methods described herein or described with different terminology”; ¶[0046] – “One reinforcement learning technique that may be applied is the state-action-reward-state-action method of reinforcement learning. With this method, for each iteration, the current state of the system is observed, and an action is taken. The action taken may be … a random action”) and generates … a data set in the cache to evict from the cache (Abstract – a neural network may select and apply a caching algorithm; ¶ [0018] – the cache replacement algorithm applied may comprise LRU {‘non-machine learned caching process’}; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a LRU caching algorithm analogous to ‘the non-machine learned caching process … generates … a data set to evict from the cache’}); the determining of whether to use the machine learning system or the non-machine learned caching process comprising: determining a predicted eviction accuracy that measures an accuracy of the prediction of the machine learning system in predicting that the data set to evict from the cache … will be used further in a future than other data sets currently stored in the cache (¶ [0028] – the caching algorithm may be selected based on various reasons including historical cache hit rates for a previous execution of a given or similar application; ¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the application of a caching algorithm by the neural network analogous to ‘the machine learning system … predict(s) the data set to evict from the cache’}; ¶ [0024] – a selected caching algorithm may or may not change as a result of evaluating performance related parameters {thus, further application of the selected caching algorithm may be used to determine next data to evict}); determining whether the predicted eviction accuracy of the machine learning system satisfies a threshold eviction accuracy (¶ [0024] – a value for one performance related parameter {e.g. cache hit rate} may be evaluated to see whether it meets or exceeds a threshold value); in response to determining that the predicted eviction accuracy of the machine learning system satisfies the threshold eviction accuracy (¶ [0024] – a selected caching algorithm may or may not change as a result of evaluating performance related parameters): selecting, by the caching process, the machine learning system to predict … a data set stored in the cache to evict from the cache (¶ [0028] – a caching algorithm may be selected based on various reasons including historical cache hit rates for a previous execution of a given or similar application; ¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a caching algorithm by the neural network analogous to ‘the machine learning system predicts … a data set stored in the cache to evict from the cache’}); predicting, by the machine learned process of the machine learning system, … the data set stored in the cache to evict from the cache (¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a caching algorithm by the neural network analogous to ‘the machine learning system predicts … a data set stored in the cache to evict from the cache’}); evicting, from the cache, the data set … (¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached); and storing the particular data in the cache … (¶ [0018] – when a cache is full, a caching algorithm may be applied to determine which data to remove to make room for new data to be cached); and in response to determining that the predicted eviction accuracy of the machine learning system does not satisfy the threshold eviction accuracy (¶ [0024] – a selected caching algorithm may or may not change as a result of evaluating performance related parameters): determining, using a non-machine learning system, … a data set stored in the cache to evict from the cache (¶ [0018] – the cache replacement algorithm applied may comprise LRU {‘non-machine learned caching process’}; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a LRU caching algorithm analogous to ‘determining, using a non-machine learned caching process … a data set stored in the cache to evict from the cache’}); evicting, from the cache, the data set … (¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached); and storing the particular data in the cache … (¶ [0018] – when a cache is full, a caching algorithm may be applied to determine which data to remove to make room for new data to be cached). TIRUNAGARI may not explicitly disclose (1) the machine learning system generates, as a prediction and by using a machine learned process, a memory address predicted by the machine learned process, the memory address provided as an output of the machine learning system by a machine learning process and being a memory location in the cache of a data set to evict from the cache; (2) the non-machine learned caching process … generates a memory address as output, the memory address being a memory location of a data set in the cache to evict from the cache; (3) wherein the data set to evict from the cache is addressed by the memory address. However, FLYNN discloses (1) the machine learning system generates, as a prediction and by using a machine learned process, a memory address predicted by the machine learned process, the memory address provided as an output of the machine learning system by a machine learning process and being a memory location in the cache of a data set to evict from the cache; (2) the non-machine learned caching process … generates a memory address as output, the memory address being a memory location of a data set in the cache to evict from the cache; (3) wherein the data set to evict from the cache is addressed by the memory address (¶ [0080] a cache controller may coordinate the exchange of data between clients and the backing store and may be responsible for maintaining an eviction policy that specifies how and when data is evicted; the eviction policy may be based upon cache eviction metadata; ¶ [0008] – the metadata may comprise cache entries … a cache entry may associate a logical address with one or more locations on identifying where the data is stored; ¶ [0009] – the cache entries may be indexed by logical address). Recited another way, TIRUNAGARI discloses that a machine learning system may select and apply a caching algorithm to identify data to evict from cache. But, TIRUNAGARI may not explicitly disclose identifying the data by memory address. However, FLYNN discloses that cached data may be indexed (and thus discarded) by logical address. TIRUNAGARI and FLYNN are analogous art because they are from the same field of endeavor of cache systems. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of TIRUNAGARI and FLYNN before him or her, to modify the resulting output from implementation of a caching algorithm of TIRUNAGARI to include a memory address as taught by FLYNN. A motivation for doing so would have been to provide indicators to identify data for the purpose of cache management (Section [0007]) as one needs to first identify the location of data in cache in order to evict the data from the cache. Therefore, it would have been obvious to combine TIRUNAGARI and FLYNN to obtain the invention as specified in the instant claims. With respect to Claim 7, TIRUNAGARI discloses a computer-implemented method, comprising: determining that particular data is not stored in a cache (¶ [0017] – “cache miss”) that is full (¶ [0018] – “when a cache is full, a caching algorithm may be applied to determine which data to remove to make room for new data to be cached); in response to determining that the particular data is not stored in the cache that is full, determining, by a caching process, whether to use a machine learning system or a non-machine learned caching process to evict data stored in the cache (Abstract – a neural network may select and apply a caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached; ¶ [0024] – a selected caching algorithm may or may not change as a result of evaluating performance related parameters; ¶ [0020] – the neural cache {‘machine learning system’} may apply an optimal caching algorithm; ¶ [0018] – the cache replacement algorithm applied may comprise LRU {‘non-machine learned caching process’}), wherein: the machine learning system generates, as a prediction and by using a machine learned process, … a data set to evict from the cache (Abstract – a neural network may select and apply a caching algorithm; ¶ [0028] – a caching algorithm may be selected based on various reasons including historical cache hit rates for a previous execution of a given or similar application; ¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a caching algorithm by the neural network analogous to ‘the machine learning system generates, as a prediction and by using a machine learned process, … a data set to evict from the cache’}); and the non-machine learned caching process is separate from the machine learning system and is not selected by the machine learning process (¶[0067] – “Functionality may be separated or combined in blocks differently in various realizations of the systems and methods described herein or described with different terminology”; ¶[0046] – “One reinforcement learning technique that may be applied is the state-action-reward-state-action method of reinforcement learning. With this method, for each iteration, the current state of the system is observed, and an action is taken. The action taken may be … a random action”) and generates … a data set in the cache to evict from the cache (Abstract – a neural network may select and apply a caching algorithm; ¶ [0018] – the cache replacement algorithm applied may comprise LRU {‘non-machine learned caching process’}; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a LRU caching algorithm analogous to ‘the non-machine learned caching process … generates … a data set to evict from the cache’}); the determining of whether to use the machine learning system or the non-machine learned caching process comprising: determining a predicted eviction accuracy that measures an accuracy of the prediction of the machine learning system in predicting that the data set to evict from the cache … will be used further in a future than other data sets currently stored in the cache (¶ [0028] – the caching algorithm may be selected based on various reasons including historical cache hit rates for a previous execution of a given or similar application; ¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the application of a caching algorithm by the neural network analogous to ‘the machine learning system … predict(s) the data set to evict from the cache’}; ¶ [0024] – a selected caching algorithm may or may not change as a result of evaluating performance related parameters {thus, further application of the selected caching algorithm may be used to determine next data to evict}); determining whether the predicted eviction accuracy of the machine learning system satisfies a threshold eviction accuracy (¶ [0024] – a value for one performance related parameter {e.g. cache hit rate} may be evaluated to see whether it meets or exceeds a threshold value); in response to determining that the predicted eviction accuracy of the machine learning system satisfies the threshold eviction accuracy (¶ [0024] – a selected caching algorithm may or may not change as a result of evaluating performance related parameters): selecting, by the caching process, the machine learning system to predict … a data set stored in the cache to evict from the cache (¶ [0028] – a caching algorithm may be selected based on various reasons including historical cache hit rates for a previous execution of a given or similar application; ¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a caching algorithm by the neural network analogous to ‘the machine learning system predicts … a data set stored in the cache to evict from the cache’}); predicting, by the machine learned process of the machine learning system, … the data set stored in the cache to evict from the cache (¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a caching algorithm by the neural network analogous to ‘the machine learning system predicts … a data set stored in the cache to evict from the cache’}); evicting, from the cache, the data set … (¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached); and storing the particular data in the cache … (¶ [0018] – when a cache is full, a caching algorithm may be applied to determine which data to remove to make room for new data to be cached); and in response to determining that the predicted eviction accuracy of the machine learning system does not satisfy the threshold eviction accuracy (¶ [0024] – a selected caching algorithm may or may not change as a result of evaluating performance related parameters): determining, using a non-machine learning system, … a data set stored in the cache to evict from the cache (¶ [0018] – the cache replacement algorithm applied may comprise LRU {‘non-machine learned caching process’}; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a LRU caching algorithm analogous to ‘determining, using a non-machine learned caching process … a data set stored in the cache to evict from the cache’}); evicting, from the cache, the data set … (¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached); and storing the particular data in the cache … (¶ [0018] – when a cache is full, a caching algorithm may be applied to determine which data to remove to make room for new data to be cached). TIRUNAGARI may not explicitly disclose (1) the machine learning system generates, as a prediction and by using a machine learned process, a memory address predicted by the machine learned process, the memory address provided as an output of the machine learning system by a machine learning process and being a memory location in the cache of a data set to evict from the cache; (2) the non-machine learned caching process … generates a memory address as output, the memory address being a memory location of a data set in the cache to evict from the cache; (3) wherein the data set to evict from the cache is addressed by the memory address. However, FLYNN discloses (1) the machine learning system generates, as a prediction and by using a machine learned process, a memory address predicted by the machine learned process, the memory address provided as an output of the machine learning system by a machine learning process and being a memory location in the cache of a data set to evict from the cache; (2) the non-machine learned caching process … generates a memory address as output, the memory address being a memory location of a data set in the cache to evict from the cache; (3) wherein the data set to evict from the cache is addressed by the memory address (¶ [0080] a cache controller may coordinate the exchange of data between clients and the backing store and may be responsible for maintaining an eviction policy that specifies how and when data is evicted; the eviction policy may be based upon cache eviction metadata; ¶ [0008] – the metadata may comprise cache entries … a cache entry may associate a logical address with one or more locations on identifying where the data is stored; ¶ [0009] – the cache entries may be indexed by logical address). Recited another way, TIRUNAGARI discloses that a machine learning system may select and apply a caching algorithm to identify data to evict from cache. But, TIRUNAGARI may not explicitly disclose identifying the data by memory address. However, FLYNN discloses that cached data may be indexed (and thus discarded) by logical address. TIRUNAGARI and FLYNN are analogous art because they are from the same field of endeavor of cache systems. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of TIRUNAGARI and FLYNN before him or her, to modify the resulting output from implementation of a caching algorithm of TIRUNAGARI to include a memory address as taught by FLYNN. A motivation for doing so would have been to provide indicators to identify data for the purpose of cache management (Section [0007]) as one needs to first identify the location of data in cache in order to evict the data from the cache. Therefore, it would have been obvious to combine TIRUNAGARI and FLYNN to obtain the invention as specified in the instant claims. With respect to Claim 13, TIRUNAGARI discloses a non-transitory computer storage medium encoded with instructions that, when executed by a data processing apparatus, cause the data processing apparatus to perform operations comprising: determining that particular data is not stored in a cache (¶ [0017] – “cache miss”) that is full (¶ [0018] – “when a cache is full, a caching algorithm may be applied to determine which data to remove to make room for new data to be cached); in response to determining that the particular data is not stored in the cache that is full, determining, by a caching process, whether to use a machine learning system or a non-machine learned caching process to evict data stored in the cache (Abstract – a neural network may select and apply a caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached; ¶ [0024] – a selected caching algorithm may or may not change as a result of evaluating performance related parameters; ¶ [0020] – the neural cache {‘machine learning system’} may apply an optimal caching algorithm; ¶ [0018] – the cache replacement algorithm applied may comprise LRU {‘non-machine learned caching process’}), wherein: the machine learning system generates, as a prediction and by using a machine learned process, … a data set to evict from the cache (Abstract – a neural network may select and apply a caching algorithm; ¶ [0028] – a caching algorithm may be selected based on various reasons including historical cache hit rates for a previous execution of a given or similar application; ¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a caching algorithm by the neural network analogous to ‘the machine learning system generates, as a prediction and by using a machine learned process, … a data set to evict from the cache’}); and the non-machine learned caching process is separate from the machine learning system and is not selected by the machine learning process (¶[0067] – “Functionality may be separated or combined in blocks differently in various realizations of the systems and methods described herein or described with different terminology”; ¶[0046] – “One reinforcement learning technique that may be applied is the state-action-reward-state-action method of reinforcement learning. With this method, for each iteration, the current state of the system is observed, and an action is taken. The action taken may be … a random action”) and generates … a data set in the cache to evict from the cache (Abstract – a neural network may select and apply a caching algorithm; ¶ [0018] – the cache replacement algorithm applied may comprise LRU {‘non-machine learned caching process’}; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a LRU caching algorithm analogous to ‘the non-machine learned caching process … generates … a data set to evict from the cache’}); the determining of whether to use the machine learning system or the non-machine learned caching process comprising: determining a predicted eviction accuracy that measures an accuracy of the prediction of the machine learning system in predicting that the data set to evict from the cache … will be used further in a future than other data sets currently stored in the cache (¶ [0028] – the caching algorithm may be selected based on various reasons including historical cache hit rates for a previous execution of a given or similar application; ¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the application of a caching algorithm by the neural network analogous to ‘the machine learning system … predict(s) the data set to evict from the cache’}; ¶ [0024] – a selected caching algorithm may or may not change as a result of evaluating performance related parameters {thus, further application of the selected caching algorithm may be used to determine next data to evict}); determining whether the predicted eviction accuracy of the machine learning system satisfies a threshold eviction accuracy (¶ [0024] – a value for one performance related parameter {e.g. cache hit rate} may be evaluated to see whether it meets or exceeds a threshold value); in response to determining that the predicted eviction accuracy of the machine learning system satisfies the threshold eviction accuracy (¶ [0024] – a selected caching algorithm may or may not change as a result of evaluating performance related parameters): selecting, by the caching process, the machine learning system to predict … a data set stored in the cache to evict from the cache (¶ [0028] – a caching algorithm may be selected based on various reasons including historical cache hit rates for a previous execution of a given or similar application; ¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a caching algorithm by the neural network analogous to ‘the machine learning system predicts … a data set stored in the cache to evict from the cache’}); predicting, by the machine learned process of the machine learning system, … the data set stored in the cache to evict from the cache (¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a caching algorithm by the neural network analogous to ‘the machine learning system predicts … a data set stored in the cache to evict from the cache’}); evicting, from the cache, the data set … (¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached); and storing the particular data in the cache … (¶ [0018] – when a cache is full, a caching algorithm may be applied to determine which data to remove to make room for new data to be cached); and in response to determining that the predicted eviction accuracy of the machine learning system does not satisfy the threshold eviction accuracy (¶ [0024] – a selected caching algorithm may or may not change as a result of evaluating performance related parameters): determining, using a non-machine learning system, … a data set stored in the cache to evict from the cache (¶ [0018] – the cache replacement algorithm applied may comprise LRU {‘non-machine learned caching process’}; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a LRU caching algorithm analogous to ‘determining, using a non-machine learned caching process … a data set stored in the cache to evict from the cache’}); evicting, from the cache, the data set … (¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached); and storing the particular data in the cache … (¶ [0018] – when a cache is full, a caching algorithm may be applied to determine which data to remove to make room for new data to be cached). TIRUNAGARI may not explicitly disclose (1) the machine learning system generates, as a prediction and by using a machine learned process, a memory address predicted by the machine learned process, the memory address provided as an output of the machine learning system by a machine learning process and being a memory location in the cache of a data set to evict from the cache; (2) the non-machine learned caching process … generates a memory address as output, the memory address being a memory location of a data set in the cache to evict from the cache; (3) wherein the data set to evict from the cache is addressed by the memory address. However, FLYNN discloses (1) the machine learning system generates, as a prediction and by using a machine learned process, a memory address predicted by the machine learned process, the memory address provided as an output of the machine learning system by a machine learning process and being a memory location in the cache of a data set to evict from the cache; (2) the non-machine learned caching process … generates a memory address as output, the memory address being a memory location of a data set in the cache to evict from the cache; (3) wherein the data set to evict from the cache is addressed by the memory address (¶ [0080] a cache controller may coordinate the exchange of data between clients and the backing store and may be responsible for maintaining an eviction policy that specifies how and when data is evicted; the eviction policy may be based upon cache eviction metadata; ¶ [0008] – the metadata may comprise cache entries … a cache entry may associate a logical address with one or more locations on identifying where the data is stored; ¶ [0009] – the cache entries may be indexed by logical address). Recited another way, TIRUNAGARI discloses that a machine learning system may select and apply a caching algorithm to identify data to evict from cache. But, TIRUNAGARI may not explicitly disclose identifying the data by memory address. However, FLYNN discloses that cached data may be indexed (and thus discarded) by logical address. TIRUNAGARI and FLYNN are analogous art because they are from the same field of endeavor of cache systems. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of TIRUNAGARI and FLYNN before him or her, to modify the resulting output from implementation of a caching algorithm of TIRUNAGARI to include a memory address as taught by FLYNN. A motivation for doing so would have been to provide indicators to identify data for the purpose of cache management (Section [0007]) as one needs to first identify the location of data in cache in order to evict the data from the cache. Therefore, it would have been obvious to combine TIRUNAGARI and FLYNN to obtain the invention as specified in the instant claims. With respect to Claims 2, 8, and 14, the combination of TIRUNAGARI and FLYNN disclose the system/method/medium of each respective parent claim. TIRUNAGARI further discloses wherein determining a predicted eviction accuracy that measures an accuracy of the prediction of the machine learning system in predicting that the data set to evict from the cache… will be used further in the future than the other data sets currently stored in the cache comprises determining a predicted eviction accuracy based on a data set chain that includes data sets the machine learning system previously identified for eviction from the cache (¶ [0024] – performance related parameters may be evaluated to see whether it meets or exceeds a threshold value, and a selected caching algorithm may or may not change as a result of evaluating performance related parameters; ¶ [0022] – performance related parameters may include cache hit rates for a given resource or group of resources {a data set chain}). FLYNN further discloses wherein the data set to evict from the cache is addressed by the memory address (¶ [0080] a cache controller may coordinate the exchange of data between clients and the backing store and may be responsible for maintaining an eviction policy that specifies how and when data is evicted; the eviction policy may be based upon cache eviction metadata; ¶ [0008] – the metadata may comprise cache entries … a cache entry may associate a logical address with one or more locations on identifying where the data is stored; ¶ [0009] – the cache entries may be indexed by logical address). With respect to Claims 3, 9, and 15, the combination of TIRUNAGARI and FLYNN disclose the system/method/medium of each respective parent claim. TIRUNAGARI further discloses wherein predicting, by the machine learned process of the machine learning system, … the data set stored in the cache to evict from the cache comprises predicting … a data set (Abstract – a neural network may select and apply a caching algorithm; ¶ [0028] – a caching algorithm may be selected based on various reasons including historical cache hit rates for a previous execution of a given or similar application; ¶ [0019] – the system may implement a “neural cache” {analogous to a machine learning system} for cache efficiency; ¶ [0020] – the neural cache may apply an optimal caching algorithm; ¶ [0002] – caching algorithms may be used to determine which data to remove to make room for new data to be cached {the selection and application of a caching algorithm by the neural network analogous to ‘the machine learning system generates, as a prediction and by using a machine learned process, … a data set to evict from the cache’}). FLYNN further discloses wherein the data set stored in the cache has not been accessed with a particular time period (¶ [0054] – cache eviction metadata may comprise an indication {e.g. ‘cold’} of data that has not been accessed within a particular time threshold), and wherein the data set to evict from the cache is addressed by the memory address (¶ [0080] a cache controller may coordinate the exchange of data between clients and the backing store and may be responsible for maintaining an eviction policy that specifies how and when data is evicted; the eviction policy may be based upon cache eviction metadata; ¶ [0008] – the metadata may comprise cache entries … a cache entry may associate a logical address with one or more locations on identifying where the data is stored; ¶ [0009] – the cache entries may be indexed by logical address). With respect to Claims 4, 10, and 16, the combination of TIRUNAGARI and FLYNN disclose the system/method/medium of each respective parent claim. TIRUNAGARI further discloses determining whether the particular data was previously stored in the cache during a second time period preceding and adjacent to the particular time period without any intervening time periods; and in response to determining that the particular data was not previously stored in the cache during the second time period, creating a new data set chain that identifies the data stored in the cache for which the memory address was predicted by the machine learning system (¶ [0024-0025] – the neural network may perform periodic sampling of performance related parameters, and as a result of the analysis of the parameters, may change the caching algorithm in response; the result of changing the caching algorithm may result in using a different basis for which cached items should be replaced to make room for storing new items in the cache). With respect to Claims 5, 11, and 17, the combination of TIRUNAGARI and FLYNN disclose the system/method/medium of each respective parent claim. TIRUNAGARI further discloses in response to determining that the particular data was previously stored in the cache during the second time period: determining a data set chain that identifies the particular data; and updating the data set chain to identify the data stored in the cache for which the memory address was predicted by the machine learning system; and wherein determining the predicted eviction accuracy comprises determining the predicted eviction accuracy using a quantity of data sets identified by data set chain (¶ [0022] – performance related parameters may include cache hit rates for a given resource or group of resources {quantity of data sets}; ¶ [0024] – performance related parameters may be evaluated to see whether it meets or exceeds a threshold value). With respect to Claims 6, 12, and 18, the combination of TIRUNAGARI and FLYNN disclose the system/method/medium of each respective parent claim. TIRUNAGARI further discloses wherein the machine learned process is one of a neural network analysis system, a recurrent neural network analysis system, or a long short-term memory neural network system that is trained to predict the memory address that is the memory location in the cache of the data set to evict from the cache (Abstract – a neural network may select and apply a caching algorithm). Conclusion THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to ERIC T LOONAN whose telephone number is (571)272-6994. The examiner can normally be reached M-F 8am-5pm. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Arpan Savla can be reached at 571-272-1077. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /ERIC T LOONAN/Primary Examiner, Art Unit 2137
Read full office action

Prosecution Timeline

Nov 15, 2024
Application Filed
Jan 06, 2026
Non-Final Rejection mailed — §103
Jun 18, 2026
Interview Requested
Jun 30, 2026
Applicant Interview (Telephonic)
Jul 02, 2026
Response Filed
Jul 09, 2026
Examiner Interview Summary
Sep 10, 2026
Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12743238
COMMAND PROCESSING METHOD, ELECTRONIC DEVICE, AND NON-TRANSITORY COMPUTER-READABLE RECORDING MEDIUM
1y 8m to grant Granted Sep 22, 2026
Patent 12737303
VIRTUAL STORAGE MECHANISM TO OPTIMIZE FETCH PERFORMANCE OF NAMED OBJECTS IN ENTERPRISE SYSTEMS
2y 10m to grant Granted Sep 15, 2026
Patent 12730576
INTER-CLOUD SHARED CONTENT DATA MANAGEMENT
2y 10m to grant Granted Sep 08, 2026
Patent 12724534
MEMORY CONTROLLER PERFORMING MAP UPDATE AND METHOD OF OPERATING THE SAME
3y 5m to grant Granted Sep 01, 2026
Patent 12724675
DATA BACKUP SYSTEM USING BOTH A DATA BACKUP SERVER OPERATING IN A NON-RETENTION LOCKED MODE AND A DATA BACKUP SERVER OPERATING IN RETENTION LOCKED MODE
3y 1m to grant Granted Sep 01, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
65%
Grant Probability
92%
With Interview (+27.1%)
3y 9m (~1y 10m remaining)
Median Time to Grant
Moderate
PTA Risk
Based on 438 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month