Prosecution Insights
Last updated: April 19, 2026
Application No. 17/863,264

REDUCING THE ENVIRONMENTAL IMPACT OF DISTRIBUTED COMPUTING

Non-Final OA §103
Filed
Jul 12, 2022
Examiner
CHU JOY, JORGE A
Art Unit
2195
Tech Center
2100 — Computer Architecture & Software
Assignee
Vapor Io Inc.
OA Round
1 (Non-Final)
77%
Grant Probability
Favorable
1-2
OA Rounds
3y 1m
To Grant
99%
With Interview

Examiner Intelligence

Grants 77% — above average
77%
Career Allow Rate
314 granted / 408 resolved
+22.0% vs TC avg
Strong +37% interview lift
Without
With
+37.3%
Interview Lift
resolved cases with interview
Typical timeline
3y 1m
Avg Prosecution
41 currently pending
Career history
449
Total Applications
across all art units

Statute-Specific Performance

§101
11.0%
-29.0% vs TC avg
§103
55.3%
+15.3% vs TC avg
§102
3.2%
-36.8% vs TC avg
§112
19.6%
-20.4% vs TC avg
Black line = Tech Center average estimate • Based on career data from 408 resolved cases

Office Action

§103
DETAILED ACTION Claims 1-20 are pending. 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 . 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. Claims 1, 2, 4-7, 9, 12-15, and 18-20 are rejected under 35 U.S.C. 103 as being unpatentable over Ekins et al. (US 2021/0373973 A1). Regarding claim 1, Ekins teaches the invention substantially as claimed including a method, comprising: obtaining, with a computing system, a workload of a distributed application ([0087] workloads are distributed across the storage locations in a clustered peer-to-peer system. [0245] machine learning algorithms may be fed with information describing various performance characteristics of various storage systems (as extracted from the telemetry data) and information describing various workloads that are executing on various storage systems; [0291]); obtaining, with the computing system, a set of candidate computing resources ([0285] identifying (1004), in dependence upon on characteristics (1002) of a workload (1016), one or more execution environments (1012a, 1012b, 1012n) that can support the workload (1016).); predicting, with the computing system, amounts of carbon emissions attributable to executing the workload on different members of the set of candidate computing resources ([0336] Consider an example where a user is deploying a workload (1716) for execution on an execution environment (1712a, 1712b, 1712n) based on carbon emission costs (1704). The user is subject to a service level agreement guaranteeing a particular level of availability during execution of the workload (1716). Those execution environments whose predicted or historic availability falls below an availability threshold (1904) are excluded from candidacy as a target execution environment (1712a). Thus, the selected (1902) target execution environment may be selected (1902) as the execution environment (1712a, 1712b, 1712n) having a lowest carbon emission cost (1704) and having an availability meeting or exceeding the availability threshold (1904).); predicting, with the computing system, measures of computing performance in executing the workload of the different members of the set of candidate computing resources ([0244] In the example method depicted in FIG. 4, a load model (412) that predicts performance load on the storage system (408) based on characteristics of workloads (420, 422, 424) executing on the storage system (408) may be generated (410).; [0246]); computing, with the computing system, a set of scores based on the amounts of carbon emissions and the measures of computing performance ([0338] The method of FIG. 20 differs from FIG. 17 in that selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) includes calculating (2002), for each execution environment (1712a, 1712b, 1712n), a fitness score (2004) based on the carbon emission cost (1704). For example, the fitness score (2004) for a given execution environment (1712a, 1712b, 1712n) may be calculated based on the carbon emission cost (1704) for the given execution environment (1712a, 1712b, 1712n) and one or more other values. Such other values may include, for example, a cost associated with the given execution environment (1712a, 1712b, 1712n), one or more performance metrics associated with the execution environment (1712a, 1712b, 1712n), or other values as can be appreciated. As an example, the fitness score (2004) may be calculated (2002) using a weighted function applied to the carbon emission cost (1704) and the one or more other values.); and orchestrating, with the computing system, the workload based on the set of scores ([0339] Selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) also includes selecting (2006) the target execution environment (1712a) based on the fitness score (2004). For example, the target execution environment (1712a) may be selected (2006) as having a highest fitness score (2004).). While Ekins does not explicitly recite a set of candidate computing resources, Ekins does teach execution environment (1712a, 1712b, 1712n) which is comprised of a set of environments 1712a, 1712b and 1712n. As such, under its broadest reasonable interpretation, Ekins reasonably teaches the limitations as claimed. Regarding claim 2, Ekins teaches wherein: the computing system executes an orchestration system that performs the orchestrating ([0196] The storage systems described above may also be part of a multi-cloud environment in which multiple cloud computing and storage services are deployed in a single heterogeneous architecture. In order to facilitate the operation of such a multi-cloud environment, DevOps tools may be deployed to enable orchestration across clouds.); orchestrating the workload based on the set of scores comprises: obtaining a threshold of an account record ([0335] The one or more thresholds (1904) may include user-defined or other configurable thresholds (1904). The one or more thresholds (1904) may also include predefined thresholds (1904) corresponding to particular service level agreements.; wherein predefined SLAs correspond to the user/account); determining a first combination of the set of candidate computing resources; determining a sum carbon emission amount based on a sum of the amounts of carbon emissions of the first combination of the set of candidate computing resources ([0338] The method of FIG. 20 differs from FIG. 17 in that selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) includes calculating (2002), for each execution environment (1712a, 1712b, 1712n), a fitness score (2004) based on the carbon emission cost (1704) (wherein the score correspond to a sum, as a score is an average). For example, the fitness score (2004) for a given execution environment (1712a, 1712b, 1712n) may be calculated based on the carbon emission cost (1704) for the given execution environment (1712a, 1712b, 1712n) and one or more other values. Such other values may include, for example, a cost associated with the given execution environment (1712a, 1712b, 1712n), one or more performance metrics associated with the execution environment (1712a, 1712b, 1712n), or other values as can be appreciated. As an example, the fitness score (2004) may be calculated (2002) using a weighted function applied to the carbon emission cost (1704) and the one or more other values.); determining whether the sum carbon emission amount satisfies the threshold ([0339] Selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) also includes selecting (2006) the target execution environment (1712a) based on the fitness score (2004). For example, the target execution environment (1712a) may be selected (2006) as having a highest fitness score (2004). As another example, the target execution environment (1712a) may be selected (2006) as having a highest fitness score (2004) and satisfying one or more thresholds as described above.); and in response to a determination that the sum carbon emission amount satisfies the threshold, orchestrating the workload ([0339] Selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) also includes selecting (2006) the target execution environment (1712a) based on the fitness score (2004). For example, the target execution environment (1712a) may be selected (2006) as having a highest fitness score (2004). As another example, the target execution environment (1712a) may be selected (2006) as having a highest fitness score (2004) and satisfying one or more thresholds as described above. Thus, while the target execution environment (1712a) may be selected (2006) with the carbon emission cost (1704) as a factor in selection, the target execution environment (1712a) may or may not have the lowest carbon emission cost (1704) due to the other factors used in calculating the fitness scores (2004).), the orchestration system is configured to provide automated configuration, coordination and management of a computing network, computing devices, and services with which the distributed application is deployed ([0131] In order to further enable the storage system 306 and users of the storage system 306 to make use of the services provided by the cloud services provider 302, a cloud orchestrator may also be used to arrange and coordinate automated tasks in pursuit of creating a consolidated process or workflow; [0279] Readers will appreciate that migrating (922) a particular workload (422, 424, 904) among the storage systems (406, 408) in the fleet (906) of storage systems (406, 408) in dependence upon the preferred placement for each of the one or more workloads (422, 424, 904) may be carried out automatically and without user intervention. For example, the state of the fleet (906) may be constantly monitored and workloads may be automatically migrated as the state of the fleet (906) changes (e.g., workloads are added, workloads are deleted, storage systems are added to the fleet, storage systems are removed from the fleet, storage systems within the fleet are modified, devices within a particular storage system fail, and so on).; [0280]); each member of the set of scores is based on both one of the amounts of carbon emissions and one of the measures of computing performance and different members of the set of scores correspond to different computing resources among the candidate computing resources ([0338] The method of FIG. 20 differs from FIG. 17 in that selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) includes calculating (2002), for each execution environment (1712a, 1712b, 1712n), a fitness score (2004) based on the carbon emission cost (1704). For example, the fitness score (2004) for a given execution environment (1712a, 1712b, 1712n) may be calculated based on the carbon emission cost (1704) for the given execution environment (1712a, 1712b, 1712n) and one or more other values. Such other values may include, for example, a cost associated with the given execution environment (1712a, 1712b, 1712n), one or more performance metrics associated with the execution environment (1712a, 1712b, 1712n), or other values as can be appreciated. As an example, the fitness score (2004) may be calculated (2002) using a weighted function applied to the carbon emission cost (1704) and the one or more other values.); the measures of computing performance include latency in responses to application program interface requests to a plurality services of the distributed application executing on a plurality of virtual machines, containers, Lambda functions, or unikernels ([0303] The predetermined performance requirements associated with the workload (1016) can include, for example, a number of IOPS generated by the workload (1016) that should be supported, the read latency and write latency that should be obtained for I/O operations generated by the workload (1016), an amount of user requests that the workload should be able to respond to within a predetermined period of time, and many others. In such an example, only those that can meet predetermined performance requirements associated with the workload (1016) should be identified (1004) as being execution environments (1012a, 1012b, 1012n) that can support the workload (1016).; [0133] The cloud services provider 302 may also be configured to provide access to virtualized computing environments to the storage system 306 and users of the storage system 306. Such virtualized computing environments may be embodied, for example, as a virtual machine or other virtualized computer hardware platforms, virtual storage devices, virtualized computer network resources, and so on. Examples of such virtualized environments can include virtual machines that are created to emulate an actual computer, virtualized desktop environments that separate a logical desktop from a physical machine, virtualized file systems that allow uniform access to different types of concrete file systems, and many others.; [0188] a combination of containers and virtual machines); and orchestrating the workload based on the set of scores comprises balancing between carbon emissions and computing performance to select which candidate computing resources will execute at least part of the workload ([0339] Selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) also includes selecting (2006) the target execution environment (1712a) based on the fitness score (2004). For example, the target execution environment (1712a) may be selected (2006) as having a highest fitness score (2004).). Regarding claim 4, Ekins teaches wherein predicting amounts of carbon emissions comprises: determining a first probability weight associated with a first carbon emission amount, determining a second probability weight associated with a second carbon emission amount, obtaining an energy consumption of a first candidate computing resource of the set of candidate computing resources, and determining the first carbon emission amount of the first candidate computing resource based on the first probability weight, the second probability weight, and the first carbon emission amount ([0244] In such an example, the performance load on the storage system (408) may be calculated according to some formula that takes as inputs the weighted or unweighted combination of such factors described [0246] The example method depicted in FIG. 4 also includes generating (414), for one or more of workloads (420, 422, 424), predicted characteristics (416) of the one or more workloads (420, 422, 424). In the example method depicted in FIG. 4, generating (414) predicted characteristics (416) of the one or more workloads (420, 422, 424) can include performing a time-series analysis of each workload (420, 422, 424). Readers will appreciate that the telemetry data described herein may not only be useful for enabling a centralized management service to monitor the operation of the storage system that sends the data, but such telemetry data may also be useful for identifying trends associated with the workloads themselves. As such, an examination of the telemetry data can be used to generate trending information for the workloads including, for example, information describing the rate at which the number of TOPS being generated by the workload has been changing, the rate at which overwrite rates for I/O operations that are being generated by the workload are changing, the rate at which the amount of read bandwidth that is being consumed by I/O operations generated by the workload is changing, and many others. In such a way, predicted characteristics (416) of the one or more workloads (420, 422, 424) may be generated (414) by extrapolating identified trends out over a period of time in the future.; [0336] Consider an example where a user is deploying a workload (1716) for execution on an execution environment (1712a, 1712b, 1712n) based on carbon emission costs (1704). The user is subject to a service level agreement guaranteeing a particular level of availability during execution of the workload (1716). Those execution environments whose predicted or historic availability falls below an availability threshold (1904) are excluded from candidacy as a target execution environment (1712a). Thus, the selected (1902) target execution environment may be selected (1902) as the execution environment (1712a, 1712b, 1712n) having a lowest carbon emission cost (1704) and having an availability meeting or exceeding the availability threshold (1904).). Regarding claim 5, Ekins teaches a tangible, non-transitory, machine-readable medium storing instructions that, when executed by one or more processors, effectuate operations ([0240] In some examples, a non-transitory computer-readable medium storing computer-readable instructions may be provided in accordance with the principles described herein. The instructions, when executed by a processor of a computing device, may direct the processor and/or computing device to perform one or more operations, including one or more of the operations described herein.) comprising: obtaining, with a computer system, a first plurality of scores of a plurality of data centers executing a plurality of workload tasks of a distributed application ([0087] workloads are distributed across the storage locations in a clustered peer-to-peer system. [0245] machine learning algorithms may be fed with information describing various performance characteristics of various storage systems (as extracted from the telemetry data) and information describing various workloads that are executing on various storage systems; [0291]; [0338] The method of FIG. 20 differs from FIG. 17 in that selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) includes calculating (2002), for each execution environment (1712a, 1712b, 1712n), a fitness score (2004) based on the carbon emission cost (1704).), wherein the distributed application is associated with a set of performance criteria ([0285] many characteristics (1002) of the workload (1016) may be taken into consideration when identifying (1004) one or more execution environments (1012a, 1012b, 1012n) that can support the workload (1016). For example, characteristics (1002) describing the performance requirements of the workload (1016) may be taken into consideration, characteristics (1002) describing the availability requirements of the workload (1016) may be taken into consideration, characteristics (1002) describing the data security requirements of the workload (1016) may be taken into consideration, characteristics (1002) describing the data resiliency requirements of the workload (1016) may be taken into consideration, and so on including any combination of a wide range of characteristics.), and wherein the first plurality of scores indicates environmental impacts of the plurality of data centers ([0338] calculating (2002), for each execution environment (1712a, 1712b, 1712n), a fitness score (2004) based on the carbon emission cost (1704).); obtaining, with the computer system, a set of telemetry values indicating a utilization of the plurality of data centers and a data network in communication with the plurality of data centers by the plurality of workload tasks ([0243] Such telemetry data may include information that is useful for monitoring the operation of the storage system that sends the data including, for example, information describing various performance characteristics of the storage system, information describing various workloads that are executing on the storage system, and other types of information. The information describing various performance characteristics of the storage system can include, for example, the number of IOPS being serviced by the storage system, the utilization rates of various computing resources (e.g., CPU utilization) within the storage system, the utilization rates of various networking resources (e.g., network bandwidth utilization) within the storage system, the utilization rates of various storage resources (e.g., NVRAM utilization) within the storage system, and many others. Likewise, the information describing various workloads that are executing on the storage system can include, for example, information describing the number of IOPS being generated by a particular workload, overwrite rates for I/O operations that are being generated by the workload, the amount of read bandwidth that is being consumed by I/O operations generated by the workload, and many others.); determining, with the computer system, a workload task distribution based on the set of performance criteria, wherein the workload task distribution allocates workload tasks of the distributed application to a subset of data centers of the plurality of data centers ([0264] ); determining, with the computer system, a subset of scores the first plurality of scores, wherein each respective score of the subset of scores is associated with a respective data center of the subset of data centers ([0278] The example method depicted in FIG. 9 also includes identifying (920), for each storage system (406, 408) in the fleet (906) of storage systems (406, 408), a preferred placement for each of the one or more workloads (422, 424, 904). In the example method depicted in FIG. 9, identifying (920) a preferred placement for each of the one or more workloads (422, 424, 904) may be carried out by identifying the one or more storage systems (406, 408) in the fleet (906) of storage systems (406, 408) that should be used to support a particular workload (422, 424, 904). Identifying (920) a preferred placement for each of the one or more workloads (422, 424, 904) may be carried out, for example, by predicting (918) the performance load on each storage system (406, 408) in the fleet (906) of storage systems (406, 408) for each possible permutation that workloads can be distributed across the storage systems (406, 408) in the fleet (906). In such an example, various criteria could be utilized to identify which permutation would represent a best fit. For example, in one embodiment the best fit could be identified as the permutation that resulted in the longest period of time until the predicted performance load on any of the storage systems (406, 408) will exceed performance capacity of the particular storage system. Alternatively, in another embodiment the best fit could be identified as the permutation that resulted in the largest amount of difference between: 1) the performance capacity of the storage system, and 2) the predicted performance load on the storage system at a predetermined time (e.g., in 2 months) of the fullest (in terms of performance load v. performance capacity) storage system in the fleet (906). In such a way, by identifying (920) a preferred placement for each of the one or more workloads (422, 424, 904), a fleet-level view can be taken and workloads supported by the fleet (906) of storage systems (406, 408) can be distributed in a way that is optimal for the fleet (906) as a whole.); determining, with the computer system, a path through the data network connecting a first data center of the subset of data centers with a second data center of the subset of data centers, wherein nodes of the path are associated with a second plurality of scores that indicate environmental impacts of the nodes of the path ([0124] The routing of packets between networked systems may include Equal-cost multi-path routing (‘ECMP’), which is a routing strategy where next-hop packet forwarding to a single destination can occur over multiple “best paths” which tie for top place in routing metric calculations. Multi-path routing can be used in conjunction with most routing protocols, because it is a per-hop decision limited to a single router.; [0279] Data may be moved, for example, using asynchronous or synchronous data replication techniques, by sending the data from one storage system to another storage system via a data communications path between the storage systems, or in some other way. Readers will appreciate that migrating (922) a particular workload (422, 424, 904) among the storage systems (406, 408) in the fleet (906) of storage systems (406, 408) in dependence upon the preferred placement for each of the one or more workloads (422, 424, 904) may be carried out automatically and without user intervention.; [0338] The method of FIG. 20 differs from FIG. 17 in that selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) includes calculating (2002), for each execution environment (1712a, 1712b, 1712n), a fitness score (2004) based on the carbon emission cost (1704). For example, the fitness score (2004) for a given execution environment (1712a, 1712b, 1712n) may be calculated based on the carbon emission cost (1704) for the given execution environment (1712a, 1712b, 1712n) and one or more other values. Such other values may include, for example, a cost associated with the given execution environment (1712a, 1712b, 1712n), one or more performance metrics associated with the execution environment (1712a, 1712b, 1712n), or other values as can be appreciated. As an example, the fitness score (2004) may be calculated (2002) using a weighted function applied to the carbon emission cost (1704) and the one or more other values.); determining, with the computer system, a sum of the subset of scores and the second plurality of scores ([0338] The method of FIG. 20 differs from FIG. 17 in that selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) includes calculating (2002), for each execution environment (1712a, 1712b, 1712n), a fitness score (2004) based on the carbon emission cost (1704) (wherein the score correspond to a sum, as a score is an average). For example, the fitness score (2004) for a given execution environment (1712a, 1712b, 1712n) may be calculated based on the carbon emission cost (1704) for the given execution environment (1712a, 1712b, 1712n) and one or more other values. Such other values may include, for example, a cost associated with the given execution environment (1712a, 1712b, 1712n), one or more performance metrics associated with the execution environment (1712a, 1712b, 1712n), or other values as can be appreciated. As an example, the fitness score (2004) may be calculated (2002) using a weighted function applied to the carbon emission cost (1704) and the one or more other values.); determining, with the computer system, whether the sum satisfies a set of selection criteria ([0339] Selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) also includes selecting (2006) the target execution environment (1712a) based on the fitness score (2004). For example, the target execution environment (1712a) may be selected (2006) as having a highest fitness score (2004). As another example, the target execution environment (1712a) may be selected (2006) as having a highest fitness score (2004) and satisfying one or more thresholds as described above.); and in response to the sum satisfying the set of selection criteria, orchestrating, with the computer system, a set of computing resources comprising the first data center and the second data center to execute the distributed application ([0339] Selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) also includes selecting (2006) the target execution environment (1712a) based on the fitness score (2004). For example, the target execution environment (1712a) may be selected (2006) as having a highest fitness score (2004).). Regarding claim 6, Ekins teaches wherein the set of performance criteria comprises at least one of a measure of central tendency of application response time, a count of application instances, or a request rate ([0303] In the example method depicted in FIG. 14, identifying (1004) one or more execution environments (1012a, 1012b, 1012n) that can support the workload (1016) can include identifying (1402) one or more execution environments (1012a, 1012b, 1012n) that can meet predetermined performance requirements associated with the workload (1016). The predetermined performance requirements associated with the workload (1016) can include, for example, a number of IOPS generated by the workload (1016) that should be supported, the read latency and write latency that should be obtained for I/O operations generated by the workload (1016), an amount of user requests that the workload should be able to respond to within a predetermined period of time, and many others. In such an example, only those that can meet predetermined performance requirements associated with the workload (1016) should be identified (1004) as being execution environments (1012a, 1012b, 1012n) that can support the workload (1016).). Regarding claim 7, Ekins teaches wherein the first plurality of scores is correlated with a carbon footprint amount ([0338] a fitness score (2004) based on the carbon emission cost (1704)). Regarding claim 9, Ekins teaches wherein: the workload task distribution is a first workload task distribution; determining the first workload task distribution comprises determining a plurality of workload task distribution schedules; and the operations comprise selecting the first workload task distribution based on the set of performance criteria, wherein the first workload task distribution satisfies the set of performance criteria ([0306] In the example method depicted in FIG. 15, determining (1006) costs (1008) associated with supporting the workload (1016) on each execution environment (1012a, 1012b, 1012n) can include determining (1504), for a plurality of workload placement scenarios, cumulative costs associated with supporting each workload (1016, 1510) in accordance with each of the workload placement scenarios. In the example depicted in FIG. 15, a particular workload placement scenario may include one permutation of the set of possible arrangements of the workloads (1016, 1510). For example, if a first execution environment (1012a) and a second execution environment (1012b) were identified (1502) as being capable of support a first workload (1016), whereas the second execution environment (1012b) and a third execution environment (1012n) were identified as being capable of supporting a second workload (1510), the set of possible arrangements of workloads would include: 1) the first workload (1016) is executed on the first execution environment (1012a) and the second workload (1510) is executed on the second execution environment (1012b), 2) the first workload (1016) is executed on the first execution environment (1012a) and the second workload (1510) is executed on the third execution environment (1012n), 3) the first workload (1016) is executed on the second execution environment (1012b) and the second workload (1510) is also executed on the second execution environment (1012b), and 4) the first workload (1016) is executed on the second execution environment (1012b) and the second workload (1510) is executed on the third execution environment (1012n). In such an example, each arrangement would be a distinct workload placement scenario.; [0307]; [0308] [0308] Consider an example in which the execution environment (1012a, 1012b, 1012n) that was identified (1502) as being capable of supporting a first workload (1016) was a public cloud. In such an example, the costs (1008) associated with supporting the workload (1016) on the public cloud may include the sum of: 1) the costs associated with storing a dataset accessed by the workload in storage that provides sufficient performance for the workload, 2) the costs associated with utilizing cloud-based processing resources (including VMs, lambdas, and so on) that can execute the workload in accordance with performance requirements of the workload, 3) the costs associated with deploying the workload in a way (e.g., across multiple availability zones) so as to maintain required resiliency standards associated with the workload and its data, 4) and any other costs associated with deploying the workload in a public cloud.). Regarding claim 12, Ekins teaches wherein: the distributed application executing on the plurality of data centers provides data to a set of client computing devices, and the set of telemetry values comprises a first subset of telemetry values provided by the plurality of data centers and a second subset of telemetry values provided by the data network (Fig. 1A; [0132] Such data analytics applications may be configured, for example, to receive vast amounts of telemetry data phoned home by the storage system 306. Such telemetry data may describe various operating characteristics of the storage system 306 and may be analyzed for a vast array of purposes including, for example, to determine the health of the storage system 306, to identify workloads that are executing on the storage system 306, to predict when the storage system 306 will run out of various resources, to recommend configuration changes, hardware or software upgrades, workflow migrations, or other actions that may improve the operation of the storage system 306.; [0243] The data (404) collected from a plurality of storage systems (402, 406) may be embodied, for example, as telemetry data that is periodically sent from the storage systems (402, 406) to a centralized management service (not illustrated).; [0272]). Regarding claim 13, Ekins teaches wherein obtaining the first plurality of scores comprises: obtaining a plurality of geolocations of the plurality of data centers ([0317] For example, assume that a particular execution environment (1712a, 1712b, 1712n) includes hardware resources located in a particular geographic area (e.g., city, country, and the like). Further assume that data is accessible indicating the emission intensity for that geographic area.); sending, via an application program interface, a first set of web messages to a server, wherein the first set of web messages comprise the plurality of geolocations, obtaining a second set of web messages from the server ([0317] For example, such data may be published by government entities, non-profits, regulatory groups, and the like. Such data may include aggregate emission intensities for that area (e.g., the average emission intensity for that area). Such data may also include particular samplings of emission intensities for that area from which an aggregate intensity for that area may be calculated. In some embodiments, the carbon emission cost (1704) may include a projected emission intensity. For example, the projected emission intensity may be projected based on historic emission intensity samplings using various projection techniques, including trend forecasting, machine learning models, and the like.); and determining the first plurality of scores based on the second set of web messages ([0338]). Regarding claim 14, Ekins teaches the operations further comprising: determining whether a first score of the subset of scores satisfies a threshold, and in response to a determination that the first score satisfies the threshold, advertising an identifier of a selected data center associated with the first score on a network connecting the plurality of data centers ([0336] Thus, the selected (1902) target execution environment may be selected (1902) as the execution environment (1712a, 1712b, 1712n) having a lowest carbon emission cost (1704) and having an availability meeting or exceeding the availability threshold (1904).); [0339] Selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) also includes selecting (2006) the target execution environment (1712a) based on the fitness score (2004). For example, the target execution environment (1712a) may be selected (2006) as having a highest fitness score (2004).). Regarding claim 15, Ekins teaches the operations further comprising: obtaining an update to a first score associated with the first data center, determining whether the updated first score satisfies a threshold, in response to a determination that the updated first score satisfies the threshold, selecting a third data center of the subset of data centers and re-allocating the set of computing resources to comprise the third data center ([0131] For example, the state of the fleet (906) may be constantly monitored and workloads may be automatically migrated as the state of the fleet (906) changes (e.g., workloads are added, workloads are deleted, storage systems are added to the fleet, storage systems are removed from the fleet, storage systems within the fleet are modified, devices within a particular storage system fail, and so on [0336] Thus, the selected (1902) target execution environment may be selected (1902) as the execution environment (1712a, 1712b, 1712n) having a lowest carbon emission cost (1704) and having an availability meeting or exceeding the availability threshold (1904).);). Regarding claim 18, Ekins teaches wherein determining the workload task distribution comprises steps for determining the workload task distribution (Abstract). Regarding claim 19, Ekins teaches wherein determining the path through the data network comprises steps for determining the path through the data network ([0124]). Regarding claim 20, it is a method type claim having similar limitations as claim 5. Therefore, it is rejected under the same rationale above. Claims 3, 8 and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Ekins et al. (US 2021/0373973 A1) in further view of Wick (US 2021/0248523 A1). Regarding claim 3, Ekins teaches where orchestrating the workload based on the set of scores comprises: determining, based on the amounts of carbon emissions, a first carbon emission amount of a first computing resource of the set of candidate computing resources (Abstract: calculating, for each execution environment of a plurality of execution environments, a carbon emission cost associated with a workload); and executing a portion of the workload using the first computing resource ([0339] Selecting (1706), based on each carbon emission cost (1704) for the plurality of execution environments (1712a, 1712b, 1712n), a target execution environment (1712a) also includes selecting (2006) the target execution environment (1712a) based on the fitness score (2004). For example, the target execution environment (1712a) may be selected (2006) as having a highest fitness score (2004).). Ekins does not explicitly teach updating a score of the set of scores stored on a tamper-evident, distributed ledger encoding records of a plurality of previous values in a directed acyclic graph of cryptographic hash pointers based on the first carbon emission amount. However, Wick teaches updating a score of the set of scores stored on a tamper-evident, distributed ledger encoding records of a plurality of previous values in a directed acyclic graph of cryptographic hash pointers based on the first carbon emission amount ([0014] Carbon offset data may be stored in distributed ledger platforms with the use of a directed acyclic graph schema, a low-energy blockchain protocol with elements of Proof of Space and/or elapsed time verification, and other methods of consensus, verification, trustless architecture, and byzantine fault tolerance.; [0024] The carbon offset tracking server 150 may further include a distributed ledger interface 162 for interacting with the distributed ledger 140. For example, the carbon offset tracking server 150 may include a tokenization unit 164 for encrypting and/or masking sensitive data. Furthermore, the carbon offset tracking server 150 may include a verification unit 166 to verify or validate proposed entries (e.g., proposed blocks) into the distributed ledger 140.; [0025] The distributed ledger 140 may comprise growing list of records or blocks (e.g., Block 1 142, Block 2 144, Block 3 146, etc.), which may be linked and/or secured using cryptography. Each block may typically comprise a hash pointer as a link to a previous block, a timestamp and transaction data. The blocks may be inherently resistant to modification of the data, such as a recorded carbon offset contribution of an individual user. The distributed ledger may be manage by a network of nodes collectively adhering to a protocol for validating (e.g., verifying) new blocks. In one aspect, the carbon offset tracking server 150 may be a node in the network that manages the distributed ledger 140, and may validate new blocks e.g., via verification unit 166. Once recorded, the data in any given block may not be able to be altered retroactively without the alteration of all subsequent blocks.; [0058]). Regarding claim 8, it is a media/product type claim having similar limitations as claim 3 above. Therefore, it is rejected under the same rationale above. Regarding claim 17, Wick teaches the operations further comprising: allocating disk space of the first data center, updating a block of a tamper-evident, distributed ledger encoding records of a plurality of previous values in a directed acyclic graph of cryptographic hash pointers indicating that the disk space has been allocated, and periodically updating the tamper-evident, distributed ledger to indicate that the disk space has been allocated ([0024]; [0025] The distributed ledger 140 may comprise growing list of records or blocks (e.g., Block 1 142, Block 2 144, Block 3 146, etc.), which may be linked and/or secured using cryptography. Each block may typically comprise a hash pointer as a link to a previous block, a timestamp and transaction data. The blocks may be inherently resistant to modification of the data, such as a recorded carbon offset contribution of an individual user. The distributed ledger may be manage by a network of nodes collectively adhering to a protocol for validating (e.g., verifying) new blocks. In one aspect, the carbon offset tracking server 150 may be a node in the network that manages the distributed ledger 140, and may validate new blocks e.g., via verification unit 166. Once recorded, the data in any given block may not be able to be altered retroactively without the alteration of all subsequent blocks.). Claim 16 is rejected under 35 U.S.C. 103 as being unpatentable over Ekins et al. (US 2021/0373973 A1) in view of Naidu et al. (US 2021/0342185 A1). Regarding claim 16, Ekins does not explicitly teach wherein obtaining the update to the first score comprises: obtaining, via an application program interface, an indication that an energy source powering the first data center has changed from a first energy source type to a second energy source type, sending a query to a data store identifying the second energy source type, receiving an updated value associated with the second energy source type in response to the query, and updating the first score associated with the first data center. However, Naidu teaches wherein obtaining the update to the first score comprises: obtaining, via an application program interface, an indication that an energy source powering the first data center has changed from a first energy source type to a second energy source type, sending a query to a data store identifying the second energy source type, receiving an updated value associated with the second energy source type in response to the query, and updating the first score associated with the first data center ([0016] For instance, if a data center is powered by a thermal power plant and if a solar farm can supply power to the data center, the power may be obtained from the solar farm to achieve the carbon footprint target.; [0017] Further, the switching of a power source from which the power for a data center is obtained also helps achieving the targets. Thus, the present subject matter facilitates making decisions regarding switching of power sources and relocation of workloads to achieve the targets. ;[0043] The system 100 may also receive power source information 216, which includes various details regarding the power sources and power suppliers that supply power to the data centers of the data center system 200. The power source information 216 may be received, for example, from the power suppliers or the power sources.; [0060] Based on the power source information 216 and the target information 214, the system 100 may determine whether the power source from which the first data center 202 obtains power is to be switched from the first power source 211 to the third power source 302. For instance, the system 100 may decide to switch the power source of the first data center 202 from the first power source 211 to the third power source 302 based on the cost and carbon footprint of the two power sources. In a further example, the decision as to whether to switch the power supply may be taken based on the details regarding the second power source 212 as well. For instance, if the second power cost is less than the third power cost, if the second power source 212 has a lower carbon footprint, and if the second data center 204 has sufficient resources to handle workloads relocated from the first data center 202, the system 100 may determine that no switching of power supply is to be performed.). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Naidu with the teachings of Ekins to determine where to schedule workloads for execution to reduce its carbon footprint. One of ordinary skill in the art would have been motivated by the desire of switching a power source to reduce carbon emissions. Allowable Subject Matter Claims 10-11 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. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to JORGE A CHU JOY-DAVILA whose telephone number is (571)270-0692. The examiner can normally be reached Monday-Friday, 6:00am-5:00pm. 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, Aimee J Li can be reached at (571)272-4169. 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. /JORGE A CHU JOY-DAVILA/Primary Examiner, Art Unit 2195
Read full office action

