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 .
DETAILED ACTION
This Office action is in response to the amendment filed on April 20, 2026.
Claims 1-20 are pending.
Claims 1-3, 6-8, and 11-13 have been amended.
Response to Arguments
Applicant's arguments have been considered but are moot in view of new ground(s) of rejection. In these arguments applicant relies on the amended claims and not the original ones. See below rejections under 35 USC § 103 for response to arguments.
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 of this title, 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, 9, 11, and 14 are rejected under 35 U.S.C. 103 as being unpatentable over US 9,798,534 (hereinafter "Yi”) in view of US 2019/0332308 (hereinafter “Feng”), in view of US 2018/0293065 (hereinafter “Hathorn”), and further in view of US 2019/0220266 (hereinafter “Doshi”).
In the following claim analysis, bold text denotes claim language; bold text with underlines and strikethroughs indicates claim amendments; underlining in Examiner’s claim mappings is used for emphasis; and the Examiner’s detailed interpretations are provided in square brackets.
As to claim 1, Yi discloses a method (Yi, Abstract, a method of online storage device firmware upgrades by suspending input/output (I/O) operations) comprising:
receiving a first input/output (I/O) instruction to access one or more storage nodes of a storage system (Yi, claim 1, input/output (I/O) operations to the storage device comprising a RAID array upon notification of a firmware upgrade to the storage device);
receiving an upgrade instruction for [the firmware] (Yi, claim 1, a RAID array upon notification of a firmware upgrade to the storage device);
performing I/O suspension on the received first I/O instruction in response to the upgrade instruction(Yi, claim 1, suspending input/output (I/O) operations to the storage device comprising a RAID array upon notification of a firmware upgrade to the storage device); and
upgrading the [firmware] based on the upgrade instruction (Yi, col. 8, ln. 52-56, the disk manager 210 triggers the disk firmware commands to download the target firmware image to the disk, reactivate the disk new firmware).
Yi does not appear to explicitly disclose receiving, by a client software, a first input/output (I/O) instruction to access one or more storage nodes of a storage system; an upgrade instruction for the client software; and upgrading the client software. However, in an analogous art to the claimed invention in the field of firmware update, Feng teaches receiving, by a client software, a first input/output (I/O) instruction to access one or more storage nodes of a storage system (Feng, Fig. 5, ¶ 48, Customized MPIO Plugin 506 [client software] operates in part by processing host I/O requests that are received from Host Application 502 and directed by Host Application 502 to Source Volume 408), an upgrade instruction for the client software (Feng, Fig. 8, ¶ 62, an example of steps [upgrade instructions] performed during operation of some embodiments. … by updating the multi-pathing software on each one of the host computers in Cluster 400 to include a copy of Customized MPIO Plugin 506 … The software components that may be updated at step 800 may include a Host Agent 508 and a Customized MPIO Plugin 506 on each host computer. Other software components that maybe updated at step 800 may include), and upgrading the client software (Feng, ¶ 62, The software components that may be updated at step 800 may include a Host Agent 508 and a Customized MPIO Plugin 506 … Other software components that maybe updated at step 800 may include Migration Aware SCSI Semantics Driver 516 and Migration Aware Management Components 520 on Source Storage Array 406).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the teaching of Yi with the teaching of Feng. The modification would be obvious because one of ordinary skill in the art would be motivated to use a customized plugin component, which can be used to update multi-pathing software components in a non-disruptive manner, without interrupting the flow of host I/O requests from applications passing through the multi-pathing software (Feng, ¶ 20).
Yi as modified does not explicitly disclose generating buffered data in response to the first I/O instruction; and after all the buffered data is sent to the one or more storage nodes.
However, Hathorn teaches generating buffered data in response to the first I/O instruction (Hathorn, ¶ 47, the port firmware 128 of an embedded port 106 allows the host bus adapter 104 to process and respond to I/O commands; ¶ 49, a buffer queue 204 that stores asynchronously received data); and after draining the buffer (Hathorn, ¶ 54, the driver 402 performs operations for I/O operations to enter a quiesce phase, in which active I/O is quiesced (suspended) to minimize reception of new requests, and as a result allowing time for response queues to drain to empty; ¶ 57, to release and free buffer queues 204 used to store asynchronous receive data [one of ordinary skill in the art would readily comprehend that draining the buffer to empty prior to completion of the quiesce phase requires previously buffered I/O data in the queue to be transmitted/processed/before I/O suspension is finalized]).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the teaching of Yi as modified with the teaching of Hathorn. The modification would be obvious because one of ordinary skill in the art would be motivated to modify the suspension technique of Yi with the buffer draining and quiesce technique taught by Hathorn in order to allow pending buffered I/O data to be processed and transmitted before suspending I/O operations for a software or firmware upgrade, thereby reducing risk of data loss, preserving data consistency, and improving reliability of the storage system during upgrade operations.
Yi as modified does not explicitly disclose sending the buffered data to the one or more storage nodes; and after sending the buffered data to the one or more storage nodes However, Doshi teaches sending the buffered data to the one or more storage nodes (Doshi, ¶ 152, this buffer may be flushed 1602 to disk by writing all valid data (i.e., not outdated due to a subsequent write) in the cache to the storage device 108 [of a storage system]); and after sending the buffered data to the one or more storage nodes (Doshi, ¶ 152; ¶ 44, The quiesce instruction may further cause the compute nodes 110 that receive it to report 208 to the storage manager 102 when no write requests are pending for that storage volume [i.e., the buffered data has been sent]).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the teaching of Yi as modified with the teaching of Doshi. The modification would be obvious because one of ordinary skill in the art would be motivated to ensure that pending buffered write data is committed to the storage operation are performed, thereby reducing risk of data loss and preserving storage consistency during upgrade operations.
As to claim 2, the rejection of claim 1 is incorporated. Yi as modified further discloses The method of claim 1, further comprising: determining that upgrading the client software failed (Yi, col. 9, ln. 12-14, If the firmware upgrade fails or the timer timeouts, the disk manager changes the disk state to failed state 308); and maintaining the I/O suspension to prevent processing of the first I/O instruction (Yi, claim 1, suspending input/output (I/O) operations to the storage device).
As to claim 4, the rejection of claim 1 is incorporated. Yi as modified further discloses The method of claim 1, further comprising:
determining that the client software has completed being upgraded to obtain an upgraded client software (Yi, col. 8, ln. 52-56, With regard to the firmware upgrade step 406, the disk manager 210 triggers the disk firmware commands to download the target firmware image to the disk, reactivate the disk new firmware, and also issue some read I/O requests to the disk to verify that the disk works well);
canceling the I/O suspension (Yi, col. 8, ln. 64-66, With regard to the cleanup step 408, this operation could be either resuming the suspended disk if the firmware upgrade is successful); and processing, based on the upgraded client software, the first I/O instruction (Yi, col. 8, ln. 64-66, resuming the suspended [i.e., processing the I/O instruction] disk if the firmware upgrade is successful).
As to claims 6-7 and 9, the claims are computing node claims corresponding to method claims 1-2 and 4. Therefore, they are rejected under the same rational set forth in the rejections of claims 1-2 and 4. Further, Yi discloses A computing node (Yi, claim 10); comprising: one or more memories configured to store instructions; and one or more processors configured to execute the instructions (Yi, claim 15) as disclosed in claims 6 and 9.
As to claims 11-12 and 14, the claims are computer program product claims corresponding to method claims 1-2 and 4. Therefore, they are rejected under the same rational set forth in the rejections of claims 1-2 and 4. Further, Yi discloses A computer program product comprising computer-executable instructions stored on a non-transitory computer-readable storage medium, wherein the computer- executable instructions when executed by a processor of an apparatus (Yi, claim 15) as disclosed in claims 11 and 14.
Claims 3, 8, and 13 are rejected under 35 U.S.C. 103 as being unpatentable over US 9,798,534 (hereinafter "Yi”) in view of US 2019/0332308 (hereinafter “Feng”), and further in view of US 2019/0179761 (hereinafter “Gupta”).
As to claim 3, the rejection of claim 2 is incorporated. Yi as modified further discloses The method of claim 2, further comprising: sending the buffered data to the one or more storage nodes (Doshi, ¶ 152, this buffer may be flushed 1602 to disk by writing all valid data (i.e., not outdated due to a subsequent write) in the cache to the storage device 108), does not explicitly disclose receiving a second I/O instruction while sending the buffered data to the one or more storage nodes; and processing the second I/O instruction in a manner of synchronously accessing the one or more storage nodes. However, the combination of Gupta and Doshi teaches receiving a second I/O instruction (Gupta, ¶ 40, A plurality of hosts 1a, 1b . . . 1n may submit Input/Output (I/O) requests over a network 6 to one or more data storage devices or systems 2a, 2b, 2 (FIG. 2) to read or write data) while sending the buffered data to the one or more storage nodes (Doshi, ¶ 152); and processing the second I/O instruction in a manner of synchronously accessing the one or more storage nodes (Gupta, ¶ 52, The storage manager 24 further includes a data replication logic 35 (FIG. 2) of the storage manager 24 which is configured to synchronously generate copies of the primary volume1 (FIG. 1) of the primary data storage system 2a as a secondary volume2 (FIG. 1) of the secondary data storage systems as represented by the secondary data storage system 2b).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the teaching of Yi as modified with the teaching of Gupta. The modification would be obvious because one of ordinary skill in the art would be motivated to synchronize the primary data storage device with the secondary data storage device, that is, successfully copied over to the secondary data storage device to reduce or eliminate undesired suspensions of mirroring operations due to expirations of time-out periods (Gupta, Abstract and ¶ 34).
As to claim 8, the claim is computing node claim corresponding to method claims 3. Therefore, it is rejected under the same rational set forth in the rejection of claim 3.
As to claim 13, the claim is a computer program product claim corresponding to method claims 3. Therefore, it is rejected under the same rational set forth in the rejection of claims .
Claims 5, 10, and 15-16 are rejected under 35 U.S.C. 103 as being unpatentable over Yi in view of Feng, in view of Hathorn, in view of Doshi, and further in view of US 10,353,714 (hereinafter “Gokam”).
As to claim 5, the rejection of claim 1 is incorporated. Yi as modified does not appear to explicitly disclose The method of claim 1, wherein upgrading the client software comprises upgrading a core module of the client software.
However, in an analogous art to the claimed invention in the field of Electric Digital Data Processing, Gokam teaches The method of claim 1, wherein upgrading the client software comprises upgrading a core module of the client software (Gokam, col. 5, ln. 43-46, during an upgrade operation wherein the core module 140 is unloaded and replaced with a new core module, the instances of the multipath device 132 are maintained).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the teaching of Yi as modified with the teaching of Gokam. The modification would be obvious because one of ordinary skill in the art would be motivated to provide techniques to enable non-disruptive upgrades of multipath device drivers, including a core module and a thin module so that I/O operation requests are routed to the thin module during an upgrade operation of the core module (Gokam, Abstract).
As to claim 10, the claim is a computing node claim corresponding to method claim 5. Therefore, it is rejected under the same rational set forth in the rejection of claim 5.
As to claim 15, the claim is a computing node claim corresponding to method claim 5. Therefore, it is rejected under the same rational set forth in the rejection of claim 5.
As to claim 16, the rejection of claim 15 is incorporated. Yi as modified further discloses The computer program product of claim 15, wherein the computer-executable instructions when executed by the processor of the apparatus, further cause the apparatus to: receive the first I/O instruction at an interface module of the client software (Yi, col. 6, ln. 46-48, The user space 202 includes a firmware update command line interface or interpreter (CLI) 208); and transmit the first I/O instruction to the core module (Gokam, col. 5, ln.9-14, During normal operation, when a given application 115 sends an I/O operation request to the multipath device driver 120, the core multipath device driver module 140 will select an I/O path for the I/O operation request, and send the I/O operation request to the appropriate instance of the storage interface driver 150).
The motivation to combine the references is the same as set forth in the rejection of claim 5.
Claim 17 is rejected under 35 U.S.C. 103 as being unpatentable over Yi, in view of Feng, in view of Hathorn, in view of Doshi, in view of US 10,353,714 (hereinafter “Gokam”), and further in view of CN 103793181 (hereinafter “Shu”).
As to claim 17, the rejection of claim 16 is incorporated. Yi as modified does not appear to explicitly disclose The computer program product of claim 16, wherein the computer-executable instructions when executed by the processor of the apparatus, further cause the core module to synchronously access storage data in the one or more storage nodes. However, in an analogous art to the claimed invention in the field of Electric Digital Data Processing, Shu teaches The computer program product of claim 16, wherein the computer-executable instructions when executed by the processor of the apparatus, further cause the core module to synchronously access storage data in the one or more storage nodes (Shu, claim 2, a synchronous method of storage, wherein said main module used for processing the external operation of the write request and the read request).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the teaching of Yi as modified with the teaching of Shu. The modification would be obvious because one of ordinary skill in the art would be motivated to synchronize slave module each time with a write operation so as to ensure the data module can be updated in real time, and data consistent with the main module (Shu, ¶ 2).
Claim 18 is rejected under 35 U.S.C. 103 as being unpatentable over Yi, in view of Feng, in view of Hathorn, in view of Doshi, in view of US 10,353,714 (hereinafter “Gokam”), and further in view of CN 103793181b (hereinafter “Shu”).
As to claim 18, the rejection of claim 17 is incorporated. Yi as modified does not appear to explicitly disclose The computer program product of claim 17, wherein the computer-executable instructions when executed by the processor of the apparatus, further cause a control module of the client software to send the buffered data to the one or more storage nodes. However, Doshi teaches The computer program product of claim 17, wherein the computer-executable instructions when executed by the processor of the apparatus, further cause a control module of the client software to send the buffered data to the one or more storage nodes (Doshi, ¶ 152, this buffer may be flushed 1602 to disk by writing all valid data (i.e., not outdated due to a subsequent write) in the cache to the storage device 108). The motivation to combine the references is the same as set forth in the rejection of claim 1.
As to claim 19, the rejection of claim 17 is incorporated. Yi as modified further discloses The computer program product of claim 18, wherein the computer-executable instructions when executed by the processor of the apparatus, further cause the control module to send, in response to the upgrade instruction, a control command to the interface module to perform I/O suspension on the first I/O instruction (Yi, col. 7, ln. 1-35, The disk manager 210 controls the performance of the online disk firmware upgrade process. … it will interact with software RAID controller to suspend/resume the disk).
As to claim 20, the rejection of claim 17 is incorporated. Yi as modified further discloses The computer program product of claim 19, wherein the computer-executable instructions when executed by the processor of the apparatus, further cause the interface module to execute the control command to perform I/O suspension on the first I/O instruction (Yi, col. 7, ln. 1-35, The disk manager 210 controls the performance of the online disk firmware upgrade process. … it will interact with software RAID controller to suspend/resume the disk; col. 7, ln. 16-25, The software RAID component 212 is instrumental in implanting the online disk firmware upgrade process. It provides an interface to suspend disks to be upgraded one disk at a time from the RAID Array. For a suspended disk, the software RAID component will not send Read/Write I/O requests to the disk).
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). 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 extension fee 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 date of this final action.
Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to DAXIN WU whose telephone number is (571) 270-7721. The examiner can normally be reached on M-F (7 am - 11:30 am; 1:30- 5 pm).
If attempts to reach the examiner by telephone are unsuccessful, the examiner' s supervisor, Wei Mui can be reached at (571) 272-3708. 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 Patent Center. Status information for published applications may be obtained from Patent Center. Status information for unpublished applications is available through Patent Center for authorized users only. Should you have questions about access to Patent Center, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free).
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) Form at https://www.uspto.gov/patents/uspto-automated- interview-request-air-form.
Wu, Daxin
Primary Examiner
Art Unit 2191
/DAXIN WU/Primary Examiner, Art Unit 2191