CTFR 18/750,605 CTFR 81527 Notice of Pre-AIA or AIA Status 07-03-aia AIA 15-10-aia 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 § 103 07-06 AIA 15-10-15 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. 07-20-aia AIA 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. 07-23-aia AIA 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. 07-21-aia AIA Claim (s) 1, 4, 7-10, and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Kotzur et al., US PGPub 2021/0096950, hereafter “Kotzur,” in view of Sharma et al., US PGPub 2021/0397517, hereafter “Sharma.” With respect to claim 1, Kotzur teaches a system, comprising: at least one controller, alone or in combination, configured to: determine a redundant array of independent disks (RAID) configuration comprising a RAID set of storage locations distributed among at least one data storage device, wherein each data storage device of the at least one data storage device comprises a non-volatile storage medium configured to store host data for at least one host system (pars. 31-33 and fig. 2, the RAID storage system is in a particular configuration, such as a RAID 5 configuration, and consists of data storage devices 206a through 206d, the data storage devices being non-volatile SSDs, storing data for host system 202) ; store, based on the RAID configuration, host data in at least one stripe set of blocks in the RAID set of storage locations (par. 51, data is stored in data stripes of the RAID system) ; delay, responsive to storing the host data in the at least one stripe set of blocks and until a parity write trigger event is determined, storing at least one parity block for each stripe set of blocks in the at least one stripe set of blocks (pars. 51-54, the update of the parity data is deferred until a parity update requirement has been met) ; determine that the parity write trigger event has occurred (par. 67 and fig. 4, decision block 410, it is determined that the parity update requirement is met) ; and store, responsive to the parity write trigger event, the at least one parity block for each stripe set of blocks in the at least one stripe set of blocks (par. 71 and fig. 4, decision block 516, the updated parity data is written) . Kotzur fails to teach to receive at least one device parameter from each data storage device of the at least one data storage device; determine, based on the at least one device parameter, a device risk value for each data storage device of the at least one data storage device; compare, for each data storage device of the at least one data storage device, the device risk value for that data storage device to a device risk threshold value; and determine, based on the device risk value for at least one data storage device meeting the device risk threshold value, that the parity write trigger event has occurred. Sharma teaches: receive at least one device parameter from each data storage device of the at least one data storage device (par. 46, the health conditions among the storage devices in the RAID group) ; determine, based on the at least one device parameter, a device risk value for each data storage device of the at least one data storage device (par. 46, determining the storage device health in relation to the health configuration thresholds. Par. 56 discloses this as having a higher risk of failure of data loss) ; compare, for each data storage device of the at least one data storage device, the device risk value for that data storage device to a device risk threshold value (par. 46, comparing the storage device health to the low health configuration threshold) ; determine, based on the device risk value for at least one data storage device meeting the device risk threshold value, that the parity write trigger event has occurred (par. 46, if the device health is below the low health configuration threshold, a higher parity level is triggered) ; It would have been obvious to one of ordinary skill in the art, having the teachings of Kotzur and Sharma before him before the earliest effective filing date, to modify the storage device of Kotzur with the storage device of Sharma, in order to avoid risk of failure or data loss by identifying low health storage locations, as taught by Sharma in par. 56. With respect to claim 4, Kotzur and Sharma teach all limitations of the parent claim. Kotzur further teaches the system of claim 1, wherein the at least one controller, alone or in combination, is further configured to: determine, based on at least one user configured parameter received from a user, at least one of the following: a time delay value for determining the parity write trigger event (par. 54, the parity update requirement is met when a timer indicates that the defined time period has passed. Note, the claim only requires at least one of the time delay value, scheduled time value, workload threshold value, device risk threshold value or manual event parameter) ; a scheduled time value for determining the parity write trigger event (par. 54, the parity update requirement may be met when a timer indicates that the defined time period has passed. Note, the claim only requires at least one of the time delay value, scheduled time value, workload threshold value, device risk threshold value or manual event parameter) ; a workload threshold value for determining the parity write trigger event (par. 54, the parity update requirement may be met when that interim parity data has been updated the defined number of times. Note, the claim only requires at least one of the time delay value, scheduled time value, workload threshold value, device risk threshold value or manual event parameter) ; the device risk threshold value for determining the parity write trigger event (par. 54, the parity update requirement may be met when the interim parity data has been updated the defined number of times, the risk threshold value of the claim. Note, the claim only requires at least one of the time delay value, scheduled time value, workload threshold value, device risk threshold value or manual event parameter) ; and use the at least one user configured parameter to determine the parity write trigger event (par. 54) . Sharma teaches: a manual event parameter for determining the parity write trigger event (par. 46, the low health configuration threshold) ; and With respect to claim 7, Kotzur and Sharma teach all limitations of the parent claim. Kotzur further teaches the system of claim 1, wherein: a time-based threshold value is selected from: a time delay value; and a scheduled time value (par. 54, the time period) ; and the at least one controller, alone or in combination, is further configured to: monitor a current time value; and compare the current time value to the time-based threshold value for each stripe set of blocks to determine the parity write trigger event for that stripe set of blocks (par. 54, determining whether the timer period has passed) . With respect to claim 8, Kotzur and Sharma teach all limitations of the parent claim. Sharma further teaches the system of claim 1, wherein: a workload threshold value is configured to indicate available resources for writing the at least one parity block for each stripe set of blocks in the at least one stripe set of blocks during host input/output operations (par. 49, the storage device identifiers for determining the available storage devices) ; and Kotzur teaches: the at least one controller, alone or in combination, is further configured to: monitor a current workload value (par. 54, monitoring the number of times the interim parity data has been updated) ; and compare the current workload value to the workload threshold value for the at least one stripe set of blocks to determine the parity write trigger event (par. 54, the parity update requirement may be met when the interim parity data has been updated the defined number of times) . With respect to claim 9, Kotzur and Sharma teach all limitations of the parent claim. Sharma further teaches the system of claim 1, wherein: the at least one device parameter comprises a plurality of device risk metrics for that data storage device of the at least one data storage device (par. 56, the low health threshold corresponding to higher risk of failure or data loss) ; and determining the device risk value for the at least one data storage device is based on a multi-variable model configured to transform the plurality of device risk metrics into the device risk value (par. 56, the number of available good health storage locations and low health storage locations for each device are the multiple variables) With respect to claim 10, Kotzur and Sharma teach all limitations of the parent claim. Sharma further teaches the system of claim 1, further comprising: a plurality of data storage devices in communication with the at least one controller (par. 27, the controller and data storage nodes) , wherein: the at least one data storage device comprises the plurality of data storage devices (par. 27, the data storage nodes) ; the parity write trigger event occurs if a number of device risk values for the plurality of data storage devices meet meets the device risk threshold value (par. 46, if the device health is below the low health configuration threshold, a higher parity level is triggered. Par. 56 discloses this corresponds to device risk) ; and the number of device risk values is based on a recoverable number of failures for the RAID configuration (par. 68) . With respect to claim 20, Kotzur teaches a system comprising: a processor (par. 30, processor 102) ; a memory (par. 30, system memory 114) ; means for determining a redundant array of independent disks (RAID) configuration comprising a RAID set of storage locations distributed among a plurality of data storage devices, wherein each data storage device of the plurality of data storage devices comprises a non- volatile storage medium configured to store host data for at least one host system (pars. 31-33 and fig. 2, the RAID storage system is in a particular configuration, such as a RAID 5 configuration, and consists of data storage devices 206a through 206d, the data storage devices being non-volatile SSDs, storing data for host system 202) ; means for storing, based on the RAID configuration, host data in at least one stripe set of blocks in the RAID set of storage locations (par. 51, data is stored in data stripes of the RAID system) ; means for delaying, responsive to storing the host data in the at least one stripe set of blocks and until a parity write trigger event is determined, storing at least one parity block for each stripe set of blocks in the at least one stripe set of blocks (pars. 51-54, the update of the parity data is deferred until a parity update requirement has been met) ; means for determining that the parity write trigger event has occurred (par. 67 and fig. 4, decision block 410, it is determined that the parity update requirement is met) ; and means for storing, responsive to the parity write trigger event, the at least one parity block for each stripe set of blocks in the at least one stripe set of blocks (par. 71 and fig. 4, decision block 516, the updated parity data is written) . Kotzur fails to teach means for receiving at least one device parameter from each data storage device of the plurality of data storage devices; means for determining, based on the at least one device parameter, a device risk value for each data storage device of the plurality of data storage devices: means for comparing, for each data storage device of the plurality of data storage devices, the device risk value for that data storage device to a device risk threshold value; means for determining, based on the device risk value for at least one data storage device of the plurality of data storage devices meeting the device risk threshold value, that the parity write trigger event has occurred. Sharma teaches: means for receiving at least one device parameter from each data storage device of the plurality of data storage devices (par. 46, the health conditions among the storage devices in the RAID group) ; means for determining, based on the at least one device parameter, a device risk value for each data storage device of the plurality of data storage devices (par. 46, determining the storage device health in relation to the health configuration thresholds. Par. 56 discloses this as having a higher risk of failure of data loss) ; means for comparing, for each data storage device of the plurality of data storage devices, the device risk value for that data storage device to a device risk threshold value (par. 46, comparing the storage device health to the low health configuration threshold) ; means for determining, based on the device risk value for at least one data storage device of the plurality of data storage devices meeting the device risk threshold value, that the parity write trigger event has occurred (par. 46, if the device health is below the low health configuration threshold, a higher parity level is triggered) ; It would have been obvious to one of ordinary skill in the art, having the teachings of Kotzur and Sharma before him before the earliest effective filing date, to modify the storage device of Kotzur with the storage device of Sharma, in order to avoid risk of failure or data loss by identifying low health storage locations, as taught by Sharma in par. 56 . 07-21-aia AIA Claim (s) 2-3 is/are rejected under 35 U.S.C. 103 as being unpatentable over Kotzur and Sharma, as applied to claim 1 above, in view of Morishita et al., US PGPub 2007/0168634, hereafter “Morishita.” With respect to claim 2, Kotzur and Sharma teach all limitations of the parent claim, but fails to disclose the RAID set of storage locations comprises data storage locations in a plurality of namespaces allocated in the at least one data storage device; the at least one controller is, alone or in combination, is further configured to determine a plurality of host connections to the plurality of namespaces in the at least one data storage device; and each stripe set of blocks and corresponding at least one parity block for the at least one stripe set of blocks are distributed among the plurality of namespaces. Morishita further teaches the system of claim 1, wherein: the RAID set of storage locations comprises data storage locations in a plurality of namespaces allocated in the at least one data storage device (par. 58, the pool groups correspond to the plurality of namespaces, which contain volumes, which correspond to the set of data storage locations) ; the at least one controller, alone or in combination, is further configured to determine a plurality of host connections to the plurality of namespaces in the at least one data storage device (pars. 57-58, the host computers are connected to the pool groups, the namespaces of the claim) ; and each stripe set of blocks and corresponding at least one parity block for the at least one stripe set of blocks are distributed among the plurality of namespaces (par. 86, which discloses the ability to use RAID 5 as one of the configurations, which by definition, divides the data across multiple drives with a distributed parity, so one of the drives allocated for the RAID stripe stores a parity block) . It would have been obvious to one of ordinary skill in the art, having the teachings of Kotzur, Sharma and Morishita before him before the earliest effective filing date, to modify the memory allocation system of Kotzur and Sharma with the memory allocation system of Morishita, in order to use storage pool management technology, as with storage pool management technology, it is only necessary to allocate a pool region to a logical region to be used, and thus there is an advantage in this technology that the size of a logical storage region can be set larger than the size of a physical storage region, as taught by Morishita in par. 6. With respect to claim 3, Kotzur, Sharma and Morishita teach all limitations of the parent claim. Morishita further teaches the system of claim 2, wherein: each namespace of the plurality of namespaces has a first allocated capacity (par. 62, each pool group has capacity allocated to it) ; at least one namespace of the plurality of namespaces is configured to allocate a portion of the first allocated capacity to a floating namespace pool (par. 62, “Specifically, the pool free region is a pool region which is not allocated directly to the virtual volumes 5, but allocated to any of the pool groups 40 first, and then allocated to the virtual volumes 5”) ; and the at least one controller, alone or in combination, is further configured to selectively allocate capacity from the floating namespace pool to at least one namespace of the plurality of namespaces for storing the at least one parity block (par. 62, capacity is allocated from the pool free region to a pool region group, and par. 86, which discloses the ability to use RAID 5 as one of the configurations, which by definition, divides the data across multiple drives with a distributed parity, so one of the drives allocated for the RAID stripe stores a parity block) . Allowable Subject Matter 12-151-07 AIA 07-97 12-51-07 Claim s 11-19 are allowed. 13-03 AIA The following is an examiner’s statement of reasons for allowance: No prior art of record teaches “receiving host data for a first stripe set of blocks of a plurality of stripe sets of blocks; determining a first priority value associated with the host data for the first stripe set of blocks; storing, based on the RAID configuration, the host data in the first stripe set of blocks in the RAID set of storage locations; delaying, responsive to storing the host data in the first stripe set of blocks and until a parity write trigger event is determined, storing at least one parity block for the first stripe set of blocks; receiving host data for a second stripe set of blocks of the plurality of stripe sets of blocks; determining a second priority value associated with the host data for the second stripe set of blocks; storing, based on the second priority value indicating no delayed parity and prior to determining that the parity write trigger event has occurred, at least one parity block for the second stripe set of blocks; determining that the parity write trigger event has occurred; and storing, responsive to the parity write trigger event, the at least one parity block for the first stripe set of blocks,” in combination with the rest of the claim limitations . Any comments considered necessary by applicant must be submitted no later than the payment of the issue fee and, to avoid processing delays, should preferably accompany the issue fee. Such submissions should be clearly labeled “Comments on Statement of Reasons for Allowance.” Claims 12-19 depend from claim 11 and are allowable by virtue of their dependence on the allowed base claim. 12-151-08 AIA 07-43 12-51-08 Claim s 5-6 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims. With respect to claim 5, no prior art of record teaches to “receive the host data for the first stripe set of blocks; determine a first priority value associated with the host data for the first stripe set of blocks; receive the host data for a second stripe set of blocks; determine a second priority value associated with host data for the second stripe set of blocks; generate, based on the second priority value indicating no delayed parity, a second set of parity blocks for the second stripe set of blocks; store, without delay, the second set of parity blocks for the second stripe set of blocks; and generate, based on the first priority value indicating delayed parity and responsive to the parity write trigger event, a first set of parity blocks for the first stripe set of blocks; and storing the at least one parity block for each stripe set of blocks in the at least one stripe set of blocks includes storing the first set of parity blocks,” in combination with all of the limitations of the parent claim and any intervening claims. With respect to claim 6, no prior art of record teaches to “store, in a RAID stripe data structure, block location identifiers for each stripe set of blocks in the at least one stripe set of blocks; identify, in the RAID stripe data structure, the at least one stripe set of blocks with a delayed parity identifier; store, in the RAID stripe data structure and responsive to the parity write trigger event, parity block location identifiers for each of the at least one parity block for each stripe set of blocks in the at least one stripe set of blocks; and remove, responsive to storing the parity block location identifiers, corresponding delayed parity identifiers for each stripe set of blocks in the at least one stripe set of blocks,” in combination with all of the limitations of the parent claim and any intervening claims. Response to Arguments 07-37 AIA Applicant's arguments filed 02/17/2026 have been fully considered but they are not persuasive. Applicant’s arguments on pages 15-16 are directed towards Kotzur failing to teach the elements of claim 10 incorporated into claim 1. These arguments are moot, as the new Sharma reference teaches these limitations. Claim 20 is similarly rejected. With respect to Applicant’s arguments regarding claim 5, these arguments are persuasive, as the claim amendments now specify that all limitations must occur. Claim 11 is allowable, as it now incorporates the subject matter from claims 5/15 that was not found in the prior art . Conclusion 07-40 AIA 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 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 RYAN DARE whose telephone number is (571)272-4069. The examiner can normally be reached M-F 9:00-5:00. 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, Hosain Alam can be reached at 571-272-3978. 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. /RYAN DARE/Examiner, Art Unit 2132 /HOSAIN T ALAM/Supervisory Patent Examiner, Art Unit 2132 Application/Control Number: 18/750,605 Page 2 Art Unit: 2132 Application/Control Number: 18/750,605 Page 3 Art Unit: 2132