Prosecution Insights
Last updated: April 19, 2026
Application No. 18/929,400

AUTOMATED TUNING OF A QUALITY OF SERVICE SETTING FOR A DISTRIBUTED STORAGE SYSTEM BASED ON INTERNAL MONITORING

Non-Final OA §102§DP
Filed
Oct 28, 2024
Examiner
TSAI, SHENG JEN
Art Unit
2139
Tech Center
2100 — Computer Architecture & Software
Assignee
Netapp Inc.
OA Round
1 (Non-Final)
70%
Grant Probability
Favorable
1-2
OA Rounds
3y 6m
To Grant
83%
With Interview

Examiner Intelligence

Grants 70% — above average
70%
Career Allow Rate
556 granted / 790 resolved
+15.4% vs TC avg
Moderate +13% lift
Without
With
+13.0%
Interview Lift
resolved cases with interview
Typical timeline
3y 6m
Avg Prosecution
25 currently pending
Career history
815
Total Applications
across all art units

Statute-Specific Performance

§101
2.1%
-37.9% vs TC avg
§103
48.7%
+8.7% vs TC avg
§102
24.7%
-15.3% vs TC avg
§112
12.2%
-27.8% vs TC avg
Black line = Tech Center average estimate • Based on career data from 790 resolved cases

Office Action

