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 .
Response to Amendment
This action is in response to applicant’s arguments and amendments filed 7/02/2026, which are in response to USPTO Office Action mailed 4/03/2026. Applicant’s arguments have been considered with the results that follow: THIS ACTION IS MADE FINAL.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 3/27/2026 is/are in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is/are being considered by the examiner.
Status of Claims
Claims 1-20 are currently pending in the present application.
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.
Claim(s) 1-2, 6, 8-10, 14-18 and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Guo et al. (US PGPUB No. 2021/0019083; Pub. Date: Jan. 21, 2021) in view of Prabhakaran et al. (US PGPUB No. 2024/0378181; Pub. Date: Nov. 14, 2024).
Regarding independent claim 1,
Guo discloses a system comprising: a data lake storing a plurality of files managed by a table format, wherein the table format manages the plurality of files as logical datasets independent of physical storage locations; See FIG. 1, (Disclosing a method for managing zones of a memory device of a storage unit that comprises a dispersed storage network (DSN). FIG. 1 illustrates the distributed or dispersed storage network (DSN) 10 comprising a plurality of storage units 36 of DNS memory 22 connected to a plurality of computing devices 12, 14, 16 operatively coupled via network 24.) See FIG. 10A-10D & Paragraph [0050], (Memory device allocation tables are used to indicate a status of a zone of a memory device, i.e. a data lake storing a plurality of files managed by a table format (e.g. the DSN is structured based on the zone allocation tables), i.e. wherein the table format manages the plurality of files as logical datasets independent of physical storage locations (e.g. the zone allocation table manages a plurality of logical address ranges of a memory device. Note [0022] wherein the DSN memory 22 comprises a plurality of storage units 36 located at geographically different sites and may include a plurality of memory devices for storing dispersed error encoded data);)
a processor coupled to the data lake; See FIG. 2 & Paragraphs [0022] & [0031], (DSN memory 2 2 includes a plurality of storage units 36 each comprising a computing core. Computing devices 12, 14, 16 also include a computing core 26. A computing core 26 incudes a processing module 50, memory controller 52, main memory 54, etc., i.e. a processor coupled to the data lake (e.g. each computing device and storage unit is connected to the system via network 24).)
and a memory that stores program code structured to cause the processor to: determine a statistic for a plurality of candidates comprising a first candidate and a second candidate, the first candidate comprising a first subset of the plurality of files, the second candidate comprising a second subset of the plurality of files; See FIG. 14 & Paragraph [0073], (FIG. 14 illustrates a method of recovering a zone of a memory device of the DSN where a computing device of the DSN determines whether to perform compaction on a zone based on determining a compaction ranking for the zone based on a ranking of zones with a pending recovery status and comparing an amount of valid data blocks in the zone to an amount of unused available data blocks in the zone, i.e. a memory (e.g. main memory 54 of the plurality of computing devices) that stores program code structured to cause the processor to: determine a statistic for a plurality of candidates comprising a first candidate and a second candidate (e.g. compaction ranking is based on a ranking of zones with a pending recovery status), the first candidate comprising a first subset of the plurality of files , the second candidate comprising a second subset of the plurality of files (e.g. each zone of memory represents a subset of a memory system having a specified size);)
Guo does not explicitly disclose rank[ing], based on the statistic, the plurality of candidates with respect to a compaction objective by comparing the plurality of candidates against one another, the compaction objective specifying a target outcome of compacting at least one of the plurality of candidates;
select the first candidate from among at least the first candidate and the second candidate based at least on said ranking;
determine a first compaction action based at least on the compaction objective, the table format, and the selected first candidate;
and conduct the first compaction action with respect to the first candidate.
Prabhakaran discloses the step of rank[ing], based on the statistic, the plurality of candidates with respect to a compaction objective by comparing the plurality of candidates against one another, See Paragraph [0046], (Disclosing a system for managing the organization of data tables in cloud-based storage. The system comprises a cost-benefit analysis module 520 for determining a cost benefit metric for each candidate operation and for each data table using a machine learning cost model. The system may select an operation for automation of the data table based on determining a candidate maintenance operation with the best or highest cost-benefit metric, i.e. rank, based on the statistic, the plurality of candidates with respect to a compaction objective by comparing the plurality of candidates against one another (e.g. cost-benefit analysis module 520 may select a candidate maintenance operation having a best/highest cost-benefit metric, i.e. the collection of cost metrics are compared to determine a best cost-benefit metric.).)
the compaction objective specifying a target outcome of compacting at least one of the plurality of candidates; See Paragraph [0049], (Advisor 650 may generate a set of candidate maintenance operations for each table of customer data such as by generating compaction operations for a table with many small files. The cost-benefit analysis is performed for the plurality of maintenance operations to determine which maintenance operations may be executed, i.e. the compaction objective specifying a target outcome of compacting at least one of the plurality of candidates;)
select the first candidate from among at least the first candidate and the second candidate based at least on said ranking; See FIG. 7 & Paragraph [0051], (FIG. 7 illustrates the method comprising step 730 of selecting a maintenance operation from the plurality of candidate maintenance operations based on determining an operation with a highest cost and/or benefit, i.e. select the first candidate from among at least the first candidate and the second candidate based at least on said ranking (e.g. the selected maintenance operation is chosen from among a set of operations based on comparing cost-benefit metrics);)
determine a first compaction action based at least on the compaction objective, the table format, and the selected first candidate; See Paragraph [0049], (Advisor 650 may generate a maintenance operation such as a compaction operation for a table with many small files based on performing a cost-benefit analysis, i.e. determine a first compaction action based at least on the compaction objective, the table format, and the selected first candidate (e.g. the system may execute a cost-benefit analysis to select a maintenance operation from a plurality of maintenance operations directed to data tables, such as by indicating that a table with many small files is in need of a compaction operation );)
and conduct the first compaction action with respect to the first candidate. See FIG. 7 & Paragraph [0051], (FIG. 7 illustrates the method comprising step 740 of automating execution of the selected maintenance operation, i.e. conduct the first compaction action with respect to the first candidate.)
Guo and Prabhakaran are analogous art because they are in the same field of endeavor, storage maintenance. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Guo to include the method of executing cost-benefit analysis to select an optimal maintenance operation as disclosed by Prabhakaran. Paragraph [0057] of Prabhakaran discloses that the proposed configurations provide a framework for automating maintenance operations on data tables which may improve system performance by lowering expenses for executing queries, as well as providing more organized, efficiently stored data to users without requiring a user to manually select maintenance operations for each customer data table.
Regarding dependent claim 2,
As discussed above with claim 1, Guo-Prabhakaran discloses all of the limitations.
Guo further discloses the step wherein said ranking of the plurality of candidates with respect to the compaction objects comprises: determining a trait based on the statistic, the trait describing a state of a respective candidate of the plurality of candidates; See Paragraph [0073], (The determination to perform compaction is based on determining a compaction ranking for a zone based on a ranking of zones with a pending recovery status, i.e. determining a trait based on the statistic (e.g. by determining the value of the zone status attribute of a zone entry on the allocation table), the trait describing a state of a respective candidate of the plurality of candidates (e.g. Note [0052] the zone status indicates the status/health state of each zone);
and ranking the plurality of candidates based on their respective states. See Paragraph [0073], (The determination to perform compaction is based on determining a compaction ranking for a zone based on a ranking of zones with a pending recovery status, i.e. ranking the plurality of candidates based on their respective states (e.g. a compaction ranking is determined for zones with a pending recovery status).)
Regarding dependent claim 6,
As discussed above with claim 1, Guo-Prabhakaran discloses all of the limitations.
Guo further discloses the step wherein the program code is further structured to cause the processor to: detect a triggering event; See FIG. 13 & Paragraph ]0060], (When a zone is assigned a pending recovery status, a recovery or compaction process is initiated. FIG. 13 illustrates the method comprising step 140 of determining if a number of error zones exceeds a zone error threshold. Step 144 of assigning a pending recovery status to first and second zones is executed when the zone error threshold is not exceeded, i.e. detect a triggering event;)
and determine the statistic for the plurality of candidates responsive to the detection of the triggering event. See FIG. 13 & Paragraph ]0060], (Step 144 of assigning a pending recovery status to first and second zones is executed when the zone error threshold is not exceeded, i.e. determine the statistic for the plurality of candidates responsive to the detection of the triggering event (e.g. the status field of a zone is set to "pending recovery" following step 140).)
Regarding dependent claim 8,
As discussed above with claim 1, Guo-Prabhakaran discloses all of the limitations.
Guo further discloses the step wherein the program code is further structured to cause the processor to: receive a result of the first compaction action; See FIG. 14 & Paragraph [0060], ( Step 144 of assigning a pending recovery status to first and second zones is executed when the zone error threshold is not exceeded, i.e. determine the statistic for the plurality of candidates responsive to the detection of the triggering event (e.g. the status field of a zone is set to "pending recovery" following step 140).)
compare the result of the first compaction action with an estimated result utilized to rank the first compaction action, resulting in a comparison result; See FIG. 14 & Paragraph ]0060], (At step 150, the system may determine that compaction is to be performed on a selected zone. The compaction process includes determining if any read error exist for any of the blocks of the zone, wherein steps 160-166 occur if read errors exist. Otherwise, the system performs step 156, i.e. steps 160-166 and 156 represent compaction processes and results. Step 166 comprises a comparison between the number of error blocks in a zone and an error block threshold, i.e. compare the result of the first compaction action with an estimated result utilized to rank the first compaction action (e.g. Note [0048] wherein the status of a block is dependent on the number of error blocks in a zone), resulting in a comparison result;)
and update the statistic for the first candidate based at least on the comparison result. See FIG. 14 & Paragraph ]0060], (Steps 158 and 168 comprise assigning a health status to a zone based on the comparison performed in step 166, i.e. update the statistic for the first candidate based at least on the comparison result.)
Regarding independent claim 9,
Guo discloses a method comprising: determining a statistic for a plurality of candidates, candidates of the plurality of candidates comprising a respective set of files managed by a table format , wherein the table format manages the set of files as logical datasets independent of physical storage locations; See FIG. 14 & Paragraph [0073], (Disclosing a method for managing zones of a memory device of a storage unit that comprises a dispersed storage network (DSN). FIG. 14 illustrates a method of recovering a zone of a memory device of the DSN where a computing device of the DSN determines whether to perform compaction on a zone based on determining a compaction ranking for the zone based on a ranking of zones with a pending recovery status and comparing an amount of valid data blocks in the zone to an amount of unused available data blocks in the zone, i.e. determining a statistic for a plurality of candidates (e.g. a field such as the health status of a zone), candidates of the plurality of candidates comprising a respective set of files managed by a table format (e.g. Note [0050] wherein the DSN is structured based on the zone allocation tables);) See FIG. 10A-10D & Paragraph [0050], (Memory device allocation tables are used to indicate a status of a zone of a memory device, i.e. a data lake storing a plurality of files managed by a table format (e.g. the DSN is structured based on the zone allocation tables), i.e. wherein the table format manages the plurality of files as logical datasets independent of physical storage locations (e.g. the zone allocation table manages a plurality of logical address ranges of a memory device. Note [0022] wherein the DSN memory 22 comprises a plurality of storage units 36 located at geographically different sites and may include a plurality of memory devices for storing dispersed error encoded data);)
determining, based on the statistic, a trait describing a state of the plurality of candidates; See Paragraph [0047], (Each zone of the memory devices is assigned a status indicating a health state. A "pending-recovery" status indicates that a compaction will be performed on the zone, i.e. determining, based on the statistic, a trait describing a state of the plurality of candidates;)
Guo does not explicitly disclose ranking, based on the trait, the plurality of candidates with respect to a compaction objective by comparing the plurality of candidates against one another, the compaction objective specifying a target outcome of compacting at least one of the plurality of candidates;
selecting a first candidate of the plurality of candidates based at least on said ranking;
determining a first compaction action based at least on the compaction objective, the table format, and the first candidate;
and causing performance of the first compaction action with respect to the first candidate.
Prabhakaran discloses the step of ranking, based on the trait, the plurality of candidates with respect to a compaction objective by comparing the plurality of candidates against one another, See Paragraph [0046], (Disclosing a system for managing the organization of data tables in cloud-based storage. The system comprises a cost-benefit analysis module 520 for determining a cost benefit metric for each candidate operation and for each data table using a machine learning cost model. The system may select an operation for automation of the data table based on determining a candidate maintenance operation with the best or highest cost-benefit metric, i.e. rank, based on the statistic, the plurality of candidates with respect to a compaction objective by comparing the plurality of candidates against one another (e.g. cost-benefit analysis module 520 may select a candidate maintenance operation having a best/highest cost-benefit metric, i.e. the collection of cost metrics associated with the maintenance operations are compared to determine a best cost-benefit metric.).)
the compaction objective specifying a target outcome of compacting at least one of the plurality of candidates; See Paragraph [0049], (Advisor 650 may generate a set of candidate maintenance operations for each table of customer data such as by generating compaction operations for a table with many small files. The cost-benefit analysis is performed for the plurality of maintenance operations to determine which maintenance operations may be executed, i.e. the compaction objective specifying a target outcome of compacting at least one of the plurality of candidates;)
select the first candidate from among at least the first candidate and the second candidate based at least on said ranking; See FIG. 7 & Paragraph [0051], (FIG. 7 illustrates the method comprising step 730 of selecting a maintenance operation from the plurality of candidate maintenance operations based on determining an operation with a highest cost and/or benefit, i.e. select the first candidate from among at least the first candidate and the second candidate based at least on said ranking (e.g. the selected maintenance operation is chosen from among a set of operations based on comparing cost-benefit metrics);)
determine a first compaction action based at least on the compaction objective, the table format, and the selected first candidate; See Paragraph [0049], (Advisor 650 may generate a maintenance operation such as a compaction operation for a table with many small files based on performing a cost-benefit analysis, i.e. determine a first compaction action based at least on the compaction objective, the table format, and the selected first candidate (e.g. the system may execute a cost-benefit analysis to select a maintenance operation from a plurality of maintenance operations directed to data tables, such as by indicating that a table with many small files is in need of a compaction operation );)
and conduct the first compaction action with respect to the first candidate. See FIG. 7 & Paragraph [0051], (FIG. 7 illustrates the method comprising step 740 of automating execution of the selected maintenance operation, i.e. conduct the first compaction action with respect to the first candidate.)
Guo and Prabhakaran are analogous art because they are in the same field of endeavor, storage maintenance. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Guo to include the method of executing cost-benefit analysis to select an optimal maintenance operation as disclosed by Prabhakaran. Paragraph [0057] of Prabhakaran discloses that the proposed configurations provide a framework for automating maintenance operations on data tables which may improve system performance by lowering expenses for executing queries, as well as providing more organized, efficiently stored data to users without requiring a user to manually select maintenance operations for each customer data table.
Regarding dependent claim 10,
As discussed above with claim 9, Guo-Prabhakaran discloses all of the limitations.
Guo further discloses the step wherein: the plurality of candidates comprises a second candidate; See FIG. 13 & Paragraph [0072], (The system may process a plurality of zones according to FIG. 13 wherein at step 140 the system may determine that a number of error zones exceeds a zone error threshold. Step 144 of assigning a pending recovery status to first and second zones occurs if the zone error threshold is not exceeded, i.e. wherein: the plurality of candidates comprises a second candidate (e.g. a second zone having a pending recovery status).)
said ranking the plurality of candidates comprises: ranking, based on the trait and a first set of files of the first candidate, the first candidate with respect to the compaction objective, resulting in a first rank, and ranking, based on the trait and a second set of files of the second candidate, the second candidate with respect to the compaction objective, resulting in a second rank; See Paragraphs [0073]-[0074], (The computing device of the DSN determines whether to perform compaction on a zone based on a ranking of zones with a pending recovery status and comparing an amount of valid data blocks in the zone to an amount of unused available data blocks in the zone. Compaction is performed on a zone in order to attempt to retrieve data from the zone while it is still fresh, i.e. said ranking the plurality of candidates comprises: ranking, based on the trait and a first set of files of the first candidate (e.g. zones are ranked based on a ranking of zones with a pending recovery status), the first candidate with respect to the compaction objective, resulting in a first rank (e.g. the objective of the compaction is to retrieve data from the zone while it is still fresh), and ranking, based on the trait and a second set of files of the second candidate, the second candidate with respect to the compaction objective, resulting in a second rank (e.g. The ranking of zones is applied to each zone with a pending recovery status as indicated in the zone allocation table of a memory device).)
and said selecting the first candidate comprises: selecting the first candidate based at least on the first rank being higher than the second rank. See FIG. 14 & Paragraph [0073], (Step 150 of performing a compaction for a zone includes determining a compaction ranking for the zone based on a ranging of zones with a pending recovery status and comparing ana mount of valid data blocks in the zone to an amount of unused available data blocks in the zone, i.e. selecting the first candidate based at least on the first rank being higher than the second rank (e.g. the zone to be compacted is determined based on the ranking).)
Regarding dependent claim 14,
As discussed above with claim 9, Guo-Prabhakaran discloses all of the limitations.
Guo further discloses the step of detecting a triggering event; See FIG. 13 & Paragraph ]0060], (When a zone is assigned a pending recovery status, a recovery or compaction process is initiated. FIG. 13 illustrates the method comprising step 140 of determining if a number of error zones exceeds a zone error threshold. Step 144 of assigning a pending recovery status to first and second zones is executed when the zone error threshold is not exceeded, i.e. detecting a triggering event;)
and determining the statistic for the plurality of candidates responsive to said detecting the triggering event. See FIG. 13 & Paragraph ]0060], (Step 144 of assigning a pending recovery status to first and second zones is executed when the zone error threshold is not exceeded, i.e. determining the statistic for the plurality of candidates responsive to the detection of the triggering event (e.g. the status field of a zone is set to "pending recovery" following step 140).)
Regarding dependent claim 15,
As discussed above with claim 9, Guo-Prabhakaran discloses all of the limitations.
Guo further discloses the step receiving a result of a compaction action; See FIG. 14 & Paragraph [0060], (Step 144 of assigning a pending recovery status to first and second zones is executed when the zone error threshold is not exceeded, i.e. determine the statistic for the plurality of candidates responsive to the detection of the triggering event (e.g. the status field of a zone is set to "pending recovery" following step 140).)
comparing the result of the compaction action with an estimated result utilized to rank the compaction action, resulting in a comparison result; See FIG. 14 & Paragraph ]0060], (At step 150, the system may determine that compaction is to be performed on a selected zone. The compaction process includes determining if any read error exist for any of the blocks of the zone, wherein steps 160-166 occur if read errors exist. Otherwise, the system performs step 156, i.e. steps 160-166 and 156 represent compaction processes and results. Step 166 comprises a comparison between the number of error blocks in a zone and an error block threshold, i.e. compare the result of the first compaction action with an estimated result utilized to rank the first compaction action (e.g. Note [0048] wherein the status of a block is dependent on the number of error blocks in a zone), resulting in a comparison result;)
and updating the statistic for the first candidate based at least on the comparison result. See FIG. 14 & Paragraph ]0060], (Steps 158 and 168 comprise assigning a health status to a zone based on the comparison performed in step 166, i.e. update the statistic for the first candidate based at least on the comparison result.)
Regarding dependent claim 16,
As discussed above with claim 9, Guo-Prabhakaran discloses all of the limitations.
Guo further discloses the step wherein the plurality of candidates are stored in a data lake managed by the table format. See FIG. 1, (FIG. 1 illustrates the distributed or dispersed storage network (DSN) 10 comprising a plurality of storage units 36 of DNS memory 22 connected to a plurality of computing devices 12, 14, 16 operatively coupled via network 24.) See FIG. 10A-10D & Paragraph [0050], (Memory device allocation tables are used to indicate a status of a zone of a memory device, i.e. wherein the plurality of candidates are stored in a data lake managed by the table format (e.g. the tabular format manages and describes the zones of the memory device(s).))
Regarding independent claim 17,
The claim is analogous to the subject matter of independent claim 9 directed to a computer system and is rejected under similar rationale.
Regarding dependent claim 18,
The claim is analogous to the subject matter of dependent claim 10 directed to a computer system and is rejected under similar rationale.
Regarding dependent claim 20,
The claim is analogous to the subject matter of dependent claim 16 directed to a computer system and is rejected under similar rationale.
Claim(s) 3 and 11 is/are rejected under 35 U.S.C. 103 as being unpatentable over Guo in view of Prabhakaran as applied to claim 1 above, and further in view of Zhao et al. (US PGPUB No. 2019/0121664; Pub. Date: Apr. 25, 2019).
Regarding dependent claim 3,
As discussed above with claim 1, Guo-Prabhakaran discloses all of the limitations.
Guo-Prabhakaran does not disclose the step wherein said causation of the performance of the first compaction action with respect to the first candidate comprises: prioritizing, based at least on a computation budget available within the data lake, performance of the first compaction action over performance of a second compaction action associated with the second candidate.
Zhao discloses the step wherein said causation of the performance of the first compaction action with respect to the first candidate comprises: prioritizing, based at least on a computation budget available within the data lake, performance of the first compaction action over performance of a second compaction action associated with the second candidate. See Paragraph [0036], (Disclosing a system for application scheduling. The system may perform load balancing operations including resource compaction by scheduling applications 122 with a high requirement of quality of service to be run by process units 112. Scheduling may be performed based on an impact of rescheduling of applications as well as metrics such as an overall computing performance, scheduling cost, etc.) See Paragraph [0051], (Priorities of applications 122 may be determined based on the quality of service for the applications 122 such that applications requiring a higher quality of service may be provided with a higher priority, i.e. prioritizing, based at least on a computation budget available within the data lake, performance of the first compaction action over performance of a second compaction action associated with the second candidate (e.g. the system assigns priorities to a plurality of applications and determines a scheduling order based on said priorities).)
Guo, Prabhakaran and Zhao are analogous art because they are in the same field of endeavor, data compaction. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Guo-Prabhakaran to include the method of scheduling application tasks based on a priority metric as disclosed by Zhao. Paragraph [0036] of Zhao discloses that resource compaction reduces the operation cost and/or improves resource utilization for a system executing a plurality of applications with differing resource needs and quality of service metrics that must be taken into account.
Regarding dependent claim 11,
As discussed above with claim 9, Guo-Prabhakaran discloses all of the limitations.
Guo-Prabhakaran does not disclose the step wherein said causing performance of the first compaction action with respect to the first candidate comprises: causing prioritization, based at least on a computation budget available within a data store that stores the plurality of candidates, of the performance of the first compaction action over performance of a second compaction action associated with a second candidate of the plurality of candidates.
Zhao discloses the step wherein said causing performance of the first compaction action with respect to the first candidate comprises: causing prioritization, based at least on a computation budget available within a data store that stores the plurality of candidates, of the performance of the first compaction action over performance of a second compaction action associated with a second candidate of the plurality of candidates. See Paragraph [0036], (Disclosing a system for application scheduling. The system may perform load balancing operations including resource compaction by scheduling applications 122 with a high requirement of quality of service to be run by process units 112. Scheduling may be performed based on an impact of rescheduling of applications as well as metrics such as an overall computing performance, scheduling cost, etc.) See Paragraph [0051], (Priorities of applications 122 may be determined based on a the quality of service for the applications 122 such that applications requiring a higher quality of service may be provided with a higher priority, i.e. prioritizing, based at least on a computation budget available within the data lake, performance of the first compaction action over performance of a second compaction action associated with the second candidate (e.g. the system assigns priorities to a plurality of applications and determines a scheduling order based on said priorities).)
Guo, Prabhakaran and Zhao are analogous art because they are in the same field of endeavor, data compaction. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Guo-Prabhakaran to include the method of scheduling application tasks based on a priority metric as disclosed by Zhao. Paragraph [0036] of Zhao discloses that resource compaction reduces the operation cost and/or improves resource utilization for a system executing a plurality of applications with differing resource needs and quality of service metrics that must be taken into account.
Claim(s) 4, 12 and 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Guo in view of Prabhakaran and Zhao as applied to claim 3 above, and further in view of Rakitzis et al. (US PGPUB No. 2015/0325315; Pub. Date: Nov. 12, 2015).
Regarding dependent claim 4,
As discussed above with claim 3, Guo-Prabhakaran-Zhao discloses all of the limitations.
Prabhakaran-Zhao does not disclose the step wherein the program code is further structured to cause the processor to: determine a remaining computation budget based on the computation budget available within the data lake and a computation cost of the first compaction action;
determine a computation cost of the second compaction action exceeds the remaining computation budget;
determine a computation cost of a third compaction action associated with a third candidate of the plurality of candidates is within the remaining computation budget, the third candidate having a lower rank than a rank of the second candidate;
and prioritize performance of the third compaction action over performance of the second compaction action.
Rakitzis discloses the step wherein the program code is further structured to cause the processor to: determine a remaining computation budget based on the computation budget available within the data lake and a computation cost of the first compaction action; See Paragraph [0120], (Disclosing a system for managing data storage systems experiencing a data failure. FIG. 8 illustrates method 800 of generating a repair budget value for a storage system including determining metrics such as available CPU processing (802), available network bandwidth (804), available local bandwidth (806), available storage device throughput (808). Note [0126]-[0127] wherein repair tasks require some amount of resources to be allocated for execution. Tasks may be promoted or demoted based on determining if a remainder of the resource budget enables execution of a new repair task, i.e. determine a remaining computation budget based on the computation budget available within the data lake and a computation cost of the first compaction action;)
determine a computation cost of the second compaction action exceeds the remaining computation budget; See Paragraph [0121], (A repair task may be promoted following a determination that each current active repair task may be demoted to a lower priority value than the priority value for the new active repair task until enough of the resource budget is released to execute the new active repair task, i.e. determining a computation cost of the second candidate exceeds the computation budget of the data store (e.g. other repair tasks may be demoted if there are not enough resources in the resource budget to finish said task).)
determine a computation cost of a third compaction action associated with a third candidate of the plurality of candidates is within the remaining computation budget, the third candidate having a lower rank than a rank of the second candidate; See Paragraph [0126], (The system may manage a plurality of repair tasks. An example is provided for processing three repair tasks A, B, C such that repair task C may have a priority of 1 which allows the system to promote repair task C for execution and allocating available repair resources, i.e. determine a computation cost of a third compaction action associated with a third candidate of the plurality of candidates (e.g. the resource cost of executing repair task C) is within the remaining computation budget (e.g. by determining if the number of resources required to execute repair task C are available), the third candidate having a lower rank than a rank of the second candidate (e.g. repair task C may have a priority of 1 and may still be executed using repair resources);)
and prioritize performance of the third compaction action over performance of the second compaction action. See Paragraph [0126], (The system may manage a plurality of repair tasks. An example is provided for processing three repair tasks A, B, C such that repair task C may have a priority of 1 which allows the system to promote repair task C for execution and allocating available repair resources.) See Paragraph [0129], (The process of promoting repair tasks may include suspending and/or demoting repair tasks and promoting other repair tasks based on the available resources, i.e. prioritize performance of the third compaction action over performance of the second compaction action (e.g. for example, repair task C may be promoted and executed instead of another task which may not be executable based on resource availability).)
Guo, Prabhakaran, Zhao and Rakitzis are analogous art because they are in the same field of endeavor, storage repair systems. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Guo-Prabhakaran-Zhao to include the method of managing repair tasks for a storage system based on a resource budget as disclosed by Rakitzis. Paragraphs [0120]-[0121] of Rakitzis disclose that the system may dynamically promote and demote repair tasks based on assessing a priority value as well as an amount of available resources required for each task. This represents an optimization of resources for executing repair tasks that remedy system failures.
Regarding dependent claim 12,
As discussed above with claim 11, Guo-Prabhakaran-Zhao discloses all of the limitations.
Guo-Prabhakaran-Zhao does not disclose the step wherein selecting the first candidate comprises: determining a second rank of the second candidate is higher than a first rank of the first candidate;
determining a computation cost of the second candidate exceeds the computation budget of the data store;
determining a computation cost of the first candidate is within the computation budget of the data store;
and select the first candidate based at least on the computation cost of the first candidate being within the computation budget.
Rakitzis discloses the step wherein selecting the first candidate comprises: determining a second rank of the second candidate is higher than a first rank of the first candidate; See Paragraph [0120], (Disclosing a system for managing data storage systems experiencing a data failure. The system may schedule repair tasks based on a priority value associated with individual repair tasks. A repair task may be promoted to be a new active repair task if the priority value for the promoted repair task is higher than each other repair task and enough of a resource budget is available to execute the new active repair task when each current active repair task is executing, i.e. wherein selecting the first candidate comprises: determining a second rank of the second candidate is higher than a first rank of the first candidate;)
determining a computation cost of the second candidate exceeds the computation budget of the data store; See Paragraph [0121], (A repair task may be promoted following a determination that each current active repair task may be demoted to a lower priority value than the priority value for the new active repair task until enough of the resource budget is released to execute the new active repair task, i.e. determining a computation cost of the second candidate exceeds the computation budget of the data store (e.g. other repair tasks may be demoted if there are not enough resources in the resource budget to finish said task(s));)
determining a computation cost of the first candidate is within the computation budget of the data store; See Paragraph [0120], (The system may schedule repair tasks based on a priority value associated with individual repair tasks. A repair task may be promoted to be a new active repair task if the priority value for the promoted repair task is higher than each other repair task and enough of a resource budget is available to execute the new active repair task, i.e. determining a computation cost of the first candidate is within the computation budget of the data store (e.g. the promoted repair task is determined to fit within the resource budget).)
and select the first candidate based at least on the computation cost of the first candidate being within the computation budget. See Paragraph [0120], (The system may schedule repair tasks based on a priority value associated with individual repair tasks. A repair task may be promoted to be a new active repair task if the priority value for the promoted repair task is higher than each other repair task and enough of a resource budget is available to execute the new active repair task, i.e. select the first candidate based at least on the computation cost of the first candidate being within the computation budget. (e.g. the repair task is determined to fit within the resource budget and promoted to become an active repair task).)
Guo, Prabhakaran, Zhao and Rakitzis are analogous art because they are in the same field of endeavor, storage repair systems. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Guo-Prabhakaran-Zhao to include the method of managing repair tasks for a storage system based on a resource budget as disclosed by Rakitzis. Paragraphs [0120]-[0121] of Rakitzis disclose that the system may dynamically promote and demote repair tasks based on assessing a priority value as well as an amount of available resources required for each task. This represents an optimization of resources for executing repair tasks that remedy system failures.
Regarding dependent claim 19,
As discussed above with claim 17, Guo-Prabhakaran discloses all of the limitations.
Guo-Prabhakaran does not disclose the step wherein to cause performance of the first compaction action with respect to the first candidate, the program code is further structured to cause the processor to: cause prioritization, based at least on the computation budget available within a data store that stores the plurality of candidates, of the performance of the first compaction objective over performance of a second compaction associated with the second candidate.
Zhao discloses the step wherein to cause performance of the first compaction action with respect to the first candidate, the program code is further structured to cause the processor to: cause prioritization, based at least on the computation budget available within a data store that stores the plurality of candidates, of the performance of the first compaction objective over performance of a second compaction associated with the second candidate. See Paragraph [0036], (Disclosing a system for application scheduling. The system may perform load balancing operations including resource compaction by scheduling applications 122 with a high requirement of quality of service to be run by process units 112. Scheduling may be performed based on an impact of rescheduling of applications as well as metrics such as an overall computing performance, scheduling cost, etc.) See Paragraph [0051], (Priorities of applications 122 may be determined based on a the quality of service for the applications 122 such that applications requiring a higher quality of service may be provided with a higher priority, i.e. prioritizing, based at least on a computation budget available within the data lake, performance of the first compaction action over performance of a second compaction action associated with the second candidate (e.g. the system assigns priorities to a plurality of applications and determines a scheduling order based on said priorities).)
Guo and Zhao are analogous art because they are in the same field of endeavor, data compaction. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Guo to include the method of scheduling application tasks based on a priority metric as disclosed by Zhao. Paragraph [0036] of Zhao discloses that resource compaction reduces the operation cost and/or improves resource utilization for a system executing a plurality of applications with differing resource needs and quality of service metrics that must be taken into account.
Guo-Prabhakaran-Zhao does not disclose the step wherein: to select the first candidate, the program code is further structured to cause the processor to: determine a second rank of a second candidate of the plurality of candidates is higher than a first rank of the first candidate, determine a computation cost of the second candidate exceeds a computation budget of the data store, determine a computation cost of the first candidate is within the computation budget of the data store, and select the first candidate based at least on the computation cost of the first candidate being within the computation budget;
Rakitzis discloses the step wherein: to select the first candidate, the program code is further structured to cause the processor to: determine a second rank of a second candidate of the plurality of candidates is higher than a first rank of the first candidate, See Paragraph [0120], (Disclosing a system for managing data storage systems experiencing a data failure. The system may schedule repair tasks based on a priority value associated with individual repair tasks. A repair task may be promoted to be a new active repair task if the priority value for the promoted repair task is higher than each other repair task and enough of a resource budget is available to execute the new active repair task when each current active repair task is executing, i.e. wherein selecting the first candidate comprises: determining a second rank of the second candidate is higher than a first rank of the first candidate;)
determine a computation cost of the second candidate exceeds a computation budget of the data store, See Paragraph [0121], (A repair task may be promoted following a determination that each current active repair task may be demoted to a lower priority value than the priority value for the new active repair task until enough of the resource budget is released to execute the new active repair task, i.e. determining a computation cost of the second candidate exceeds the computation budget of the data store (e.g. other repair tasks may be demoted if there are not enough resources in the resource budget to finish said task(s));)
determine a computation cost of the first candidate is within the computation budget of the data store, See Paragraph [0120], (The system may schedule repair tasks based on a priority value associated with individual repair tasks. A repair task may be promoted to be a new active repair task if the priority value for the promoted repair task is higher than each other repair task and enough of a resource budget is available to execute the new active repair task, i.e. determining a computation cost of the first candidate is within the computation budget of the data store (e.g. the promoted repair task is determined to fit within the resource budget).)
and select the first candidate based at least on the computation cost of the first candidate being within the computation budget; See Paragraph [0120], (The system may schedule repair tasks based on a priority value associated with individual repair tasks. A repair task may be promoted to be a new active repair task if the priority value for the promoted repair task is higher than each other repair task and enough of a resource budget is available to execute the new active repair task, i.e. select the first candidate based at least on the computation cost of the first candidate being within the computation budget. (e.g. the repair task is determined to fit within the resource budget and promoted to become an active repair task).)
Guo, Prabhakaran, Zhao and Rakitzis are analogous art because they are in the same field of endeavor, storage repair systems. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Guo-Prabhakaran-Zhao to include the method of managing repair tasks for a storage system based on a resource budget as disclosed by Rakitzis. Paragraphs [0120]-[0121] of Rakitzis disclose that the system may dynamically promote and demote repair tasks based on assessing a priority value as well as an amount of available resources required for each task. This represents an optimization of resources for executing repair tasks that remedy system failures.
Claim(s) 5 and 13 is/are rejected under 35 U.S.C. 103 as being unpatentable over Guo in view of Prabhakaran as applied to claim 1 above, and further in view of GAO et al. (US PGPUB No. 2021/0064580; Pub. Date: Mar. 4, 2021).
Regarding dependent claim 5,
As discussed above with claim 1, Guo-Prabhakaran discloses all of the limitations.
Guo-Prabhakaran does not disclose the step wherein the program code is further structured to cause the processor to: determine a third candidate of the plurality of candidates comprises one or more temporary files;
and responsive to said determination that the third candidate comprises the one or more temporary files, remove the third candidate from the plurality of candidates.
GAO discloses the step wherein the program code is further structured to cause the processor to: determine a third candidate of the plurality of candidates comprises one or more temporary files; See FIGs. 1A & 7 & Paragraph [0088], (Disclosing a system for deduplicating files. FIG. 7 illustrates a method of identifying files for deduplication using deduplication module 144 as illustrated in FIG. 1A. Deduplication module 144 may determine a logical range for identification of files for deduplication. The logical range may be determined so as to exclude files that were modified or created recently such that the system does not deduplicate files that are temporary files that may be deleted soon, i.e. determine a third candidate of the plurality of candidates comprises one or more temporary files (e.g. by determining the logical range of documents to be deduplicated, which excludes temporary files);)
and responsive to said determination that the third candidate comprises the one or more temporary files, remove the third candidate from the plurality of candidates. See FIGs. 1A & 7 & Paragraph [0088], (Deduplication module 144 may determine a logical range for identification of files for deduplication. The logical range may be determined so as to exclude files that were modified or created recently such that the system does not deduplicate files that are temporary files that may be deleted soon, i.e. responsive to said determination that the third candidate comprises the one or more temporary files, remove the third candidate from the plurality of candidates (e.g. by determining a logical range that excludes temporary files).)
Guo, Prabhakaran and GAO are analogous art because they are in the same field of endeavor, storage optimization. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Guo-Prabhakaran to include the method of selecting files for deduplication operations as disclosed by GAO. Paragraph [0088] of GAO discloses that the process of excluding files allows the system to better utilize available resources by only deduplicating files that are not temporary files and instead directing resources to deduplicating files that have stabilized and are no longer undergoing frequent changes.
Regarding dependent claim 13,
As discussed above with claim 9, Guo-Prabhakaran discloses all of the limitations.
Guo-Prabhakaran does not disclose the step of determining a second candidate of the plurality of candidates comprises one or more temporary files;
and responsive to said determining the second candidate comprises the one or more temporary files, removing the second candidate from the plurality of candidates.
GAO discloses the step of determining a second candidate of the plurality of candidates comprises one or more temporary files; See FIGs. 1A & 7 & Paragraph [0088], (Disclosing a system for deduplicating files. FIG. 7 illustrates a method of identifying files for deduplication using deduplication module 144 as illustrated in FIG. 1A. Deduplication module 144 may determine a logical range for identification of files for deduplication. The logical range may be determined so as to exclude files that were modified or created recently such that the system does not deduplicate files that are temporary files that may be deleted soon, i.e. determine a third candidate of the plurality of candidates comprises one or more temporary files (e.g. by determining the logical range of documents to be deduplicated, which excludes temporary files);)
and responsive to said determining the second candidate comprises the one or more temporary files, removing the second candidate from the plurality of candidates. See FIGs. 1A & 7 & Paragraph [0088], (Deduplication module 144 may determine a logical range for identification of files for deduplication. The logical range may be determined so as to exclude files that were modified or created recently such that the system does not deduplicate files that are temporary files that may be deleted soon, i.e. responsive to said determination that the third candidate comprises the one or more temporary files, remove the third candidate from the plurality of candidates (e.g. by determining a logical range that excludes temporary files).)
Guo, Prabhakaran and GAO are analogous art because they are in the same field of endeavor, storage optimization. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Guo-Prabhakaran to include the method of selecting files for deduplication operations as disclosed by GAO. Paragraph [0088] of GAO discloses that the process of excluding files allows the system to better utilize available resources by only deduplicating files that are not temporary files and instead directing resources to deduplicating files that have stabilized and are no longer undergoing frequent changes.
Claim(s) 7 is/are rejected under 35 U.S.C. 103 as being unpatentable over Guo in view of Prabhakaran as applied to claim 6 above, and further in view of HALUMI et al. (US PGPUB No. 2019/0272229; Pub. Date: Sep. 5, 2019).
Regarding dependent claim 7,
As discussed above with claim 6, Guo-Prabhakaran discloses all of the limitations.
Guo-Prabhakaran does not disclose the step wherein the triggering event comprises a percentage of fragmentation of the plurality of candidates satisfying a fragmentation criterion.
HALUMI discloses the step wherein the triggering event comprises a percentage of fragmentation of the plurality of candidates satisfying a fragmentation criterion. See FIG. 8B & Paragraph [0082], (FIG. 8B illustrates method 850 comprising step 852 of determining whether multiple blocks have passed through block-perspective garbage collection and respective areas are ordered according to predetermined metrics including a fragmentation percentage of the area or region. The system may detect a percentage of fragmentation and trigger garbage collection in order to defragment the storage block, i.e. wherein the triggering event comprises a percentage of fragmentation of the plurality of candidates satisfying a fragmentation criterion.)
Guo, Prabhakaran and HALUMI are analogous art because they are in the same field of endeavor, garbage collection systems. It would have been obvious to anyone having ordinary skill in the art before the effective filing date to modify the system of Guo-Prabhakaran to include the method of triggering a garbage collection process based on a determined fragmentation percentage as disclosed by HALUMI. Paragraph [0082] of HALUMI discloses that the system may use garbage collection techniques to reclaim storage space occupied due to high fragmentation in order to optimize the storage system.
Response to Arguments
Applicant’s arguments with respect to claim(s) 1-20 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.
Applicant’s amendments modify the scope of the claimed invention and therefore necessitated the new grounds of rejection presented in this Office Action.
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 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 Fernando M Mari whose telephone number is (571)272-2498. The examiner can normally be reached Monday-Friday 7am-4pm.
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, Ann J. Lo can be reached at (571) 272-9767. 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.
/FMMV/Examiner, Art Unit 2159 /ALBERT M PHILLIPS, III/Primary Examiner, Art Unit 2159