Office Action Predictor
Last updated: April 15, 2026
Application No. 18/328,105

DETERMINING OPTIMAL COMPONENTS OF A STORAGE SUBSYSTEM BASED ON MEASUREMENTS AND MODELS

Non-Final OA §101§103§112
Filed
Jun 02, 2023
Examiner
WESTBROOK, MICHAEL L
Art Unit
2139
Tech Center
2100 — Computer Architecture & Software
Assignee
International Business Machines Corporation
OA Round
5 (Non-Final)
74%
Grant Probability
Favorable
5-6
OA Rounds
2y 11m
To Grant
80%
With Interview

Examiner Intelligence

Grants 74% — above average
74%
Career Allow Rate
160 granted / 216 resolved
+19.1% vs TC avg
Moderate +6% lift
Without
With
+6.0%
Interview Lift
resolved cases with interview
Typical timeline
2y 11m
Avg Prosecution
17 currently pending
Career history
233
Total Applications
across all art units

Statute-Specific Performance

§101
3.8%
-36.2% vs TC avg
§103
47.0%
+7.0% vs TC avg
§102
20.2%
-19.8% vs TC avg
§112
23.8%
-16.2% vs TC avg
Black line = Tech Center average estimate • Based on career data from 216 resolved cases

Office Action

§101 §103 §112
DETAILED ACTION 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 . This office action is in response to communication from applicant received on December 12, 2025. Continued Examination Under 37 CFR 1.114 A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on December 12, 2025 has been entered. Claims 22-23 have been added. Claims 1-4, 6-11, 13-18 and 20-23 are pending in the current application. Claims 1-4, 6-11, 13-18 and 20-23 are rejected herein. Claim Rejections - 35 USC § 101 35 U.S.C. 101 reads as follows: Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title. Claims 1-4, 6-11, 13-18 and 20-23 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e., a law of nature, a natural phenomenon, or an abstract idea) without significantly more. Under the eligibility analysis step 1, claim 1 is directed to a computer-implemented method, claim 8 is directed to a computer readable storage medium, and claim 15 is directed to a computer system, so therefore the claims are directed to statutory categories. Under the eligibility analysis step 2A, prong one, claim 1, claim 8 and 15 are determined to recite a judicial exception, as follows. Claim 1, claim 8 and claim 15 recite, using claim 1 for example language, the limitations of: collecting data… determining low workloads, medium workloads, and high workloads…; adjusting data collection intervals… d. generating a plurality of models based on the collected data and based on the low workloads, medium workloads, and high workloads… e. receiving characteristics… f. matching the characteristics to a model... g. validating the matching model… h. simulating the matching model… i. validating the prediction… j. providing a recommendation…creating the new storage subsystem using the recommended components; k. creating the new storage subsystem using the recommended components. These steps, as drafted, are a process that under the broadest reasonable interpretation include performance of the limitation in the mind and/or on paper by a human. For example, certain steps appear to be merely mental steps, as the steps of “collecting”, “determining”, “adjusting”, “generating”, “receiving”, “matching”, “validating”, “providing” and “creating” could all be performed in the mind (or on paper by a human) or by a human. Specifically, the limitations as recited merely amount to collecting data, determining low workloads, medium workloads, and high workloads, adjusting data collection intervals for low workloads and high workloads, generating several models based on the collected data and based on the low workloads, medium workloads, and high workloads, receiving or determining characteristics for a new storage subsystem, matching the characteristics to one of the models, validating the matching model (i.e. testing/confirmation of executed and/or expected values), validating the prediction (i.e. testing/confirmation of executed and/or expected values), providing a recommendation of components of the model to create the new storage subsystem, and creating the new storage subsystem using the recommended components. Without further detail, a person may collect data, adjust data collection intervals for low workloads and high workloads, generate/create several models based on the collected data, receive characteristics for a new storage subsystem, match the characteristics to one of the models, validate the model by validating a prediction, provide a recommendation of components of the model to create the new storage subsystem, and create the new storage subsystem using the recommended components. The claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception because the additional computer elements, which are recited at a high level of granularity, provide conventional computer functions that do not add meaningful limits to practicing the abstract idea. Furthermore, in regards to the “creating” step that recites “creating the new storge subsystem using the recommended components”, the creating step is not explicitly tied to a statutory embodiment, as the specification is silent as to the structure that would be performing the creation of the new storage subsystem. For example, the creating step has not been explicitly tied to a processor, machine implementing process…etc. Having not been tied to a statutory embodiment, as disclosed in applicant’s specification, a human can create the new storage subsystem using the necessary/recommended components, as the specification does not exclude a human from performing such acts. The step of simulating the matching model to output a prediction (i.e. execution of the model in some form or fashion) could simply be performed by applying the matching model in ordinary fashion at a high level of generality (See MPEP 2106.05(f).). Therefore, the simulation step does not include additional elements that are sufficient to amount to significantly more than the judicial exception. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer elements, then it falls within the “Mental Process” grouping of abstract ideas, see MPEP § 2106.04(a). Accordingly, the claims recite an abstract idea. Under the eligibility analysis step 2A, prong two, claim 1, claim 8 and claim 15 are determined to recite a judicial exception, as follows. Claim 1, claim 8 and claim 15 recite the additional limitations of: l. a storage subsystem having a plurality of components. m. a new storage subsystem. n. wherein the recommended components comprise a central processing unit, a memory, and a storage device. Claim 8 recites the additional limitation of: o. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to perform operations for: In addition, all of the limitations of claim 8 are recited to be performed by a processor. Claim 15 recites the additional limitation of: p. A computer system, comprising: one or more processors, one or more computer-readable memories and one or more computer-readable, tangible storage devices; and program instructions, stored on at least one of the one or more computer-readable, tangible storage devices for execution by at least one of the one or more processors via at least one of the one or more computer-readable memories, to perform operations comprising: In addition, all of the limitations of claim 15 is recited to be performed by a processor. Examiner notes that the structural limitations identified above are not sufficient for integrating the judicial exception into a practical application. The structure(s) identified as a storage system having a plurality of components, processor, memory, models, computer readable storage medium, and computer-readable, tangible storage devices in claim 1, claim 8 and claim 15 respectively, are recited with a high level of generality that do not provide a meaningful limit or requirement for performing the abstract idea, and as such the structure(s) are not sufficient to integrate the judicial exception into a practical application. Under the eligibility analysis step 2B, claim 1, claim 8 and claim 15 do not recite additional elements that amount to significantly more than the judicial exception. Claim 2, claim 9 and claim 16 are dependent on claim 1, claim 8 and claim 15 respectively. Under the eligibility analysis step 2A, prongs one and two, claim 2, claim 9 and claim 15 recite a judicial exception, as the claims recite: a. additional steps and/or wherein clauses that recite additional determination and adjusting steps that would qualify as mental steps and therefore directed to judicial exceptions. Claim 3, claim 10 and claim 17 are dependent on claim 1, claim 8 and claim 15 respectively. Under the eligibility analysis step 2A, prongs one and two, claim 3, claim 10 and claim 17 recite a judicial exception, as the claims recite: a. additional steps and/or wherein clauses that recite additional receiving, matching and recommendation steps that would qualify as mental steps and therefore directed to judicial exceptions. Claim 4, claim 11 and claim 18 are dependent on claim 1, claim 8 and claim 15 respectively. Under the eligibility analysis step 2A, prongs one and two, claim 4, claim 11 and claim 18 recite a judicial exception, as the claims recite: a. additional steps and/or wherein clauses that recite additional simulation steps that would qualify as mental steps and therefore directed to judicial exceptions. Claim 6, claim 13 and claim 20 are dependent on claim 1, claim 8 and claim 15 respectively. Under the eligibility analysis step 2A, prongs one and two, claim 6, claim 13 and claim 20 recite a judicial exception, as the claims recite: a. additional steps and/or wherein clauses that recite additional measurement steps that would qualify as mental steps and therefore directed to judicial exceptions. Claim 7 and claim 21 are dependent on claim 1 and claim 15 respectively. Under the eligibility analysis step 2A, prongs one and two, claim 7 and claim 21 recite a judicial exception, as the claims recite: a. additional structures and steps using these structures (such additional structures are not sufficient for integrating the judicial exception into a practical application). Claim 22 and claim 23 are dependent on claim 1 and claim 8 respectively. Under the eligibility analysis step 2A, prongs one and two, claim 22 and claim 23 recite a judicial exception, as the claims recite: a. additional steps and/or wherein clauses that recite additional collection steps that would qualify as mental steps and therefore directed to judicial exceptions. Under the eligibility analysis step 2B, the dependent claims do not recite additional elements that amount to significantly more than the judicial exception. Claim Rejections - 35 USC § 112 The following is a quotation of the first paragraph of 35 U.S.C. 112(a): (a) IN GENERAL.—The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor or joint inventor of carrying out the invention. The following is a quotation of the first paragraph of pre-AIA 35 U.S.C. 112: The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor of carrying out his invention. Claims 1-4, 6-11, 13-18 and 20-23 are rejected under 35 U.S.C. 112(a) or 35 U.S.C. 112 (pre-AIA ), first paragraph, as failing to comply with the written description requirement. The claim(s) contains subject matter which was not described in the specification in such a way as to reasonably convey to one skilled in the relevant art that the inventor or a joint inventor, or for applications subject to pre-AIA 35 U.S.C. 112, the inventor(s), at the time the application was filed, had possession of the claimed invention. Claim 1 is directed to a “computer implemented method”, claim 8 is directed to a “computer program product”, and claim 15 is directed to a system with “program instructions” to perform steps of a method. Claim 1, claim 8 and claim 15 recite “creating the new storage subsystem using the recommended components, wherein the recommended components comprise a central processing unit, a memory, and a storage device”. The specification does not provide adequate written description as to how the “creating” step is “computer implemented” or part of a “computer program product”/”program instructions”. Therefore, the specification does not adequately disclose how the step of “creating the new storage subsystem” can be part of a “computer program product”/”program instructions” or implemented by a computer. All dependent claims are rejected for having the same deficiency as the claim(s) that they depend on. The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph: The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention. Claims 1-4, 6-11, 13-18 and 20-23 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. Claim 1 is directed to a “computer implemented method”, claim 8 is directed to a “computer program product”, and claim 15 is directed to a system with “program instructions” to perform steps of a method; however the step of “creating the new storage subsystem using the recommended components, wherein the recommended components comprise a central processing unit, a memory, and a storage device” (as recited in claim 1, claim 8 and claim 15) could not be “computer implemented” or part of a “computer program product”/”program instructions”. Essentially, in order to perform the step of “creating the new storage subsystem”, something physical in nature, like a human, would need to create the new storage subsystem. Therefore, it is unclear as to how the step of “creating the new storage subsystem” can be part of a “computer program product”/”program instructions” or implemented by a computer. All dependent claims are rejected for having the same deficiency as the claim(s) that they depend on. Claim Rejections - 35 USC § 103 The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claims 1-4, 6-11, 13-18 and 20-23 are rejected under 35 U.S.C. 103 as being unpatentable over Abrol et al. (Hereinafter Abrol, U.S. Patent No. 11,989,429) in view of Naamad et al. (Hereinafter Naamad, U.S. Patent No. 9,983,795) in view of Aharoni et al. (Hereinafter Aharoni, U.S. Patent No. 10,579,301) in view of Ferreira et al. (Hereinafter Ferreira, U.S. Publication No. 2021/0124510) in view of Magdon-Ismail et al. (Hereinafter Magdon-Ismail, U.S. Publication No. 2016/0147631). Regarding claim 1, Abrol teaches: A computer-implemented method, comprising operations for: collecting data for a storage subsystem (See Figure 9 step 910. See Col. 62 lines 4-8 “The data (404) collected from a plurality of storage systems (402, 406, 408) may be embodied, for example, as telemetry data that is periodically sent from the storage systems (402, 406, 408) to the workload planning module (908).”) having a plurality of components (See the storage resources 308, communication resources 310, processing resources 312, and software resources 314 contained in the storage system 306 depicted in Figure 3B. See Col. 29 lines 8-14 “FIG. 3B sets forth a diagram of a storage system 306 in accordance with some embodiments of the present disclosure. Although depicted in less detail, the storage system 306 depicted in FIG. 3B may be similar to the storage systems described above with reference to FIGS. 1A-1D and FIGS. 2A-2G as the storage system may include many of the components described above”); determining…workloads (See Figure 9, Workload 420, Workload 422, Workload 424 and Workload 904.); generating a plurality of models based on the collected data and based on the…workloads (See Figure 9 step 910. See Col. 62 line 63 – Col. 63 line 4 “In the example method depicted in FIG. 9, generating (910), in dependence upon data (404) collected from a plurality of storage systems (402, 406, 408), one or more load models (912) that predicts performance load on one or more storage systems (406, 408) in a fleet (906) of storage systems (406, 408) based on characteristics of each workload (422, 424, 904) supported by the fleet (906) of storage systems (406, 408) may be carried out, for example, through the use of machine learning techniques.” See Claim 1 of Abrol “generating a plurality of load models that predict corresponding performance loads of a storage system based on characteristics of workloads executing on the storage system,”), wherein each of the models includes a subset of the plurality of components of the storage subsystem (See Col. 63 lines 14-27 “each particular load model that is generated may be specific to a particular combination of hardware, software, configuration settings, or other attributes of a particular storage system configuration. In other embodiments, each particular load model may be to a subset of such attributes of a particular storage system configuration.”); Abrol does not explicitly disclose what Naamad teaches: determining low workloads, medium workloads, and high workloads (See Col. 11, lines 50-52 “In terms of performance, the foregoing three tiers may be ranked from highest to lowest as follows: first, second, and then third.” See Col. 60 lines 4-21 “In an embodiment in accordance with techniques herein, the data having the highest or largest workload may be placed in the highest performance tiers. For example, as described elsewhere herein, the data portions may be ranked from highest to lowest in terms of workload or activity using one or more metrics as described above and elsewhere herein. With physical storage across all storage tiers viewed as a logical continuum from highest to lowest I/O activity or workload (e.g., such as in connection with the histogram described above), data may be placed in the tiers with data portions ranked with the highest workload placed in the highest performance tiers. In this manner, a data portion placed in a particular storage tier may have a workload greater than any data portion placed in any tier ranked lower than the particular storage tier in terms of relative performance. The difference or variation in workload across storage tiers may be represented and measured using a skew metric.” See Col. 65 lines 34-35 “Referring to FIG. 22, shown is an example of a cumulative workload skew graph” See Figure 22, which depicts low workloads, medium workloads, and high workloads via a cumulative workload skew graph. See Figure 21, which depicts low workloads, medium workloads, and high workloads. See block 2402 of Figure 28.), based on cache utilization and hit ratio per workload (See Col. 2, lines 38-44 “Determining the first physical device configuration that meets the performance objective for the I/O workload further may include determining a backend I/O workload directed to physical storage devices, said backend I/O workload being determined in accordance with the cache hit ratio and additional I/O operations, said additional I/O operations including any of read operations to prefetch data” Under broadest reasonable interpretation, the cache hit ratio in the prior art corresponds to the claimed cache utilization and the hit ratio. Furthermore, the read operations to prefetch data in the prior art may also correspond to the claimed cache utilization.); generating a plurality of models (See Col. 68 lines 61-63 “Thus, the cumulative workload skew graph for one configuration may be used to model a second different data storage configuration such as described above.” See Figure 28 block 2410 “Use the cumulative workload skew function to model one or more workloads for one or more data storage configurations”) based on the collected data (See Figure 28 block 2404 “Collect data for a time period for one or more LUNs under consideration”) and based on the low workloads, medium workloads, and high workloads (See Figure 28 block 2402 “Perform data movement optimizations where data portions are stored in storage tiers based on the workloads of the data portions (e.g. data with the highest workload stored in the highest performance tier).”. See Figure 28 block 2410 “Use the cumulative workload skew function to model one or more workloads for one or more data storage configurations” See Col. 68 lines 61-63 “Thus, the cumulative workload skew graph for one configuration may be used to model a second different data storage configuration such as described above.” See Figure 28 block 2402 in view of Col. 60 lines 4-21 and Figure 21, in which data may be tracked and moved between three storage tiers based on low, medium, and high workloads. See Figure 22, which depicts low workloads, medium workloads, and high workloads via a cumulative workload skew graph. The cumulative workload skew graph is used to generate models, as shown in Figure 28.) While Abrol does teach steps of determining workloads and generating a plurality of models based on the collected data and based on the workloads, Abrol does not specifically teach performing such steps with low workloads, medium workloads, and high workloads. Naamad does teach performing the steps with low workloads, medium workloads, and high workloads. It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains to combine the storage change recommendation method of Abrol with the storage configuration determination technique of Naamad to improve storage system performance by optimizing storage system configurations based on performance objective, storage capacity and workload. Aharoni teaches: receiving characteristics (See Col. 9 lines 44-45 “In step 202, a request is received for a proposed configuration of a storage system.” See Col. 9 lines 50-54 “The request in some embodiments is generated at least in part in a web browser of the client device. It illustratively includes information relating to storage requirements, such as desired capacity and desired performance.” See Col. 8 lines 7-17 “The user can specify in its request to the storage system sizing tool 110 its particular requirements for the storage system, possibly in terms of parameters such as capacity, latency and desired IOPS performance. The request in some cases can include a specific indication of a particular processor or set of processors, as in the embodiment of FIG. 3C which allows the user to specify particular CPUs and numbers of cores for those CPUs.” See Figures 3A-3C. See Figure 2 step 202.) for a new storage subsystem (See Col. 10 lines 3-10 “Such requests can be generated in a wide variety of different contexts. For example, if a customer is planning to implement a new storage solution, the customer illustratively has a capacity requirement as well as a set of performance requirements involving parameters such as latency and IOPS.”); matching the characteristics to a model of the plurality of models (See Col. 10 lines 16-17 “In step 204, a particular one of the models is selected based at least in part on the identified processor.”); providing a recommendation of the components of the matching model to create the new storage subsystem; and creating the new storage subsystem using the recommended components (See Figure 2 step 208. See Col. 11 lines 1-4 “The one or more proposed configurations illustratively comprise recommended configurations of the storage system that are determined by the web-based sizing tool based at least in part on the above-noted request.” See Col. 12 lines 56-63 “FIG. 3D shows an example of a screenshot comprising presentation output generated by the web-based sizing tool based at least in part on the request. The presentation output in this example comprises multiple recommended storage system configurations that satisfy the user requirements, in association with respective IOPS performance metrics (e.g., 212k IOPS) computed by the web-based sizing tool for each of the proposed configurations.”), wherein the recommended components comprise a central processing unit (See Figure 3C.), a memory (See Figure 3B.), and a storage device (See Figure 3B.). It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains to combine the storage change recommendation method of Abrol and the storage configuration determination technique of Naamad with the configuration proposal method of Aharoni to provide highly accurate and efficient estimates of IOPS performance for a proposed storage system configuration, thus improving throughput when undergoing storage system configuration changes. Ferreira teaches: validating the matching model (See step 402 “Validate and Test Model” of Figure 4 in view of steps 404-414.) by: simulating the matching model to output a prediction (See all of [0024] in view of Figure 4. See [0024] “FIG. 4 illustrates computation of satisfactory configurations for the planned SAN node by the modeling node.” See [0024] “The model may be generated in accordance with a wide variety of machine learning techniques. The model is then validated and tested as indicated in step 402. A planned workload 404 and multiple possible configurations 406 are inputted to the model.” See [0024] “As indicated in step 408, the model uses the planned workload and possible configurations to determine a computed (expected) performance 410 for each possible configuration under the planned workload.” See [0024] “The possible configurations that satisfy the performance requirements are outputted as satisfactory configurations 414, which may be part of the outputted data 218."); and validating the prediction against performance data (See all of [0024] in view of Figure 4. See [0024] “The model may be generated in accordance with a wide variety of machine learning techniques. The model is then validated and tested as indicated in step 402. A planned workload 404 and multiple possible configurations 406 are inputted to the model.” See [0024] “As indicated in step 408, the model uses the planned workload and possible configurations to determine a computed (expected) performance 410 for each possible configuration under the planned workload.” See [0024] “Each computed performance is compared with performance requirements as indicated in step 412, e.g. as indicated in an SLA. The possible configurations that satisfy the performance requirements are outputted as satisfactory configurations 414, which may be part of the outputted data 218."); and It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains to combine the storage change recommendation method of Abrol and the storage configuration determination technique of Naamad and the configuration proposal method of Aharoni with the configuration determination method of Ferreira to ensure that performance requirements of a service level agreement (SLA) are satisfied prior to implementing a storage configuration, thus improving storage configuration efficiency. Magdon-Ismail teaches: adjusting data collection intervals, wherein the low workloads have a long aggregation time, the medium workloads have a default aggregation time, and the high workloads have a granular aggregation time (See [0019] “Accordingly, embodiments determine whether to generate a long I/O trace or a short I/O trace for a given workload based upon runtime history for the workload, I/O trace history for the workload, and/or workload type of the first workload.” See [0070] “Additionally, the window of time in which host computer 135 is able to collect I/O trace data for a given workload may be of a short and/or unpredictable length. As a result, host computers 135 utilize method 1100 to determine whether to generate a short I/O trace or a long I/O trace for each selected workload.” See [0074] “workload collector 140 may associate particular types of workloads with the fast pool or the slow pool. For example, virtual desktops may initially default to the fast pool, while webservers default to the slow pool.” See [0076] “workload collector 140 determines a collective runtime history for workloads of each workload type to determine whether workloads of that type should, by default, be added to the fast pool or to the slow pool.” Long and/or short I/O trace sample periods (i.e. data collection intervals) are determined/adjusted to detect longer running workloads (i.e. data reuse) and shorter running workloads. The long I/O trace sample period corresponds to the long aggregation time, while the short I/O trace sample period corresponds to the granular aggregation time. Under broadest reasonable interpretation of the prior art (See [0074], [0076] and Figure 11), a default pool and associated default aggregation time (long or short trace sample period) may be determined for a particular type of workload that may be a low, medium or high workload. Furthermore, see Figure 11 in view of [0070]-[0079], which provide teachings that support long and short trace sample periods for long and short running (i.e. low and high) workloads.), and wherein each of the data collection intervals comprises a period in which an average of the collected data is computed (See [0072] “At block 1110, workload collector 140 determines the runtime history, I/O trace history, and/or workload type of one or more of the plurality of workloads running on host computer 135. For example, workload collector 140 may determine a history of how long the selected workload has run. This runtime history may be expressed as a collection of runtimes from start up to shut down; a minimum, maximum, average, median, or mean runtime from start up to shut down; and/or an amount of time the workload has been running since its latest start up.”); It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains to combine the storage change recommendation method of Abrol with the storage configuration determination technique of Naamad and the configuration determination method of Ferreira with the I/O trace sample period adjustment method of Magdon-Ismail to ensure that the system obtains accurate data during data sample periods, by adjusting the sample period (i.e. increasing and decreasing the sample period) to capture longer running workloads and shorter running workloads. Gathering more accurate data during the sampling period would increase accuracy of results when processing said data. Regarding claim 2, Magdon-Ismail teaches: The computer-implemented method of claim 1, wherein the data collection intervals are adjusted to detect outliers (See [0019] “Furthermore, while some workloads may run for longer periods of time or continuously, other workloads may power on and only run for a relatively short period of time before powering off. Long I/O trace sample periods may provide a more accurate representation of data reuse distances. With the number of concurrent I/O traces a host computer can generate being less than the number of workloads running at a given time, however, short I/O trace sample periods increase the likelihood a host computer will capture I/O trace data even for those workloads that have a short run time. Accordingly, embodiments determine whether to generate a long I/O trace or a short I/O trace for a given workload based upon runtime history for the workload, I/O trace history for the workload, and/or workload type of the first workload.” See [0070] “Additionally, the window of time in which host computer 135 is able to collect I/O trace data for a given workload may be of a short and/or unpredictable length. As a result, host computers 135 utilize method 1100 to determine whether to generate a short I/O trace or a long I/O trace for each selected workload.” Long and/or short I/O trace sample periods (i.e. data collection intervals) are determined/adjusted to detect longer running workloads (i.e. data reuse) and shorter running workloads. The longer running workloads and shorter running workloads correspond to the claimed data outliers. Furthermore, see Figure 11 in view of [0070].) Regarding claim 3, Abrol teaches: The computer-implemented method of claim 1, further comprising operations for: receiving new characteristics to update an existing storage subsystem (See Figure 11 step 104 “identify, using a load model and predicted characteristics of one or more workloads executing on the storage system, one or more configuration changes to the storage system that would improve the operation of the storage system” See Col. 68 lines 42-44 “The recommendation module (1102) depicted in FIG. 11 may be configured to receive data (404) collected from a plurality of storage systems (402, 406, 408). The data (404) collected from a plurality of storage systems (402, 406, 408) may be embodied, for example, as telemetry data that is periodically sent directly or indirectly from the storage systems (402, 406, 408) to recommendation module (1102). Such telemetry data may include information that is useful for monitoring the operation of the storage system including, for example, information describing various performance characteristics of the storage system, information describing various workloads that are executing on the storage system, and other types of information. The information describing various performance characteristics of the storage system can include, for example, the number of IOPS being serviced by the storage system, the utilization rates of various computing resources (e.g., CPU utilization) within the storage system, the utilization rates of various networking resources (e.g., network bandwidth utilization) within the storage system, the utilization rates of various storage resources (e.g., NVRAM utilization) within the storage system, and many others. Likewise, the information describing various workloads that are executing on the storage system can include, for example, information describing the number of IOPS being generated by a particular workload, overwrite rates for I/O operations that are being generated by the workload, the amount of read bandwidth that is being consumed by I/O operations generated by the workload, and many others.”); matching the new characteristics to another model of the plurality of models (See Figure 11 step 1106 “selecting, from the one or more configuration changes to the storage system that would improve the operation of the storage system, preferred configuration change.” See Col. 69 lines 4-9 “The recommendation module (1102) depicted in FIG. 11 may be also configured to receive or otherwise access a load model that is used to predict performance load on a particular storage system (402, 406, 408) based on the characteristics of workloads (420, 422, 424) that are executing on the storage system (402, 406, 408)”); and providing a new recommendation of components of the matching model to update the existing storage subsystem (See Figure 11 step 1108 “recommending the preferred configuration change” See Col. 60 line 54 – Col. 61 line 4 “The recommendation that is generated (804) may include, for example, a recommendation to perform a hardware or software upgrade on the storage system (804), a recommendation to move a workload from the storage system (408) to another storage system, and so on. In such an example, rules may be in place such that recommendations are generated (804), for example, when the predicted performance load on the storage system (408) reaches a predetermined threshold, when the predicted performance load on the storage system (408) is expected to exceed performance capacity of the storage system (408) within a predetermined period of time, when additional storage systems are added to or removed from a cluster, when other storage systems within a cluster are modified (e.g., a hardware or software updated occurs), when the storage system (408) itself is modified, and so on.”). Regarding claim 3, Aharoni teaches: The computer-implemented method of claim 1, further comprising operations for: receiving new characteristics (See Col. 9 lines 44-45 “In step 202, a request is received for a proposed configuration of a storage system.” See Col. 9 lines 50-54 “The request in some embodiments is generated at least in part in a web browser of the client device. It illustratively includes information relating to storage requirements, such as desired capacity and desired performance.” See Col. 8 lines 7-17 “The user can specify in its request to the storage system sizing tool 110 its particular requirements for the storage system, possibly in terms of parameters such as capacity, latency and desired IOPS performance. The request in some cases can include a specific indication of a particular processor or set of processors, as in the embodiment of FIG. 3C which allows the user to specify particular CPUs and numbers of cores for those CPUs.” See Figures 3A-3C. See Figure 2 step 202.) to update an existing storage subsystem (See Col. 10 lines 3-17 “Such requests can be generated in a wide variety of different contexts. For example, if a customer is planning to implement a new storage solution, the customer illustratively has a capacity requirement as well as a set of performance requirements involving parameters such as latency and IOPS. The performance requirements are illustratively driven at least in part based on the particular applications which will be using the storage system. Another example is a customer that wants to upgrade from an older set of servers with older CPUs to newer servers with newer CPUs, in which case the customer would want to know the performance improvement to expect after the upgrade. A wide variety of other types of requests can be directed to the web-based sizing tool in other embodiments.” See Col. 11 lines 15-20 “In step 210, a determination is made as to whether or not the identified processor or any other aspects of the proposed configuration have been modified by the user. For example, the user may have modified the above-noted information relating to storage requirements, such as desired capacity and desired performance.” See Col. 11 lines 27-29 “If the identified processor or any other aspects of the proposed configuration have been modified by a user, the process returns to step 204 to once again select a model.”); matching the new characteristics to another model of the plurality of models (See Col. 10 lines 16-17 “In step 204, a particular one of the models is selected based at least in part on the identified processor.” See Col. 11 lines 27-29 “If the identified processor or any other aspects of the proposed configuration have been modified by a user, the process returns to step 204 to once again select a model.”); and providing a new recommendation of components of the matching model to update the existing storage subsystem (See Figure 2 step 208. See Col. 11 lines 1-4 “The one or more proposed configurations illustratively comprise recommended configurations of the storage system that are determined by the web-based sizing tool based at least in part on the above-noted request.” See Col. 12 lines 56-63 “FIG. 3D shows an example of a screenshot comprising presentation output generated by the web-based sizing tool based at least in part on the request. The presentation output in this example comprises multiple recommended storage system configurations that satisfy the user requirements, in association with respective IOPS performance metrics (e.g., 212k IOPS) computed by the web-based sizing tool for each of the proposed configurations.”). Regarding claim 4, Abrol teaches: The computer-implemented method of claim 1, further comprising operations for: simulating different configurations of the storage subsystem (See claim 1 of Abrol “generating a plurality of load models that predict corresponding performance loads of a storage system based on characteristics of workloads executing on the storage system, wherein the plurality of load models corresponds to respective configurations of the storage system” See claim 5 of Abrol “receiving, from a user, weightings associated with one or more factors for determining the one or more of the different configurations.” See Col. 63 lines 14-25 “In such an example, one or more load models (412) may be created for a variety of different storage system configurations. For example, load models may be created for storage systems that have different hardware configurations, load models may be created for storage systems that have different software configurations, load models may be created for storage systems that have different configuration settings, or any combination thereof. As such, each particular load model that is generated may be specific to a particular combination of hardware, software, configuration settings, or other attributes of a particular storage system configuration” Each load model simulates/predicts performance loads of a storage system, and each load model corresponds to a different configuration of the storage system.) with different inputs to the plurality of models (See claim 5 of Abrol “receiving, from a user, weightings associated with one or more factors for determining the one or more of the different configurations.”). Regarding claim 6, Abrol teaches: The computer-implemented method of claim 1, wherein the collected data comprises measurements of the storage subsystem while the storage subsystem is running workloads (See Col. 62 lines 23-33 “Likewise, the information describing various workloads that are executing on the storage system can include, for example, information describing the number of IOPS being generated by a particular workload, overwrite rates for I/O operations that are being generated by the workload, the amount of read bandwidth that is being consumed by I/O operations generated by the workload, and many others. As such, an examination of the telemetry data can reveal characteristics of the workloads (420, 422, 424, 902, 904) supported by one or more of the storage systems (402, 406, 408).” See Col. 54 lines 26-45 “the software application may still be viewed as being a workload that is ‘executing on’ a particular storage system as the software application is responsible for generating work that must be performed by the storage system (e.g., reading data from the storage system in response to a read operation issued by the software application, writing data to the storage system in response to a write operation issued by the software application, replicating data in order to adhere to a data protection requirement associated with the software application, and so on). In other embodiments, processing resources within the storage system itself may be executing at least a portion of the software application, but in both cases the software application represents a workload that is ‘executing on’ the storage system.” Data is collected from the storage system during execution of the workload in order to obtain workload related information.). Regarding claim 7, Abrol teaches: The computer-implemented method of claim 1, wherein a component of the recommended components comprises a software component (See Figure 11 step 1108 “recommending the preferred configuration change” See Col. 60 line 54 – Col. 61 line 4 “The recommendation that is generated (804) may include, for example, a recommendation to perform a hardware or software upgrade on the storage system (804)”). Regarding claim 22, Abrol teaches: The computer-implemented method of claim 1, wherein the collected data comprises data for application resources (See Col. 54 lines 14-19 “The example method depicted in FIG. 4 includes generating (410), in dependence upon data (404) collected from a plurality of storage systems (402, 406), a load model (412) that predicts performance load on the storage system (408) based on characteristics of workloads (420, 422, 424) executing on the storage system (408).” See Col. 54 lines 26-45 “the software application can issue I/O operations to the storage system to read/write data associated with the software application. In such an example, in spite of the fact that the storage system itself is not executing the software application on any of its local processing resources, the software application may still be viewed as being a workload that is ‘executing on’ a particular storage system as the software application is responsible for generating work that must be performed by the storage system (e.g., reading data from the storage system in response to a read operation issued by the software application, writing data to the storage system in response to a write operation issued by the software application, replicating data in order to adhere to a data protection requirement associated with the software application, and so on). In other embodiments, processing resources within the storage system itself may be executing at least a portion of the software application, but in both cases the software application represents a workload that is ‘executing on’ the storage system.” See Col. 62 lines 23-33 “Likewise, the information describing various workloads that are executing on the storage system can include, for example, information describing the number of IOPS being generated by a particular workload, overwrite rates for I/O operations that are being generated by the workload, the amount of read bandwidth that is being consumed by I/O operations generated by the workload, and many others. As such, an examination of the telemetry data can reveal characteristics of the workloads (420, 422, 424, 902, 904) supported by one or more of the storage systems (402, 406, 408).” See Col. 66 lines 19-29 “the user interface (1008) may be configured to display information describing workloads that are supported by a particular storage system. Such information can include, for example, an amount of IOPS generated by the workload, an amount of read bandwidth generated by the workload during a predetermined period of time, an amount of write bandwidth generated by the workload during a predetermined period of time, a general description of the workload, a type of application (e.g., a database, a virtual desktop infrastructure) associated with the workload, and so on.” Based on the citations provided, the workload data and/or I/O data collected may be associated with the reads/writes from the application running on the system.), data for workload measurements, metadata, tags (See Col. 62 lines 8-14 “Such telemetry data may include information that is useful for monitoring the operation of the storage system that sends the data including, for example, information describing various performance characteristics of the storage system, information describing various workloads that are executing on the storage system, and other types of information.” See Col. 62 lines 23-33 “Likewise, the information describing various workloads that are executing on the storage system can include, for example, information describing the number of IOPS being generated by a particular workload, overwrite rates for I/O operations that are being generated by the workload, the amount of read bandwidth that is being consumed by I/O operations generated by the workload, and many others. As such, an examination of the telemetry data can reveal characteristics of the workloads (420, 422, 424, 902, 904) supported by one or more of the storage systems (402, 406, 408).” Under broadest reasonable interpretation, the claimed metadata and tags corresponds to the information describing various performance characteristics.), and policies (See Col. 69 lines 54-58 “a customer-specific policy associated with the storage system (402) specifies that the storage system (402) should not have more than 95% of its IOPS bandwidth utilized in order to avoid over-utilizing the storage system (402).” Data (i.e. IOPS bandwidth) associated with a customer-specific policy is collected.), and wherein the collected data comprises volume specific characteristics (See Col. 60 lines 17-24 “because the storage system may maintain and track information such as, for example, the amount of space consumed by the volume,”) and storage functions (See Col. 60 lines 17-24 “because the storage system may maintain and track information such as, for example, the amount of space consumed by the volume, the amount of performance resources consumed to support the servicing of I/O operations to the volume, such information may be useful in determining the amount of load placed on the storage system as a result of servicing the workload.”). Claim 8 and claim 15 are rejected for the same reasons as claim 1. Claim 9 and claim 16 are rejected for the same reasons as claim 2. Claim 10 and claim 17 are rejected for the same reasons as claim 3. Claim 11 and claim 18 are rejected for the same reasons as claim 4. Claim 13 and claim 20 are rejected for the same reasons as claim 6. Claim 21 is rejected for the same reasons as claim 7. Claim 23 is rejected for the same reasons as claim 22. Response to Arguments Applicant's arguments filed December 2, 2025, in regards to the rejections under 35 USC § 101 have been fully considered but they are not persuasive. On page 10 of applicant’s arguments, applicant’s representative submitted that claims 1, 8, and 15 are not directed to abstract ideas, and further submitted that claims 1, 8, and 15 are patent eligible because claims 1, 8, and 15 integrate a recited judicial exception into a practical application of that exception. Applicant’s representative has referred to the 2019 Guidance to support applicant’s position. Applicant’s representative has referred to the Memorandum which is dated August 4, 2025, for Subject: Reminders on evaluating subject matter eligibility of claims under 35 U.S.C. 101. On page 11 of applicant’s arguments, applicant’s representative submitted that creating the new storage subsystem using the recommended components, wherein the recommended components comprise a central processing unit, a memory, and a storage device, is not directed to mathematical concepts, certain method of organizing human activity or mental processes as such creation using the recommended components cannot be performed in the human mind, and thus are not abstract ideas. Examiner respectfully disagrees with such argument and maintains that the limitation is ineligible under 35 U.S.C. 101, as the structural limitations identified are not sufficient for integrating the judicial exception into a practical application. That is, the structure(s) identified as recommended components comprising a central processing unit, a memory, and a storage device are recited with a high level of generality that do not provide a meaningful limit or requirement for performing the abstract idea, and as such the structure(s) are not sufficient to integrate the judicial exception into a practical application. On page 12 of applicant’s arguments, applicant’s representative submitted that when taking into consideration all of the claim limitations and how these limitations interact and impact each other, claims 1, 8, and 15 are integrated into a practical application and are therefore patent eligible. Applicant’s representative submitted that claims 1, 8 and 15 provide a practical application by creating the new storage subsystem using the recommended components, wherein the recommended components comprise a central processing unit, a memory, and a storage device. Examiner respectfully disagrees, and maintains that the structure(s) identified as recommended components comprising a central processing unit, a memory, and a storage device are recited with a high level of generality that do not provide a meaningful limit or requirement for performing the abstract idea, and as such the structure(s) are not sufficient to integrate the judicial exception into a practical application. Applicant's arguments filed December 2, 2025, in regards to current amendments filed on December 2, 2025 have been fully considered but they are not persuasive. On page 15 of applicant’s arguments, applicant’s representative submitted that Naamad does not teach or suggest the current amendments filed on December 2, 2025 that recite “determining low workloads, medium workloads, and high workloads based on cache utilization and hit ratio per workload.” Examiner respectfully disagrees and has updated the rejection herein to show how Naamad teaches the argued limitation (See rejection of claim 1.). A detailed analysis and explanation of the citations of Naamad and how such citations teach the amended language has been provided herein in the rejection of claim 1 in view Naamad. For example, see at least Col. 2, lines 38-44 of Naamad “Determining the first physical device configuration that meets the performance objective for the I/O workload further may include determining a backend I/O workload directed to physical storage devices, said backend I/O workload being determined in accordance with the cache hit ratio and additional I/O operations, said additional I/O operations including any of read operations to prefetch data”. Furthermore, see Col. 11, lines 50-52, Col. 60 lines 4-21, and Col. 65 lines 34-35 of Naamad as cited in the rejection of claim 1. On page 18 of applicant’s arguments, applicant’s representative submitted that Magdon-Ismail does not teach or suggest the currently amended language submitted on December 2, 2025 that recites adjusting data collection intervals, wherein the low workloads have a long aggregation time, the medium workloads have a default aggregation time, and the high workloads have a granular aggregation time, and wherein each of the data collection intervals comprises a period in which an average of the collected data is computed. Examiner respectfully disagrees, and maintains that at least paragraphs [0019], [0070], [0072], [0074] and [0076] of Magdon-Ismail (as well as Figure 11 in view of [0070]-[0079] of Magdon-Ismail) do teach the amended language. A detailed analysis and explanation of the citations and how such citations teach the amended language has been provided herein in the rejection of claim 1 in view Magdon-Ismail. All of applicant’s arguments are not persuasive, and thus all pending claims are rejected herein in view of the cited prior art of record. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to MICHAEL L WESTBROOK whose telephone number is (571)270-5028. The examiner can normally be reached Mon-Fri 9am-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, Reginald Bragdon can be reached on (571) 272-4204. 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. /MICHAEL L WESTBROOK/Examiner, Art Unit 2139 /REGINALD G BRAGDON/Supervisory Patent Examiner, Art Unit 2139
Read full office action

