DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This Office Action is in response to Applicant’s Amendment and Remarks filed on 16 March 2026.
Claims 1, 3-8, 11-15, 17, 20-21 and 23-24 are pending for examination. Claims 2, 9-10, 16, 18-19 and 22 were cancelled.
Claim Interpretation
The following is a quotation of 35 U.S.C. 112(f):
(f) Element in Claim for a Combination. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The claims in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification when 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is invoked.
As explained in MPEP § 2181, subsection I, claim limitations that meet the following three-prong test will be interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph:
(A) the claim limitation uses the term “means” or “step” or a term used as a substitute for “means” that is a generic placeholder (also called a nonce term or a non-structural term having no specific structural meaning) for performing the claimed function;
(B) the term “means” or “step” or the generic placeholder is modified by functional language, typically, but not always linked by the transition word “for” (e.g., “means for”) or another linking word or phrase, such as “configured to” or “so that”; and
(C) the term “means” or “step” or the generic placeholder is not modified by sufficient structure, material, or acts for performing the claimed function.
Use of the word “means” (or “step”) in a claim with functional language creates a rebuttable presumption that the claim limitation is to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites sufficient structure, material, or acts to entirely perform the recited function.
Absence of the word “means” (or “step”) in a claim creates a rebuttable presumption that the claim limitation is not to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is not interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites function without reciting sufficient structure, material or acts to entirely perform the recited function.
Claim limitations in this application that use the word “means” (or “step”) are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Conversely, claim limitations in this application that do not use the word “means” (or “step”) are not being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action.
This application includes one or more claim limitations that do not use the word “means,” but are nonetheless being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, because the claim limitation(s) uses a generic placeholder that is coupled with functional language without reciting sufficient structure to perform the recited function and the generic placeholder is not preceded by a structural modifier. Such claim limitation(s) are: “second host that includes a second observability resource that configures the second host to generate” in the claim 8 and “first host that includes a first observability resource that configures the first host to generate and “second host that includes a second observability resource that configures m,./the second host to generate” in claim 15.
Because these claim limitations are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, they are being interpreted to cover the corresponding either structure, material, or acts to the function described in the specification as performing the claimed function, and equivalents thereof. The corresponding structure can be found in paragraph [0028] that discloses “a computing resource component may comprise any type of component, hardware-based, software-based, etc., that is capable of hosting or running a cloud network function or a serverless network function. For example, a computing resource component may comprise hardware-based devices such as a server, a router, a network switch (e.g., leaf switch, spine switch, etc.), a gateway, a network interface card (NIC), a smart NIC, a Field Programmable Gate Array (FPGA), an Application-Specific Integrated Circuit (ASIC), and/or any other hardware device capable of executing a serverless network function. The computing resource component may comprise a software-based component as well, such as a virtual machine, container, and so forth.” And paragraph [0040] that discloses “one or more of computing resources (or "host(s)") 120a-120d (collectively referred to herein as hosts 120), as the potential destination location(s)” with Drawing Fig. 4, 104 Data center (physical locations).
If applicant does not intend to have this/these limitation(s) interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitation(s) to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitation(s) recite(s) sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1, 3-8, 11-15, 17, 20-21 and 23-24 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e., a law of nature, a natural phenomenon, or an abstract idea) without significantly more.
Claim 1 is rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Step 1, Statutory Category: Yes, the claim 1 is a monitoring service network architecture that performing a series of steps and therefore falls in the statutory category of a machine.
Step 2A- Prong 1: Judicial Exception Recited: Yes, the claim recites: “determining, that a first host includes a first hardware resource that is capable of executing the workload; determining, that a second host includes a second hardware resource that is capable of executing the workload; determining, based at least in part on the monitoring requirement, that the first host includes a kernel-level resource; determining that the second host does not include the kernel-level resource such that the second host is unable to generate the particular computing resource metric for the workload; selecting, the first host rather than the second host to host the workload based at least in part on determining that the first host includes the first hardware resource that is capable of executing the workload and determining that the first host includes the kernel-level resource that is capable of generating the particular computing resource metric”. As drafted, the claim as a whole recites a machine (i.e., monitoring service network architecture) that performing steps that could be performed in the human mind, but for the recitation of generic computing components. The human mind can easily judging/evaluating/identifying/determining that a first host includes a first hardware resource that is capable of executing the workload; judging/evaluating/identifying/determining that a second host includes a second hardware resource that is capable of executing the workload; judging/evaluating/identifying/determining based at least in part on the monitoring requirement, that the first host includes a kernel-level resource that is capable of generating the particular computing resource metric for the workload while the first hardware resource executes the workload; judging/evaluating/identifying/determining that the second host does not include the kernel-level resource such that the second host is unable to generate the particular computing resource metric for the workload; and selecting/choosing the first host rather than the second host to host the workload based at least in part on determining that the first host includes the first hardware resource that is capable of executing the workload and determining that the first host includes the kernel-level resource that is capable of generating the particular computing resource metric. Therefore, but for the recitation of generic computing components, these steps may be a Mental Processes that can be performed in the human mind (including an observation, evaluation, judgment, opinion).
Therefore, yes, the claims do recite judicial exceptions.
Step 2A- Prong 2: Integrated into a practical Application: No, this judicial exception is not integrated into a practical application. In particular, the claim recites an additional limitations that “receiving, by an orchestrator of the monitoring service network architecture, a request to host a workload on a host, the request including a monitoring requirement that the host is capable of observing a particular computing resource metric associated with execution of the workload” which is insignificant pre-solution data gathering (see MPEP § 2106.05(g)). In addition, the limitation of “A monitoring service network architecture, comprising: one or more processors; and one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:” and “the orchestrator” and “a kernel-level resource that is capable of generating the particular computing resource metric for the workload while the first hardware resource executes the workload” which is directed to Adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a generic computer as a tool to perform an abstract idea (see MPEP 2106.05(f)). Further, the limitation of “causing, by the orchestrator, the workload to execute on the first host” which is merely applying the judicial exception or abstract idea (See MPEP 2106.05(f)). The claim does not providing any details on how that workload is executed other than a generic machine such as the “first host” and no details what so ever on how the claimed function will occur. Accordingly, even in combination, these additional elements do not integrate the abstract idea into a practical application because they not impose any meaningful limits on practicing the abstract idea. Therefore, the claim is directed to the abstract idea.
Step 2B: Claim provides an Inventive Concept: No. The additional element “A monitoring service network architecture, comprising: one or more processors; and one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:” and “the orchestrator” and “a kernel-level resource that is capable of generating the particular computing resource metric for the workload while the first hardware resource executes the workload” which is directed to Adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a generic computer as a tool to perform an abstract idea (see MPEP 2106.05(f)). In addition, the limitation of “causing, by the orchestrator, the workload to execute on the first host” which is merely applying the judicial exception or abstract idea (See MPEP 2106.05(f)). Further, the limitation of “receiving, by an orchestrator of the monitoring service network architecture, a request to host a workload on a host, the request including a monitoring requirement that the host is capable of observing a particular computing resource metric associated with execution of the workload” (insignificant pre-solution data gathering (see MPEP § 2106.05(g))) which are well understood, routine, conventional activity (see MPEP § 2106.05(d)). Courts have identified “receiving and transmitting data, storing and retrieving information”, et cetera as well understood, routine, conventional and mere instructions to implement an abstract idea on a computer, or merely uses a computer as a tool to perform an abstract idea (see MPEP 2106.05(f))). These additional elements and combination of the elements does not amount to significant more than the exception itself or provide an inventive concept in Step 2B.
Under the 2019 PEG, a conclusion that an additional element is insignificant extra-solution activity in Step 2A should be re-evaluated in Step 2B. Here, the “receiving” step was considered to be extra-solution activity in Step 2A as insignificant data gathering and communication and are well understood, routine, conventional activity in the field. The “receiving” step is for the purpose of “communication” and “transmitting the data” and these can be reached on one of court case (Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec, 838 F.3d at 1321, 120 USPQ2d at 1362 (utilizing an intermediary computer to forward information); TLI Communications LLC v. AV Auto. LLC, 823 F.3d 607, 610, 118 USPQ2d 1744, 1745 (Fed. Cir. 2016) see MPEP § 2106.05(d) II). Accordingly, a conclusion that “receiving” is well understood, routine, conventional activity is supported under Berkheimer options 2.
For these reasons, there is no inventive concept in the claim, and thus the claim is ineligible.
Independent claims 8 and 15 are rejected for the same reason as claim 1 above. Claim 8 further recites “determining to host a workload on a host that is capable of observing a particular computing resource metric associated with execution of the workload;”, “determining computing resource metrics that are observable, the computing resource metrics representing consumption of different computing resources by the workload” and “identifying multiple hosts in a computing resource network that are each capable of hosting the workload, the multiple hosts including: a first host that includes a first observability resource that configures the first host to generate a first computing resource metric of the computing resource metrics; and a second host that includes a second observability resource that configures the second host to generate a second computing resource metric of the computing resource metrics, the second computing resource metric being different from the first computing resource metric”, “determining, based at least in part on the first computing resource metric corresponding to the particular computing resource metric, that the first host is capable of using the first observability resource to generate the particular computing resource metric by observing consumption of a computing resource by the workload”; “determining that the second host is unable to generate the particular computing resource metric based at least in part on the second host not including the first observability resource and being unable to observe consumption of the computing resource by the workload; selecting the first host rather than the second host to host the workload based at least in part on the first host including the first observability resource that configures the first host to generate the first computing resource metric corresponding to the particular computing resource metric; (i.e., these all “determinations” are being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind). In addition, “the first observability resource includes at least one of a kernel-level resource or hardware accelerator” which is directed to adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a generic computer as a tool to perform an abstract idea (see MPEP 2106.05(f)).
Claim 15 further recites “receiving historical data indicating resource consumption by the workload, the resource consumption being associated with a resource of a computing resource type among multiple computing resource types;” and “selecting, based at least in part on the historical data” (i.e., “receiving historical data” as being treated as insignificant pre-solution data gathering (see MPEP § 2106.05(g))) which are well understood, routine, conventional activity (see MPEP § 2106.05(d)). Courts have identified “receiving and transmitting data, storing and retrieving information”, et cetera as well understood, routine, conventional and mere instructions to implement an abstract idea on a computer, or merely uses a computer as a tool to perform an abstract idea (see MPEP 2106.05(f)). In addition, “selecting” based at least in part on the historical data as being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind).
With respect to the dependent claim 3, the claim elaborates that wherein the particular computing resource metric is one metric among a plurality of computing resource metrics, the operations further comprising: determining that the first host and the second host are not available for providing observability for all of the plurality of computing resource metrics (“determining that the first host and the second host are not available for providing observability for all of the plurality of computing resource metrics” as being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind. In addition, “wherein the particular computing resource metric is one metric among a plurality of computing resource metrics” which is directed to adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a generic computer as a tool to perform an abstract idea (see MPEP 2106.05(f)).
With respect to the dependent claim 4, the claim elaborates that receiving historical data indicating resource consumption by the workload, the resource consumption being associated with a resource of a computing resource type among multiple computing resource types (“receiving historical data” as being treated as insignificant pre-solution data gathering (see MPEP § 2106.05(g))) which are well understood, routine, conventional activity (see MPEP § 2106.05(d)). Courts have identified “receiving and transmitting data, storing and retrieving information”, et cetera as well understood, routine, conventional and mere instructions to implement an abstract idea on a computer, or merely uses a computer as a tool to perform an abstract idea (see MPEP 2106.05(f)).
With respect to the dependent claim 5, the claim elaborates that determining, based at least in part on historical data associated with workload resource consumption, a priority value of the particular computing resource metric among the plurality of computing resource metrics; and determining to observe the particular computing resource metric, based at least in part on the priority value of the particular computing resource metric meeting or exceeding a threshold priority value (i.e., “determining” steps are being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind).
With respect to the dependent claims 6-7, the claim 6 elaborates that receiving input data from a user account associated with the workload, the input data including a request to observe a particular type of computing resource metric; and determining to monitor the particular computing resource metric based on the input data. The claim 7 elaborates that receiving input data from a user account, the input data indicating an intent based description indicative of a second computing resource utilized by a second workload; identifying, based at least in part on the intent based description, a resource consumption characteristic associated with the second workload; identifying a third host, based at least in part on the resource consumption characteristic; and determining to collect a computing resource metric associated with execution of the second workload by the third host. (“receiving” steps are being treated as insignificant pre-solution data gathering (see MPEP § 2106.05(g))) which are well understood, routine, conventional activity (see MPEP § 2106.05(d)). Courts have identified “receiving and transmitting data, storing and retrieving information”, et cetera as well understood, routine, conventional and mere instructions to implement an abstract idea on a computer, or merely uses a computer as a tool to perform an abstract idea (see MPEP 2106.05(f)). “determining” and “identifying” steps are being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind).
Dependent claims 11-14 recite the same features as applied to claims 4-7 respectively above, therefore they are also rejected under the same rationale.
Dependent claims 17 and 20 recite the same features as applied to claims 3 and 6 respectively above, therefore they are also rejected under the same rationale.
With respect to the dependent claim 21, the claim elaborates that eliminating the second host from being selected for placement of the workload in response to the determining that the second host does not include the kernel-level resource (“eliminating” from being selected are being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind).
With respect to the dependent claim 23, the claim elaborates that wherein the request further comprises an intent associated with the particular computing resource metric indicated, and wherein selecting the first host is based at least in part on the intent (“an intent associated with the particular computing resource metric indicated, and wherein selecting the first host is based at least in part on the intent” are being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind).
With respect to the dependent claim 24, the claim elaborates that wherein selecting the first host is further based on determining that the first host comprises a computing resource of a second computing resource type that is capable of providing a same output as the resource of the workload (“selecting the first host is further based on determining” ” as being treated as part of abstract idea and is analogous to Mental processes, such that concept can be performed in the human mind).
Claim Rejections - 35 USC § 103
The following is a quotation of pre-AIA 35 U.S.C. 103(a) which forms the basis for all obviousness rejections set forth in this Office action:
(a) A patent may not be obtained though the invention is not identically disclosed or described as set forth in section 102, if the differences between the subject matter sought to be patented and the prior art are such that the subject matter as a whole would have been obvious at the time the invention was made to a person having ordinary skill in the art to which said subject matter pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1, 21 and 23 are rejected under 35 U.S.C. 103 as being unpatentable over Bernat et al. (US Pub. 2018/0241802 A1) in view of Richter et al. (US Pub. 2003/0046396 A1) and further in view of Gonzalez et al. (US Pub. 2016/0036647 A1) and WAHEED (US Pub. 2017/0034297 A1).
Bernat was cited in the previous Office Action.
As per claim 1, Bernat teaches the invention substantially as claimed including A monitoring service network architecture (Bernat, Fig. 1, 110 network switch, 140 network, 122-128 (server node); [0027] lines 3-4, monitoring resource utilizations within the server node), comprising:
one or more processors (Bernat, Fig. 2, 202 CPU); and
one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising (Bernat, Fig. 2, 206 main memory; Claim 1, lines 1-7, A network switch for managing the distribution of workloads among a set of server nodes, the network switch comprising: one or more processors; one or more memory devices having stored therein a plurality of instructions that, when executed, cause the network switch to):
receiving, by an orchestrator of the monitoring service network architecture, a request to host a workload on a host, the request including a monitoring requirement that the host is capable of observing a particular computing resource metric associated with execution of the workload (Bernat, Fig. 1, 110 network switch (as orchestrator), 130 client device; [0018] lines 13-14, the network switch 110 is configured to receive requests from client devices to perform workloads, [0018] lines 23-32, the network switch 110 may receive requests that indicate one or more types of resources that may be primarily utilized during the performance of the workload (e.g., CPU intensive, memory intensive, etc.), one or more quality of service objectives to be satisfied (e.g., a minimum latency, a minimum number of operations per second, a maximum amount of time to perform the workload, etc.), and/or a designation of one or more of the server nodes 120 to perform the workload; [0045] lines 23-35, in receiving the request, the network switch 110 may receive an indication of a target quality of service (i.e., a quality of service objective) to be satisfied during the execution of the workload, such as a target amount of time in which to complete the workload, an instruction to assign the workload to a server node 120 having a resource utilization for one or more specified types of resources that satisfies a specified threshold (e.g., an instruction to assign the workload to a server node 120 having a CPU utilization that is below 50%), and/or other measures of the target quality of service to be provided (as a monitoring requirement that the host is capable of observing a particular computing resource metric (i.e., QOS) associated with execution of the workload));
determining, by the orchestrator, that a first host includes a first hardware resource that is capable of executing the workload; determining, by the orchestrator, that a second host includes a second hardware resource that is capable of executing the workload; (Bernat, Fig. 1, 122, 124, 126, 128 (as hosts), 140 network; [0037] lines 25-30, telemetry data 404, which may be embodied as data indicative of the utilizations of each monitored resource in each server node 120 (e.g., percentage of available CPU 302 processing capacity presently used, number of operations per second, etc.) (As including first and second hosts); [0049] lines 31-44, the network switch 110 may analyze the telemetry data 404 for each server node 110, and if the present utilization of a resource that is likely to be most affected by the workload (e.g., as indicated by the resource sensitivity of the workload) is greater than a predefined threshold (e.g., 60%)…Of the server nodes 120 determined to be able to satisfy the quality of service objective(s), the network switch 110, in the illustrative embodiment, may then identify the server nodes 120 with the lowest amount of channel utilization (e.g., the least amount of network congestion) as the best candidates; [0046] lines 8-10, receive telemetry data 404 pertaining to one or more physical resources; [0051] lines 1-12, the server node 120 monitors the utilization of the resources that were registered in block 804, such as by utilizing performance monitoring software (e.g., a “pmon” process) and/or performance counters. In doing so, in the illustrative embodiment, the server node 120 monitors the resource utilization with dedicated circuitry of the HFI 310 (e.g., the telemetry logic 312)…monitors physical resource utilization…the server node 120 may monitor the utilization of the CPU 302; [0052] lines 1-9, in reporting the resource utilizations as telemetry data 504, the server node 120…the telemetry logic 312, in the illustrative embodiment, reports the telemetry data 504…to send a telemetry update to the network switch 110));
determining, by the orchestrator and based at least in part on the monitoring requirement, that the first host includes a resource that is capable of generating the particular computing resource metric for the workload while the first hardware resource executes the workload (Bernat, Abstract, lines 8-12, The network switch is further to determine channel utilization data for each of the server nodes, select, as a function of the telemetry data and the channel utilization data, one or more of the server nodes to execute the workload, and assign the workload to the selected one or more server nodes; [0018] lines 23-32, the network switch 110 may receive requests that indicate one or more types of resources that may be primarily utilized during the performance of the workload (e.g., CPU intensive, memory intensive, etc.), one or more quality of service objectives to be satisfied (e.g., a minimum latency, a minimum number of operations per second, a maximum amount of time to perform the workload, etc.), and/or a designation of one or more of the server nodes 120 to perform the workload; [0021] lines 14-20, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data (e.g., present resource utilizations such as the load (e.g., usage of available capacity) on the CPU, memory, accelerators, etc.) and network congestion (i.e., channel utilization) associated with each server node 120; [0052] lines 1-9, in reporting the resource utilizations as telemetry data 504, the server node 120…the telemetry logic 312, in the illustrative embodiment, reports the telemetry data 504…to send a telemetry update to the network switch 110; [Examiner noted: determining based at least in part on the first host including a resource that is capable to generate a particular computing resource metric corresponding to the received requirement (i.e., CPU resource utilization of the first host) corresponding to the particular computing resource metric (i.e., an instruction to assign the workload to a server node 120 having a CPU utilization that is below 50%), that the first host is capable of utilizing the resource for generating the particular computing resource metric]; also see [0051] lines 1-12, the server node 120 monitors the utilization of the resources that were registered in block 804, such as by utilizing performance monitoring software (e.g., a “pmon” process) and/or performance counters. In doing so, in the illustrative embodiment, the server node 120 monitors the resource utilization with dedicated circuitry of the HFI 310 (e.g., the telemetry logic 312)…monitors physical resource utilization…the server node 120 may monitor the utilization of the CPU 302);;
determining that the second host is unable to generate the particular computing resource metric for the workload (Bernat, Fig. 1, server nodes (as include second host); Fig. 5, 120 server node, 540 telemetry reporter; [0051] lines 1-12, the server node 120 monitors the utilization of the resources that were registered in block 804, such as by utilizing performance monitoring software (e.g., a “pmon” process) and/or performance counters. In doing so, in the illustrative embodiment, the server node 120 monitors the resource utilization with dedicated circuitry of the HFI 310 (e.g., the telemetry logic 312)…monitors physical resource utilization…the server node 120 may monitor the utilization of the CPU 302; [0021] lines 14-20, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data (e.g., present resource utilizations such as the load (e.g., usage of available capacity) on the CPU, memory, accelerators, etc.) and network congestion (i.e., channel utilization) associated with each server node 120; [Examiner noted: since the first host is selected based on satisfying the QOS (i.e., the first host is capable to generate the CPU utilization as indicated in the request), therefore a host (as second host) that is unable to generate the CPU utilization as indicated in the request will not be selected for execution]);
selecting, by the orchestrator, the first host rather than the second host to host the workload based at least in part on determining that the first host includes the first hardware resource that is capable of executing the workload and determining that the first host that is capable of generating the particular computing resource metric (Bernat, Abstract, lines 8-12, The network switch is further to determine channel utilization data for each of the server nodes, select, as a function of the telemetry data and the channel utilization data, one or more of the server nodes to execute the workload, and assign the workload to the selected one or more server nodes; [0021] lines 14-20, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data (e.g., present resource utilizations such as the load (e.g., usage of available capacity) on the CPU, memory, accelerators, etc.) and network congestion (i.e., channel utilization) associated with each server node 120; also see [0045] lines 23-35, in receiving the request, the network switch 110 may receive an indication of a target quality of service (i.e., a quality of service objective) to be satisfied during the execution of the workload, such as a target amount of time in which to complete the workload, an instruction to assign the workload to a server node 120 having a resource utilization for one or more specified types of resources that satisfies a specified threshold (e.g., an instruction to assign the workload to a server node 120 having a CPU utilization that is below 50%), and/or other measures of the target quality of service to be provided; [0052] lines 1-9, in reporting the resource utilizations as telemetry data 504, the server node 120…the telemetry logic 312, in the illustrative embodiment, reports the telemetry data 504…to send a telemetry update to the network switch 110); and
causing, by the orchestrator, the workload to execute on the first host (Bernat, Fig. 9, 848 receive a workload to be executed, 850 execute the workload; [0021] lines 14-16, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data).
Bernat fails to specifically teach when determining the second host, it is determining that the second host does not include the kernel-level resource such that the second host is unable to generate the particular computing resource metric for the workload, and when selecting, it is based on determining that the first host includes the kernel-level resource that is capable of generating the particular computing resource metric.
However, Richter teaches [determining that] the second host does not include a resource such that the second host is unable to generate the particular computing resource metric for the workload and when selecting, it is based on determining that the first host includes the resource that is capable of generating the particular computing resource metric. (Richter, Fig. 2, 245 monitoring agents within respective subsystem; [0200] Each monitoring agent 245 may be present to monitor one or more of the resources 250 of its subsystem processing module… For example, monitoring agent 245 of storage subsystem module 210 may be configured to monitor and track usage of such resources as processing engine bandwidth, Fibre Channel bandwidth to content delivery flow path 263, number of storage drives attached, number of input/output operations per second (IOPS) per drive and RAID levels of storage devices that may be employed as content sources 265…Monitoring agent 245 of networking subsystem processing module 205 may be employed to monitor and track usage of such resources as processing engine bandwidth, table lookup engine bandwidth, RAM employed for connection control structures and outbound network bandwidth availability. Monitoring agent 245 of application processing subsystem module 225 may be employed to monitor and track usage of processing engine bandwidth. Monitoring agent 245 of application RAM subsystem module 220 may be employed to monitor and track usage of shared resource 255, such as RAM, which may be employed by a streaming application on a per-stream basis as well as for use with connection control structures and buffers. Monitoring agent 245 of inter-process communication path 230 may be employed to monitor and track usage of such resources as the bandwidth used for message passing between subsystems while monitoring agent 245 of inter-process data movement path 235 may be employed to monitor and track usage of bandwidth employed for passing data between the various subsystem modules; [0225] appropriate monitoring agents 245 responsible for each of the identified required resources; [0237] monitoring agents 245 of each subsystem may be configured to be capable of evaluating the current workload of the resources 250 of the respective subsystem and of reporting the availability of such resources to system monitor 240, either automatically or upon a polling by system monitor 240. Upon receipt of a request, system monitor 240 and one or more individual monitoring agents 245 may individually or together function to either accept the request and reserve the required resources 250 for the request if the resources are available, or to reject the request if one or more subsystem resources 250 required to process the request are not available. [Examiner noted: each monitoring engine within respective subsystem is capable for monitoring different resource usage, a host with a particular monitoring agent that capable of generating the requested resources are selected, and thus a subsystem lacking the particular monitoring agent for the requested resource would not generate the requested resource and therefore would not be selected to satisfy the request]).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat with Richter because Richter’s teaching of utilizing the monitoring agent with each respective subsystem for monitoring particular resource metric to satisfying the resource request in order to assigning and processing the request would have provided Bernat’s system with the advantage and capability to allow the system to easily determining different capability of each host/subsystem for assigning the workload in order to improving the system performance and resource utilization (see [0009] “Among the many advantages provided by the disclosed systems and methods are increased performance and improved predictability of such computing systems in the performance of designated tasks across a wide range of loads. Examples include greater predictability in the capability of a network server, switch or router to process and manage information such as content requests, and acceleration in the delivery of information across a network utilizing such computing systems”).
Bernat and Richter fail to explicitly teach determining that the second host does not include a kernel-level resource.
However, Gonzalez teaches determining that the second host does not include a monitoring resource (Gonzalez, [0003] To communicate with the networked devices, the host devices may use application program interfaces (APIs) or other custom software that is specific to a particular type of networked device. Using such software, the host devices may make requests for data from the networked devices, interpret data received from the networked devices, and/or otherwise interact with the networked devices. However, in some instances, the host devices may lack diagnostic tools to monitor, maintain, and/or service some or all deployed networked devices).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat and Richter with Gonzalez because Gonzalez’s teaching of that host is determined that lack of diagnostic tools to monitor its resources would have provided Bernat and Richter’s system (i.e., system having monitoring agents are resource specific and generating corresponding metrics) with the advantage and capability to allow the system to easily identifying that if the host does not have specific tool for generating the particular resource metrics, then it will not be used for processing the workload which improving the scheduling efficiency.
Bernat, Richter and Gonzalez fail to specifically teach that resource capable of generating the particular computing resource metric is kernel-level resource.
However, WAHEED teaches that resource capable of generating the particular computing resource metric is kernel-level resource (WAHEED, Fig. 2, memory manager 202, 204 resource usage (as generated); [0047] Memory manager 202 monitors resource usage 204 in server 100. Resource usage 204 may include any metric indicating a likelihood of slowing down performance of server 100. For example, metrics for resource usage 204 may include processor usage, storage device usage, and/or network usage; [0073] memory manager 202 may operate within a kernel operating system space; Claim 8, a module within a kernel space or user space of the server to monitor the resource usage, monitor the memory usage, and initiate the synchronization of the cached pages).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Richter and Gonzalez with WAHEED because WAHEED’s teaching of using a kernel level resource for monitoring and determining the resource usage/metrics would have provided Bernat, Richter and Gonzalez’s system with the advantage and capability to allow the system to easily identifying the resource utilization which improving the system performance and efficiency (see WAHEED [0050] “provide more efficient memory management for large data operations”).
As per claim 21, Bernat, Richter, Gonzalez and WAHEED teach the invention according to claim 1 above. Richter further teaches eliminating the second host from being selected for placement of the workload in response to the determining that the second host does not include the kernel-level resource (Richter, [0225] appropriate monitoring agents 245 responsible for each of the identified required resources; [0237] monitoring agents 245 of each subsystem may be configured to be capable of evaluating the current workload of the resources 250 of the respective subsystem and of reporting the availability of such resources to system monitor 240, either automatically or upon a polling by system monitor 240. Upon receipt of a request, system monitor 240 and one or more individual monitoring agents 245 may individually or together function to either accept the request and reserve the required resources 250 for the request if the resources are available, or to reject the request if one or more subsystem resources 250 required to process the request are not available (as to eliminating the second host from being selected for placement). In addition, WAHEED teaches kernel-level resource (WAHEED, Fig. 2, memory manager 202, 204 resource usage (as generated); [0047] Memory manager 202 monitors resource usage 204 in server 100. Resource usage 204 may include any metric indicating a likelihood of slowing down performance of server 100. For example, metrics for resource usage 204 may include processor usage, storage device usage, and/or network usage; [0073] memory manager 202 may operate within a kernel operating system space; Claim 8, a module within a kernel space or user space of the server to monitor the resource usage, monitor the memory usage, and initiate the synchronization of the cached pages).
As per claim 23, Bernat, Richter, Gonzalez and WAHEED teach the invention according to claim 1 above. Bernat further teaches wherein the request further comprises an intent associated with the particular computing resource metric indicated, and wherein selecting the first host is based at least in part on the intent (Bernat, [0039] lines 16-25, receive requests from the client device 130 to perform workloads and parse parameters out of the requests to determine additional information, such as a designation of one or more of the server nodes 120 to perform each workload (as an intent associated with the one or more metrics), a type of resource that will be most impacted by execution of the workload (e.g., that the workload is CPU intensive, memory intensive, accelerator intensive, etc.), referred to herein as a resource sensitivity of the workload, and a quality of service objective associated with the execution of the workload; [0049] lines 15-17, the network switch 110 may select or give preference to one or more server nodes 120 designated in the request).
Claim 3 is rejected under 35 U.S.C. 103 as being unpatentable over Bernat, Richter, Gonzalez and WAHEED, as applied to claim 1 above, and further in view of Yardeni et al. (US Patent. 11,681,557 B2).
Yardeni was cited in the previous Office Action.
As per claim 3, Bernat, Richter, Gonzalez and WAHEED teach the invention according to claim 1 above. Bernat teaches wherein the particular computing resource metric is one metric among a plurality of computing resource metrics (Bernat, [0018] lines 23-32, the network switch 110 may receive requests that indicate one or more types of resources that may be primarily utilized during the performance of the workload (e.g., CPU intensive, memory intensive, etc.), one or more quality of service objectives to be satisfied (e.g., a minimum latency, a minimum number of operations per second, a maximum amount of time to perform the workload, etc.), and/or a designation of one or more of the server nodes 120 to perform the workload).
Bernat, Richter, Gonzalez and WAHEED fail to specifically teach determining that first host and the second host are not available for providing observability for all of the plurality of computing resource metrics.
However, Yardeni teaches determining that no host among the multiple hosts is available for providing observability for all of the plurality of computing resource metrics (Yardeni, Fig. 1, 104 hosts; Col 27, lines 18-40, the user can add an additional workload into the HCI cluster 100 for execution. The newly added workload may require additional storage space and/or other computational resources (CPU, memory, network I/O resource, I/O pathways, etc.) for execution. Therefore, the management system 120 (e.g., the resource-scaling module 160) may clone one or more existing hosts and/or provision one or more new hosts to expand the datacenter 102, thereby providing the required additional computational resources…assuming execution of the additional workload requires at least an additional 100 GB of the memory and 10 TB of the storage space, and the current demands on both memory and storage in the HCI cluster are high (e.g., more than 80%), the management system 120 (e.g., the resource-computing module 156 and recommendation module 158) may determine the number of hosts to be cloned/provisioned so as to satisfy both the direct demand of 100 GB memory on the host(s) and the indirect demand of 10 TB storage on the host(s) via the datastore (e.g., VSAN) [Examiner noted: the system determining that first and second host are not available (i.e., no hosts) for providing observability for all of the computing resource metrics as required by the workload, so additional hosts are need to providing the resources required for execution, i.e., provision one or more new hosts, and thus the previous host will be utilized in combination with newly added hosts for providing the resources for execution]).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Richter, Gonzalez and WAHEED with Yardeni because Yardeni’s teaching of provision one or more new hosts to expand the datacenter for providing enough resource for executing the workloads would have provided Bernat, Richter, Gonzalez and WAHEED’s system with the advantage and capability to allow the system to ensuring the sufficient resource to meet the workload demands which improving the system performance and efficiency (see Yardeni, Col 2, lines 3-4, “ensuring that infrastructure resources are sufficient resources to meet the performance demands”).
Claim 4 is rejected under 35 U.S.C. 103 as being unpatentable over Bernat, Richter, Gonzalez and WAHEED, as applied to claim 1 above, and further in view of Hatasaki et al. (US Pub. 2012/0179823 A1).
Hatasaki was cited in the previous Office Action.
As per claim 4, Bernat, Richter, Gonzalez and WAHEED teach the invention according to claim 1 above. Bernat, Richter, Gonzalez and WAHEED fail to specifically teach receiving historical data indicating resource consumption by the workload, the resource consumption being associated with a resource of a computing resource type among multiple computing resource types.
However, Hatasaki teaches receiving historical data indicating resource consumption by the workload, the resource consumption being associated with a resource of a computing resource type among multiple computing resource types (Hatasaki, Fig. 4, Application usage history, 311, application ID, last allocated resource, network, server, storage; [0036] lines 1-2, FIG. 4 illustrates an example of the application usage history DB 31 used by the resource management program 20; [0044] lines 1-8, normal allocation of the resources is performed by referring to the server resource table 42 and the storage resource table 43 based on the required amount of resource (acquired in Step 21-1) for the application of interest to determine the server 60 and the storage 80 in the resource 50 that satisfy the required amount of resource, provisioning the application of interest, and incrementing the "number of uses" of the column 312 of the application usage history).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Richter, Gonzalez and WAHEED with Hatasaki because Hatasaki’s teaching of providing the resource historical table which including the resource usage for the different applications would have provided Bernat, Richter, Gonzalez and WAHEED’s system with the advantage and capability to allow the system to easily identifying which server or host can be selected for satisfying the requested resource which improving the system performance and efficiency (see Hatasaki, Abstract “refer to an application usage history database…a combination of a server and storage which satisfies the requested resource amount and can access the application data is determined by referring to a resource table.”)
Claim 5 is rejected under 35 U.S.C. 103 as being unpatentable over Bernat, Richter, Gonzalez and WAHEED, as applied to claim 1 above, and further in view of Yuen et al. (US Pub. 2019/0073276 A1) and Tan et al. (US Patent. 8,800,040 B1).
Yuen and Tan were cited in the previous Office Action.
As per claim 5, Bernat, Richter, Gonzalez and WAHEED teach the invention according to claim 1 above. Bernat, Richter, Gonzalez and WAHEED fail to specifically teach determining, based at least in part on historical data associated with workload resource consumption, a priority value of the particular computing resource metric among a plurality computing resource metrics; and determining to observe the particular computing resource metric, based at least in part on the priority value of the particular computing resource metric meeting or exceeding a threshold priority value.
However, Yuen teaches determining, based at least in part on historical data associated with workload resource consumption, a priority value of the particular computing resource metric among a plurality computing resource metrics (Yuen, [0008] lines 1-11, generating a data center recovery boot sequence, the method including monitoring an application inventory record, the application inventory record identifying a plurality of applications operating at a data center; for each of the plurality of applications, identifying data center resources utilized by the application. In some examples, utilized includes: consumed resources, reserved/allocation resources, among others, and resources may include; [0004] lines 4-10, monitor an application inventory record, the application inventory record identifying a plurality of applications operating at a data center, and for each of the plurality of applications, the application prioritization processor is configured to identify data center resources utilized by the application and to generate a priority metric for each of the plurality of applications).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Richter, Gonzalez and WAHEED with Yuen because Yuen’s teaching of determining the priority metric for different applications based on the application record would have provided Bernat, Richter, Gonzalez and WAHEED’s system with the advantage and capability to allow the system to processing the tasks based on its priority in order to allowing the high priority task to be executed first which improving the system performance and efficiency (see Yuen, [0004] “ first application of the plurality of applications is recovered before a second application of the plurality of applications when the first application has a higher priority that than the second application”).
Bernat, Richter, Gonzalez, WAHEED and Yuen fail to specifically teach determining to observe the particular computing resource metric, based at least in part on the priority value of the particular computing resource metric meeting or exceeding a threshold priority value.
However, Tan teaches determining to observe the particular computing resource metric, based at least in part on the priority value of the particular computing resource metric meeting or exceeding a threshold priority value (Tan, Col 2, lines 30-34, ceasing to monitor malicious URLs if the monitoring-priority level for the URL falls below a predetermined priority threshold and/or if failures to access a resource to which the URL points exceed a predetermined failure threshold; Col 7, lines 30-34, monitoring system 202 in FIG. 2 may terminate monitoring of URL 210 if a determined monitoring-priority level for URL 210 is below a set threshold and/or if failures to access resource 210 through URL 210 exceed a set threshold. (as determining whether to observe the computing resource metric, based at least in part on the priority value of the first computing resource metric meeting or exceeding a threshold priority value (i.e., terminate the observation when priority level below a set threshold, or keep observing when priority level is above/exceed set threshold; please note: the resource metric was taught by Bernat and Kinney)).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Richter, Gonzalez, WAHEED and Yuen with Tan because Tan’s teaching of terminate the observation when priority level below a set threshold, or keep observing when priority level is above/exceed set threshold would have provided Bernat, Richter, Gonzalez, WAHEED and Yuen’s system with the advantage and capability to identifying the malicious activity based on the priority in order to improving the system security and performance (see Tan Col 9, lines 30-32, “improve their ability to quickly and effectively respond to new security threats”).
Claim 6 is rejected under 35 U.S.C. 103 as being unpatentable over Bernat, Richter, Gonzalez and WAHEED, as applied to claim 1 above, and further in view of Kinney, Jr. (US Patent. 10,402,227 B1) and Liguori et al. (US Patent. 11,429,353 B1).
Kinney and Liguori were cited in the previous Office Action.
As per claim 6, Bernat, Richter, Gonzalez and WAHEED teach the invention according to claim 1 above. Bernat, Richter, Gonzalez and WAHEED fails to explicitly teach receiving input data from a user account associated with the workload, the input data indicating a request to observe a particular type of computing resource metric; and determining to monitor the particular computing resource metric based on the input data.
However, Kinney teaches receiving input data from a user account associated with the workload, the input data indicating a request to observe a particular type of computing resource metric (Kinney, Col 5, lines 35-44, The client devices 110A-110N may represent or correspond to various clients, users, or customers of the compute environment management system 100 and of the provider network 190. The clients, users, or customers may represent individual persons, businesses, other organizations, and/or other entities. The client devices 110A-110N may be distributed over any suitable locations or regions. A user of a client device may access the compute environment management system 100 with a user account that is associated with an account name or other user identifier; Col 10, lines 1-3, The client 110A may provide a job definition 112 to the compute environment management system 100; Col 10, lines 11-15, The job definition may also indicate anticipated resource usage or resource requirements, such as one or more values (including a range of values) for anticipated processor usage, memory usage, storage usage, network usage, and/or other hardware resource characteristics).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Richter, Gonzalez and WAHEED with Kinney because Kinney’s teaching of receiving a user request for processing different types of jobs and the request including anticipated resource usage would have provided Bernat, Richter, Gonzalez and WAHEED’s system with the advantage and capability to allow the system to specifically selecting the particular type of the resource host based on the task/workload definition/requirement indicated in the request in order to improving the resource utilization and system performance (see Kinney Col 2, lines 50-56 “optimize for characteristics such as cost and/or performance”).
Bernat, Richter, Gonzalez, WAHEED and Kinney fail to specifically teach determining to monitor the particular computing resource metric based on the input data.
However, Liguori teaches determining to monitor the particular computing resource metric based on the input data (Liguori, Col 19, line 61- Col 20 line14, The interface 300 may further include an area 310. The area 310 identifies the monitoring tools that have been instantiated for a particular instance of the application stack. The area 310 may identify one or more of the monitoring tools that are actively monitoring the instance of the application stack. For example, the area 310 may identify the monitoring tools that are actively monitoring the instance of the application stack. In some embodiments, the area 310 may identify the monitoring tools selected by one or more of the developer and/or the administrator. In other embodiments, the developer and/or the administrator may interact with the area 310 to select one or more monitoring tools for the instance of the application stack. For example, the area 310 may comprise a check box, a drop down menu, etc. that allows a user to select certain monitoring tools. The monitoring tools may include alarms, observability tools, pipelines etc. In the example of FIG. 3, the area 310 includes the monitoring tools “HTTP response alarms,” “CPU utilization alarms,” and “Third-party observability tools.” It will be understood that the area 310 may include more, less, or different monitoring tools (as determining to monitor a computing resource metric associated with the computing resource based on user select)).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Richter, Gonzalez, WAHEED and Kinney with Liguori because Liguori’s teaching of utilizing the monitoring tool for monitoring the application stack would have provided Bernat, Richter, Gonzalez, WAHEED and Kinney’s system with the advantage and capability to allow the system to easily identifying different resource utilization status in order to providing necessary alert based on the monitoring which improving the system reliability and performance (see Liguori, Col 6, lines 55-60, “beneficially improves modularity of the application”).
Claim 7 is rejected under 35 U.S.C. 103 as being unpatentable over Bernat, Richter, Gonzalez and WAHEED, as applied to claim 1 above, and further in view of Kinney, Jr. (US Patent. 10,402,227 B1) and further in view of Vyas et al. (US Pub. 2015/0347262 A1).
Kinney and Vyas were cited in the previous Office Action.
As per claim 7, Bernat, Richter, Gonzalez and WAHEED teach the invention according to claim 1 above. Bernat, Richter, Gonzalez and WAHEED fail to specifically teach receiving input data from a user account, the input data indicating an intent based description indicative of a second computing resource utilized by a second workload; identifying, based at least in part on the intent based description, a resource consumption characteristic associated with the second workload; identifying a third host, based at least in part on the resource consumption characteristic; and determining to collect a computing resource metric associated with execution of the second workload by the third host.
However, Kinney teaches receiving input data from a user account, the input data indicating an intent based description indicative of a second computing resource utilized by a second workload (Kinney, Fig. 1, 111B Job definition (as second workload); Col 5, lines 35-44, The client devices 110A-110N may represent or correspond to various clients, users, or customers of the compute environment management system 100 and of the provider network 190…A user of a client device may access the compute environment management system 100 with a user account that is associated with an account name or other user identifier; Col 10, lines 1-3, The client 110A may provide a job definition 112 to the compute environment management system 100; Col 10, lines 11-15, The job definition may also indicate anticipated resource usage or resource requirements, such as one or more values (including a range of values) for anticipated processor usage, memory usage, storage usage, network usage, and/or other hardware resource characteristics);
identifying, based at least in part on the intent based description, a resource consumption characteristic associated with the second workload (Kinney, Col 4, lines 3-25, A job definition may describe one or more tasks to be performed by computing resources in the provider network 190. The tasks within a job definition may include entirely different tasks (e.g., tasks having different program code) and/or tasks that run the same program code for different input data…A job definition may also include or be provided with other suitable metadata, including timing information (e.g., a time to begin processing the workload, an anticipated time to run the workload, and/or a deadline), budgetary information, anticipated resource usage, and so on. For example, the anticipated resource usage in a job definition may indicate one or more values (including a range of values) for anticipated processor usage (e.g., a number of virtual CPUs), memory usage, storage usage, network usage, and/or other hardware resource characteristics; Col 4, line 66 – Col 5, line 17, for a particular compute environment, the computing resource selector 140 may select computing resources having particular configurations, such as compute instances of particular instance types and/or software configurations with particular parameter values…Particular configurations may be selected based on job definitions. Col 8, line 62-Col 9, line 5, An instance type may be characterized by its computational resources (e.g., number, type, and configuration of central processing units [CPUs] or CPU cores, including virtual CPUs), memory resources (e.g., capacity, type, and configuration of local memory), storage resources (e.g., capacity, type, and configuration of locally accessible storage), network resources (e.g., characteristics of its network interface and/or network capabilities), and/or other suitable descriptive characteristics…a client may specify the desired resources of an instance type for a job (e.g., in the job definition), and the resource manager 180 may select an instance type based on such a specification (as identifying, based at least in part on the intent based description, a resource consumption characteristic (i.e., hardware resource characteristics) associated with the second workload in order to select the appropriate instance for execution));
identifying a third host, based at least in part on the resource consumption characteristic (Kinney, Fig. 1, 190A-N (as including third host); Col 4, line 66 – Col 5, line 17, for a particular compute environment, the computing resource selector 140 may select computing resources having particular configurations, such as compute instances of particular instance types and/or software configurations with particular parameter values…Particular configurations may be selected based on job definitions); and
collect a computing resource metric associated with execution of the second workload by the third host (Kinney, Fig. 2A, 192 Metric collection; Fig. 7, 640 Monitor the execution of task using the computing resources; generating metrics associated with the execution; Col 19, lines 10-19, the execution of the task(s) may be monitored, and one or more metrics associated with the execution may be generated. The metrics may relate to the performance of the execution. For example, the metrics may include one or more metrics related to processor usage, one or more metrics related to execution time, one or more metrics related to memory usage, one or more metrics related to storage usage, one or more metrics related to network usage, one or more metrics related to energy usage, and so on).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Richter, Gonzalez and WAHEED with Kinney because Kinney’s teaching of receiving a user request for processing different types of jobs and the request including anticipated resource usage would have provided Bernat, Richter, Gonzalez and WAHEED’s system with the advantage and capability to allow the system to specifically selecting the particular type of the resource host based on the task/workload definition/requirement indicated in the request in order to improving the resource utilization and system performance (see Kinney Col 2, lines 50-56 “optimize for characteristics such as cost and/or performance”).
Bernat, Richter, Gonzalez, WAHEED and Kinney fail to specifically teach determining to collect a computing resource metric.
However, Vyas teaches determining to collect a computing resource metric (Vyas, Fig. 2; Claim 2, determining whether the application program is eligible for monitoring, wherein the monitoring of the resource usage of the application program is performed after the application program is determined to be eligible for monitoring; [0034] lines 13-20, determine if an application program has exceeded the CPU consumption limit for a period of time. For example and in one embodiment, CPU usage statistics are collected at several sampling points during the period of time, and if a vast majority (e.g., 80%) of these statistics exceed the CPU consumption threshold, the application program will be deemed to have exceeded the CPU consumption threshold).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Richter, Gonzalez, WAHEED and Kinney with Vyas because Vyas’s teaching of determining to collecting/monitoring the resource utilization based on the monitoring eligibility would have provided Bernat, Richter, Gonzalez, WAHEED and Kinney’s system with the advantage and capability to determining whether to monitoring the resources based on the status of the application in order to improving the resource utilization and system performance (see Vyas [0004], [0006], [0072]).
Claim 8 is rejected under 35 U.S.C. 103 as being unpatentable over Bernat et al. (US Pub. 2018/0241802 A1) in view of Kinney, Jr. (US Patent. 10,402,227 B1) and further in view of O’Toole, Jr. (US Patent. 7,320,131 B1) and WAHEED (US Pub. 2017/0034297 A1).
Bernat, Kinney and O’Toole were cited in the previous Office Action.
As per claim 8, Bernat teaches the invention substantially as claimed including A method, for a monitoring service network architecture, the method comprising (Bernat, Fig. 1, 110 network switch, 140 network, 122-128 (server node); [0027] lines 3-4, monitoring resource utilizations within the server node):
determining to host a workload on a host that is capable of observing a particular computing resource metric associated with execution of the workload (Bernat, Fig. 1, 110 network switch (as orchestrator), 130 client device; Abstract, lines 8-12, The network switch is further to determine channel utilization data for each of the server nodes, select, as a function of the telemetry data and the channel utilization data, one or more of the server nodes to execute the workload, and assign the workload to the selected one or more server nodes; [0018] lines 13-14, the network switch 110 is configured to receive requests from client devices to perform workloads, [0018] lines 23-32, the network switch 110 may receive requests that indicate one or more types of resources that may be primarily utilized during the performance of the workload (e.g., CPU intensive, memory intensive, etc.), one or more quality of service objectives to be satisfied (e.g., a minimum latency, a minimum number of operations per second, a maximum amount of time to perform the workload, etc.), and/or a designation of one or more of the server nodes 120 to perform the workload; [0045] lines 23-35, in receiving the request, the network switch 110 may receive an indication of a target quality of service (i.e., a quality of service objective) to be satisfied during the execution of the workload, such as a target amount of time in which to complete the workload, an instruction to assign the workload to a server node 120 having a resource utilization for one or more specified types of resources that satisfies a specified threshold (e.g., an instruction to assign the workload to a server node 120 having a CPU utilization that is below 50%), and/or other measures of the target quality of service to be provided (as the host is capable of observing a particular computing resource metric (i.e., CPU utilization that is below 50%) associated with execution of the workload));
determining computing resource metrics that are observable, the computing resource metrics representing different computing resources by the workload (Bernat, [0037] lines 25-30, telemetry data 404 (as computing resource metrics), which may be embodied as data indicative of the utilizations of each monitored resource in each server node 120 (e.g., percentage of available CPU 302 processing capacity presently used, number of operations per second, etc.); [0039] lines 1-12, The workload distribution manager 430 (within the network switch (as orchestrator)…receive requests from the client device 130 to perform workloads, monitor the telemetry data 404 and channel utilization data 406 to determine the available capacity of the resources of the server nodes 120 and their available communication bandwidths, determine the quality of service objective(s) and the present quality of service provided by the server nodes 120, and select which server nodes 120 to assign workload to, to satisfy the quality of service objective(s). [0039] lines 38-45, using the telemetry data 404 and the channel utilization data 406 to determine the available capacities of the various server nodes 120 at any given time, determine the present quality of service provided by the system 100, and select which of the server nodes 120 should perform a given workload based on the available capacities of the server nodes 120 and the quality of service data 408; [0020] lines 5-11, receiving telemetry data from the server nodes 120 indicative of the present utilization of resources of each server node 120, determining channel utilizations (e.g., network congestion), and assigning workloads to the server nodes 120 as a function of the telemetry data and channel utilization data to satisfy quality of service objectives; [Examiner noted: computing resource metrics (i.e., telemetry data, resource utilization) that are detected/monitored from the telemetry data in Fig. 4 which is received from each server node for determining if these resource utilization/capacity can be meet with the workload request. That is, determining that requested/needed metrics/resource utilization are observable from the telemetry data) in order to selecting corresponding server node for executing the workload)]).
identifying multiple hosts in a computing resource network that are each capable of hosting the workload (Bernat, Fig. 1, 122, 124, 126, 128 (as hosts), 140 network; [0049] lines 31-44, the network switch 110 may analyze the telemetry data 404 for each server node 110, and if the present utilization of a resource that is likely to be most affected by the workload (e.g., as indicated by the resource sensitivity of the workload) is greater than a predefined threshold (e.g., 60%)…Of the server nodes 120 determined to be able to satisfy the quality of service objective(s), the network switch 110, in the illustrative embodiment, may then identify the server nodes 120 with the lowest amount of channel utilization (e.g., the least amount of network congestion) as the best candidates), the multiple hosts including a first host that includes a first observability resource that configures the first host to generated a first computing resource metric of the computing resource metrics (Bernat, Fig. 1, server nodes (as include first host); Fig. 5, 120 server node, 540 telemetry reporter; [0041] lines 20-31, the environment 500 includes registered resource data 502, which may be embodied as any data indicative of resources, including physical resources (e.g., the CPU 302, the memory 304, the one or more accelerators 314, the one or more data storage devices 320) and/or software resources (e.g., a database) whose identity (e.g., a unique identifier), type (e.g., compute, memory, etc.), capabilities (e.g., maximum frequency, maximum operations per second, etc.) and utilization (e.g., load) at any given time is to be reported to the network switch 110 (as a first host that includes a first observability resource that configures the first host to generate a first computing resource metric); [0043] The telemetry reporter 540 may send updates on a periodic basis and/or in response to receiving a message from a software stack (e.g., the kernel, a driver, an application, etc.) executed by the server node 120 that the utilization of one or more resources has changed; [0051] lines 1-12, the server node 120 monitors the utilization of the resources that were registered in block 804, such as by utilizing performance monitoring software (e.g., a “pmon” process) and/or performance counters. In doing so, in the illustrative embodiment, the server node 120 monitors the resource utilization with dedicated circuitry of the HFI 310 (e.g., the telemetry logic 312)…monitors physical resource utilization…the server node 120 may monitor the utilization of the CPU 302; [0052] lines 1-9, in reporting the resource utilizations as telemetry data 504, the server node 120…the telemetry logic 312, in the illustrative embodiment, reports the telemetry data 504…to send a telemetry update to the network switch 110) and a second host that includes a second observability resource that configures the second host to generate a second computing resource metric of the computing resource metrics (Bernat, Fig. 1, server nodes (as include second host); Fig. 5, 120 server node, 540 telemetry reporter; [0041] lines 20-31, the environment 500 includes registered resource data 502, which may be embodied as any data indicative of resources, including physical resources (e.g., the CPU 302, the memory 304, the one or more accelerators 314, the one or more data storage devices 320) and/or software resources (e.g., a database) whose identity (e.g., a unique identifier), type (e.g., compute, memory, etc.), capabilities (e.g., maximum frequency, maximum operations per second, etc.) and utilization (e.g., load) at any given time is to be reported to the network switch 110; [0043] The telemetry reporter 540 may send updates on a periodic basis and/or in response to receiving a message from a software stack (e.g., the kernel, a driver, an application, etc.) executed by the server node 120 that the utilization of one or more resources has changed; [0051] lines 1-12, the server node 120 monitors the utilization of the resources that were registered in block 804, such as by utilizing performance monitoring software (e.g., a “pmon” process) and/or performance counters. In doing so, in the illustrative embodiment, the server node 120 monitors the resource utilization with dedicated circuitry of the HFI 310 (e.g., the telemetry logic 312)…monitors physical resource utilization…the server node 120 may monitor the utilization of the CPU 302; [0052] lines 1-9, in reporting the resource utilizations as telemetry data 504, the server node 120…the telemetry logic 312, in the illustrative embodiment, reports the telemetry data 504…to send a telemetry update to the network switch 110);
determining, based at least in part on the first computing resource metric corresponding to the particular computing resource metric, that the first host is capable of using the first observability resource to generate the particular computing resource metric (Bernat, Abstract, lines 8-12, The network switch is further to determine channel utilization data for each of the server nodes, select, as a function of the telemetry data and the channel utilization data, one or more of the server nodes to execute the workload, and assign the workload to the selected one or more server nodes; [0021] lines 14-20, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data (e.g., present resource utilizations such as the load (e.g., usage of available capacity) on the CPU, memory, accelerators, etc.) and network congestion (i.e., channel utilization) associated with each server node 120 (as determining, based at least in part on the first computing resource metric (i.e., CPU resource utilization of the first host) corresponding to the particular computing resource metric (i.e., an instruction to assign the workload to a server node 120 having a CPU utilization that is below 50%), that the first host is capable of generating the particular computing resource metric); also see [0051] lines 1-12, the server node 120 monitors the utilization of the resources that were registered in block 804, such as by utilizing performance monitoring software (e.g., a “pmon” process) and/or performance counters. In doing so, in the illustrative embodiment, the server node 120 monitors the resource utilization with dedicated circuitry of the HFI 310 (e.g., the telemetry logic 312)…monitors physical resource utilization…the server node 120 may monitor the utilization of the CPU 302);
determining that the second host is unable to generate the particular computing resource metric (Bernat, Fig. 1, server nodes (as include second host); Fig. 5, 120 server node, 540 telemetry reporter; [0051] lines 1-12, the server node 120 monitors the utilization of the resources that were registered in block 804, such as by utilizing performance monitoring software (e.g., a “pmon” process) and/or performance counters. In doing so, in the illustrative embodiment, the server node 120 monitors the resource utilization with dedicated circuitry of the HFI 310 (e.g., the telemetry logic 312)…monitors physical resource utilization…the server node 120 may monitor the utilization of the CPU 302; [0021] lines 14-20, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data (e.g., present resource utilizations such as the load (e.g., usage of available capacity) on the CPU, memory, accelerators, etc.) and network congestion (i.e., channel utilization) associated with each server node 120; [Examiner noted: since the first host is selected based on satisfying the QOS (i.e., the first host is capable to generate the CPU utilization as indicated in the request), therefore a host (as second host) that is unable to generate the CPU utilization as indicated in the request will not be selected for execution]);
selecting the first host rather than the second host to host the workload based at least in part on the first host including the first observability resource that configures the first host to generate the first computing resource metric corresponding to the particular computing resource metric (Bernat, Abstract, lines 8-12, The network switch is further to determine channel utilization data for each of the server nodes, select, as a function of the telemetry data and the channel utilization data, one or more of the server nodes to execute the workload, and assign the workload to the selected one or more server nodes; [0021] lines 14-20, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data (e.g., present resource utilizations such as the load (e.g., usage of available capacity) on the CPU, memory, accelerators, etc.) and network congestion (i.e., channel utilization) associated with each server node 120; also see [0045] lines 23-35, in receiving the request, the network switch 110 may receive an indication of a target quality of service (i.e., a quality of service objective) to be satisfied during the execution of the workload, such as a target amount of time in which to complete the workload, an instruction to assign the workload to a server node 120 having a resource utilization for one or more specified types of resources that satisfies a specified threshold (e.g., an instruction to assign the workload to a server node 120 having a CPU utilization that is below 50%), and/or other measures of the target quality of service to be provided); and
causing the workload to execute on the first host based at least in part on the first host including the first observability resource (Bernat, Fig. 9, 848 receive a workload to be executed, 850 execute the workload; [0021] lines 14-16, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data).
Bernat fails to specifically teach when the second host to generate second computing resource metric, the second computing resource metric being different from the first computing resource metric.
However, Kinney teaches when the second host to generate second computing resource metric, the second computing resource metric being different from the first computing resource metric (Kinney, Fig. 2A, 195N, computing resource (configuration B), 192N Metric collection; Col 3, lines 6-18, one compute environment may include a set of compute instances of one hardware configuration, while another compute environment may include a set of compute instances of another hardware configuration. Execution of the task(s) in the different compute environments may be monitored, and metrics associated with the execution (e.g., cost and/or performance metrics) may be captured and analyzed. Based (at least in part) on the metrics, one or more of the tested configurations, or one or more characteristics thereof, may be selected as an optimal or recommended configuration for the one or more tasks; Col 13, lines 23-28, characteristics in which compute instance types may vary may include the type and number of processor cores or virtual CPUs, the type and amount of memory and storage, the presence or absence of specialized coprocessors such as a graphics processing unit (GPU), and so on (as second host provide observability of second computing resource metric, which is different from the first computing resource metrics (i.e., different types of compute resources, and presence or absence of specialized coprocessors (i.e., GPU)).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat with Kinney because Kinney’s teaching of the different computing environment/host that providing the different types of resources for executing different types of tasks would have provided Bernat’s system with the advantage and capability to allow the system to specifically selecting the particular type of the resource host based on the task/workload definition/requirement in order to improving the resource utilization and system performance (see Kinney Col 2, lines 50-56 “optimize for characteristics such as cost and/or performance”).
Bernat and Kinney fail to specifically teach the computing resource metrics being representing consumption of different computing resources by the workload, when determining, that the first host to generate the particular computing resource metric, it is by observing consumption of a computing resource by the workload and when determining that the second host is unable to generate the particular computing resource metric, it is based at least in part on the second host not including the first observability resource and being unable to observe consumption of the computing resource by the workload.
However, O’Toole teaches the computing resource metrics being representing consumption of different computing resources by the workload, when determining, that the first host to generate the particular computing resource metric, it is by observing consumption of a computing resource by the workload (O’Toole, FIG, 2B-2C (estimated resource usage (as observing consumption of computing resource by the workload); Col 10, lines 9-10, the resource usage 88-1 for a resource 34 indicates that the estimated response usage; Col 1, lines 41-44, selects a server based on the type of request. In other words, several servers are available to the client, but different servers specialize in providing different types of data (e.g., video, audio, or text data) (As different resources); Col 11, lines 11-14, For example, the data communications device 26 may be able to route a request 23 to ten resources 34 (e.g., web servers) but only five of the resources 34 can provide the video data requested by the client 22; Col 11, lines 42-46, The cost modeler 35 selects the resource 34 indicated by resource usage 88-1, because the estimated response usage 92-1 indicates a cost level 86-3 that is lower than the cost level 86-4 indicated by estimated response usage 92-2; Col 12, lines 18-24, the cost modeler 35 determines the current usage (e.g., 90-1 in FIG. 2A) for a resource 34 based on usage information received from a resource usage meter 36 associated with the resource, and then calculates an estimated response usage (e.g., 92-1) that reflects the total usage if the resource 34 were to respond to the request 23); and
when determining that the second host is unable to generate the particular computing resource metric, it is based at least in part on the second host not including the first observability resource and being unable to observe consumption of the computing resource by the workload (O’Toole, Col 11, lines 11-14, For example, the data communications device 26 may be able to route a request 23 to ten resources 34 (e.g., web servers) but only five of the resources 34 can provide the video data requested by the client 22; Col 12, lines 18-24, the cost modeler 35 determines the current usage (e.g., 90-1 in FIG. 2A) for a resource 34 based on usage information received from a resource usage meter 36 associated with the resource, and then calculates an estimated response usage (e.g., 92-1) that reflects the total usage if the resource 34 were to respond to the request 23; (as based at least in part on the second host not including the first observability resource such that unable to observe consumption of the computing resource by the workload (i.e., since only five of resources 34 can provide the video data, so there is no observation for that requested video resource consumption and no video data resources other than that five resources)).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat and Kinney with O’Toole because O’Toole’s teaching of determining and selecting the server/host resource that can only capable of observing the estimated resource usage metric would have provided Bernat and Kinney’s system with the advantage and capability to allow the system to easily selecting an optimized server host for processing the request which improving the system performance and efficiency.
Bernat, Kinney and O’Toole fail to specifically teach the first observability resource includes at least one of a kernel-level resource or hardware accelerator.
However, WAHEED teaches the first observability resource includes at least one of a kernel-level resource or hardware accelerator. (WAHEED, Fig. 2, memory manager 202, 204 resource usage (as generated); [0047] Memory manager 202 monitors resource usage 204 in server 100. Resource usage 204 may include any metric indicating a likelihood of slowing down performance of server 100. For example, metrics for resource usage 204 may include processor usage, storage device usage, and/or network usage; [0073] memory manager 202 may operate within a kernel operating system space; Claim 8, a module within a kernel space or user space of the server to monitor the resource usage, monitor the memory usage, and initiate the synchronization of the cached pages).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Kinney and O’Toole with WAHEED because WAHEED’s teaching of using a kernel level resource for monitoring and determining the resource usage/metrics would have provided Bernat, Kinney and O’Toole’s system with the advantage and capability to allow the system to easily identifying the resource utilization which improving the system performance and efficiency (see WAHEED [0050] “provide more efficient memory management for large data operations”).
Claim 11 is rejected under 35 U.S.C. 103 as being unpatentable over Bernat, Kinney, O’Toole and WAHEED, as applied to claim 8 above, and further in view of Hatasaki et al. (US Pub. 2012/0179823 A1).
Hatasaki was cited in the previous Office Action.
As per claim 11, Bernat, Kinney, O’Toole and WAHEED teach the invention according to claim 8 above. Bernat, Kinney, O’Toole and WAHEED fail to specifically teach receiving historical data indicating resource consumption by the workload, the resource consumption being associated with a resource of a computing resource type among multiple computing resource types.
However, Hatasaki teaches receiving historical data indicating resource consumption by the workload, the resource consumption being associated with a resource of a computing resource type among multiple computing resource types (Hatasaki, Fig. 4, Application usage history, 311, application ID, last allocated resource, network, server, storage; [0036] lines 1-2, FIG. 4 illustrates an example of the application usage history DB 31 used by the resource management program 20; [0044] lines 1-8, normal allocation of the resources is performed by referring to the server resource table 42 and the storage resource table 43 based on the required amount of resource (acquired in Step 21-1) for the application of interest to determine the server 60 and the storage 80 in the resource 50 that satisfy the required amount of resource, provisioning the application of interest, and incrementing the "number of uses" of the column 312 of the application usage history).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Kinney, O’Toole and WAHEED with Hatasaki because Hatasaki’s teaching of providing the resource historical table which including the resource usage for the different applications would have provided Bernat, Kinney, O’Toole and WAHEED’s system with the advantage and capability to allow the system to easily identifying which server or host can be selected for satisfying the requested resource which improving the system performance and efficiency (see Hatasaki, Abstract “refer to an application usage history database…a combination of a server and storage which satisfies the requested resource amount and can access the application data is determined by referring to a resource table.”)
Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over Bernat, Kinney, O’Toole and WAHEED, as applied to claim 8 above, and further in view of Yuen et al. (US Pub. 2019/0073276 A1) and Tan et al. (US Patent. 8,800,040 B1).
Yuen and Tan were cited in the previous Office Action.
As per claim 12, Bernat, Kinney, O’Toole and WAHEED teach the invention according to claim 8 above. Bernat, Kinney, O’Toole and WAHEED fail to specifically teach determining, based at least in part on historical data associated with workload resource consumption, a priority value of the first computing resource metric among the computing resource metrics; and determining to observe the first computing resource metric, based at least in part on the priority value of the first computing resource metric meeting or exceeding a threshold priority value.
However, Yuen teaches determining, based at least in part on historical data associated with workload resource consumption, a priority value of the first computing resource metric among the computing resource metrics (Yuen, [0008] lines 1-11, generating a data center recovery boot sequence, the method including monitoring an application inventory record, the application inventory record identifying a plurality of applications operating at a data center; for each of the plurality of applications, identifying data center resources utilized by the application. In some examples, utilized includes: consumed resources, reserved/allocation resources, among others, and resources may include; [0004] lines 4-10, monitor an application inventory record, the application inventory record identifying a plurality of applications operating at a data center, and for each of the plurality of applications, the application prioritization processor is configured to identify data center resources utilized by the application and to generate a priority metric for each of the plurality of applications).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Kinney, O’Toole and WAHEED with Yuen because Yuen’s teaching of determining the priority metric for different applications based on the application record would have provided Bernat, Kinney, O’Toole and WAHEED’s system with the advantage and capability to allow the system to processing the tasks based on its priority in order to allowing the high priority task to be executed first which improving the system performance and efficiency (see Yuen, [0004] “ first application of the plurality of applications is recovered before a second application of the plurality of applications when the first application has a higher priority that than the second application”).
Bernat, Kinney, O’Toole, WAHEED and Yuen fail to specifically teach determining to observe the first computing resource metric, based at least in part on the priority value of the first computing resource metric meeting or exceeding a threshold priority value.
However, Tan teaches determining to observe the first computing resource metric, based at least in part on the priority value of the first computing resource metric meeting or exceeding a threshold priority value (Tan, Col 2, lines 30-34, ceasing to monitor malicious URLs if the monitoring-priority level for the URL falls below a predetermined priority threshold and/or if failures to access a resource to which the URL points exceed a predetermined failure threshold; Col 7, lines 30-34, monitoring system 202 in FIG. 2 may terminate monitoring of URL 210 if a determined monitoring-priority level for URL 210 is below a set threshold and/or if failures to access resource 210 through URL 210 exceed a set threshold. (as determining whether to observe the computing resource metric, based at least in part on the priority value of the computing resource metric meeting or exceeding a threshold priority value (i.e., terminate the observation when priority level below a set threshold, or keep observing when priority level is above/exceed set threshold; please note: the resource metric was taught by Bernat and Kinney)).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Kinney, O’Toole, WAHEED and Yuen with Tan because Tan’s teaching of terminate the observation when priority level below a set threshold, or keep observing when priority level is above/exceed set threshold would have provided Bernat, Kinney, O’Toole, WAHEED and Yuen’s system with the advantage and capability to identifying the malicious activity based on the priority in order to improving the system security and performance (see Tan Col 9, lines 30-32, “improve their ability to quickly and effectively respond to new security threats”).
Claim 13 is rejected under 35 U.S.C. 103 as being unpatentable over Bernat, Kinney, O’Toole and WAHEED, as applied to claim 8 above, and further in view of Liguori et al. (US Patent. 11,429,353 B1).
Liguori was cited in the previous Office Action.
As per claim 13, Bernat, Kinney, O’Toole and WAHEED teach the invention according to claim 8 above. Kinney further teaches receiving input data from a user account associated with the workload, the input data indicating utilization of the computing resource (Kinney, Col 5, lines 35-44, The client devices 110A-110N may represent or correspond to various clients, users, or customers of the compute environment management system 100 and of the provider network 190. The clients, users, or customers may represent individual persons, businesses, other organizations, and/or other entities. The client devices 110A-110N may be distributed over any suitable locations or regions. A user of a client device may access the compute environment management system 100 with a user account that is associated with an account name or other user identifier; Col 10, lines 1-3, The client 110A may provide a job definition 112 to the compute environment management system 100; Col 10, lines 11-15, The job definition may also indicate anticipated resource usage or resource requirements, such as one or more values (including a range of values) for anticipated processor usage, memory usage, storage usage, network usage, and/or other hardware resource characteristics).
Bernat, Kinney, O’Toole and WAHEED fail to specifically teach determining to monitor the first computing resource metric associated with the computing resource.
However, Liguori teaches determining to monitor the first computing resource metric associated with the computing resource (Liguori, Col 19, line 61- Col 20 line14, The interface 300 may further include an area 310. The area 310 identifies the monitoring tools that have been instantiated for a particular instance of the application stack. The area 310 may identify one or more of the monitoring tools that are actively monitoring the instance of the application stack. For example, the area 310 may identify the monitoring tools that are actively monitoring the instance of the application stack. In some embodiments, the area 310 may identify the monitoring tools selected by one or more of the developer and/or the administrator. In other embodiments, the developer and/or the administrator may interact with the area 310 to select one or more monitoring tools for the instance of the application stack. For example, the area 310 may comprise a check box, a drop down menu, etc. that allows a user to select certain monitoring tools. The monitoring tools may include alarms, observability tools, pipelines etc. In the example of FIG. 3, the area 310 includes the monitoring tools “HTTP response alarms,” “CPU utilization alarms,” and “Third-party observability tools.” It will be understood that the area 310 may include more, less, or different monitoring tools (as determining to monitor a computing resource metric associated with the computing resource based on user select)).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Kinney, O’Toole and WAHEED with Liguori because Liguori’s teaching of utilizing the monitoring tool for monitoring the application stack would have provided B Bernat, Kinney, O’Toole and WAHEED’s system with the advantage and capability to allow the system to easily identifying different resource utilization status in order to providing necessary alert based on the monitoring which improving the system reliability and performance (see Liguori, Col 6, lines 55-60, “beneficially improves modularity of the application”).
Claim 14 is rejected under 35 U.S.C. 103 as being unpatentable over Bernat, Kinney, O’Toole and WAHEED, as applied to claim 8 above, and further in view of Vyas et al. (US Pub. 2015/0347262 A1).
Vyas was cited in the previous Office Action.
As per claim 14, Bernat, Kinney, O’Toole and WAHEED teach the invention according to claim 8 above. Kinney further teaches receiving input data from a user account, the input data indicating an intent based description indicative of a second computing resource utilized by a second workload (Kinney, Fig. 1, 111B Job definition (as second workload); Col 5, lines 35-44, The client devices 110A-110N may represent or correspond to various clients, users, or customers of the compute environment management system 100 and of the provider network 190…A user of a client device may access the compute environment management system 100 with a user account that is associated with an account name or other user identifier; Col 10, lines 1-3, The client 110A may provide a job definition 112 to the compute environment management system 100; Col 10, lines 11-15, The job definition may also indicate anticipated resource usage or resource requirements, such as one or more values (including a range of values) for anticipated processor usage, memory usage, storage usage, network usage, and/or other hardware resource characteristics);
identifying, based at least in part on the intent based description, a resource consumption characteristic associated with the second workload (Kinney, Col 4, lines 3-25, A job definition may describe one or more tasks to be performed by computing resources in the provider network 190. The tasks within a job definition may include entirely different tasks (e.g., tasks having different program code) and/or tasks that run the same program code for different input data…A job definition may also include or be provided with other suitable metadata, including timing information (e.g., a time to begin processing the workload, an anticipated time to run the workload, and/or a deadline), budgetary information, anticipated resource usage, and so on. For example, the anticipated resource usage in a job definition may indicate one or more values (including a range of values) for anticipated processor usage (e.g., a number of virtual CPUs), memory usage, storage usage, network usage, and/or other hardware resource characteristics; Col 4, line 66 – Col 5, line 17, for a particular compute environment, the computing resource selector 140 may select computing resources having particular configurations, such as compute instances of particular instance types and/or software configurations with particular parameter values…Particular configurations may be selected based on job definitions. Col 8, line 62-Col 9, line 5, An instance type may be characterized by its computational resources (e.g., number, type, and configuration of central processing units [CPUs] or CPU cores, including virtual CPUs), memory resources (e.g., capacity, type, and configuration of local memory), storage resources (e.g., capacity, type, and configuration of locally accessible storage), network resources (e.g., characteristics of its network interface and/or network capabilities), and/or other suitable descriptive characteristics…a client may specify the desired resources of an instance type for a job (e.g., in the job definition), and the resource manager 180 may select an instance type based on such a specification (as identifying, based at least in part on the intent based description, a resource consumption characteristic (i.e., hardware resource characteristics) associated with the second workload in order to select the appropriate instance for execution));
identifying a third host from among the multiple hosts, based at least in part on the resource consumption characteristic (Kinney, Fig. 1, 190A-N (as including third host); Col 4, line 66 – Col 5, line 17, for a particular compute environment, the computing resource selector 140 may select computing resources having particular configurations, such as compute instances of particular instance types and/or software configurations with particular parameter values…Particular configurations may be selected based on job definitions); and
collect a computing resource metric associated with execution of the second workload by the third host (Kinney, Fig. 2A, 192 Metric collection; Fig. 7, 640 Monitor the execution of task using the computing resources; generating metrics associated with the execution; Col 19, lines 10-19, the execution of the task(s) may be monitored, and one or more metrics associated with the execution may be generated. The metrics may relate to the performance of the execution. For example, the metrics may include one or more metrics related to processor usage, one or more metrics related to execution time, one or more metrics related to memory usage, one or more metrics related to storage usage, one or more metrics related to network usage, one or more metrics related to energy usage, and so on).
Bernat, Kinney, O’Toole and WAHEED fail to specifically teach determining to collect a computing resource metric.
However, Vyas teaches determining to collect a computing resource metric (Vyas, Fig. 2; Claim 2, determining whether the application program is eligible for monitoring, wherein the monitoring of the resource usage of the application program is performed after the application program is determined to be eligible for monitoring; [0034] lines 13-20, determine if an application program has exceeded the CPU consumption limit for a period of time. For example and in one embodiment, CPU usage statistics are collected at several sampling points during the period of time, and if a vast majority (e.g., 80%) of these statistics exceed the CPU consumption threshold, the application program will be deemed to have exceeded the CPU consumption threshold).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Kinney, O’Toole and WAHEED with Vyas because Vyas’s teaching of determining to collecting/monitoring the resource utilization based on the monitoring eligibility would have provided Bernat, Kinney, O’Toole and WAHEED’s system with the advantage and capability to determining whether to monitoring the resources based on the status of the application in order to improving the resource utilization and system performance (see Vyas [0004], [0006], [0072]).
Claims 15 and 24 are rejected under 35 U.S.C. 103 as being unpatentable over Bernat et al. (US Pub. 2018/0241802 A1) in view of Kinney, Jr. (US Patent. 10,402,227 B1) and further in view of O’Toole, Jr. (US Patent. 7,320,131 B1) and Hatasaki et al. (US Pub. 2012/0179823 A1).
Bernat, Kinney, O’Toole and Hatasaki were cited in the previous Office Action.
As per claim 15, Bernat teaches the invention substantially as claimed including A computing device, comprising (Bernat, Fig. 1, 110 network switch):
one or more processors (Bernat, Fig. 2, 202 CPU); and
one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising (Bernat, Fig. 2, 206 main memory; Claim 1, lines 1-7, A network switch for managing the distribution of workloads among a set of server nodes, the network switch comprising: one or more processors; one or more memory devices having stored therein a plurality of instructions that, when executed, cause the network switch to):
determining to host a workload on a host that is capable of observing a particular computing resource metric associated with execution of the workload (Bernat, Fig. 1, 110 network switch (as orchestrator), 130 client device; Abstract, lines 8-12, The network switch is further to determine channel utilization data for each of the server nodes, select, as a function of the telemetry data and the channel utilization data, one or more of the server nodes to execute the workload, and assign the workload to the selected one or more server nodes; [0018] lines 13-14, the network switch 110 is configured to receive requests from client devices to perform workloads, [0018] lines 23-32, the network switch 110 may receive requests that indicate one or more types of resources that may be primarily utilized during the performance of the workload (e.g., CPU intensive, memory intensive, etc.), one or more quality of service objectives to be satisfied (e.g., a minimum latency, a minimum number of operations per second, a maximum amount of time to perform the workload, etc.), and/or a designation of one or more of the server nodes 120 to perform the workload; [0045] lines 23-35, in receiving the request, the network switch 110 may receive an indication of a target quality of service (i.e., a quality of service objective) to be satisfied during the execution of the workload, such as a target amount of time in which to complete the workload, an instruction to assign the workload to a server node 120 having a resource utilization for one or more specified types of resources that satisfies a specified threshold (e.g., an instruction to assign the workload to a server node 120 having a CPU utilization that is below 50%), and/or other measures of the target quality of service to be provided (as the host is capable of observing a particular computing resource metric (i.e., CPU utilization that is below 50%) associated with execution of the workload));
determining computing resource metrics that are observable, the computing resource metrics representing different computing resources by the workload (Bernat, [0037] lines 25-30, telemetry data 404 (as computing resource metrics), which may be embodied as data indicative of the utilizations of each monitored resource in each server node 120 (e.g., percentage of available CPU 302 processing capacity presently used, number of operations per second, etc.); [0039] lines 1-12, The workload distribution manager 430 (within the network switch (as orchestrator)…receive requests from the client device 130 to perform workloads, monitor the telemetry data 404 and channel utilization data 406 to determine the available capacity of the resources of the server nodes 120 and their available communication bandwidths, determine the quality of service objective(s) and the present quality of service provided by the server nodes 120, and select which server nodes 120 to assign workload to, to satisfy the quality of service objective(s). [0039] lines 38-45, using the telemetry data 404 and the channel utilization data 406 to determine the available capacities of the various server nodes 120 at any given time, determine the present quality of service provided by the system 100, and select which of the server nodes 120 should perform a given workload based on the available capacities of the server nodes 120 and the quality of service data 408; [0020] lines 5-11, receiving telemetry data from the server nodes 120 indicative of the present utilization of resources of each server node 120, determining channel utilizations (e.g., network congestion), and assigning workloads to the server nodes 120 as a function of the telemetry data and channel utilization data to satisfy quality of service objectives; [Examiner noted: computing resource metrics (i.e., telemetry data, resource utilization) that are detected/monitored from the telemetry data in Fig. 4 which is received from each server node for determining if these resource utilization/capacity can be meet with the workload request. That is, determining that requested/needed metrics/resource utilization are observable from the telemetry data) in order to selecting corresponding server node for executing the workload)]).
identifying multiple hosts in a computing resource network that are each capable of hosting the workload (Bernat, Fig. 1, 122, 124, 126, 128 (as hosts), 140 network; [0049] lines 31-44, the network switch 110 may analyze the telemetry data 404 for each server node 110, and if the present utilization of a resource that is likely to be most affected by the workload (e.g., as indicated by the resource sensitivity of the workload) is greater than a predefined threshold (e.g., 60%)…Of the server nodes 120 determined to be able to satisfy the quality of service objective(s), the network switch 110, in the illustrative embodiment, may then identify the server nodes 120 with the lowest amount of channel utilization (e.g., the least amount of network congestion) as the best candidates), the multiple hosts including a first host that includes a first observability resource that configures the first host to generate a first computing resource metric of the computing resource metrics (Bernat, Fig. 1, server nodes (as include first host); Fig. 5, 120 server node, 540 telemetry reporter; [0041] lines 20-31, the environment 500 includes registered resource data 502, which may be embodied as any data indicative of resources, including physical resources (e.g., the CPU 302, the memory 304, the one or more accelerators 314, the one or more data storage devices 320) and/or software resources (e.g., a database) whose identity (e.g., a unique identifier), type (e.g., compute, memory, etc.), capabilities (e.g., maximum frequency, maximum operations per second, etc.) and utilization (e.g., load) at any given time is to be reported to the network switch 110 (as a first host that includes a first observability resource that configures the first host to generate a first computing resource metric); [0043] The telemetry reporter 540 may send updates on a periodic basis and/or in response to receiving a message from a software stack (e.g., the kernel, a driver, an application, etc.) executed by the server node 120 that the utilization of one or more resources has changed; [0051] lines 1-12, the server node 120 monitors the utilization of the resources that were registered in block 804, such as by utilizing performance monitoring software (e.g., a “pmon” process) and/or performance counters. In doing so, in the illustrative embodiment, the server node 120 monitors the resource utilization with dedicated circuitry of the HFI 310 (e.g., the telemetry logic 312)…monitors physical resource utilization…the server node 120 may monitor the utilization of the CPU 302; [0052] lines 1-9, in reporting the resource utilizations as telemetry data 504, the server node 120…the telemetry logic 312, in the illustrative embodiment, reports the telemetry data 504…to send a telemetry update to the network switch 110) and a second host that includes a second observability resource that configures the second host to generate a second computing resource metric of the computing resource metrics (Bernat, Fig. 1, server nodes (as include second host); Fig. 5, 120 server node, 540 telemetry reporter; [0041] lines 20-31, the environment 500 includes registered resource data 502, which may be embodied as any data indicative of resources, including physical resources (e.g., the CPU 302, the memory 304, the one or more accelerators 314, the one or more data storage devices 320) and/or software resources (e.g., a database) whose identity (e.g., a unique identifier), type (e.g., compute, memory, etc.), capabilities (e.g., maximum frequency, maximum operations per second, etc.) and utilization (e.g., load) at any given time is to be reported to the network switch 110; [0043] The telemetry reporter 540 may send updates on a periodic basis and/or in response to receiving a message from a software stack (e.g., the kernel, a driver, an application, etc.) executed by the server node 120 that the utilization of one or more resources has changed; [0051] lines 1-12, the server node 120 monitors the utilization of the resources that were registered in block 804, such as by utilizing performance monitoring software (e.g., a “pmon” process) and/or performance counters. In doing so, in the illustrative embodiment, the server node 120 monitors the resource utilization with dedicated circuitry of the HFI 310 (e.g., the telemetry logic 312)…monitors physical resource utilization…the server node 120 may monitor the utilization of the CPU 302; [0052] lines 1-9, in reporting the resource utilizations as telemetry data 504, the server node 120…the telemetry logic 312, in the illustrative embodiment, reports the telemetry data 504…to send a telemetry update to the network switch 110);
determining, based at least in part on the first host including the first observability resource and the first computing resource metric corresponding to the particular computing resource metric, that the first host is capable of utilizing the first observability resource for generating the particular computing resource metric (Bernat, Abstract, lines 8-12, The network switch is further to determine channel utilization data for each of the server nodes, select, as a function of the telemetry data and the channel utilization data, one or more of the server nodes to execute the workload, and assign the workload to the selected one or more server nodes; [0021] lines 14-20, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data (e.g., present resource utilizations such as the load (e.g., usage of available capacity) on the CPU, memory, accelerators, etc.) and network congestion (i.e., channel utilization) associated with each server node 120 (as determining, based at least in part on the first computing resource metric (i.e., CPU resource utilization of the first host) corresponding to the particular computing resource metric (i.e., an instruction to assign the workload to a server node 120 having a CPU utilization that is below 50%), that the first host is capable of generating the particular computing resource metric); also see [0051] lines 1-12, the server node 120 monitors the utilization of the resources that were registered in block 804, such as by utilizing performance monitoring software (e.g., a “pmon” process) and/or performance counters. In doing so, in the illustrative embodiment, the server node 120 monitors the resource utilization with dedicated circuitry of the HFI 310 (e.g., the telemetry logic 312)…monitors physical resource utilization…the server node 120 may monitor the utilization of the CPU 302);
determining that the second host is unable to generate the particular computing resource metric (Bernat, Fig. 1, server nodes (as include second host); Fig. 5, 120 server node, 540 telemetry reporter; [0051] lines 1-12, the server node 120 monitors the utilization of the resources that were registered in block 804, such as by utilizing performance monitoring software (e.g., a “pmon” process) and/or performance counters. In doing so, in the illustrative embodiment, the server node 120 monitors the resource utilization with dedicated circuitry of the HFI 310 (e.g., the telemetry logic 312)…monitors physical resource utilization…the server node 120 may monitor the utilization of the CPU 302; [0021] lines 14-20, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data (e.g., present resource utilizations such as the load (e.g., usage of available capacity) on the CPU, memory, accelerators, etc.) and network congestion (i.e., channel utilization) associated with each server node 120; [Examiner noted: since the first host is selected based on satisfying the QOS (i.e., the first host is capable to generate the CPU utilization as indicated in the request), therefore a host (as second host) that is unable to generate the CPU utilization as indicated in the request will not be selected for execution]);
selecting, based at least in part on the first host including the first observability resource, and the first computing resource metric corresponding to the particular computing resource metric, the first host rather than the second host to execute the workload (Bernat, Abstract, lines 8-12, The network switch is further to determine channel utilization data for each of the server nodes, select, as a function of the telemetry data and the channel utilization data, one or more of the server nodes to execute the workload, and assign the workload to the selected one or more server nodes; [0021] lines 14-20, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data (e.g., present resource utilizations such as the load (e.g., usage of available capacity) on the CPU, memory, accelerators, etc.) and network congestion (i.e., channel utilization) associated with each server node 120; also see [0045] lines 23-35, in receiving the request, the network switch 110 may receive an indication of a target quality of service (i.e., a quality of service objective) to be satisfied during the execution of the workload, such as a target amount of time in which to complete the workload, an instruction to assign the workload to a server node 120 having a resource utilization for one or more specified types of resources that satisfies a specified threshold (e.g., an instruction to assign the workload to a server node 120 having a CPU utilization that is below 50%), and/or other measures of the target quality of service to be provided); and
causing the workload to execute on the first host (Bernat, Fig. 9, 848 receive a workload to be executed, 850 execute the workload; [0021] lines 14-16, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data).
Bernat fails to specifically teach when the second host to generate second computing resource metric, the second computing resource metric being different from the first computing resource metric.
However, Kinney teaches when the second host for observing the second computing resource metrics, the second computing resource metric being different from the first computing resource metric (Kinney, Fig. 2A, 195N, computing resource (configuration B), 192N Metric collection; Col 3, lines 6-18, one compute environment may include a set of compute instances of one hardware configuration, while another compute environment may include a set of compute instances of another hardware configuration. Execution of the task(s) in the different compute environments may be monitored, and metrics associated with the execution (e.g., cost and/or performance metrics) may be captured and analyzed. Based (at least in part) on the metrics, one or more of the tested configurations, or one or more characteristics thereof, may be selected as an optimal or recommended configuration for the one or more tasks; Col 13, lines 23-28, characteristics in which compute instance types may vary may include the type and number of processor cores or virtual CPUs, the type and amount of memory and storage, the presence or absence of specialized coprocessors such as a graphics processing unit (GPU), and so on (as second host provide observability of second computing resource metric, which is different from the first computing resource metrics (i.e., different types of compute resources, and presence or absence of specialized coprocessors (i.e., GPU)).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat with Kinney because Kinney’s teaching of the different computing environment/host that providing the different types of resources for executing different types of tasks would have provided Bernat’s system with the advantage and capability to allow the system to specifically selecting the particular type of the resource host based on the task/workload definition/requirement in order to improving the resource utilization and system performance (see Kinney Col 2, lines 50-56 “optimize for characteristics such as cost and/or performance”).
Bernat and Kinney fail to specifically teach the computing resource metrics being representing consumption of different computing resources by the workload, when determining, that the first host is capable of utilizing the first observability resource for generating the particular computing resource metric, it is by observing consumption of a computing resource by the workload and when determining that the second host is unable to generate the particular computing resource metric, it is based at least in part on the second host not including the first observability resource such that the second host is unable to observe consumption of the computing resource by the workload.
However, O’Toole teaches the computing resource metrics being representing consumption of different computing resources by the workload, when determining, that the first host is capable of utilizing the first observability resource for generating the particular computing resource metric, it is by observing consumption of a computing resource by the workload (O’Toole, FIG, 2B-2C (estimated resource usage (as observing consumption of computing resource by the workload); Col 10, lines 9-10, the resource usage 88-1 for a resource 34 indicates that the estimated response usage; Col 1, lines 41-44, selects a server based on the type of request. In other words, several servers are available to the client, but different servers specialize in providing different types of data (e.g., video, audio, or text data) (As different resources); Col 11, lines 11-14, For example, the data communications device 26 may be able to route a request 23 to ten resources 34 (e.g., web servers) but only five of the resources 34 can provide the video data requested by the client 22; Col 11, lines 42-46, The cost modeler 35 selects the resource 34 indicated by resource usage 88-1, because the estimated response usage 92-1 indicates a cost level 86-3 that is lower than the cost level 86-4 indicated by estimated response usage 92-2; Col 12, lines 18-24, the cost modeler 35 determines the current usage (e.g., 90-1 in FIG. 2A) for a resource 34 based on usage information received from a resource usage meter 36 associated with the resource, and then calculates an estimated response usage (e.g., 92-1) that reflects the total usage if the resource 34 were to respond to the request 23); and
when determining that the second host is unable to generate the particular computing resource metric, it is based at least in part on the second host not including the first observability resource such that the second host is unable to observe consumption of the computing resource by the workload (Col 11, lines 11-14, For example, the data communications device 26 may be able to route a request 23 to ten resources 34 (e.g., web servers) but only five of the resources 34 can provide the video data requested by the client 22; Col 12, lines 18-24, the cost modeler 35 determines the current usage (e.g., 90-1 in FIG. 2A) for a resource 34 based on usage information received from a resource usage meter 36 associated with the resource, and then calculates an estimated response usage (e.g., 92-1) that reflects the total usage if the resource 34 were to respond to the request 23; (as based at least in part on the second host not including the first observability resource such that unable to observe consumption of the computing resource by the workload (i.e., since only five of resources 34 can provide the video data, so there is no observation for that requested video resource consumption and no video data resources other than that five resources)).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat and Kinney with O’Toole because O’Toole’s teaching of determining and selecting the server/host resource that can only capable of observing the estimated resource usage metric would have provided Bernat and Kinney’s system with the advantage and capability to allow the system to easily selecting an optimized server host for processing the request which improving the system performance and efficiency.
Bernat, Kinney and O’Toole fail to specifically teach receiving historical data indicating resource consumption by the workload, the resource consumption being associated with a resource of a computing resource type among multiple computing resource types, and when selecting the first host, it is based at least in part on the historical data.
However, Hatasaki teaches receiving historical data indicating resource consumption by the workload, the resource consumption being associated with a resource of a computing resource type among multiple computing resource types and when selecting the first host, it is based at least in part on the historical data (Hatasaki, Fig. 4, Application usage history, 311, application ID, last allocated resource, network, server, storage; [0036] lines 1-2, FIG. 4 illustrates an example of the application usage history DB 31 used by the resource management program 20; [0044] lines 1-8, normal allocation of the resources is performed by referring to the server resource table 42 and the storage resource table 43 based on the required amount of resource (acquired in Step 21-1) for the application of interest to determine the server 60 (as selecting first host based on historical data) and the storage 80 in the resource 50 that satisfy the required amount of resource, provisioning the application of interest, and incrementing the "number of uses" of the column 312 of the application usage history; Abstract, lines 7-16, refer to an application usage history database and an application data table to acquire the number of times that the application has been used and the existence or non-existence of saved application data. If the usage is a reuse and there is saved application data, storage in which the application data has been saved is acquired from the application data table, and a combination of a server and storage which satisfies the requested resource amount and can access the application data is determined by referring to a resource table.).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Kinney and O’Toole with Hatasaki because Hatasaki’s teaching of providing the resource historical table which including the resource usage for the different applications would have provided Bernat, Kinney and O’Toole’s system with the advantage and capability to allow the system to easily identifying which server or host can be selected for satisfying the requested resource which improving the system performance and efficiency (see Hatasaki, Abstract “refer to an application usage history database…a combination of a server and storage which satisfies the requested resource amount and can access the application data is determined by referring to a resource table.”)
As per claim 24, Bernat, Kinney, O’Toole and Hatasaki teach the invention according to claim 15 above. Kinney further teaches wherein selecting the first host is further based on determining that the first host comprises a computing resource of a second computing resource type that is capable of providing a same output as the resource of the workload (Kinney, Fig. 2B, 195N with 196N, 131 metric analysis, 132 optimal configuration selection; Abstract, lines 6-9, One or more metrics are determined that are associated with the execution of the one or more tasks. A configuration of the computing resources is selected based at least in part on the one or more metrics; Col 13, lines 14-28, including deployment of one or more tasks to compute instances of different instance types, according to one embodiment. The computing resources that are tested for task-level optimization may include compute instances of varying instance types. Compute instance types may vary in computational characteristics, memory characteristics, and/or other hardware characteristics, potentially including the capabilities and features of their processor resources, memory resources, storage resources, network resources, and so on. Further examples of characteristics in which compute instance types may vary may include the type and number of processor cores or virtual CPUs, the type and amount of memory and storage, the presence or absence of specialized coprocessors such as a graphics processing unit (GPU), and so on; Col 14, lines 20-23, automatic selection of an optimal configuration and deployment to an optimal compute environment; Col 17, lines 22-35, where the compute instance types may vary in computational characteristics and/or memory characteristics, potentially including the capabilities and features of their processor resources, memory resources, storage resources, network resources, and so on. The configuration of a computing resource may impact the performance of that resource for executing a particular task, such that resources having different configurations may vary in performance (e.g., processor performance, execution time, memory usage, storage usage, network usage, energy usage, and so on) for the same or similar tasks. The resources offered by the provider network may also vary in their respective costs that are assessed to clients for reserving and/or using the resources [Examiner noted: determining that the first host comprises a computing resource of a second computing resource type (i.e., a host that having particular configuration) that is configured to provide a same output as the resource of the workload (i.e., requested resources (i.e., same output) from the job definition, see Fig. 1, 111)]).
Claim 17 is rejected under 35 U.S.C. 103 as being unpatentable over Bernat, Kinney, O’Toole and Hatasaki, as applied to claim 15 above, and further in view of Yardeni et al. (US Patent. 11,681,557 B2).
Yardeni was cited in the previous Office Action.
As per claim 17, Bernat, Kinney, O’Toole and Hatasaki teach the invention according to claim 15 above. Bernat teaches wherein selecting the first host further comprises determining the first host is available for providing observability into at least one of the computing resource metrics (Bernat, Abstract, lines 8-12, The network switch is further to determine channel utilization data for each of the server nodes, select, as a function of the telemetry data and the channel utilization data, one or more of the server nodes to execute the workload, and assign the workload to the selected one or more server nodes; [0021] lines 14-20, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data (e.g., present resource utilizations such as the load (e.g., usage of available capacity) on the CPU, memory, accelerators, etc.) and network congestion (i.e., channel utilization) associated with each server node 120 (as determining the first host is available for providing at least one of the one or more computing resource metrics).
Bernat, Kinney, O’Toole and Hatasaki fail to specifically teach determining that no host among the multiple hosts is available for providing observability for all of the computing resource metrics.
However, Yardeni teaches determining that no host among the multiple hosts is available for providing observability for all of the computing resource metrics (Yardeni, Col 27, lines 18-40, the user can add an additional workload into the HCI cluster 100 for execution. The newly added workload may require additional storage space and/or other computational resources (CPU, memory, network I/O resource, I/O pathways, etc.) for execution. Therefore, the management system 120 (e.g., the resource-scaling module 160) may clone one or more existing hosts and/or provision one or more new hosts to expand the datacenter 102, thereby providing the required additional computational resources…assuming execution of the additional workload requires at least an additional 100 GB of the memory and 10 TB of the storage space, and the current demands on both memory and storage in the HCI cluster are high (e.g., more than 80%), the management system 120 (e.g., the resource-computing module 156 and recommendation module 158) may determine the number of hosts to be cloned/provisioned so as to satisfy both the direct demand of 100 GB memory on the host(s) and the indirect demand of 10 TB storage on the host(s) via the datastore (e.g., VSAN) [Examiner noted: the system determining that there are no hosts among the multiple hosts is available for providing observability for all of the computing resource metrics as required by the workload, so additional hosts are need to providing the resources required for execution, i.e., provision one or more new hosts, and thus the previous host will be utilized in combination with newly added hosts for providing the resources for execution (as first host is available for providing at least one of the one or more computing resource metrics); also see Col 27 line 62- Col 28, line18)]).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Kinney, O’Toole and Hatasaki with Yardeni because Yardeni’s teaching of provision one or more new hosts to expand the datacenter for providing enough resource for executing the workloads would have provided Bernat, Kinney, O’Toole and Hatasaki’s system with the advantage and capability to allow the system to ensuring the sufficient resource to meet the workload demands which improving the system performance and efficiency (see Yardeni, Col 2, lines 3-4, “ensuring that infrastructure resources are sufficient resources to meet the performance demands”).
Claim 20 is rejected under 35 U.S.C. 103 as being unpatentable over Bernat, Kinney, O’Toole and Hatasaki, as applied to claim 15 above, and further in view of Liguori et al. (US Patent. 11,429,353 B1).
Liguori was cited in the previous Office Action.
As per claim 20, Bernat, Kinney, O’Toole and Hatasaki teach the invention according to claim 15 above. Kinney further teaches receiving input data from a user account associated with the workload, the input data indicating utilization of the computing resource (Kinney, Col 5, lines 35-44, The client devices 110A-110N may represent or correspond to various clients, users, or customers of the compute environment management system 100 and of the provider network 190. The clients, users, or customers may represent individual persons, businesses, other organizations, and/or other entities. The client devices 110A-110N may be distributed over any suitable locations or regions. A user of a client device may access the compute environment management system 100 with a user account that is associated with an account name or other user identifier; Col 10, lines 1-3, The client 110A may provide a job definition 112 to the compute environment management system 100; Col 10, lines 11-15, The job definition may also indicate anticipated resource usage or resource requirements, such as one or more values (including a range of values) for anticipated processor usage, memory usage, storage usage, network usage, and/or other hardware resource characteristics).
Bernat, Kinney, O’Toole and Hatasaki fail to specifically teach determining to monitor the first computing resource metric associated with the computing resource.
However, Liguori teaches determining to monitor the first computing resource metric associated with the computing resource (Liguori, Col 19, line 61- Col 20 line14, The interface 300 may further include an area 310. The area 310 identifies the monitoring tools that have been instantiated for a particular instance of the application stack. The area 310 may identify one or more of the monitoring tools that are actively monitoring the instance of the application stack. For example, the area 310 may identify the monitoring tools that are actively monitoring the instance of the application stack. In some embodiments, the area 310 may identify the monitoring tools selected by one or more of the developer and/or the administrator. In other embodiments, the developer and/or the administrator may interact with the area 310 to select one or more monitoring tools for the instance of the application stack. For example, the area 310 may comprise a check box, a drop down menu, etc. that allows a user to select certain monitoring tools. The monitoring tools may include alarms, observability tools, pipelines etc. In the example of FIG. 3, the area 310 includes the monitoring tools “HTTP response alarms,” “CPU utilization alarms,” and “Third-party observability tools.” It will be understood that the area 310 may include more, less, or different monitoring tools (as determining to monitor a computing resource metric associated with the computing resource based on user select)).
It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Bernat, Kinney, O’Toole and Hatasaki with Liguori because Liguori’s teaching of utilizing the monitoring tool for monitoring the application stack would have provided Bernat, Kinney, O’Toole and Hatasaki’s system with the advantage and capability to allow the system to easily identifying different resource utilization status in order to providing necessary alert based on the monitoring which improving the system reliability and performance (see Liguori, Col 6, lines 55-60, “beneficially improves modularity of the application”).
Response to Arguments
Applicant’s arguments with respect to claims 1, 3-7, 21 and 23 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.
In the remark applicant’s argue in substance:
(a), 101 rejection: Step 2A, Prong 1: The Claims Are Not Directed to an Abstract Idea. The Examiner's contention that the claims are directed to a mental process is an oversimplification that overlooks the specific technological improvements recited in the amended claims. The claims are directed to a specific, technical improvement in cloud computing workload placement systems.
(b), A human mind cannot determine whether a host includes a kernel-level resource capable of generating metrics while monitoring workload execution-this often requires querying and analyzing the instrumentation capabilities of computing hosts in a cloud network… The newly recited steps of determining whether a host includes a kernel-level resource capable of generating a particular computing resource metric while a hardware resource executes a workload are not tasks a human can practically perform-especially at the scale, speed, and technical specificity required for cloud computing environments.
(c), The amended claims describe a system that improves how workloads are placed on hosts in a cloud network by considering instrumentation capabilities. As described in the specification, "[b]ecause providing observability may effect various aspects of the hosts, such as system performance and power consumption, and may require more complex and/or expensive hardware, utilizing the observability provided by the hosts to determine workload placement enables some, but not all, hosts to provide certain types of observability. The workloads are placed on the hosts that provide the required types of observability, while other hosts that are not utilized to execute the workloads may be utilized to provide different types of observability utilized by other workloads. Overall system efficiency and performance may be improved." Applicant's Specification, paragraph [0047]. This is not merely an instruction to "apply" an abstract idea. It is a specific implementation that refines how the system places workloads based on instrumentation capabilities, resulting in improved system efficiency and performance.
(d), The claims are analogous to USPTO Subject Matter Eligibility Example 40 (Adaptive Monitoring of Network Traffic Data), where claim 1 was found eligible because it was directed to a particular improvement in collecting traffic data that avoids excess traffic volume and hindrance of network performance. Similarly, the present claims are directed to a particular improvement in workload placement that optimizes system efficiency by placing workloads on hosts with the appropriate instrumentation, avoiding the cost and performance penalty of instrumenting too many hosts.
(e), The claims are necessarily rooted in computer technology-specifically cloud computing infrastructure-to overcome a problem specifically arising in cloud networks: the cost and performance penalty of over instrumenting hosts for observability. For example, the technique of claim 1 of determining whether a host includes a kernel-level resource for generating metrics, and selecting the host based on this determination, is a practical application that improves system efficiency and performance.
(f), The amended claims recite a non-conventional arrangement of elements…
the present claims arrange the orchestrator, monitoring requirements, hardware resources, and kernel-level instrumentation resources in an unconventional manner that amounts to significantly more than the abstract idea itself, making them patent-eligible. Thus, the claims provide significantly more than an abstract idea by reciting a non- conventional improvement to cloud computing workload placement.
(g), Claim 8: Applicant respectfully submits that the applied references fail to teach or suggest at least these features. For example, as noted above, Bernat merely describes selecting server nodes based on current resource utilization levels (e.g., CPU load below 50%) reported via telemetry data, where all server nodes uniformly include the same telemetry reporting capability through their respective host fabric interfaces.
(h), Claim 15: Bernat fails to teach or suggest at least "determining, based at least in part on the first host including the first observability resource and the first computing resource metric corresponding to the particular computing resource metric, that the first host is capable of utilizing the first observability resource for generating the particular computing resource metric by observing consumption of a computing resource by the workload" and "determining that the second host is unable to generate the particular computing resource metric based at least in part on the second host not including the first observability resource such that the second host is unable to observe consumption of the computing resource by the workload," as claim 15 recites. In contrast, Bernat merely describes selecting server nodes based on current resource utilization levels (e.g., CPU load, memory load) reported via telemetry data, where all server nodes uniformly include the same telemetry reporting capability through their respective host fabric interfaces. Bernat does not teach or suggest that different hosts have different instrumentation capabilities, nor does it teach selecting a host based on the presence or absence of such a resource for monitoring workload execution. In addition, Applicant respectfully submits that Kinney and O'Toole fail to cure the deficiencies of Bernat.
Examiner respectfully disagreed with Applicant’s argument for the following reasons:
As to point (a), in response to applicant’s argument that “The Examiner's contention that the claims are directed to a mental process is an oversimplification that overlooks the specific technological improvements recited in the amended claims. The claims are directed to a specific, technical improvement in cloud computing workload placement systems” Examiner respectfully disagreed.
First, the claim recites numerous steps of “determining” with “selecting” based on the “determining”. And these all “determining” and “selecting” steps can be performed by human mind (see 101 rejection above)
Secondly, MPEP 2106.05(a) discloses that “It is important to note, the judicial exception alone cannot provide the improvement. The improvement can be provided by one or more additional elements. See the discussion of Diamond v. Diehr, 450 U.S. 175, 187 and 191-92, 209 USPQ 1, 10 (1981)) in subsection II, below. In addition, the improvement can be provided by the additional element(s) in combination with the recited judicial exception”. Here, the additional limitations are “receiving, by an orchestrator of the monitoring service network architecture, a request to host a workload on a host, the request including a monitoring requirement that the host is capable of observing a particular computing resource metric associated with execution of the workload” which is insignificant pre-solution data gathering (see MPEP § 2106.05(g)). The limitation of “A monitoring service network architecture, comprising: one or more processors; and one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:” and “the orchestrator” and “a kernel-level resource that is capable of generating the particular computing resource metric for the workload while the first hardware resource executes the workload” which is directed to Adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a generic computer as a tool to perform an abstract idea (see MPEP 2106.05(f)). In addition, the limitation of “causing, by the orchestrator, the workload to execute on the first host” which is merely applying the judicial exception or abstract idea (See MPEP 2106.05(f)). The claim does not providing any details on how that workload is executed other than a generic machine such as the “first host”(first host with generic computing resource) and no details what so ever on how the claimed function will occur. Thus, Applicant’s argument has not been found to be persuasive.
As to point (b), in response to applicant’s argument that “The newly recited steps of determining whether a host includes a kernel-level resource capable of generating a particular computing resource metric while a hardware resource executes a workload are not tasks a human can practically perform-especially at the scale, speed, and technical specificity required for cloud computing environments”. Examiner has different opinions.
Firstly, the claim does not require that the “kernel-level resource” actually used for generating a particular computing resource metric while a hardware resource executes a workload. The claim, at the best, it is just recites that “a kernel-level resource capable of generating a particular computing resource metric while a hardware resource executes a workload”. And this limitation (“kernel-level resource capable of generating a particular computing resource metric while a hardware resource executes a workload”) which is directed to adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a generic computer as a tool to perform an abstract idea (see MPEP 2106.05(f)).
Secondly, the claim does not providing any details on “kernel-level resource” (i.e., observing resource). The specification [0002] recites “observability resources that are provided may include compute resources”. Kernel-level resource can be a generic computer resource (i.e., CPU). Therefore, it is just mere instructions to implement an abstract idea on a computer, or merely uses a generic computer as a tool to perform an abstract idea (see MPEP 2106.05(f)).
Thirdly, the claim only requires that determining whether a host includes a kernel-level resource, and this can be simply determined by mentally (i.e., the claim does not providing any details on how the determination is performed).
Thus, Applicant’s argument has not been found to be persuasive.
As to point (c), please refers to point (a) to (b) above.
As to point (d), in response to applicant’s argument that “The claims are analogous to USPTO Subject Matter Eligibility Example 40 (Adaptive Monitoring of Network Traffic Data), where claim 1 was found eligible because it was directed to a particular improvement in collecting traffic data that avoids excess traffic volume and hindrance of network performance. Similarly, the present claims are directed to a particular improvement in workload placement that optimizes system efficiency by placing workloads on hosts with the appropriate instrumentation, avoiding the cost and performance penalty of instrumenting too many hosts”. Examiner respectfully disagreed.
The claim 1 of the USPTO Subject Matter Eligibility Example 40 recites the combination of additional elements of collecting at least one of network delay, packet loss, or jitter relating to the network traffic passing through the network appliance, and collecting additional Netflow protocol data relating to the network traffic when the collected network delay, packet loss, or jitter is greater than the predefined threshold. Although each of the collecting steps analyzed individually may be viewed as mere pre- or post-solution activity, the claim as a whole is directed to a particular improvement in collecting traffic data. And this is different as compare to the claims of instant application. The claim 1 of the instant application does not related to the collection of the data, it is more related to merely “determination” and “selection”. MPEP 2106.05(a) discloses that “It is important to note, the judicial exception alone cannot provide the improvement. The improvement can be provided by one or more additional elements. See the discussion of Diamond v. Diehr, 450 U.S. 175, 187 and 191-92, 209 USPQ 1, 10 (1981)) in subsection II, below. In addition, the improvement can be provided by the additional element(s) in combination with the recited judicial exception”. (see point (a) above regarding to additional limitations that does not providing improvement).
As to point (e), in response to applicant’s argument that “the technique of claim 1 of determining whether a host includes a kernel-level resource for generating metrics, and selecting the host based on this determination, is a practical application that improves system efficiency and performance”. Examiner respectfully disagreed.
Again, the “determining whether a host includes a kernel-level resource for generating metrics, and selecting the host based on this determination” can be performed by mentally. And MPEP 2106.05(a) discloses that “It is important to note, the judicial exception alone cannot provide the improvement. The improvement can be provided by one or more additional elements. See the discussion of Diamond v. Diehr, 450 U.S. 175, 187 and 191-92, 209 USPQ 1, 10 (1981)) in subsection II, below. In addition, the improvement can be provided by the additional element(s) in combination with the recited judicial exception”.
As to point (f), in response to applicant’s argument that “The amended claims recite a non-conventional arrangement of elements… the present claims arrange the orchestrator, monitoring requirements, hardware resources, and kernel-level instrumentation resources in an unconventional manner that amounts to significantly more than the abstract idea itself, making them patent-eligible”. Examiner respectfully disagreed. These elements (i.e., orchestrator, monitoring requirements, hardware resources, and kernel-level instrumentation resources) are just generic computer components. It is directed to Adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a generic computer as a tool to perform an abstract idea (see MPEP 2106.05(f)).
As to point (g), in response to applicant’s argument that “Bernat merely describes selecting server nodes based on current resource utilization levels (e.g., CPU load below 50%) reported via telemetry data, where all server nodes uniformly include the same telemetry reporting capability through their respective host fabric interfaces”. Examiner respectfully disagreed.
Firstly, each server nodes of Bernat’s system are not reporting the SAME telemetry data, they are different. For example, one of the server node may report CPU load above 50%, one of the server node may report the CPU load below 50%. Thus, it does providing different computing resource metric.
Secondly, according to specification [0002], the “observability resource” is just any computing resource (see specification [0002] “observability resources that are provided may include compute resources). That is, computing resource of the first host when utilized will allow the first host to generate the first computing resource metrics. And that is clearly taught by Bernat (see Bernat, Abstract, lines 8-12, The network switch is further to determine channel utilization data for each of the server nodes, select, as a function of the telemetry data and the channel utilization data, one or more of the server nodes to execute the workload, and assign the workload to the selected one or more server nodes; [0021] lines 14-20, select one or more server nodes 120 to execute a given workload to satisfy one or more quality of service objectives, in view of present telemetry data (e.g., present resource utilizations such as the load (e.g., usage of available capacity) on the CPU, memory, accelerators, etc.) and network congestion (i.e., channel utilization) associated with each server node 120; also see [0045] lines 23-35, in receiving the request, the network switch 110 may receive an indication of a target quality of service (i.e., a quality of service objective) to be satisfied during the execution of the workload, such as a target amount of time in which to complete the workload, an instruction to assign the workload to a server node 120 having a resource utilization for one or more specified types of resources that satisfies a specified threshold (e.g., an instruction to assign the workload to a server node 120 having a CPU utilization that is below 50%), and/or other measures of the target quality of service to be provided).
As to point (h), in response to applicant’s argument that “In contrast, Bernat merely describes selecting server nodes based on current resource utilization levels (e.g., CPU load, memory load) reported via telemetry data, where all server nodes uniformly include the same telemetry reporting capability through their respective host fabric interfaces. Bernat does not teach or suggest that different hosts have different instrumentation capabilities”. Examiner respectfully disagreed.
The claim does not require that each host have respective instrumentation capabilities. In fact, the claim only requires that the when selecting a first host for execution, it is when the second host does not providing a first observability resource (i.e., any computing resource) that when utilized cause the second host to generate the required computing resource metrics. And this is specifically taught by Bernat and O’Toole. For example, Bernat teaches assigning the request to the selected host based on that hose can provide specific resource metrics corresponding to the received request. O’Toole teaches a scheduling mechanism that the host does not provide the video data resource will not processing the request. (see O’Toole, FIG, 2B-2C (estimated resource usage (as observing consumption of computing resource by the workload); Col 10, lines 9-10, the resource usage 88-1 for a resource 34 indicates that the estimated response usage; Col 1, lines 41-44, selects a server based on the type of request. In other words, several servers are available to the client, but different servers specialize in providing different types of data (e.g., video, audio, or text data) (As different resources); Col 11, lines 11-14, For example, the data communications device 26 may be able to route a request 23 to ten resources 34 (e.g., web servers) but only five of the resources 34 can provide the video data requested by the client 22). The examiner reminds the applicants that one cannot show nonobviousness by attacking references individually where the rejections are based on combinations of references. See In re Keller, 642 F.2d 413, 208 USPQ 871 (CCPA 1981); In re Merck & Co., 800 F.2d 1091, 231 USPQ 375 (Fed. Cir. 1986).
For the reasons above, Applicant’s argument has not been found to be persuasive, and therefore the rejections are maintained.
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 ZUJIA XU whose telephone number is (571)272-0954. The examiner can normally be reached M-F 9:30-5:30 EST.
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.
/ZUJIA XU/Examiner, Art Unit 2195