Office Action Predictor
Last updated: April 16, 2026
Application No. 18/660,590

Incremental Scrubbing of Data in a Distributed Storage Network

Final Rejection §102
Filed
May 10, 2024
Examiner
WILSON, YOLANDA L
Art Unit
2113
Tech Center
2100 — Computer Architecture & Software
Assignee
Pure Storage, INC.
OA Round
2 (Final)
84%
Grant Probability
Favorable
3-4
OA Rounds
2y 5m
To Grant
90%
With Interview

Examiner Intelligence

Grants 84% — above average
84%
Career Allow Rate
882 granted / 1051 resolved
+28.9% vs TC avg
Moderate +6% lift
Without
With
+5.7%
Interview Lift
resolved cases with interview
Typical timeline
2y 5m
Avg Prosecution
42 currently pending
Career history
1093
Total Applications
across all art units

Statute-Specific Performance

§101
21.9%
-18.1% vs TC avg
§103
27.5%
-12.5% vs TC avg
§102
31.5%
-8.5% vs TC avg
§112
9.0%
-31.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 1051 resolved cases

Office Action

§102
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 . 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)(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. Claim(s) are rejected under 35 U.S.C. 102(a)(2) as being anticipated by Leggette et al. (USPN 20130238900A1). The applied reference has a common inventor with the instant application. Based upon the earlier effectively filed date of the reference, it constitutes prior art under 35 U.S.C. 102(a)(2). This rejection under 35 U.S.C. 102(a)(2) might be overcome by: (1) a showing under 37 CFR 1.130(a) that the subject matter disclosed in the reference was obtained directly or indirectly from the inventor or a joint inventor of this application and is thus not prior art in accordance with 35 U.S.C. 102(b)(2)(A); (2) a showing under 37 CFR 1.130(b) of a prior public disclosure under 35 U.S.C. 102(b)(2)(B) if the same invention is not being claimed; or (3) a statement pursuant to 35 U.S.C. 102(b)(2)(C) establishing that, not later than the effective filing date of the claimed invention, the subject matter disclosed in the reference and the claimed invention were either owned by the same person or subject to an obligation of assignment to the same person or subject to a joint research agreement. As per claim 1, Leggette et al. discloses a method for execution by one or more modules of one or more processors of a storage network comprises: determining to initiate periodic integrity checks for a plurality of data objects stored in the storage network, wherein a data object is dispersed error encoded in accordance with dispersed error encoding parameters to produce a plurality of sets of encoded data slices (paragraph 0303 - one of more of the DST execution units may determine whether slice errors (e.g., a missing slice, a corrupted slice) exist for one or more of the plurality of sets of encoded data slices. The determining may be based on initiating one of more slice error tests (e.g., integrity tests) in one or more scan cycles for encoded data slices of the DST execution unit storage set. For example, a set of slice error tests may be performed for a set of encoded data slices in a first scan cycle of the one or more slice error tests and a second set of slice error tests may be performed for a second set of encoded data slices in a second scan cycle of the one or more slice error tests, etc.); determining, for one or more data objects of the plurality of data objects, a frequency for performing the periodic integrity checks (paragraph 0303 - From time to time, one of more of the DST execution units may determine whether slice errors (e.g., a missing slice, a corrupted slice) exist for one or more of the plurality of sets of encoded data slices. The determining may be based on initiating one of more slice error tests (e.g., integrity tests) in one or more scan cycles for encoded data slices of the DST execution unit storage set.; paragraph 0343 - FIG. 45 is a flowchart illustrating an example of facilitating additional slice error scanning. The method begins at step 640 where a processing module (e.g., of a distributed storage and task (DST) client module of a DST execution unit) detects a data error condition associated with a portion of an address range. The data error condition includes one or more of a memory failure, a slice error, a network outage, and an unavailable DST execution unit. The detecting may be based on one or more of a test, an error message, a desired performance level indicator, a present performance level, a list of predetermined portions of address ranges, and an unfavorable comparison of the present performance level to the desired performance level indicator. For example, the processing module detects the data error condition associated with a predetermined slice name address range of 0-249 when receiving a slice error message for a slice associated with slice name 200.); determining, based on the frequency for performing the periodic integrity checks, a portion of the one or more data objects for a first integrity check of the periodic integrity checks, wherein a portion includes one or more encoded data slices of the plurality of sets of encoded data slices (paragraph 0303 - From time to time, one of more of the DST execution units may determine whether slice errors (e.g., a missing slice, a corrupted slice) exist for one or more of the plurality of sets of encoded data slices. The determining may be based on initiating one of more slice error tests (e.g., integrity tests) in one or more scan cycles for encoded data slices of the DST execution unit storage set.; paragraph 0343 - FIG. 45 is a flowchart illustrating an example of facilitating additional slice error scanning. The method begins at step 640 where a processing module (e.g., of a distributed storage and task (DST) client module of a DST execution unit) detects a data error condition associated with a portion of an address range. The data error condition includes one or more of a memory failure, a slice error, a network outage, and an unavailable DST execution unit. The detecting may be based on one or more of a test, an error message, a desired performance level indicator, a present performance level, a list of predetermined portions of address ranges, and an unfavorable comparison of the present performance level to the desired performance level indicator. For example, the processing module detects the data error condition associated with a predetermined slice name address range of 0-249 when receiving a slice error message for a slice associated with slice name 200.); issuing a list data request for the portion of the one or more data objects (paragraph 0306 - The error scan address range field 534 includes an entry that includes a set of address ranges that the DST execution unit is responsible for scanning for slice errors during a scan cycle associated with the scan cycle table. As such, each scan cycle table lists error scan address ranges that each DST execution unit is responsible for scanning for slice errors. During a scan cycle, slices stored within a DST execution unit may be scanned for slice errors by the DST execution unit and any of the other DST execution units of the DST execution unit storage set. For example, in a first scan cycle as indicated by scan cycle table 1, DST execution unit 1 is responsible for scanning potential slice errors associated with slice names 0-249 (e.g., stored in DST EX unit 1), 1000-1249 (e.g., stored in DST EX unit 2), 2000-2249 (e.g., stored in DST EX unit 3), and 3000-3249 (e.g., stored in DST EX unit 4) and DST execution unit 2 is responsible for scanning potential slice errors associated with slice names 250-449 (e.g., stored in DST EX unit 1), 1250-1499 (e.g., stored in DST EX unit 2), 2250-2499 (e.g., stored in DST EX unit 3), and 3250-3499 (e.g., stored in DST EX unit 4), etc.); receiving a list data response for the portion of the one or more data objects; determining whether the list data response indicates a data error for the portion of the one or more data objects (paragraph 0357 - where the processing module identifies any slice errors based on responses. The identifying includes one or more of receiving list responses receiving list digest responses, comparing a response from a first DST execution unit of the set of DST execution units to corresponding responses from the other DST execution units, and identifying a slice error of the first DST execution unit when the response is not substantially the same as the corresponding responses from the other DST execution units.); and in response to the list data response indicating a data error, updating an error log associated with the plurality of data objects (paragraph 0357 - The method continues at step 690 where the processing module updates slice error history to include one or more of the slice name, and error type, a timestamp, and a DST execution unit ID associated with the slice error.). As per claims 9,19, Leggette et al. discloses further comprising: in response to the list data response indicating a data error, scheduling a rebuilding function for the portion of the one or more data objects (paragraph 0357 - When a slice error is detected, the method continues at step 688 where the processing module facilitates rebuilding a slice associated with the detected slice error. The facilitating includes at least one of initiating a rebuilding process utilizing a slice name associated with the slice to be rebuilt and sending a rebuild request to another entity to initiate rebuilding the slice, wherein the request includes the slice name.). As per claim 10, Leggette et al. discloses further comprising: in response to the list data response indicating a data error, transmitting a hardware failure notification to another storage network entity (paragraph 0357 - When a slice error is detected, the method continues at step 688 where the processing module facilitates rebuilding a slice associated with the detected slice error. The facilitating includes at least one of initiating a rebuilding process utilizing a slice name associated with the slice to be rebuilt and sending a rebuild request to another entity to initiate rebuilding the slice, wherein the request includes the slice name. – the hardware failure notification is the need for rebuilding by initiating a rebuilding process) As per claim 11, Leggette et al. discloses a computing device comprises: an interface configured to interface and communicate with a storage network (paragraph 0076 - each interface 30, 32, and 33 includes software and/or hardware to support one or more communication links via the network 24 indirectly and/or directly. For example, interfaces 30 support a communication link (e.g., wired, wireless, direct, via a LAN, via the network 24, etc.) between user device 14 and the DST processing unit 16. As another example, interface 32 supports communication links (e.g., a wired connection, a wireless connection, a LAN connection, and/or any other type of connection to/from the network 24) between user device 12 and the DSTN module 22 and between the DST processing unit 16 and the DSTN module 22. As yet another example, interface 33 supports a communication link for each of the DSTN managing unit 18 and DST integrity processing unit 20 to the network 24); memory that stores operational instructions; and a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the computing device based on the operational instructions (paragraph 0449 - the memory element may store, and the processing module, module, processing circuit, and/or processing unit executes, hard coded and/or operational instructions), is configured to: determine to initiate periodic integrity checks for a plurality of data objects stored in the storage network, wherein a data object is dispersed error encoded in accordance with dispersed error encoding parameters to produce a plurality of sets of encoded data slices (paragraph 0303 - one of more of the DST execution units may determine whether slice errors (e.g., a missing slice, a corrupted slice) exist for one or more of the plurality of sets of encoded data slices. The determining may be based on initiating one of more slice error tests (e.g., integrity tests) in one or more scan cycles for encoded data slices of the DST execution unit storage set. For example, a set of slice error tests may be performed for a set of encoded data slices in a first scan cycle of the one or more slice error tests and a second set of slice error tests may be performed for a second set of encoded data slices in a second scan cycle of the one or more slice error tests, etc.); determine, for one or more data objects of the plurality of data objects, a frequency for performing the periodic integrity checks (paragraph 0303 - From time to time, one of more of the DST execution units may determine whether slice errors (e.g., a missing slice, a corrupted slice) exist for one or more of the plurality of sets of encoded data slices. The determining may be based on initiating one of more slice error tests (e.g., integrity tests) in one or more scan cycles for encoded data slices of the DST execution unit storage set.; paragraph 0343 - FIG. 45 is a flowchart illustrating an example of facilitating additional slice error scanning. The method begins at step 640 where a processing module (e.g., of a distributed storage and task (DST) client module of a DST execution unit) detects a data error condition associated with a portion of an address range. The data error condition includes one or more of a memory failure, a slice error, a network outage, and an unavailable DST execution unit. The detecting may be based on one or more of a test, an error message, a desired performance level indicator, a present performance level, a list of predetermined portions of address ranges, and an unfavorable comparison of the present performance level to the desired performance level indicator. For example, the processing module detects the data error condition associated with a predetermined slice name address range of 0-249 when receiving a slice error message for a slice associated with slice name 200.) determine, based on the frequency for performing the periodic integrity checks, a portion of the one or more data objects for a first integrity check of the periodic integrity checks, wherein a portion includes one or more encoded data slices of the plurality of sets of encoded data slices (paragraph 0303 - From time to time, one of more of the DST execution units may determine whether slice errors (e.g., a missing slice, a corrupted slice) exist for one or more of the plurality of sets of encoded data slices. The determining may be based on initiating one of more slice error tests (e.g., integrity tests) in one or more scan cycles for encoded data slices of the DST execution unit storage set.; paragraph 0343 - FIG. 45 is a flowchart illustrating an example of facilitating additional slice error scanning. The method begins at step 640 where a processing module (e.g., of a distributed storage and task (DST) client module of a DST execution unit) detects a data error condition associated with a portion of an address range. The data error condition includes one or more of a memory failure, a slice error, a network outage, and an unavailable DST execution unit. The detecting may be based on one or more of a test, an error message, a desired performance level indicator, a present performance level, a list of predetermined portions of address ranges, and an unfavorable comparison of the present performance level to the desired performance level indicator. For example, the processing module detects the data error condition associated with a predetermined slice name address range of 0-249 when receiving a slice error message for a slice associated with slice name 200.); issue a list data request for the portion of the one or more data objects (paragraph 0306 - The error scan address range field 534 includes an entry that includes a set of address ranges that the DST execution unit is responsible for scanning for slice errors during a scan cycle associated with the scan cycle table. As such, each scan cycle table lists error scan address ranges that each DST execution unit is responsible for scanning for slice errors. During a scan cycle, slices stored within a DST execution unit may be scanned for slice errors by the DST execution unit and any of the other DST execution units of the DST execution unit storage set. For example, in a first scan cycle as indicated by scan cycle table 1, DST execution unit 1 is responsible for scanning potential slice errors associated with slice names 0-249 (e.g., stored in DST EX unit 1), 1000-1249 (e.g., stored in DST EX unit 2), 2000-2249 (e.g., stored in DST EX unit 3), and 3000-3249 (e.g., stored in DST EX unit 4) and DST execution unit 2 is responsible for scanning potential slice errors associated with slice names 250-449 (e.g., stored in DST EX unit 1), 1250-1499 (e.g., stored in DST EX unit 2), 2250-2499 (e.g., stored in DST EX unit 3), and 3250-3499 (e.g., stored in DST EX unit 4), etc.); receive a list data response for the portion of the one or more data objects; determine whether the list data response indicates a data error for the portion of the one or more data objects (paragraph 0357 - where the processing module identifies any slice errors based on responses. The identifying includes one or more of receiving list responses receiving list digest responses, comparing a response from a first DST execution unit of the set of DST execution units to corresponding responses from the other DST execution units, and identifying a slice error of the first DST execution unit when the response is not substantially the same as the corresponding responses from the other DST execution units.); and in response to the list data response indicating a data error, updating an error log associated with the plurality of data objects (paragraph 0357 - The method continues at step 690 where the processing module updates slice error history to include one or more of the slice name, and error type, a timestamp, and a DST execution unit ID associated with the slice error.). There is no prior art rejection for claims 2-4,12-14,20-27 because either no prior art was found or no reason to combine with other prior art found. Allowable Subject Matter Claims 20-27 are allowed. Response to Arguments Applicant's arguments and amendments filed 06/27/2025 have been fully considered but they are not persuasive. Concerning Applicant’s arguments of the 102 rejection, the frequency is based on paragraph 0343 disclosing additional slice error scanning is based on detecting data error condition associated with a portion of an address range. The data error condition includes one or more of a memory failure, a slice error, a network outage, and an unavailable DST execution unit. 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 Yolanda L Wilson whose telephone number is (571)272-3653. The examiner can normally be reached M-F (7:30 am - 4 pm). 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, Bryce Bonzo can be reached on 571-272-3655. 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. /Yolanda L Wilson/Primary Examiner, Art Unit 2113
Read full office action

Prosecution Timeline

May 10, 2024
Application Filed
Feb 22, 2025
Non-Final Rejection — §102
Jun 27, 2025
Response Filed
Oct 04, 2025
Final Rejection — §102
Apr 10, 2026
Response after Non-Final Action

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12602279
SYSTEMS AND METHODS FOR DEBUGGING MULTI-CORE PROCESSORS WITH CONFIGURABLE ISOLATED PARTITIONS
2y 5m to grant Granted Apr 14, 2026
Patent 12602293
MANAGEMENT OF LOGS IN ASSET GROUPS
2y 5m to grant Granted Apr 14, 2026
Patent 12554699
METHOD AND SYSTEM FOR IMPLEMENTING A DATA CORRUPTION DETECTION TEST
2y 5m to grant Granted Feb 17, 2026
Patent 12547488
SELF DIAGNOSTIC AND HEALING OF ENTERPRISE NODES THROUGH A SOCIAL MEDIA FABRIC
2y 5m to grant Granted Feb 10, 2026
Patent 12524342
MEMORY WITH POST-PACKAGING MASTER DIE SELECTION
2y 5m to grant Granted Jan 13, 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

3-4
Expected OA Rounds
84%
Grant Probability
90%
With Interview (+5.7%)
2y 5m
Median Time to Grant
Moderate
PTA Risk
Based on 1051 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