Prosecution Insights
Last updated: October 01, 2026
Application No. 19/001,906

DATA PROCESSING METHOD AND RELATED DEVICE

Non-Final OA §102
Filed
Dec 26, 2024
Priority
Jun 27, 2022 — CN 202210740423.1 +2 more
Examiner
FAAL, BABOUCARR
Art Unit
2138
Tech Center
2100 — Computer Architecture & Software
Assignee
Huawei Technologies Co., Ltd.
OA Round
3 (Non-Final)
81%
Grant Probability
Favorable
3-4
OA Rounds
1y 0m
Est. Remaining
95%
With Interview

Examiner Intelligence

Grants 81% — above average
81%
Career Allowance Rate
436 granted / 541 resolved
+25.6% vs TC avg
Moderate +14% lift
Without
With
+14.3%
Interview Lift
resolved cases with interview
Typical timeline
2y 10m
Avg Prosecution
22 currently pending
Career history
574
Total Applications
across all art units

Statute-Specific Performance

§101
6.7%
-33.3% vs TC avg
§103
50.9%
+10.9% vs TC avg
§102
25.8%
-14.2% vs TC avg
§112
9.3%
-30.7% vs TC avg
Black line = Tech Center average estimate • Based on career data from 541 resolved cases

Office Action

§102
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 . 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 8/25/26 has been entered. Claim Rejections - 35 USC § 102 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. 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. Claim(s) 1-20 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Tal et al. 11704053 herein Tal. Per claim 1, Tal discloses: A method applied to a primary node in a distributed storage system comprising a set of secondary nodes, wherein each of the primary node and the secondary nodes in the set of secondary nodes stores a respective block of an erasure coding (EC) stripe, (fig. 1) obtaining a first request, wherein the first request is used to update a first data block in the (EC) stripe to a second data block; (fig. 6, col. 8 lines 10-30; in performing an “optimized” direct stripe write operation, a storage control node (e.g., storage control node 140-1, FIG. 1) receives data from a host system to be written to a striped volume and allocates a first stripe (referred to herein as “interim stripe”) and a second stripe (referred to herein as “destination stripe”) in the striped volume.) and sending a processing request to the set of secondary nodes, wherein the set of secondary nodes comprises at least one secondary node in the distributed storage system, (fig. 6, col. 8 lines 10-30; The storage control node writes the received data to at least one data strip of the first stripe, computes parity data based on the data written to the first stripe, and writes the parity data to at least one parity strip of the first stripe.) and the processing request indicates to offload (col. 15; copying the interim data strips 500-1 and 500-2 of the interim stripe 500 to the corresponding data strips 510-1 and 510-2 of the destination stripe 510 using copy-offload commands, as schematically illustrated in FIG. 5) a data block update operation performed by the primary node to one or more secondary nodes in the set of secondary nodes, wherein the data block update operation comprises updating a parity block of the EC stripe based on the first data block and the second data block (fig. 6, col. 8 lines 10-30; The storage control node sends a copy command to a target storage node of the plurality of storage nodes 150, which comprises the at least one data strip of the first stripe to which the received data was written, to thereby cause the target storage node to copy the at least one data strip to a data strip of the second stripe which resides on the target storage node. The storage control node writes additional data to the second stripe, computes updated parity data based on the additional data written to the second stripe and the parity data of the first stripe, and writes the updated parity data to at least one parity strip of the second stripe.; the examiner notes that per the applicants specification, the offload operation is merely a reading, generating parity and copying data and parity to a secondary node.). Per claim 2, Tal discloses: wherein sending the processing request to the set of secondary nodes comprises: sending a second request comprising the second data block to a first secondary node; receiving the first data block returned by the first secondary node when the first data block is updated to the second data block; determining parity block update information based on the first data block and the second data block; and sending a third request comprising the parity block update information to a second secondary node, wherein the parity block update information is used to update the parity block (fig. 6, col. 8 lines 10-30; The storage control node sends a copy command to a target storage node of the plurality of storage nodes 150, which comprises the at least one data strip of the first stripe to which the received data was written, to thereby cause the target storage node to copy the at least one data strip to a data strip of the second stripe which resides on the target storage node. The storage control node writes additional data to the second stripe, computes updated parity data based on the additional data written to the second stripe and the parity data of the first stripe, and writes the updated parity data to at least one parity strip of the second stripe.;). Per claim 3, Tal discloses: wherein sending the processing request to the set of secondary nodes comprises: sending a second request comprising the second data block to a first secondary node, wherein the second request indicates the first secondary node to update the first data block to the second data block; determining parity block update information based on the first data block and the second data block; and sending, through the first secondary node, a third request comprising the parity block update information to a second secondary node, wherein the parity block update information is used to update the parity block (fig. 5&6, col. 8 lines 10-30; The storage control node sends a copy command to a target storage node of the plurality of storage nodes 150, which comprises the at least one data strip of the first stripe to which the received data was written, to thereby cause the target storage node to copy the at least one data strip to a data strip of the second stripe which resides on the target storage node. The storage control node writes additional data to the second stripe, computes updated parity data based on the additional data written to the second stripe and the parity data of the first stripe, and writes the updated parity data to at least one parity strip of the second stripe.;). 18337942238 Per claim 4, Tal discloses: wherein: the first data block is stored at the first secondary node, and the primary node and the first secondary node are a same node; or the parity block in the EC stripe is stored at the second secondary node, and the primary node and the second secondary node are a same node (fig. 5&6, col. 8 lines 10-30; The storage control node sends a copy command to a target storage node of the plurality of storage nodes 150, which comprises the at least one data strip of the first stripe to which the received data was written, to thereby cause the target storage node to copy the at least one data strip to a data strip of the second stripe which resides on the target storage node. The storage control node writes additional data to the second stripe, computes updated parity data based on the additional data written to the second stripe and the parity data of the first stripe, and writes the updated parity data to at least one parity strip of the second stripe.; the examiner is not certain how the primary and secondary nodes are the same node as the first secondary and second secondary nodes respectively. The examiner interprets the “same node” as a stripe). Per claim 5, Tal discloses: further comprising, before obtaining the first request: obtaining a fourth request comprising a data stream; splitting data in the data stream into a plurality of data blocks, and writing the plurality of data blocks into data block storage nodes in the distributed storage system by column, wherein the data block storage nodes comprise the primary node and the first secondary node; and calculating the parity block based on each group of data blocks in the plurality of data blocks, and writing the parity block into a parity block storage node in the distributed storage system, wherein the parity block storage node comprises the second secondary node, (fig. 5&6, col. 8 lines 10-30; The storage control node sends a copy command to a target storage node of the plurality of storage nodes 150, which comprises the at least one data strip of the first stripe to which the received data was written, to thereby cause the target storage node to copy the at least one data strip to a data strip of the second stripe which resides on the target storage node. The storage control node writes additional data to the second stripe, computes updated parity data based on the additional data written to the second stripe and the parity data of the first stripe, and writes the updated parity data to at least one parity strip of the second stripe.; the examiner is not certain how the primary and secondary nodes are the same node as the first secondary and second secondary nodes respectively. The examiner interprets the “same node” as a stripe)wherein in response to the plurality of data blocks not being able to be fully written into at least one EC stripe, a no operation is performed on a chunk that has no data in the at least one EC stripe (fig. 5&6, col. 20 lines 1-6; The parity update process is performed with the knowledge the unused portions of the interim stripe (e.g., unused interim data strip(s) and/or unused portion of an interim data strip) are zero-filled, which eliminates the need to perform I/O read operations to read such unused portions of the interim stripe for purposes of computing updated parity information.). Per claim 6, Tal discloses: obtaining a fifth request comprising a start address; and determining a target node based on the start address, and reading a target data block by column (fig. 4&5, col. 12 lines 1-10; The RAID 6 configuration 400 is organized in grids of data blocks, with N rows and K columns, wherein each column is a separate physical storage device (e.g., SSD device) of a different storage node, and wherein 4 data columns are used to store data strips, and two columns are used to store associated parity data strips, e.g., PQ parity data, which is computed using known techniques). Per claim 7, Tal discloses: A computing device cluster comprising at least one computing device and a set of secondary nodes, wherein each of the at least one computing device and the secondary nodes of the set of secondary nodes stores a respective block of an erasure coding (EC) stripe, the at least one computing device comprises at least one processor and at least one memory, the at least one memory stores computer-readable instructions, and the computer-readable instructions, when executed by the at least one processor, enable the computing device cluster to: (fig. 1, col. 3; a network computing system 100 which comprises one or more host systems 110-1, 110-2, . . . 110-H (collectively, host systems 110), a communications network 120, and a data storage system 130 (e.g., disaggregated data storage system). The data storage system 130 comprises a plurality of storage control nodes 140-1, 140-2, . . . , 140-C (collectively, storage control nodes 140), and a plurality of storage nodes 150-1, 150-2, . . . , 150-S (collectively, storage nodes 150)) obtain a first request, wherein the first request is used to update a first data block stored in the (EC) stripe to a second data block;(fig. 6, col. 8 lines 10-30; in performing an “optimized” direct stripe write operation, a storage control node (e.g., storage control node 140-1, FIG. 1) receives data from a host system to be written to a striped volume and allocates a first stripe (referred to herein as “interim stripe”) and a second stripe (referred to herein as “destination stripe”) in the striped volume.) and send a processing request to the set of secondary nodes, wherein the set of secondary nodes comprises at least one secondary node in a distributed storage system, (fig. 6, col. 8 lines 10-30; The storage control node writes the received data to at least one data strip of the first stripe, computes parity data based on the data written to the first stripe, and writes the parity data to at least one parity strip of the first stripe.) and the processing request indicates to offload (col. 15; copying the interim data strips 500-1 and 500-2 of the interim stripe 500 to the corresponding data strips 510-1 and 510-2 of the destination stripe 510 using copy-offload commands, as schematically illustrated in FIG. 5) a data block update operation performed by a primary node to one or more secondary nodes in the set of secondary nodes, wherein the data block update operation comprises updating a parity block of the EC stripe based on the first data block and the second data block (fig. 6, col. 8 lines 10-30; The storage control node sends a copy command to a target storage node of the plurality of storage nodes 150, which comprises the at least one data strip of the first stripe to which the received data was written, to thereby cause the target storage node to copy the at least one data strip to a data strip of the second stripe which resides on the target storage node. The storage control node writes additional data to the second stripe, computes updated parity data based on the additional data written to the second stripe and the parity data of the first stripe, and writes the updated parity data to at least one parity strip of the second stripe.; the examiner notes that per the applicants specification, the offload operation is merely a reading, generating parity and copying data and parity to a secondary node.). Claims 8-12 are the device claims corresponding to the method claims 2-6 and are rejected under the same reasons set forth in connection with the rejection of claims 2-6. Per claim 13, Tal discloses: obtain a first request, wherein the at least one processor resides in a primary node in a distributed storage system comprising a set of secondary nodes, wherein each of the primary node and the secondary nodes in the set of secondary nodes stores a respective block of an erasure coding (EC) stripe, (fig. 1) and wherein the first request is used to update a first data block stored in the (EC) stripe to a second data block; (fig. 6, col. 8 lines 10-30; in performing an “optimized” direct stripe write operation, a storage control node (e.g., storage control node 140-1, FIG. 1) receives data from a host system to be written to a striped volume and allocates a first stripe (referred to herein as “interim stripe”) and a second stripe (referred to herein as “destination stripe”) in the striped volume.) and sending a processing request to a set of secondary nodes, wherein the set of secondary nodes comprises at least one secondary node in a distributed storage system, (fig. 6, col. 8 lines 10-30; The storage control node writes the received data to at least one data strip of the first stripe, computes parity data based on the data written to the first stripe, and writes the parity data to at least one parity strip of the first stripe.) and the processing request indicates to offload (col. 15; copying the interim data strips 500-1 and 500-2 of the interim stripe 500 to the corresponding data strips 510-1 and 510-2 of the destination stripe 510 using copy-offload commands, as schematically illustrated in FIG. 5) a data block update operation performed by a primary node to one or more secondary nodes in the set of secondary nodes, wherein the data block update operation comprises updating a parity block of the EC stripe based on the first data block and the second data block. (fig. 6, col. 8 lines 10-30; The storage control node sends a copy command to a target storage node of the plurality of storage nodes 150, which comprises the at least one data strip of the first stripe to which the received data was written, to thereby cause the target storage node to copy the at least one data strip to a data strip of the second stripe which resides on the target storage node. The storage control node writes additional data to the second stripe, computes updated parity data based on the additional data written to the second stripe and the parity data of the first stripe, and writes the updated parity data to at least one parity strip of the second stripe.; the examiner notes that per the applicant’s specification, the offload operation is merely a reading, generating parity and copying data and parity to a secondary node.). Claims 14-18 are the device claims corresponding to the method claims 2-6 and are rejected under the same reasons set forth in connection with the rejection of claims 2-6. Per claim 19, Tal discloses: wherein the second request is an update request that indicates the first secondary node to update the first data block to the second data block and return the first data block, and wherein a return value of the update request is the first data block (fig. 6, col. 8 lines 10-30; The storage control node writes additional data to the second stripe, computes updated parity data based on the additional data written to the second stripe and the parity data of the first stripe, and writes the updated parity data to at least one parity strip of the second stripe.; the examiner interprets the limitation as updating parity information after the write to the second stripe). Per claim 20, Tal discloses: wherein the third request indicates the second secondary node to read the parity block at the second secondary node, determine a new parity block based on the parity block and the parity block update information, and store the new parity block, without reading the parity block to the primary node (fig. 6, col. 8 lines 10-30; The storage control node writes additional data to the second stripe, computes updated parity data based on the additional data written to the second stripe and the parity data of the first stripe, and writes the updated parity data to at least one parity strip of the second stripe.; the examiner notes that “without reading…” is an intended result of the parity update). Response to Arguments Applicant's arguments filed 8/25/26 have been fully considered but they are not persuasive. The applicant argues: The amended limitations cannot be met by mapping one of Tal's storage nodes 150 to the claimed primary node. While Tal's storage nodes 150 store the strips of a stripe, they neither obtain a request to update a data block of that stripe nor send a processing request to other nodes. Rather, each storage node's device controller 152 "is configured to perform data access operations to read/write data to/from the storage device array 154 in response to data access requests received from a storage control node 140." (Tal, 5:15-18.) Under either mapping, at least one limitation of amended claim 1 is absent from Tal. Tal discloses computing updated parity data from two inputs: (i) "the additional data written to the second stripe" and (ii) "the parity data of the first stripe." (Tal, 8:10-30.) Neither input is a first data block already stored in the stripe that is being updated to a second data block. Tal accordingly does not disclose updating a parity block of an EC stripe "based on the first data block and the second data block," as claim 1 requires. Tal does not disclose offloading the parity block update to a secondary node. In Tal, it is the storage control node itself that "computes updated parity data" and "writes the updated parity data to at least one parity strip of the second stripe." (Tal, 8:10-31.) The only operation that Tal directs a storage node to perform in the course of this process is a copy operation, in which the storage control node "sends a copy command to a target storage node ... to thereby cause the target storage node to copy the at least one data strip to a data strip of the second stripe which resides on the target storage node." (Tal, 8:10-30.) Copying a data strip from one stripe to another stripe is not a data block update operation comprising "updating a parity block of the EC stripe based on the first data block and the second data block." Claim 1 requires that the updating of the parity block occur at one or more secondary nodes as part of the operation offloaded by the primary node, rather than the parity block being read to the primary node and rewritten by it. Tal discloses no such offloading. The examiner respectfully disagrees and asserts that the claim merely requires that the distributed system comprises a primary node and a set of secondary nodes storing stripe data and erasure coding. Further, a request to update the first data block to a second data block is received. A request is sent to the secondary node to offload a data block update which is performed by the first node to the second node. The update comprises updating a parity block of the stripe using the first data block and second data block. In response to applicant's argument that the references fail to show certain features of the invention, it is noted that the features upon which applicant relies (i.e., the updating of the parity block occur at one or more secondary nodes as part of the operation offloaded by the primary node, rather than the parity block being read to the primary node and rewritten by it. Tal discloses no such offloading) are not recited in the rejected claim(s). Although the claims are interpreted in light of the specification, limitations from the specification are not read into the claims. See In re Van Geuns, 988 F.2d 1181, 26 USPQ2d 1057 (Fed. Cir. 1993). There is no requirement to involve a node other than a first and second node to perform the upload operation (see app fig. 5). While more than one second node is recited, the claim does not set forth a clear distinction between the one or more secondary nodes. It is perfectly reasonable to interpret the second node of the one or more second node as only one secondary node that is involved in the offloading. As noted in the rejection supra, the offload operation is the offload operation is merely a reading, generating parity and copying data and parity to a secondary node. In view of this interpretation, only two nodes are present in the offload/update process. Therefore, Tals teaching of "computes updated parity data" and "writes the updated parity data to at least one parity strip of the second stripe," "sends a copy command to a target storage node ... to thereby cause the target storage node to copy the at least one data strip to a data strip of the second stripe which resides on the target storage node." Tal clear teaches: The storage control node writes additional data to the second stripe, computes updated parity data based on the additional data written to the second stripe and the parity data of the first stripe and writes the updated parity data to at least one parity strip of the second stripe. The examiner notes that claims do not set forth how the updating uses the first data block and the second data block. For a BRI purposes, even the use of the addresses is considered “based on.” If the applicants intend to claim a specific meaning for how the first and second data block are used in the updating the examiner encourages the applicant to do so without introducing new matter. Therefore, Tal’s teaching of updating a previously written data stripe with additional data requires computing an updated parity based on the data written/present at the first and second stripe. Then the updated parity data is written on the second data stripe. Remark Examiner respectfully requests, in response to this Office action, support be shown for language added to any original claims on amendment and any new claims. That is, indicate support for newly added claim language by specifically pointing to page(s) and line number(s) in the specification and/or drawing figure(s). This will assist Examiner in prosecuting the application. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to BABOUCARR FAAL whose telephone number is (571)270-5073. The examiner can normally be reached M-F 8:30-5:30 EST. 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, Tim VO can be reached at 5712723642. 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. BABOUCARR . FAAL Primary Examiner Art Unit 2138 /BABOUCARR FAAL/Primary Examiner, Art Unit 2138
Read full office action

