FINAL OFFICE ACTION
Response to Arguments
Applicant’s arguments with respect to the claims have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1, 3-14 and 26-31 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Patent No. 8,099,623 to Li et al. (hereinafter Li) in view of U.S. Patent Pub. No. 2017/0277458 to Yamamoto.
Li discloses:
1. A method comprising:
operating, as a first rescue space, a first portion of a first storage device of a storage array (col. 8, lns. 1-16, col. 10, lns 16-17 and Fig. 2B – spare space in parity declustered RAID organization 240);
operating, as a second rescue space, a portion of a second storage device of the storage array (col. 8, lns. 1-16, col. 10, lns 16-17 and Fig. 2B – spare space in parity declustered RAID organization 240);
operating, as a user space, a second portion of the first storage device and a portion of a third storage device of the storage array (col. 8, lns. 8-12 and Fig. 2B – each drive has user space and spare space).
Li does not disclose expressly:
receiving a write request to write data to the portion of the third storage device; and
writing, based on the write request and a fault at the third storage device, a first portion of the data to the first rescue space and a second portion of the data to the second rescue space.
Yamamoto teaches:
receiving a write request to write data to the portion of the third storage device (paras. [0027], [0033]); and
writing, based on the write request and a fault at the third storage device, a first portion of the data to the first rescue space and a second portion of the data to the second rescue space (para. [0056] and Fig. 8).
Before the effective filing date of the invention, it would have been obvious to a person of ordinary skill in the art to modify Li by receiving a write request and writing to rescue spaces, as taught by Yamamoto. A person of ordinary skill in the art would have been motivated to do so in order to extend the life span of SSDs and maintain efficient use of system resources, as described by Yamamoto (paras. [0077]-[0079]).
3. The method of claim 1, further comprising:
mapping the first portion of the data from the third storage device to the first rescue space and the second portion of the data from the third storage device to the second rescue space based on the fault at the third storage device (Li – col. 8, lns. 6-17, col. 10, lns. 34-41, and col. 12, lns. 5-12).
4. The method of claim 1, wherein:
the data comprises a strip of data (Li - col. 3, lns. 16-21)
the first portion of data comprises a first portion of the strip of data (Li – Fig, 6, S1-3 on drive 3);
the first portion of the strip of data is mapped to the first rescue space (Li - col. 13, lns. 25-28 and Fig. 6, S1-3 reconstructed to drive 4); and
the first portion of the strip of data comprises a number of data blocks based on a size of the strip of data and a size of the data blocks (Li - col. 3, lns. 16-21, col. 6, lns. 8-22).
5. The method of claim 4, wherein the number of data blocks is further based on a total number of storage devices in the storage array (Li - col. 3, lns. 16-21, col. 6, lns. 8-22).
6. The method of claim 1, further comprising assigning at least one device identifier (ID) of the first storage device to a device ID of the third storage device (Li - col. 13, lns. 28-31, col. 13, lns. 50-52 and Fig. 6, table 620, table 650).
7. The method of claim 1, further comprising redirecting one or more inputs and/or outputs (I0s) from the third storage device to the first rescue space and the second rescue space (Li - col. 5, lns. 49-53 and col. 13, ln. 63-col. 14, ln. 5).
8. The method of claim 1, wherein the first rescue space has a capacity based on a capacity of the first storage device and a total number of storage devices in the storage array (Li - col. 8, lns 50-58).
9. The method of claim 4, wherein the first rescue space has a capacity of strips based on a size of the first rescue space and a block size (Li - col. 3, lns. 16-21, col. 6, lns. 8-22, and col. 8, lns. 50-58).
10. A system comprising a storage array comprising:
a first fault resilient storage device (Li - Fig. 2B, drive 4);
a second fault resilient storage device (Li - Fig. 2B, drive 2);
a third fault resilient storage device (Li - Fig. 2B, drive 3); and
a volume manager configured to:
allocate, as a first rescue space, a first portion of the first fault resilient storage device (Li - col. 8, lns. 1-16, col. 10, lns 16-17 and Fig. 2B);
allocate, as a second rescue space, a portion of the second fault resilient storage device (Li - col. 8, lns. 1-16, col. 10, lns 16-17 and Fig. 2B);
allocate, as a user space, a second portion of the first fault resilient storage device and a portion of the third fault resilient storage device (Li - col. 8, lns. 8-12 and Fig. 2B);
perform a determination of a fault at the third fault resilient storage device (Li - col. 10, lns. 30-34, col. 11, lns. 19-28),
map data from the portion of the third fault resilient storage device to the first rescue space and the second rescue space based on the determination of the fault at the third fault resilient storage device (Li - col. 8, lns. 6-17, col. 10, lns. 34-41, and col. 12, lns. 5-12);
receive a write request for the portion of the third fault resilient storage device (Yamamoto - paras. [0027], [0033]); and
write, based on the determination of the fault and the write request, a first portion of the data to the first rescue space and a second portion of the data to the second rescue space (Yamamoto - para. [0056] and Fig. 8).
11. The system of claim 10, wherein the volume manager is further configured to:
map a first block of the data to the first rescue space (Li - col. 13, lns. 25-28 and Fig. 6, S1-3 reconstructed to drive 4); and
map a second block of the data to the second rescue space (Li - col. 13, lns. 25-28 and Fig. 6, S3-3 reconstructed to drive 2).
12. The system of claim 10, wherein:
the data comprises a strip of data (Li - col. 3, lns. 16-21);
the first portion of data comprises a first portion of the strip of data (Li – Fig, 6, S1-3 on drive 3); and
the volume manager is further configured to map the first portion of the strip of data to the first rescue space (Li - col. 13, lns. 25-28 and Fig. 6, S1-3 reconstructed to drive 4).
13. The system of claim 12, wherein the first portion of the strip of data comprises a number of data blocks based on a size of the strip of data and a size of the data blocks (Li - col. 3, lns. 16-21, col. 6, lns. 8-22).
14. The system of claim 13, wherein the number of data blocks is further based on a total number of storage devices in the storage array (Li - col. 3, lns. 16-21, col. 6, lns. 8-22).
26. The method of claim 1, wherein the user space is separate from the first rescue space (Li - col. 8, lns. 8-12 and Fig. 2B).
27. The method of claim 1, further comprising:
allocating, as the first rescue space, the first portion of the first storage device, thereby creating a first allocated rescue space (Li - col. 8, lns. 8-12 and Fig. 2B); and
allocating, the portion of the third storage device, thereby creating an allocated portion of user space (Li - col. 8, lns. 8-12 and Fig. 2B);
wherein the writing the first portion of the data to the first rescue space comprises writing first portion of the the data to the first allocated rescue space (Yamamoto - para. [0056] and Fig. 8).
28. The method of claim 1, wherein the write request comprises a write request from a host for a normal write operation (Yamamoto - paras. [0027], [0033]).
29. The method of claim 1, further comprising operating, based on the fault, the third storage device in a read-only mode (Yamamoto – para. [0030]).
30. The system of claim 10, wherein the write request comprises a write request from a host for a normal write operation (Yamamoto - paras. [0027], [0033]).
31. The system of claim 10, wherein the third fault resilient storage device is configured to operate, based on the fault, in a read-only mode (Yamamoto – para. [0030]).
Claims 15-17 and 20-22 are rejected under 35 U.S.C. 103 as being unpatentable over Li in view Yamamoto as applied above, and further in view of U.S. Patent Pub. No. 2019/0087290 to Rutman et al. (hereinafter Rutman), and U.S. Patent Pub. No. 2013/0173955 to Hallak et al. (hereinafter Hallak).
Modified Li discloses:
15. A method of operating a storage array, the method comprising:
operating, as a first rescue space, a first portion of a first fault resilient storage drive of the storage array (Li - col. 8, lns. 1-16, col. 10, lns 16-17 and Fig. 2B);
determining a first parameter of a first fault resilient storage device of the storage array (Li - col. 8, lns. 50-58, col. 13, lns. 4-18);
operating, as a second rescue space, a portion of a second fault resilient storage drive of the storage array (Li - col. 8, lns. 8-12 and Fig. 2B);
determining a second parameter of a second fault resilient storage device of the storage array (Li - col. 8, lns. 50-58, col. 13, lns. 4-18);
operating, as a user space, a second portion of the first fault resilient storage and a portion of a third fault resilient storage drive of the storage array (Li - col. 8, lns. 8-12 and Fig. 2B);
receiving a write request to write data to the portion of the third fault resilient storage drive (Yamamoto - paras. [0027], [0033]);
writing, based on the write request and a fault at the third fault resilient storage drive, a first portion of the data to the first rescue space and a second portion of the data to the second rescue space (Yamamoto - para. [0056] and Fig. 8).
Li does not disclose expressly:
determining a quality-of-service (QoS) of the storage array based on the first parameter and the second parameter;
wherein:
the determination of the QOS is based on the fault at the third fault resilient storage drive; and
the method further comprises modifying, based on the fault at the third fault resilient storage dive, a speed of the third fault resilient storage drive or modifying a capacity of the third fault resilient storage drive.
Rutman teaches:
modifying, based on the fault at the third fault resilient storage dive, a speed of the third fault resilient storage drive or modifying a capacity of the third fault resilient storage drive (paras. [0063]-[0065] and Fig. 5, layouts 402, 404, 406 – node 412 is used at a lower capacity after failure of 403).
Before the effective filing date of the invention, it would have been obvious to a person of ordinary skill in the art to modify Li by using a fault resilient operating mode, as taught by Rutman. A person of ordinary skill in the art would have been motivated to do so in order to utilize all spare space on an as-needed basis to provide enhanced data availability, as discussed by Rutman (para. [0016]).
Hallak teaches:
determining a quality-of-service (QoS) of the storage array based on the first parameter and the second parameter (paras. [0088], [0100], [0102]);
wherein the determination of the QOS is based on the fault at the third fault resilient storage drive (paras. [0096], [0100] and Fig. 5, State 5.2).
Before the effective filing date of the invention, it would have been obvious to a person of ordinary skill in the art to modify Li by determining a QOS, as taught by Hallak. A person of ordinary skill in the art would have been motivated to do so in order to provide different levels of performance for different sections of the storage array, as discussed by Hallak (paras. [0100], [0102]).
Modified Li discloses:
16. The method of claim 15, further comprising adjusting the first parameter based on the QoS (Li – col. 13, lns. 4-18 and Hallak - paras. [0100], [0102]).
17. The method of claim 16, wherein the first parameter is adjusted based on monitoring the first parameter (Li – col. 13, lns. 4-18 and Hallak - paras. [0100], [0102]).
20. The method of claim 16, wherein the first parameter is adjusted by controlling an operation of a component of the storage array (Li – col. 13, lns. 4-18 and Hallak - paras. [0100], [0102]).
21. The method of claim 15, wherein the first parameter comprises one of a number of storage drives in the storage array, a number of data blocks in a strip of user data for the first fault resilient storage drive, a write method for directing data from the first fault resilient storage drive to the second fault resilient storage drive, a number of faulty storage drive supported by the storage array, or a storage capacity of the first fault resilient storage drive (Li - col. 8, lns. 50-58 and Hallak - paras. [0100], [0102]).
22. A system comprising a storage array comprising:
a first fault resilient storage drive (Li - Fig. 2B, drive 4);
a second fault resilient storage drive (Li - Fig. 2B, drive 2);
a third fault resilient storage drive (Li – Fig. 2B, drive 3); and
a volume manager configured to:
allocate, as a first rescue space, a first portion of the first fault resilient storage drive (Li - col. 8, lns. 1-16, col. 10, lns 16-17 and Fig. 2B);
allocate, as a second rescue space, first portion of the second fault resilient storage drive (Li - col. 8, lns. 8-12 and Fig. 2B);
allocate, as a user space, a second portion of the first resilient storage drive and a portion of a third fault resilient storage drive (Li - col. 8, lns. 8-12 and Fig. 2B);
perform a determination of a fault at the third fault resilient storage drive (Li - col. 10, lns. 30-34, col. 11, lns. 19-28);
map data from the portion of the third fault resilient storage drive to the first rescue space and the second rescue space based on the determination of the fault at the third fault resilient storage drive (Li - col. 8, lns. 6-17, col. 10, lns. 34-41, and col. 12, lns. 5-12);
receive a write request to write data to the portion of the third fault resilient storage drive (Yamamoto - paras. [0027], [0033]);
write, based on the determination and the write request, a first portion of the data to the first rescue space and a second portion of the data to the second rescue space (Yamamoto - para. [0056] and Fig. 8);
determine a first parameter of the first fault resilient storage drive (Li - col. 8, lns. 50-58, col. 13, lns. 4-18);
determine a second parameter of the second fault resilient storage drive (Li - col. 8, lns. 50-58, col. 13, lns. 4-18); and
perform a determination of a quality-of-service (QoS) of the storage array based on the first parameter and the second parameter (Hallak - paras. [0088], [0100], [0102]);
wherein the determination the QOS is based on the determination of the fault at the third fault resilient storage drive (Hallak - paras. [0096], [0100] and Fig. 5, State 5.2); and
the volume manager is further configured to modify, based on the determination of the fault at the third fault resilient storage drive, a speed of the third fault resilient storage drive or modifying a capacity of the third fault resilient storage drive (Rutman - paras. [0063]-[0065] and Fig. 5, layouts 402, 404, 406).
Conclusion
Applicant's amendment necessitated the new grounds 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 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 Philip Guyton whose telephone number is (571)272-3807. The examiner can normally be reached M-F 8:00-4:30.
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 at (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.
/PHILIP GUYTON/Primary Examiner, Art Unit 2113