§102 §DP
DETAILED ACTION 1. This Office Action is taken in response to Applicants’ application 18/929,400 filed on 10/28/2024. Claims 1-20 are pending for consideration. 2. Examiner’s Note (1) In the case of amending the Claimed invention, Applicant is respectfully requested to indicate the portion(s) of the specification which dictate(s) the structure relied on for proper interpretation and also to verify and ascertain the metes and bounds of the claimed invention. This will assist in expediting compact prosecution. MPEP 714.02 recites: “Applicant should also specifically point out the support for any amendments made to the disclosure. See MPEP § 2163.06. An amendment which does not comply with the provisions of 37 CFR 1.121(b), (c), (d), and (h) may be held not fully responsive. See MPEP § 714.” Amendments not pointing to specific support in the disclosure may be deemed as not complying with provisions of 37 C.F.R. 1.131(b), (c), (d), and (h) and therefore held not fully responsive. Generic statements such as “Applicants believe no new matter has been introduced” may be deemed insufficient. (2) Examiner has cited particular columns/paragraph and line numbers in the references applied to the claims above for the convenience of the applicant. Although the specified citations are representative of the teachings of the art and are applied to specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses, to fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner. Double Patenting 3. The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the "right to exclude" granted by a patent and to prevent possible harassment by multiple assignees. See In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); and, In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969). A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) may be used to overcome an actual or provisional rejection based on a nonstatutory double patenting ground provided the conflicting application or patent is shown to be commonly owned with this application. See 37 CFR 1.130(b). Effective January 1, 1994, a registered attorney or agent of record may sign a terminal disclaimer. A terminal disclaimer signed by the assignee must fully comply with 37 CFR 3.73(b). 4. Claims 1-20 are rejected under the judicially created doctrine of obvious-type double patenting being unpatentable over independent claims 1-20 of US Patent 12,131,031. Although not all of the conflicting claims are exactly identical, they are extremely similar and are not patentably distinct from each other as shown in the example below: 18/929,400 12,131,031 1. A method comprising: maintaining, by a storage operating system of a distributed storage system, information regarding a plurality of Quality of Service (QoS) settings assigned to a volume of the distributed storage system for a client utilizing the volume; monitoring, by the storage operating system, a characteristics of a workload of the client; and based on a determination that the characteristic meets or exceeds a predetermined or configurable threshold automatically increasing a burst input/output operations per second (IOPS) setting of the plurality of QoS settings by: calculating a new value of the burst IOPS setting by increasing a current value of the burst IOPS setting by a factor based on a first QoS setting of the plurality of QoS settings and a second QoS setting of the plurality of QoS settings; and assigning the new value of the burst IOPS setting to the volume for the client. 1. A method performed by one or more processors of a distributed storage system having a plurality of storage nodes organized as a cluster, the method comprising: monitoring one or more characteristics of a workload of a client to which a storage node of the plurality of storage nodes is exposed; determining that a characteristic of the one or more characteristics meets or exceeds a predetermined or configurable threshold; and after said determining, obtaining information regarding a plurality of Quality of Service (QoS) settings assigned to a volume of the storage node that is being utilized by the client; calculating a new value of a burst input/output operations per second (IOPS) setting of the plurality of QoS settings by increasing a current value of the burst IOPS setting by a factor dependent upon a first QoS setting of the plurality of QoS settings and a second QoS setting of the plurality of QoS settings; and assigning the new value of the burst IOPS setting to the volume for the client. 5. Claims 1-20 are rejected under the judicially created doctrine of obvious-type double patenting being unpatentable over independent claims 1-20 of US Patent 11,693,563. Although not all of the conflicting claims are exactly identical, they are extremely similar and are not patentably distinct from each other as shown in the example below: 18/929,400 11,693,563 1. A method comprising: maintaining, by a storage operating system of a distributed storage system, information regarding a plurality of Quality of Service (QoS) settings assigned to a volume of the distributed storage system for a client utilizing the volume; monitoring, by the storage operating system, a characteristics of a workload of the client; and based on a determination that the characteristic meets or exceeds a predetermined or configurable threshold automatically increasing a burst input/output operations per second (IOPS) setting of the plurality of QoS settings by: calculating a new value of the burst IOPS setting by increasing a current value of the burst IOPS setting by a factor based on a first QoS setting of the plurality of QoS settings and a second QoS setting of the plurality of QoS settings; and assigning the new value of the burst IOPS setting to the volume for the client. 1. A method performed by a processing resource of a distributed storage system, the method comprising: responsive to an event, obtaining information regarding a plurality of Quality of Service (QoS) settings assigned to a volume of the distributed storage system that is being utilized by a client; determining a difference between a first QoS setting of the plurality of QoS settings and a second QoS setting of the plurality of QoS settings; and responsive to determining the difference is less than a threshold: determining a new value of the first QoS setting or a third QoS setting of the plurality of QoS settings that is greater than a respective current value of the first QoS setting or the third QoS setting; and assigning the new value of the first QoS setting or the third QoS setting to the volume for the client. 2. The method of claim 1, wherein the first QoS setting comprises a maximum input/output operations per second (IOPS) setting, the second QoS setting comprises a minimum IOPS setting, and the third QoS setting comprises a burst IOPS setting. 3. The method of claim 2, wherein determination of the new value of the burst IOPS setting comprises applying a dynamic factor relating to a magnitude of the distance to the burst IOPS setting. Claim Rejections - 35 USC § 102 The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention. (a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention. 7. Claims 1-20 are rejected under 35 U.S.C. 102(a)(1) and 102(a)(2) as being anticipated by Longo et al. (US Patent Application Publication 2018/0081832, hereinafter Longo). As to claim 1, Longo teaches A method [A method for managing input-output operations within a system including at least one client and a storage system, comprising: receiving, at a processor, a number of allocated total input-output operations (IOPS) … (claim 1)] comprising: maintaining, by a storage operating system of a distributed storage system [as shown in figures 1A and 1B; In addition to storing data non-sequentially, data blocks can be stored to achieve substantially even distribution across the storage system. In various examples, even distribution can be based upon a unique block identifier … (¶ 0032)], information regarding a plurality of Quality of Service (QoS) settings assigned to a volume of the distributed storage system for a client utilizing the volume [In data storage architectures, a client's data may be stored in a volume … (¶ 0002); In addition to system metrics and client metrics, client quality of service (QoS) parameters can be used to affect how a client uses the storage system. Unlike metrics, client QoS parameters are not measured values, but rather variables than can be set that define the desired QoS bounds for a client. Client QoS parameters can be set by an administrator or a client. In one implementation, client QoS parameters include minimum, maximum, and max burst values. Using IOPS as an example, a minimum IOPS value is a proportional amount of performance of a cluster for a client … (¶ 0052)]; monitoring, by the storage operating system, a characteristics of a workload of the client [as shown in figures 2 and 5; The storage system 100 can also include a performance manager 114 that can monitor clients' use of the storage system's resources. In addition, performance manager 114 can regulate the client's use of the storage system 100. The client's use of the storage system can be adjusted based upon performance metrics, the client's quality of service parameters, and the load of the storage system … Other examples of system metrics include measured or aggregated metrics such as read latency, write latency, input/output operations per second (IOPS), read IOPS, write IOPS, I/O size, write cache capacity, dedupe-ability, compressibility, total bandwidth, read bandwidth, write bandwidth, read/write ratio, workload type, data content, data type, etc. (¶ 0044-0045); According to different embodiments, examples of client QoS parameters may include, but are not limited to, one or more of the following … Data Properties such as, for example, Workload Type (e.g., Sequential, Random); Dedupe-ability; Compressability; Data Content; Data Type (e.g., text, video, images, audio, etc.) (¶ 0062-0070)]]; and based on a determination that the characteristic meets or exceeds a predetermined or configurable threshold automatically increasing a burst input/output operations per second (IOPS) setting of the plurality of QoS settings [as shown in figures 2 and 5; … Using IOPS as an example, a minimum IOPS value is a proportional amount of performance of a cluster for a client. Thus, the minimum IOPS is not a guarantee that the volume will always perform at this minimum IOPS value. When a volume is in an overload situation, the minimum IOPS value is the minimum number of IOPS that the system attempts to provide the client. However, based upon cluster performance, an individual client's IOPS may be lower or higher than the minimum value during an overload situation. In one implementation, the system 100 can be provisioned such that the sum of the minimum IOPS across all clients is such that the system 100 can sustain the minimum IOPS value for all clients at a given time. In this situation, each client should be able to perform at or above its minimum IOPS value … For example, when the burst parameter is changed, IOPS values 206 are automatically adjusted. Once the QoS parameters have been set, activating a save changes button 208 updates the client's QoS parameters. As described below, the target performance manager 402 can use the updated QoS parameters, such that the updated QoS parameters take effect immediately. The updated QoS parameters take effect without requiring any user data to be moved in the system (¶ 0052-0053); Example QoS Parameters … MAX IOPS I/O Type MIN IOPS MAX Read I/O BURST IOPS MIN Read I/O MAX Bandwidth BURST Read I/O MIN Bandwidth MAX Write I/O BURST Bandwidth MIN Write I/O MAX Latency BURST Write I/O MIN Latency I/O Type BURST Latency Workload Type MAX I/O Size Dedupe-ability MIN I/O Size Compressability BURST I/O Size Data Content Data Type Billing Amount (¶ 0096); The above process for performing performance management may be performed continuously over periods of time. For example, a period of 500 milliseconds is used to evaluate whether performance should be adjusted. As will be described in more detail below, client 108 may be locked out of performing IOPS for a certain amount of time each period to reduce or increase the number of IOPS being performed (¶ 0093); Configuring/provisioning the storage system to automatically and/or dynamically increase storage performance to enable a backup to go faster during a specified window of time. For example, in one embodiment, the speed of a volume backup operation may be automatically and dynamically increased during a specified time interval by causing a MAX IOPS value and/or MIN IOPS value to be automatically and dynamically increased during that particular time interval (¶ 0102); … As an example, if the target performance value is 110 IOPS and client 108 has been operating at 90 IOPS, then the client performance adjustment value is output, which by being applied to the client 108 should increase the number of IOPS being performed (¶ 0112)] by: calculating a new value of the burst IOPS setting by increasing a current value of the burst IOPS setting by a factor based on a first QoS setting of the plurality of QoS settings and a second QoS setting of the plurality of QoS settings; and assigning the new value of the burst IOPS setting to the volume for the client [In another implementation, the difference between a client's minimum IOPS and maximum IOPS can be used to determine how much to throttle a particular client. For example, a client with a large difference can be throttled more than a client whose difference is small. In one implementation, the difference between the client's maximum IOPS and minimum IOPS is used to calculate a factor that is applied to calculate the target performance value. In this implementation, the factor can be determined as the IOPS difference divided by some predetermined IOPS amount, such as 5,000 IOPS. In this example, a client whose difference between their maximum IOPS and their minimum IOPS was 10,000, would be throttled twice as much as a client whose IOPS difference was 5,000. Clients of the system can be billed different amounts based upon their class. Accordingly, clients could pay more to be throttled later and/or less than other classes of clients (¶ 0118)]. As to claim 2, Longo teaches The method of claim 1, wherein the characteristic comprises a total number of IOPS [Disclosed are systems, computer-readable mediums, and methods for managing input-output operations within a system including at least one client and a storage system. A processor receives information regarding allocated input-output operations (IOPS) associated with a client accessing a storage system storing client data. The information includes a number of allocated total IOPS, a number of allocated read IOPS, and a number of allocated write IOPS … (abstract); Using the above system, clients 108 may be offered performance guarantees based on performance metrics, such as IOPS. For example, given that system 100 can process a total number of IOPS, the total number may be divided among different clients 108 in terms of a number of IOPS within the total amount. The IOPS are allocated using the min, max, and burst ,,, (¶ 0125); FIG. 7A illustrates an example allocation of IOPS 700 to a client over a period of time t. In particular, the FIG. 7A shows an allocation of total IOPS 702, read IOPS 704, and write IOPS 706 to a client over the time period t. The client, such as a client 108 shown in FIGS. 1A and 1B, is allocated 100 total IOPS 70 … (¶ 0129)]. As to claim 3, Longo teaches The method of claim 1, wherein the first QoS setting comprises the current value of the burst IOPS setting IOPS setting and the second QoS setting comprises a maximum IOPS setting [In determining a target performance value, the target performance manager 402 uses a client's QoS parameters to determine the target performance value for a client. In one implementation, an overload condition is detected and all clients are throttled in a consistent manner. For example, if the system load is determined to be at 20%, all clients may be throttled such that their target performance value is set to 90% of their maximum IOPS setting. If the system load increases to 50%, all clients can be throttled based upon setting their target performance value to 40% of their maximum IOPS setting … (¶ 0116-0118)]. As to claim 4, Longo teaches The method of claim 3, wherein the factor comprises a portion of a difference between the current value of the burst IOPS setting and a current value of the maximum IOPS setting [In determining a target performance value, the target performance manager 402 uses a client's QoS parameters to determine the target performance value for a client. In one implementation, an overload condition is detected and all clients are throttled in a consistent manner. For example, if the system load is determined to be at 20%, all clients may be throttled such that their target performance value is set to 90% of their maximum IOPS setting. If the system load increases to 50%, all clients can be throttled based upon setting their target performance value to 40% of their maximum IOPS setting … (¶ 0116-0118)]. As to claim 5, Longo teaches The method of claim 4, wherein the portion represents a dynamic factor that increases as the size of the difference increases [In another implementation, the difference between a client's minimum IOPS and maximum IOPS can be used to determine how much to throttle a particular client. For example, a client with a large difference can be throttled more than a client whose difference is small. In one implementation, the difference between the client's maximum IOPS and minimum IOPS is used to calculate a factor that is applied to calculate the target performance value. In this implementation, the factor can be determined as the IOPS difference divided by some predetermined IOPS amount, such as 5,000 IOPS. In this example, a client whose difference between their maximum IOPS and their minimum IOPS was 10,000, would be throttled twice as much as a client whose IOPS difference was 5,000. Clients of the system can be billed different amounts based upon their class. Accordingly, clients could pay more to be throttled later and/or less than other classes of clients (¶ 0118)]. As to claim 6, Longo teaches The method of claim 4, wherein the portion is configurable by a user of the distributed storage system [as shown in figures 1A and 1B; In addition to storing data non-sequentially, data blocks can be stored to achieve substantially even distribution across the storage system. In various examples, even distribution can be based upon a unique block identifier … (¶ 0032); In another implementation, the difference between a client's minimum IOPS and maximum IOPS can be used to determine how much to throttle a particular client. For example, a client with a large difference can be throttled more than a client whose difference is small. In one implementation, the difference between the client's maximum IOPS and minimum IOPS is used to calculate a factor that is applied to calculate the target performance value. In this implementation, the factor can be determined as the IOPS difference divided by some predetermined IOPS amount, such as 5,000 IOPS. In this example, a client whose difference between their maximum IOPS and their minimum IOPS was 10,000, would be throttled twice as much as a client whose IOPS difference was 5,000. Clients of the system can be billed different amounts based upon their class. Accordingly, clients could pay more to be throttled later and/or less than other classes of clients (¶ 0118)]. As to claim 7, it recites substantially the same limitations as in claim 1, and is rejected for the same reasons set forth in the analysis of claim 1. Refer to “As to claim 1” presented earlier in this Office Action for details. As to claim 8, it recites substantially the same limitations as in claim 2 and is rejected for the same reasons set forth in the analysis of claim 2. Refer to “As to claim 2” presented earlier in this Office Action for details. As to claim 9, Longo teaches The distributed storage system of claim 7, wherein the factor is indicative of a desired degree of aggressiveness in connection with increasing the burst IOPS setting [In another implementation, the difference between a client's minimum IOPS and maximum IOPS can be used to determine how much to throttle a particular client. For example, a client with a large difference can be throttled more than a client whose difference is small. In one implementation, the difference between the client's maximum IOPS and minimum IOPS is used to calculate a factor that is applied to calculate the target performance value. In this implementation, the factor can be determined as the IOPS difference divided by some predetermined IOPS amount, such as 5,000 IOPS. In this example, a client whose difference between their maximum IOPS and their minimum IOPS was 10,000, would be throttled twice as much as a client whose IOPS difference was 5,000. Clients of the system can be billed different amounts based upon their class. Accordingly, clients could pay more to be throttled later and/or less than other classes of clients (¶ 0118)]. As to claim 10, it recites substantially the same limitations as in claim 3, and is rejected for the same reasons set forth in the analysis of claim 3. Refer to “As to claim 3” presented earlier in this Office Action for details. As to claim 11, it recites substantially the same limitations as in claim 4, and is rejected for the same reasons set forth in the analysis of claim 4. Refer to “As to claim 4” presented earlier in this Office Action for details. As to claim 12, it recites substantially the same limitations as in claim 5, and is rejected for the same reasons set forth in the analysis of claim 5. Refer to “As to claim 5” presented earlier in this Office Action for details. As to claim 13, it recites substantially the same limitations as in claim 6, and is rejected for the same reasons set forth in the analysis of claim 6. Refer to “As to claim 6” presented earlier in this Office Action for details. As to claim 14, it recites substantially the same limitations as in claim 1, and is rejected for the same reasons set forth in the analysis of claim 1. Refer to “As to claim 1” presented earlier in this Office Action for details. As to claim 15, it recites substantially the same limitations as in claim 2, and is rejected for the same reasons set forth in the analysis of claim 2. Refer to “As to claim 2” presented earlier in this Office Action for details. As to claim 16, it recites substantially the same limitations as in claim 9, and is rejected for the same reasons set forth in the analysis of claim 9. Refer to “As to claim 9” presented earlier in this Office Action for details. As to claim 17, it recites substantially the same limitations as in claim 3, and is rejected for the same reasons set forth in the analysis of claim 3. Refer to “As to claim 3” presented earlier in this Office Action for details. As to claim 18, it recites substantially the same limitations as in claim 4, and is rejected for the same reasons set forth in the analysis of claim 4. Refer to “As to claim 4” presented earlier in this Office Action for details. As to claim 19, it recites substantially the same limitations as in claim 5, and is rejected for the same reasons set forth in the analysis of claim 5. Refer to “As to claim 5” presented earlier in this Office Action for details. As to claim 20, it recites substantially the same limitations as in claim 6, and is rejected for the same reasons set forth in the analysis of claim 6. Refer to “As to claim 6” presented earlier in this Office Action for details. Conclusion 8. Claims 1-20 are rejected as explained above. 9. Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHENG JEN TSAI whose telephone number is 571-272-4244. The examiner can normally be reached on Monday-Friday, 9-6. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Kenneth Lo can be reached on 571-272-9774. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). /SHENG JEN TSAI/Primary Examiner, Art Unit 2136 December 14, November 7, 2025
Read full office action

Prosecution Timeline

Oct 28, 2024
Application Filed
Dec 14, 2025
Non-Final Rejection — §102, §DP (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12596490
MEMORY MANAGEMENT USING A REGISTER
2y 5m to grant Granted Apr 07, 2026
Patent 12585387
Clock Domain Phase Adjustment for Memory Operations
2y 5m to grant Granted Mar 24, 2026
Patent 12579075
USING RETIRED PAGES HISTORY FOR INSTRUCTION TRANSLATION LOOKASIDE BUFFER (TLB) PREFETCHING IN PROCESSOR-BASED DEVICES
2y 5m to grant Granted Mar 17, 2026
Patent 12572474
SPARSITY COMPRESSION FOR INCREASED CACHE CAPACITY
2y 5m to grant Granted Mar 10, 2026
Patent 12561070
AUTONOMOUS BATTERY RECHARGE CONTROLLER
2y 5m to grant Granted Feb 24, 2026
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

1-2
Expected OA Rounds
70%
Grant Probability
83%
With Interview (+13.0%)
3y 6m
Median Time to Grant
Low
PTA Risk
Based on 790 resolved cases by this examiner. Grant probability derived from career allow 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