Prosecution Timeline

Jul 12, 2022
Application Filed
Oct 17, 2025
Non-Final Rejection — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12602244
OFFLOADING PROCESSING TASKS TO DECOUPLED ACCELERATORS FOR INCREASING PERFORMANCE IN A SYSTEM ON A CHIP
2y 5m to grant Granted Apr 14, 2026
Patent 12596565
USER ASSIGNED NETWORK INTERFACE QUEUES
2y 5m to grant Granted Apr 07, 2026
Patent 12591821
DYNAMIC ADJUSTMENT OF WELL PLAN SCHEDULES ON DIFFERENT HIERARCHICAL LEVELS BASED ON SUBSYSTEMS ACHIEVING A DESIRED STATE
2y 5m to grant Granted Mar 31, 2026
Patent 12585490
MIGRATING VIRTUAL MACHINES WHILE PERFORMING MIDDLEBOX SERVICE OPERATIONS AT A PNIC
2y 5m to grant Granted Mar 24, 2026
Patent 12579065
LIGHTWEIGHT KERNEL DRIVER FOR VIRTUALIZED STORAGE
2y 5m to grant Granted Mar 17, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

1-2
Expected OA Rounds
77%
Grant Probability
99%
With Interview (+37.3%)
3y 1m
Median Time to Grant
Low
PTA Risk
Based on 408 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

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

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

Free tier: 3 strategy analyses per month