Prosecution Timeline

Jun 02, 2023
Application Filed
Jun 11, 2024
Non-Final Rejection — §101, §103, §112
Sep 11, 2024
Applicant Interview (Telephonic)
Sep 11, 2024
Examiner Interview Summary
Sep 16, 2024
Response Filed
Dec 14, 2024
Final Rejection — §101, §103, §112
Feb 12, 2025
Applicant Interview (Telephonic)
Feb 12, 2025
Response after Non-Final Action
Feb 13, 2025
Examiner Interview Summary
Feb 21, 2025
Request for Continued Examination
Feb 24, 2025
Response after Non-Final Action
Mar 17, 2025
Non-Final Rejection — §101, §103, §112
Jul 02, 2025
Interview Requested
Jul 16, 2025
Examiner Interview Summary
Jul 16, 2025
Applicant Interview (Telephonic)
Jul 16, 2025
Response Filed
Sep 29, 2025
Final Rejection — §101, §103, §112
Oct 29, 2025
Interview Requested
Nov 24, 2025
Applicant Interview (Telephonic)
Nov 24, 2025
Examiner Interview Summary
Dec 02, 2025
Response after Non-Final Action
Dec 12, 2025
Request for Continued Examination
Dec 21, 2025
Response after Non-Final Action
Dec 30, 2025
Non-Final Rejection — §101, §103, §112
Mar 05, 2026
Interview Requested
Mar 10, 2026
Interview Requested
Mar 18, 2026
Examiner Interview Summary
Mar 18, 2026
Response Filed
Mar 18, 2026
Applicant Interview (Telephonic)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12547313
DEVICE AND METHOD FOR IMPLEMENTING LIVE MIGRATION
2y 5m to grant Granted Feb 10, 2026
Patent 12535964
SYSTEMS AND METHODS FOR HYBRID STORAGE
2y 5m to grant Granted Jan 27, 2026
Patent 12530138
MEMORY CONTROL DEVICE AND REFRESH CONTROL METHOD THEREOF
2y 5m to grant Granted Jan 20, 2026
Patent 12517656
COOPERATIVE ADAPTIVE THROTTLING BETWEEN HOSTS AND DATA STORAGE SYSTEMS
2y 5m to grant Granted Jan 06, 2026
Patent 12504876
FLEXIBLE METADATA REGIONS FOR A MEMORY DEVICE
2y 5m to grant Granted Dec 23, 2025
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

5-6
Expected OA Rounds
74%
Grant Probability
80%
With Interview (+6.0%)
2y 11m
Median Time to Grant
High
PTA Risk
Based on 216 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in for Full Analysis

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

Free tier: 3 strategy analyses per month