Prosecution Timeline

Dec 26, 2024
Application Filed
Dec 31, 2025
Non-Final Rejection mailed — §102
Mar 11, 2026
Response Filed
Jun 17, 2026
Final Rejection mailed — §102
Aug 07, 2026
Response after Non-Final Action
Aug 25, 2026
Request for Continued Examination
Aug 28, 2026
Response after Non-Final Action
Sep 08, 2026
Non-Final Rejection mailed — §102 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12743318
QUADRATIC UNCONSTRAINED BINARY OPTIMIZATION CUTTING
3y 4m to grant Granted Sep 22, 2026
Patent 12731067
MACHINE LEARNING HARDWARE ACCELERATOR
5y 11m to grant Granted Sep 08, 2026
Patent 12724532
MEMORY DEVICE INCLUDING CONTENT ADDRESSABLE MEMORY AND METHOD OF INPUTTING AND OUTPUTTING DATA THEREOF
2y 5m to grant Granted Sep 01, 2026
Patent 12717730
MULTIPLE CHANNEL DIRECT ACCESS MEMORY-BASED CONFIGURATION SYSTEM
4y 1m to grant Granted Aug 25, 2026
Patent 12717474
MEMORY DEVICE, A MEMORY SYSTEM AND AN OPERATION METHOD
2y 2m to grant Granted Aug 25, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

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

Prosecution Projections

3-4
Expected OA Rounds
81%
Grant Probability
95%
With Interview (+14.3%)
2y 10m (~1y 0m remaining)
Median Time to Grant
High
PTA Risk
Based on 541 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

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

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

Free tier: 3 strategy analyses per month