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 .
Examiner Notes
Examiner did not make a 35 USC § 101 rejection with respect to the “computer program product” of claim 20 because Applicant’s specification specifically states that it is not to be construed as a signal. (Applicant’s Specification, [0155], A computer readable storage medium, as that term is used in the present disclosure, is not to be construed as storage in the form of transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, light pulses passing through a fiber optic cable, electrical signals communicated through a wire, and/or other transmission media).
Examiner cites particular columns and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner.
The examiner encourages Applicant to submit an authorization to communicate with the examiner via the Internet by making the following statement (from MPEP 502.03):
“Recognizing that Internet communications are not secure, I hereby authorize the USPTO to communicate with the undersigned and practitioners in accordance with 37 CFR 1.33 and 37 CFR 1.34 concerning any subject matter of this application by video conferencing, instant messaging, or electronic mail. I understand that a copy of these communications will be made of record in the application file.”
Please note that the above statement can only be submitted via Central Fax, Regular postal mail, or EFS Web (PTO/SB/439).
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-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
In adhering to the 2019 Revised Patent Subject Matter Eligibility Guidance (2019 PEG), Step 1 is directed to determining whether or not the claims fall within a statutory class. Herein, the claims fall within statutory class of process, machine or manufacture. Hence, the claims qualify as potentially eligible subject matter under 35 U.S.C §101. With Step 1 being directed to a statutory category, the analysis directed to Step 2A.
Step 2A is a two prong inquiry. Prong 1 considers whether the claim recites a judicial exception (an abstract idea enumerated in the 2019 PEG, a law of nature, or a natural phenomenon). In this case independent claim 1 recites mental processes as applied to human activity (i.e. concepts performed in the human mind but for the recitation of generic computing components). For example, the following claimed steps are functions that can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion:
assessing workloads of the plurality of workloads with use of characterizing data of the workload characterizing data;
generating prompting data in dependence on the assessing of the workloads of the plurality of workloads, wherein the prompting data prompts for merging of identified workloads of the plurality of workloads; and
presenting the prompting data to a user.
But for the recitation of generic computing components, steps a-c can be completed in the human mind with the aid of pen and paper through observation, evaluation, judgment, and/or opinion. “As the Federal Circuit has explained, ‘[c]ourts have examined claims that required the use of a computer and still found that the underlying, patent-ineligible invention could be performed via pen and paper or in a person’s mind.’ Versata Dev. Group v. SAP Am., Inc., 793 F.3d 1306, 1335, 115 USPQ2d 1681, 1702 (Fed. Cir. 2015).” (MPEP 2106.04(a)(2) (III)). Steps a and b describe collecting, analyzing, and displaying information at a high level of generality. According to the MPEP, these steps are examples of mental processes, thus it is reasonable to identify these limitations as reciting mental processes. (MPEP 2106.04(a)(2) III (A), claims do recite a mental process when they contain limitations that can practically be performed in the human mind, including for example, observations, evaluations, judgments, and opinions. Examples of claims that recite mental processes include: a claim to “collecting information, analyzing it, and displaying certain results of the collection and analysis,” where the data analysis steps are recited at a high level of generality such that they could practically be performed in the human mind, Electric Power Group v. Alstom, S.A., 830 F.3d 1350, 1353-54, 119 USPQ2d 1739, 1741-42 (Fed. Cir. 2016)).
Since the claims are directed toward a judicial exception, analysis flows to Prong 2. Prong 2 considers whether the judicial exception is integrated into a practical application. In this case, the judicial exception is not integrated into a practical application because the claim language merely describes steps of collecting data, field of use/technological environment, and using a computer as a tool to apply the abstract idea and fails to describe an improvement to the functioning of a computer or other technical field. The additional elements recited in the claim do not integrate the judicial exception into a practical application for the following reasons:
The additional elements of a “workload,” and a “cluster” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)). These additional elements also appear to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
The additional element of “obtaining workload characterizing data, wherein the workload characterizing data characterizes a plurality of workloads of a cluster” amounts to insignificant extra-solution data gathering/data transmission activity (MPEP § 2106.05(g)).
Therefore the abstract idea has not been integrated into practical application and the claims are directed to the abstract idea.
Since the claims are directed to the determined judicial exception, the analysis flows to Step 2B. Therein, the elements and combination of elements are examined in the claims to determine whether the claims as a whole amounts to significantly more than the judicial exception. In this case, the additional elements identified at Step 2A Prong 2, individually or in an order combination, also do not amount to significantly more than the abstract idea for the same reasons as given in Step 2A Prong 2 and further because:
The claimed “workload” and “cluster” are generically recited as mere instructions to implement an abstract idea on a computer. Thus, these steps do not add significantly more to the respective limitations. Taken as an ordered combination, the afore-mentioned limitations are directed to limitations referenced in Alice Corp. (also called the Mayo test) that are not enough to qualify as significantly more when recited in a claim with an abstract idea. (MPEP § 2106.05 (I)(A)), “Limitations that the courts have found not to be enough to qualify as “significantly more” when recited in a claim with a judicial exception include: i… mere instructions to implement an abstract idea on a computer.”
The additional element of “obtaining workload characterizing data, wherein the workload characterizing data characterizes a plurality of workloads of a cluster amounts to well‐understood, routine, and conventional functions because these steps are claimed in a merely generic manner (e.g., at a high level of generality) and as insignificant extra-solution activity. “The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. i. Receiving or transmitting data over a network.” (MPEP 2106.05(d) (II)).
“A claim directed to a judicial exception cannot be made eligible “simply by having the applicant acquiesce to limiting the reach of the patent for the formula to a particular technological use.” Diamond v. Diehr, 450 U.S. 175, 192 n.14, 209 USPQ 1, 10 n. 14 (1981). Thus, limitations that amount to merely indicating a field of use or technological environment in which to apply a judicial exception do not amount to significantly more than the exception itself, and cannot integrate a judicial exception into a practical application.” (MPEP 2106.05 (h)).
Since there are no elements or ordered combination of elements that amount to significantly more than the judicial exception, the claims are not eligible subject matter under 35 USC §101.
Regarding claim 2, the additional element of “wherein the assessing includes discovering relationships between workloads within a certain namespace of the cluster” is analyzed with the assessing step of claim 1 as a mental process because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The recitation of a “workload” and “namespace” appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
Regarding claim 3, the additional “assessing step” is analyzed with the assessing step of claim 1 as a mental process because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The recitation of a “namespace” and a “workload” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. These additional elements also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 4, the additional “assessing step” is analyzed with the assessing step of claim 1 as a mental process because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The recitation of a “namespace” and a “workload” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. These additional elements also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 5, the additional “assessing step” is analyzed with the assessing step of claim 1 as a mental process because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The recitation of a “namespace” and a “workload” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. These additional elements also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 6, the additional “assessing step” is analyzed with the assessing step of claim 1 as a mental process because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The recitation of a “namespace” and a “workload” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. These additional elements also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 7, the additional “assessing step” is analyzed with the assessing step of claim 1 as a mental process because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The recitation of a “namespace” and a “workload” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. These additional elements also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 8, the additional “assessing step” is analyzed with the assessing step of claim 1 as a mental process because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The recitation of a “namespace” and a “workload” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. These additional elements also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 9, the additional “assessing step” is analyzed with the assessing step of claim 1 as a mental process because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The recitation of a “namespace” and a “workload” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. These additional elements also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 10,
The additional step of “wherein the method includes performing runtime workload analysis to determine a provisioning resource allocation for supporting a remaining workload subsequent to merger of the identified workloads” recites an additional mental process under Prong 1 since this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion but for the recitation of generic computing components. For example, a person can think and evaluate to perform a runtime workload analysis to determine resource allocation subsequent to merging a workload. The additional element of a “workload” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. This additional element also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, this additional element does not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since this additional element merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
The additional element of “wherein the prompting data references the provisioning resource allocation” is analyzed with the “generating prompting data” step of claim 1 as an abstract idea because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion.
Regarding claim 11,
the additional “assessing step” is analyzed with the assessing step of claim 1 as a mental process because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The recitation of a “namespace” and a “workload” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. These additional elements also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
The step of “wherein the discovering includes ascertaining, in dependence on the processing text based reports for respective workloads of the certain namespace Euclidean distances between the respective workloads of the certain namespace” recites an additional mental process because this step recites a mathematical concept. The additional elements of a “workload” and a “namespace” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. These additional elements also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, this additional element does not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 12,
the additional element of “wherein the prompting data specifies a workload group name having a workload group instantiation in a first namespace and a workload group instantiation in a second namespace” is analyzed with the “generating prompting data” step of claim 1 as an abstract idea because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The additional elements of a “workload” and a “namespace” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. This additional element also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, this additional element does not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since this additional element merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
The step of “wherein the prompting data...further specifies a determined similarity level of the workload group instantiation in the first namespace and the workload group instantiation in the second namespace” recites an additional mental process because this step recites a mathematical concept. The additional elements of a “workload” and a “namespace” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. This additional element also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, this additional element does not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since this additional element merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 13,
The step of “wherein the assessing includes discovering workload groups comprising related workloads, and identifying, in dependence on the discovering, a first workload group of a first namespace and second workload group of a second namespace suitable for merging” is analyzed with the assessing step of claim 1 as a mental process because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The recitation of a “workload” and a “namespace” appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
The additional elements of :
“wherein the prompting data specifies a workload group name having a workload group instantiation in a first namespace defining the first workload group and a workload group instantiation in a second namespace defining the second workload group”; and
“wherein the prompting data further specifies a determined similarity level of the workload group instantiation in the first namespace defining the first workload group and the workload group instantiation in the second namespace defining the second workload group
are analyzed with the “generating prompting data” step of claim 1 as an abstract idea because these steps can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The additional elements of a “workload” and a “namespace” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. These additional elements also appear to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
The additional elements of :
“wherein the assessing includes performing similarity analysis to obtain the determined similarity level of the workload group instantiation in the first namespace defining the first workload group and the workload group instantiation in the second namespace defining the second workload group” ;
wherein the similarity analysis includes text based static analysis of the first workload group and the second workload group, and
wherein the similarity analysis includes dynamic runtime analysis of the first workload group and the second workload group
are analyzed with the assessing step of claim 1 as a mental processes because these steps can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. These steps also recite a mathematical concept with regard to the similarity analysis. The recitation of a “namespace” and a “workload” appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
Regarding claim 14,
The additional element of “wherein the assessing includes discovering workload groups comprising related workloads, and identifying, in dependence on the discovering, a first workload group of a first namespace and second workload group of a second namespace suitable for merging” is analyzed with the assessing step of claim 1 as a mental process because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The recitation of a “workload” and a “namespace” appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
The additional elements of :
wherein the prompting data specifies a workload group name having a workload group instantiation in a first namespace defining the first workload group and a workload group instantiation in a second namespace defining the second workload group;
wherein the prompting data further specifies a determined similarity level of the workload group instantiation in the first namespace defining the first workload group and the workload group instantiation in the second namespace defining the second workload group, wherein the assessing includes performing similarity analysis to obtain the determined similarity level of the workload group instantiation in the first namespace defining the first workload group and the workload group instantiation in the second namespace defining the second workload group, wherein the similarity analysis includes text based static analysis of the first workload group and the second workload group, and wherein the similarity analysis includes dynamic runtime analysis of the first workload group and the second workload group; and
“wherein the prompting data references the provisioning resource allocation” is analyzed with the “generating prompting data” step of claim 1 as an abstract idea because these steps be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. These steps also recite a mathematical concept with regard to the similarity analysis. The additional elements of a “workload” and a “namespace” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. This additional element also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, this additional element does not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since this additional element merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
The additional element of “wherein the method includes performing runtime workload analysis to determine a provisioning resource allocation for supporting a remaining workload group subsequent to merger of the first workload group and the second workload group” recites an additional mental process under Prong 1 since this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion but for the recitation of generic computing components. For example, a person can think and evaluate to perform a runtime workload analysis to determine resource allocation subsequent to merging a workload. The additional element of a “workload” is recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. This additional element also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, this additional element does not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since this additional element merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 15, the additional element of “wherein the workload characterizing data of the plurality of workloads of a cluster includes one or more text based data or runtime metrics data” appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)).
Regarding claim 16, the step of “wherein the prompting data specifies the identified workloads” is analyzed with the “generating prompting data” step of claim 1 as an abstract idea because this step can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The additional element of a “workload” is recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. This additional element also appears to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, this additional element does not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 17, the additional steps of :
“wherein the assessing includes discovering workload groups comprising related workloads, and identifying, in dependence on the discovering, a first workload group of a first namespace and second workload group of a second namespace suitable for merging;” and
“wherein the method includes merging the first workload group of the first namespace and the second workload group of the second namespace, wherein the merging includes removing the second workload group of the second namespace”
recite mental processes because these steps can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The additional elements of a “workload” and a “namespace” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. These additional elements also appear to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 18, the additional steps of:
“wherein the assessing includes discovering workload groups comprising related workloads, and identifying, in dependence on the discovering, a first workload group of a first namespace and second workload group of a second namespace suitable for merging;” and
“wherein the method includes merging the first workload group of the first namespace and the second workload group of the second namespace, wherein the merging includes removing the second workload group of the second namespace”
recite mental processes because these steps can be reasonably carried out in the human mind with the aid of pen and paper, through observation, evaluation, judgment, and/or opinion. The additional elements of a “workload” and a “namespace” are recited at a high level of generality and amounts to using a generic computing component as a tool to apply the abstract idea (MPEP § 2106.05(f)) under Prong 2. These additional elements also appear to be an attempt to generally link the use of the judicial exception to a particular technological environment or field of use. (MPEP 2106.05(h)). Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, does not amount to significantly more than the judicial exception.
Regarding claim 19, this claim is not patent eligible for the same reasons given for claim 1 for the common limitations. The recitation of the additional elements of a “system,” “memory,” “processor in communication with the memory,” and “program instructions,” merely recite instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea under Prong 2. Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, they do not amount to significantly more than the judicial exception.
Regarding claim 20, this claim is not patent eligible for the same reasons given for claim 1 for the common limitations. The recitation of the additional elements of a “computer program product,” and “a computer readable storage medium readable by one or more processing circuit and storing instructions for execution by one or more processor for performing a method” merely recite instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea under Prong 2. Therefore, these additional elements do not integrate the judicial exception into a practical application. (MPEP 2106.05(f)). Under Step 2B, since these additional elements merely recite generic computer components to carry out the abstract idea, they do not amount to significantly more than the judicial exception.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-4, 7-8, 10, and 15-20 rejected under 35 U.S.C. 103 as being unpatentable over Sharon et al. (US 20200409559) in view of Singh et al. (US 20200026560).
As per claim 1, Sharon teaches the invention substantially as claimed including a computer implemented method comprising:
obtaining workload characterizing data ([0100], workload analyzer 706 tracks workload attributes that define, describe, or characterize the workloads), wherein the workload characterizing data characterizes a plurality of workloads ([0100], the workload analyzer 706 tracks workload attributes that define, describe, or characterize the workloads. As used herein, a “workload attribute” is any quality, characteristic, attribute, feature, behavior, trait, or property about a workload) of a cluster ([0095], system comprises the functionality necessary for the solution disclosed herein, including a network 114, non-volatile memory device(s) 118, a storage controller 126, one or more hosts (host 616, host 618, and host 620), a write data pipeline 702, a read data pipeline 704, a workload analyzer 706, an open erase block manager 708, storage commands 710, at least one open erase block 712, and a data allocator 714; and [0099], workload analyzer 706 tracks, or monitors, storage commands 710 received by the non-volatile memory system 102 in order to determine information about the workloads that the non-volatile memory system 102 is handling);
assessing workloads of the plurality of workloads with use of characterizing data of the workload characterizing data ([0102], the workload analyzer 706 reviews or analyzes the workload attributes).
Sharon fails to specifically teach, generating prompting data in dependence on the assessing of the workloads of the plurality of workloads, wherein the prompting data prompts for merging of identified workloads of the plurality of workloads; and presenting the prompting data to a user.
However, Singh teaches, generating prompting data in dependence on the assessing of the workloads of the plurality of workloads ([0025], the resource allocation operations can be presented to a user as a set of recommended resource allocation operations to facilitate accepting or declining any of the operations. The recommended resource allocation operations and/or other information presented for analysis can be expressed in terms pertaining to named workloads; and [0032], Given the correlation metrics, at step 109, an affinity between an activity stream and a particular workload type can be determined and quantified, which affinity in turn can be used in making resource allocation decisions. In some cases, and as shown, an affinity determination is provided to a user interface, which user interface can be viewed and manipulated by a user), wherein the prompting data prompts for merging of identified workloads of the plurality of workloads ([0025], the resource allocation operations can be presented to a user as a set of recommended resource allocation operations to facilitate accepting or declining any of the operations. The recommended resource allocation operations and/or other information presented for analysis can be expressed in terms pertaining to named workloads; [0052], a workload detection agent can predict that a workload running in a particular node of a first cluster might perform better and/or achieve improved resource utilization if that workload were situated in, for example, a different cluster. Upon such a prediction, resource reallocation operations and/or migration operations can be invoked so as to pursue the predicted improvements; and [0080], various workload-based resource allocation operations can be generated (operation 180.sub.2). As one example of workload-based resource allocation operations, the workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402)); and
presenting the prompting data to a user ([0049], certain recommended instances of the resource allocation operations 138 and/or other information (e.g., resource usage metrics) can be presented in user interface 116 for analysis, expressed in terms pertaining to the classified workloads in the system; and [0080], various workload-based resource allocation operations can be generated (operation 180.sub.2). As one example of workload-based resource allocation operations, the workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402)).
Singh also teaches, wherein the workload characterizing data characterizes a plurality of workloads ([0036], for each VE, I/O activity trace data for the respective VE is retrieved (at operation 162) from I/O activity attributes (e.g., as stored in a measured activity database 111); and [0038], the I/O activity attributes for each VE can be applied to the inputs of a workload detection and classification model to classify the workload or workloads running on the VE (operation 164)) of a cluster ([0024], some clusters in a distributed virtualization system might deploy hundreds of nodes or more that support several thousand or more autonomous virtualized entities (e.g., VMs, containers, etc.) that are individually tasked to perform one or more of a broad range of computing workloads).
Sharon and Singh are analogous because they are each related to workload management. Sharon teaches a method of workload management including workload classification and merging workloads of different namespaces ([0104], By grouping write data for two namespaces together in the same open erase block, the storage controller 126 uses the relationship to optimize where write data is stored on the non-volatile memory media 120;and [0112], workload analyzer 800 includes a comparator 804 configured to review the information gathered by the tracker 806 and workload attributes and deduce, or determine, relationships between namespaces with stored data in currently open erase blocks based on the workload attributes detected for the workloads associated with those namespaces. The workload analyzer 800 tracks and distinguishes namespaces using their namespace identifiers). Singh teaches a method of workload classification, management, including workload consolidation/migration, and resource allocation based on workload attributes. (Abstract, managing virtualized entities in computing systems. In a method embodiment, processing commences upon receiving I/O activity trace data associated with virtualized entities running in a computing system. Specific I/O activity attributes are extracted from the I/O activity trace data, and the I/O activity attributes are used to form a workload classification model. The workload classification model serves to assign one or more workload classifications to a respective one or more observed workloads running on the computing system. Based on the determined workload classification or classifications, recommended resource allocation operations are formed for further consideration. Considered resource allocation operations include migrations of virtualized entities from a source computing resource to a target computing resource; and [0080], workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402). As can be observed in this example, the resource allocation operations result in node 252.sub.15 being tasked with servicing consolidated SQL server workloads and node 252.sub.34 being tasked with servicing consolidated VDI workloads)). Singh also teaches a user interface that allows users to make management decisions. ([0049], certain recommended instances of the resource allocation operations 138 and/or other information (e.g., resource usage metrics) can be presented in user interface 116 for analysis, expressed in terms pertaining to the classified workloads in the system; and [0080], various workload-based resource allocation operations can be generated (operation 180.sub.2). As one example of workload-based resource allocation operations, the workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402)). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, Sharon’s “workload analyzer” would be modified with Singh’s resource allocation prompting mechanism resulting in a system that allows users to view workload information and make resource allocation decisions in consideration of namespaces associated with workloads and workload information. Therefore, it would have been obvious to combine the teachings of Sharon and Singh.
As per claim 2, Sharon teaches, wherein the assessing includes discovering relationships between workloads within a certain namespace of the cluster (0006], determine a relationship between a first namespace and a second namespace based on a plurality of workload attributes for the first namespace and the second namespace; and [0102], the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace).
As per claim 3, Sharon teaches, wherein the assessing includes performing first intra-namespace analysis to discover relationships between workloads within a first namespace, performing second intra-namespace analysis to discover relationships between workloads within a second namespace ([0006], determine a relationship between a first namespace and a second namespace based on a plurality of workload attributes for the first namespace and the second namespace; and [0102], the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace), and identifying, in dependence on the first intra-namespace analysis and the second intra-namespace analysis that a first workload is suitable for merging with a second workload ([0102], the workload analyzer 706 reviews or analyzes the workload attributes and determines patters, similarities, relationships, and/or commonalities between namespaces that are based on the workload attributes; and [0119], data allocator 900 is configured to direct an open erase block manager (or other non-volatile memory media 120 physical placement manager) to group data of write commands having a first namespace identifier into a common one of two or more of the open logical erase blocks as write commands having a second namespace identifier, based on a relationship between the namespaces).
As per claim 4, Sharon teaches, wherein the assessing includes discovering related workloads within a first namespace, performing discovery of related workloads in a second namespace and identifying, in dependence on the discovering and the performing discovery, that a first workload is suitable for merging with a second workload ([0006], determine a relationship between a first namespace and a second namespace based on a plurality of workload attributes for the first namespace and the second namespace; [0102], the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace; and [0119], data allocator 900 is configured to direct an open erase block manager (or other non-volatile memory media 120 physical placement manager) to group data of write commands having a first namespace identifier into a common one of two or more of the open logical erase blocks as write commands having a second namespace identifier, based on a relationship between the namespaces), wherein the first workload is included in the first namespace, and wherein the second workload is included in the second namespace ([0006], determine a relationship between a first namespace and a second namespace based on a plurality of workload attributes for the first namespace and the second namespace; and [0102], the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace).
As per claim 7, Singh teaches, wherein the assessing includes discovering workload groups comprising related workloads ([0040], workload parameters can be grouped and/or preprocessed to form hypothesis or other inputs used in heuristics to determine a workload type; [0071], workload detection model, used in conjunction with a workload classification model can be used to classify workloads to facilitate dynamic resource allocation in a distributed virtualization system; and [0073], workload classification technique 3B00 can assign instances of workload classifications 130 and determine sets of workload parameters 132 for workloads (e.g., WL3 and WL4) operating at various virtualized entities (e.g., VE3 and VE4) in distributed virtualization system 102)), and identifying, in dependence on the discovering, first and second workload groups suitable for merging ([0080], workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402)).
As per claim 8, Singh teaches, wherein the assessing includes discovering workload groups comprising related workloads ([0040], workload parameters can be grouped and/or preprocessed to form hypothesis or other inputs used in heuristics to determine a workload type; [0071], workload detection model, used in conjunction with a workload classification model can be used to classify workloads to facilitate dynamic resource allocation in a distributed virtualization system; and [0073], workload classification technique 3B00 can assign instances of workload classifications 130 and determine sets of workload parameters 132 for workloads (e.g., WL3 and WL4) operating at various virtualized entities (e.g., VE3 and VE4) in distributed virtualization system 102)), and identifying, in dependence on the discovering, first and second workload groups suitable for merging ([0080], workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402)), wherein the prompting data references the first and second workload groups ([0049], Workload detection agent 104.sub.11 can further comprise a user interface 116 to facilitate a workload-based resource analysis 140 by one or more users 118 (e.g., system administrators). For example, certain recommended instances of the resource allocation operations 138 and/or other information (e.g., resource usage metrics) can be presented in user interface 116 for analysis, expressed in terms pertaining to the classified workloads in the system).
As per claim 10, Singh teaches, wherein the method includes performing runtime workload analysis to determine a provisioning resource allocation for supporting a remaining workload subsequent to merger of the identified workloads ([0078], workload consolidation technique 4A00 as implemented in systems for distributed resource allocation using dynamically classified workloads; and [0080], various workload-based resource allocation operations can be generated (operation 180.sub.2). As one example of workload-based resource allocation operations, the workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402)), and wherein the prompting data references the provisioning resource allocation ([0025], the resource allocation operations can be presented to a user as a set of recommended resource allocation operations to facilitate accepting or declining any of the operations. The recommended resource allocation operations and/or other information presented for analysis can be expressed in terms pertaining to named workloads).
As per claim 15, Singh teaches, wherein the workload characterizing data of the plurality of workloads of a cluster includes one or more text based data or runtime metrics data ([0090], workload parameters can be used to present various metrics pertaining to the resource capacity for serving the workloads (operation 412). For example, a view 442 might be presented in a user interface to analyze resources in a distributed virtualization system expressed in terms of the workloads detected in the system).
As per claim 16, Singh teaches, wherein the prompting data specifies the identified workloads ([0025], the resource allocation operations can be presented to a user as a set of recommended resource allocation operations to facilitate accepting or declining any of the operations. The recommended resource allocation operations and/or other information presented for analysis can be expressed in terms pertaining to named workloads).
As per claim 17, Singh teaches, wherein the assessing includes discovering workload groups comprising related workloads [0040], workload parameters can be grouped and/or preprocessed to form hypothesis or other inputs used in heuristics to determine a workload type; [0071], workload detection model, used in conjunction with a workload classification model can be used to classify workloads to facilitate dynamic resource allocation in a distributed virtualization system; and [0073], workload classification technique 3B00 can assign instances of workload classifications 130 and determine sets of workload parameters 132 for workloads (e.g., WL3 and WL4) operating at various virtualized entities (e.g., VE3 and VE4) in distributed virtualization system 102)), and identifying, in dependence on the discovering, a first workload group of a first namespace and second workload group of a second namespace suitable for merging ([0080], workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402); Examiner Note: Singh’s workloads comprise containers which are associated with their own namespace: [0023], Another form of virtualization in distributed systems is operating system virtualization or container virtualization. The containers implemented in container virtualization environments comprise groups of processes and/or resources (e.g., memory, CPU, disk, etc.) that are isolated from the host computer and other containers...Any of the foregoing virtualized entities can be implemented in distributed virtualization systems to facilitate execution of one or more workloads; and [0128], multiple containers that share access to a virtual disk can be assembled into a pod (e.g., a Kubernetes pod). Pods provide sharing mechanisms (e.g., when multiple containers are amalgamated into the scope of a pod) as well as isolation mechanisms (e.g., such that the namespace scope of one pod does not share the namespace scope of another pod)), wherein the method includes merging the first workload group of the first namespace and the second workload group of the second namespace, wherein the merging includes removing the second workload group of the second namespace ([0052], a workload detection agent can predict that a workload running in a particular node of a first cluster might perform better and/or achieve improved resource utilization if that workload were situated in, for example, a different cluster. Upon such a prediction, resource reallocation operations and/or migration operations can be invoked so as to pursue the predicted improvements; and [0080], workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402)).
As per claim 18, Singh teaches, wherein the assessing includes discovering workload groups comprising related workloads ([0040], workload parameters can be grouped and/or preprocessed to form hypothesis or other inputs used in heuristics to determine a workload type; [0063], a set of observed workloads 326 might include certain representative workloads (e.g., WL1, WL2, . . . , WLN) identified by respective instances of observed workload type identifiers 126; and [0073], workload classification technique 3B00 can assign instances of workload classifications 130 and determine sets of workload parameters 132 for workloads (e.g., WL3 and WL4) operating at various virtualized entities (e.g., VE3 and VE4) in distributed virtualization system 102)), and identifying, in dependence on the discovering, a first workload group of a first namespace and second workload group of a second namespace suitable for merging ([0080], workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402)), wherein the method includes merging the first workload group of the first namespace and the second workload group of the second namespace ([0080], workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402)), wherein the merging includes removing the second workload group of the second namespace ([0052], a workload detection agent can predict that a workload running in a particular node of a first cluster might perform better and/or achieve improved resource utilization if that workload were situated in, for example, a different cluster. Upon such a prediction, resource reallocation operations and/or migration operations can be invoked so as to pursue the predicted improvements), wherein the merging is performed in dependence on user defined input data entered into a user interface, the user defined input data entered into a user interface responsively to the prompting data ([0025], the resource allocation operations can be presented to a user as a set of recommended resource allocation operations to facilitate accepting or declining any of the operations. The recommended resource allocation operations and/or other information presented for analysis can be expressed in terms pertaining to named workloads; [0032], an affinity determination is provided to a user interface, which user interface can be viewed and manipulated by a user; and [0049], Workload detection agent 104.sub.11 can further comprise a user interface 116 to facilitate a workload-based resource analysis 140 by one or more users 118 (e.g., system administrators). For example, certain recommended instances of the resource allocation operations 138 and/or other information (e.g., resource usage metrics) can be presented in user interface 116 for analysis, expressed in terms pertaining to the classified workloads in the system).
As per claim 19, this is the “system claim” corresponding to claim 1 and is rejected for the same reasons. The same motivation used in the rejection of claim 1 is applicable to the instant claim.
As per claim 20, this is the “computer readable storage medium” corresponding to claim 1 and is rejected for the same reasons. The same motivation used in the rejection of claim 1 is applicable to the instant claim.
Claims 5, 6, and 9 are rejected under 35 U.S.C. 103 as being unpatentable over the combination of Sharon-Singh as applied to claim 1 and in further view of Ayyagari et al. (US 20190354403).
As per claim 5, Sharon teaches, wherein the first workload is included in the first namespace, and wherein the second workload is included in the second namespace ([0006], determine a relationship between a first namespace and a second namespace based on a plurality of workload attributes for the first namespace and the second namespace; and [0102], the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace).
The combination of Sharon-Singh fails to specifically teach, wherein the assessing includes discovering a hierarchical ordering of workload groups within a first namespace, and identifying, in dependence on the hierarchical ordering of workload groups within a first namespace, that a first workload is suitable for merging with a second workload, wherein the first workload is included in the first namespace.
However, Ayyagari teaches, wherein the assessing includes discovering a hierarchical ordering of workload groups within a first namespace ([0062], workload deployment program 300 utilizes logical controls to activate or inhibit the execution of executable procedures within an embedded computing entity based on constraints, operational hierarchies, and execution sequences associated with the workload; Examiner Note: Ayyagari teaches workloads within a namespace: [0004], Proxy nodes are used to distribute workloads, handle workload requests within a namespace, and direct the transfer of objects that comprise the workload among nodes), and identifying, in dependence on the hierarchical ordering of workload groups within a first namespace, that a first workload is suitable for merging with a second workload ([0078], workload analysis program 500 accesses a set of information related to processing of the workload. In various embodiments, workload analysis program 500 accesses information related to a workload that includes: a plurality of utilized objects, a set of locations of utilized objects provided by workload deployment program 300, a list of embedded computing entities utilized by the workload, and functional resources/dictates of one or more embedded computing entities of the workload, such as a hierarchy of operations or identifying a set of objects associated with one or more pipelined tasks; [0080], In response to analyzing a workload and various embedded computing entities, workload analysis program 500 obtains one or more additional executable procedures for inclusion within an embedded computing entity utilized during executing the workload, and/or compiles a new embedded computing entity from executable procedures; [0085], workload analysis program 500 utilizes clustering algorithms to determine whether to include the unidentified portion of the workload with another portion of the workload; [0089], in response to parsing a workload, workload analysis program 500 classifies objects related to the workload to identify executable procedures that are utilized to process the one or more objects of the workload; and [0090], Upon classifying an object, analysis suite 107 updates the metadata of an object with one or more classifications. Similarly, workload analysis program 500 can utilize analysis suite 107 to identify and classify new executable procedures for inclusion in an instance of table 250).
The combination of Sharon-Singh and Ayyagari are analogous because they are each related to workload management. Sharon teaches a method of workload management including workload classification and merging. Singh teaches a method of workload classification, management, including workload consolidation/migration, and resource allocation based on workload attributes. Ayyagari teaches a method of workload analysis, classification and display. ([0094], workload analysis program 500 utilizes one or more visualization programs to depict, via UI 122, the parsing and analysis of one or more portions of the workload to a user that initiated the workload. In an example, workload analysis program 500 presents a representation of the workload, based on one or more aspects of analysis suite 107, to a user that generates the workload. Workload analysis program 500 may receive: one or more characteristics of a portion of the workload, modifications of characteristics of a portion of the workload, and/or modification of the analysis of the workload. Alternatively, workload analysis program 500 may receive a request from a user for further analysis and/or optimizations of a portion of the workload based on changes input by the user). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, the “workload analyzer” of the combination of Sharon-Singh would be modified with Ayyagari’s workload parsing and display mechanisms resulting in a system that allows users to view hierarchical workload information and make resource allocation decisions based on said workload information. Therefore, it would have been obvious to combine the teachings of the combination of Sharon-Singh and Ayyagari.
As per claim 6, Sharon teaches, wherein the first workload is included in the first namespace, and wherein the second workload is included in the second namespace ([0006], determine a relationship between a first namespace and a second namespace based on a plurality of workload attributes for the first namespace and the second namespace; and [0102], the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace).
The combination of Sharon-Singh fails to specifically teach, wherein the assessing includes discovering a hierarchical ordering of workload groups within a first namespace, discovering a hierarchical ordering of workload groups within a second namespace and identifying, in dependence on the hierarchical ordering of workload groups within the first namespace and in dependence on the hierarchical ordering of workload groups within the second namespace, that a first workload is suitable for merging with a second workload, wherein the first workload is included in the first namespace.
However, Ayyagari teaches, wherein the assessing includes discovering a hierarchical ordering of workload groups within a first namespace ([0062], workload deployment program 300 utilizes logical controls to activate or inhibit the execution of executable procedures within an embedded computing entity based on constraints, operational hierarchies, and execution sequences associated with the workload; Examiner Note: Ayyagari teaches workloads within a namespace: [0004], Proxy nodes are used to distribute workloads, handle workloads requests within a namespace, and direct the transfer of objects that comprise the workload among nodes), discovering a hierarchical ordering of workload groups within a second namespace ([0078], workload analysis program 500 accesses a set of information related to processing of the workload. In various embodiments, workload analysis program 500 accesses information related to a workload that includes: a plurality of utilized objects, a set of locations of utilized objects provided by workload deployment program 300, a list of embedded computing entities utilized by the workload, and functional resources/dictates of one or more embedded computing entities of the workload, such as a hierarchy of operations or identifying a set of objects associated with one or more pipelined tasks) and identifying, in dependence on the hierarchical ordering of workload groups within the first namespace and in dependence on the hierarchical ordering of workload groups within the second namespace, that a first workload is suitable for merging with a second workload ([0078], workload analysis program 500 accesses a set of information related to processing of the workload. In various embodiments, workload analysis program 500 accesses information related to a workload that includes: a plurality of utilized objects, a set of locations of utilized objects provided by workload deployment program 300, a list of embedded computing entities utilized by the workload, and functional resources/dictates of one or more embedded computing entities of the workload, such as a hierarchy of operations or identifying a set of objects associated with one or more pipelined tasks; [0080], In response to analyzing a workload and various embedded computing entities, workload analysis program 500 obtains one or more additional executable procedures for inclusion within an embedded computing entity utilized during executing the workload, and/or compiles a new embedded computing entity from executable procedures; [0085], workload analysis program 500 utilizes clustering algorithms to determine whether to include the unidentified portion of the workload with another portion of the workload; [0089], in response to parsing a workload, workload analysis program 500 classifies objects related to the workload to identify executable procedures that are utilized to process the one or more objects of the workload; and [0090], Upon classifying an object, analysis suite 107 updates the metadata of an object with one or more classifications. Similarly, workload analysis program 500 can utilize analysis suite 107 to identify and classify new executable procedures for inclusion in an instance of table 250).
The same motivation used in the rejection of claim 5 is applicable to the instant claim.
As per claim 9, Sharon teaches, wherein the first workload is included in the first namespace, and wherein the second workload is included in the second namespace ([0006], determine a relationship between a first namespace and a second namespace based on a plurality of workload attributes for the first namespace and the second namespace; and [0102], the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace).
Sharon fails to specifically teach, wherein the assessing includes discovering a hierarchical ordering of workload groups within a first namespace, discovering a hierarchical ordering of workload groups within a second namespace and identifying, in dependence on the hierarchical ordering of workload groups within the first namespace and in dependence on the hierarchical ordering of workload groups within the second namespace, a first workload suitable for merging with a second workload,..., wherein the prompting data prompts for merging of the first and second workloads.
However, Singh teaches, wherein the prompting data prompts for merging of the first and second workloads ([0025], the resource allocation operations can be presented to a user as a set of recommended resource allocation operations to facilitate accepting or declining any of the operations. The recommended resource allocation operations and/or other information presented for analysis can be expressed in terms pertaining to named workloads; [0052], a workload detection agent can predict that a workload running in a particular node of a first cluster might perform better and/or achieve improved resource utilization if that workload were situated in, for example, a different cluster. Upon such a prediction, resource reallocation operations and/or migration operations can be invoked so as to pursue the predicted improvements; and [0080], various workload-based resource allocation operations can be generated (operation 180.sub.2). As one example of workload-based resource allocation operations, the workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402)).
The combination of Sharon-Singh fails to specifically teach, wherein the assessing includes discovering a hierarchical ordering of workload groups within a first namespace, discovering a hierarchical ordering of workload groups within a second namespace and identifying, in dependence on the hierarchical ordering of workload groups within the first namespace and in dependence on the hierarchical ordering of workload groups within the second namespace, a first workload suitable for merging with a second workload.
However, Ayyagari teaches, wherein the assessing includes discovering a hierarchical ordering of workload groups within a first namespace ([0062], workload deployment program 300 utilizes logical controls to activate or inhibit the execution of executable procedures within an embedded computing entity based on constraints, operational hierarchies, and execution sequences associated with the workload; Examiner Note: Ayyagari teaches workloads within a namespace: [0004], Proxy nodes are used to distribute workloads, handle workload requests within a namespace, and direct the transfer of objects that comprise the workload among nodes), discovering a hierarchical ordering of workload groups within a second namespace ([0078], workload analysis program 500 accesses a set of information related to processing of the workload. In various embodiments, workload analysis program 500 accesses information related to a workload that includes: a plurality of utilized objects, a set of locations of utilized objects provided by workload deployment program 300, a list of embedded computing entities utilized by the workload, and functional resources/dictates of one or more embedded computing entities of the workload, such as a hierarchy of operations or identifying a set of objects associated with one or more pipelined tasks) and identifying, in dependence on the hierarchical ordering of workload groups within the first namespace and in dependence on the hierarchical ordering of workload groups within the second namespace, a first workload suitable for merging with a second workload ([0078], workload analysis program 500 accesses a set of information related to processing of the workload. In various embodiments, workload analysis program 500 accesses information related to a workload that includes: a plurality of utilized objects, a set of locations of utilized objects provided by workload deployment program 300, a list of embedded computing entities utilized by the workload, and functional resources/dictates of one or more embedded computing entities of the workload, such as a hierarchy of operations or identifying a set of objects associated with one or more pipelined tasks; [0080], In response to analyzing a workload and various embedded computing entities, workload analysis program 500 obtains one or more additional executable procedures for inclusion within an embedded computing entity utilized during executing the workload, and/or compiles a new embedded computing entity from executable procedures; [0085], workload analysis program 500 utilizes clustering algorithms to determine whether to include the unidentified portion of the workload with another portion of the workload; [0089], in response to parsing a workload, workload analysis program 500 classifies objects related to the workload to identify executable procedures that are utilized to process the one or more objects of the workload; and [0090], Upon classifying an object, analysis suite 107 updates the metadata of an object with one or more classifications. Similarly, workload analysis program 500 can utilize analysis suite 107 to identify and classify new executable procedures for inclusion in an instance of table 250).
The same motivation used in the rejection of claim 5 is applicable to the instant claim.
Claim 11 is rejected under 35 U.S.C. 103 as being unpatentable over the combination of Sharon-Singh as applied to claim 1 and in further view of Sheoran et al. (US 20220129316).
As per claim 11, Sharon teaches, wherein the assessing includes discovering relationships between workloads within a certain namespace of the cluster (0006], determine a relationship between a first namespace and a second namespace based on a plurality of workload attributes for the first namespace and the second namespace; and [0102], the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace), wherein the discovering includes processing text based reports ([0112], workload analyzer 800 includes a comparator 804 configured to review the information gathered by the tracker 806 and workload attributes and deduce, or determine, relationships between namespaces with stored data in currently open erase blocks based on the workload attributes detected for the workloads associated with those namespaces. The workload analyzer 800 tracks and distinguishes namespaces using their namespace identifiers) for respective workloads of the certain namespace ([0101], the workload analyzer 706 uses the namespace identifier included in the storage commands 710 to track how namespaces having a first set of workload attributes relate to namespaces having other workload attributes, particularly similar workload attributes; [0102], the workload analyzer 706 reviews or analyzes the workload attributes and determines patterns, similarities, relationships, and/or commonalities between namespaces that are based on the workload attributes. In certain embodiments, these patterns, similarities, relationships, and/or commonalities are referred to as hints and can be used to optimize the performance of the non-volatile memory device(s) 118. In certain embodiments, the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace).
The combination of Sharon-Singh fails to specifically teach, wherein the discovering includes ascertaining, in dependence on the processing text based reports for respective workloads of the certain namespace Euclidean distances between the respective workloads of the certain namespace.
However, Sheoran teaches, wherein the discovering includes ascertaining, in dependence on the processing text based reports for respective workloads of the certain namespace Euclidean distances between the respective workloads of the certain namespace ([0019], different distance metric generation systems are used, each one using different features or characteristics of workloads to determine a representation of the workload (e.g., a vector representation of the workload) based on the resource usage of the workload. For each distance metric generation system, a number of clusters into which a set of workload resource usage histories are grouped is determined based on the workload representations generated by the distance metric generation system; [0021], the distances are determined using a baseline distance metric that is the Euclidean distance on the workload representations; and [0037], The term “workload” refers to one or more computational tasks to perform. Examples of workloads include individual sets of commands or operations, applications or services running inside containers ).
The combination of Sharon-Singh and Sheoran are analogous because they are each related to workload management. Sharon teaches a method of workload management including workload classification and merging. Singh teaches a method of workload classification, management, including workload consolidation/migration, and resource allocation based on workload attributes. Singh also teaches a user interface that allows users to make management decisions. Sheoran teaches a method of workload management that includes workload grouping and resource allocation based on similarities and distance algorithms. (Abstract, scheduling system includes an equivalence-class-based resource usage prediction system that receives a workload request and predicts an equivalence class for that workload request based on resource usage over time by the workload request or metadata associated with the workload request. The scheduling system also includes a workload assignment system that assigns the workload request to one or more of the computing nodes based on the predicted equivalence class; [0004], [0014], allows multiple different workloads with similar characteristics to be assigned to the same equivalence class and treated similarly by the scheduling system (e.g., scheduled based on an expected amount of resources used by the workload over time)). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, the “workload analyzer” of the combination of Sharon-Singh would be modified to include Sheoran’s workload classification mechanisms including its distance algorithms resulting in a system that allows users to view and classify workload information and make resource allocation decisions based on said workload information. Therefore, it would have been obvious to combine the teachings of the combination of Sharon-Singh and Sheoran.
Claims 12-14 are rejected under 35 U.S.C. 103 as being unpatentable over the combination of Sharon-Singh as applied to claim 1 and in further view of Taigi et al. (US 20210336899).
As per claim 12, Sharon teaches, further specifies a determined similarity level of the workload group instantiation in the first namespace and the workload group instantiation in the second namespace ([0112], this derived, or implied relationship, between these namespaces is a hint, or prediction, that an observed relationship, similarity, or commonality will continue to exist between the two namespaces such that placing data for both on the same open erase block will be advantageous for the non-volatile memory system 102).
The combination of Sharon-Singh fails to specifically teaches, wherein the prompting data specifies a workload group name having a workload group instantiation in a first namespace and a workload group instantiation in a second namespace.
However, Taigi teaches, wherein the prompting data specifies a workload group name having a workload group instantiation in a first namespace and a workload group instantiation in a second namespace ([0046], Informing users of the reasons for groupings allows automated grouping processes to be understood and verified; and [0052], model 520 is able to output a label for a set of input features; Examiner Notes: 1) Taigi’s work group labels are displayed to users for approval/verification: [0019], Once a group (e.g., all groups) has a workload that has been assigned a label or labels, the label or labels for that workload may be applied to all workloads in the group; and [0054], Labels output by model 520 may, in some instances, be used to retrain model 520. For example, if label 540 is approved by a user (e.g., if an administrator confirms that label 540 is accurate), then label 540 may be used to generate an additional training data instance for labeled training data 510 that is used to retrain model 520; and 2) Taigi teaches namespace workloads: [0028], the teachings herein also apply to other types of virtual computing instances (VCIs) or data compute nodes (DCNs), such as containers, which may be referred to as Docker containers... namespace containers, etc.),
The combination of Sharon-Singh and Taigi are analogous because they are each related to workload management. Sharon teaches a method of workload management including workload classification and merging. Singh teaches a method of workload classification, management, including workload consolidation/migration, and resource allocation based on workload attributes. Singh also teaches a user interface that allows users to make management decisions. Tiagi teaches a method of workload classification, grouping, and management based on workload features. (Abstract, determining a plurality of sets of features comprising a respective set of features for each respective workload of a first subset of a plurality of workloads. Embodiments include identifying a group of workloads based on similarities among the plurality of sets of features. Embodiments include receiving label data from a user comprising a label for the group of workloads. Embodiments include associating the label with each workload of the group of workloads to produce a training data set). Tiagi also teaches a user interface that allows users to make management decisions. ([0045], a user provides the labels via a user interface. For instance, the grouped VCIs may be displayed for review and/or labeling. At least a subset of the features of each VCI may be displayed for review. In some embodiments, features considered most important to a workload's inclusion in a group are displayed, such as the features that were most similar to other workloads in the group). It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention that based on the combination, the “workload analyzer” of the combination of Sharon-Singh would be modified with Taigi’s workload grouping mechanism of its “manager 138” resulting in a system that allows users to view workload information and make resource allocation decisions, including workload grouping, based on said workload information. Therefore, it would have been obvious to combine the teachings of the combination of Sharon-Singh and Tiagi.
As per claim 13, Sharon teaches wherein the assessing includes discovering workload groups comprising related workloads (0006], determine a relationship between a first namespace and a second namespace based on a plurality of workload attributes for the first namespace and the second namespace; and [0102], the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace), and identifying, in dependence on the discovering, a first workload group of a first namespace and second workload group of a second namespace suitable for merging ([0006], determine a relationship between a first namespace and a second namespace based on a plurality of workload attributes for the first namespace and the second namespace; and [0102], the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace; and [0119], data allocator 900 is configured to direct an open erase block manager (or other non-volatile memory media 120 physical placement manager) to group data of write commands having a first namespace identifier into a common one of two or more of the open logical erase blocks as write commands having a second namespace identifier, based on a relationship between the namespaces), wherein the assessing includes performing similarity analysis to obtain the determined similarity level of the workload group instantiation in the first namespace defining the first workload group and the workload group instantiation in the second namespace defining the second workload group ([0100], the workload analyzer 706 tracks workload attributes that define, describe, or characterize the workloads. As used herein, a “workload attribute” is any quality, characteristic, attribute, feature, behavior, trait, or property about a workload; and [0101], the workload analyzer 706 tracks workload attributes about how the workloads relate to the namespaces referenced in the storage commands 710. In a further embodiment, the workload analyzer 706 uses the namespace identifier included in the storage commands 710 to track how namespaces having a first set of workload attributes relate to namespaces having other workload attributes, particularly similar workload attributes), wherein the similarity analysis includes text based static analysis of the first workload group and the second workload group, and wherein the similarity analysis includes dynamic runtime analysis of the first workload group and the second workload group ([0101], the workload analyzer 706 uses the namespace identifier included in the storage commands 710 to track how namespaces having a first set of workload attributes relate to namespaces having other workload attributes, particularly similar workload attributes; and [0102], the workload analyzer 706 reviews or analyzes the workload attributes and determines patterns, similarities, relationships, and/or commonalities between namespaces that are based on the workload attributes. In certain embodiments, these patterns, similarities, relationships, and/or commonalities are referred to as hints and can be used to optimize the performance of the non-volatile memory device(s) 118. In certain embodiments, the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace).
The combination of Sharon-Singh fails to specifically teach, wherein the prompting data specifies a workload group name having a workload group instantiation in a first namespace defining the first workload group and a workload group instantiation in a second namespace defining the second workload group, and wherein the prompting data further specifies a determined similarity level of the workload group instantiation in the first namespace defining the first workload group and the workload group instantiation in the second namespace defining the second workload group.
However, Taigi teaches, wherein the prompting data specifies a workload group name having a workload group instantiation in a first namespace defining the first workload group and a workload group instantiation in a second namespace defining the second workload group ([0045], the grouped VCIs may be displayed for review and/or labeling. At least a subset of the features of each VCI may be displayed for review. In some embodiments, features considered most important to a workload's inclusion in a group are displayed, such as the features that were most similar to other workloads in the group; [0046], Informing users of the reasons for groupings allows automated grouping processes to be understood and verified; and [0058], displays the grouped workloads along with features of the grouped workloads), and wherein the prompting data further specifies a determined similarity level of the workload group instantiation in the first namespace defining the first workload group and the workload group instantiation in the second namespace defining the second workload group ([0018], workloads in the subset are then grouped into one or more groups based on feature similarity. In one example, cosine similarity between features of workloads is used to group similar workloads in the subset into a group; and [0033], monitoring appliance 140 communicates with an agent on each of hosts 105, such as agent 118 in hypervisor 116, in order to retrieve attributes of VCIs, such as VCIs 135. In some embodiments, attributes are retrieved by hypervisor 116 from endpoint monitoring components (not shown) running on every VCI and/or from network flow data, such as through a virtual switch, monitored by hypervisor 116 on each host 105... One or more of the attributes of VCIs are then used as one or more of the features of the VCIs in order to group VCIs based on similarity of features).
The same motivation used in the rejection of claim 12 is applicable to the instant claim.
As per claim 14, Sharon teaches, wherein the assessing includes discovering workload groups comprising related workloads (0006], determine a relationship between a first namespace and a second namespace based on a plurality of workload attributes for the first namespace and the second namespace; and [0102], the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace), and identifying, in dependence on the discovering, a first workload group of a first namespace and second workload group of a second namespace suitable for merging ([0006], determine a relationship between a first namespace and a second namespace based on a plurality of workload attributes for the first namespace and the second namespace; and [0102], the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace; and [0119], data allocator 900 is configured to direct an open erase block manager (or other non-volatile memory media 120 physical placement manager) to group data of write commands having a first namespace identifier into a common one of two or more of the open logical erase blocks as write commands having a second namespace identifier, based on a relationship between the namespaces), wherein the assessing includes performing similarity analysis to obtain the determined similarity level of the workload group instantiation in the first namespace defining the first workload group and the workload group instantiation in the second namespace defining the second workload group ([0100], the workload analyzer 706 tracks workload attributes that define, describe, or characterize the workloads. As used herein, a “workload attribute” is any quality, characteristic, attribute, feature, behavior, trait, or property about a workload; and [0101], the workload analyzer 706 tracks workload attributes about how the workloads relate to the namespaces referenced in the storage commands 710. In a further embodiment, the workload analyzer 706 uses the namespace identifier included in the storage commands 710 to track how namespaces having a first set of workload attributes relate to namespaces having other workload attributes, particularly similar workload attributes), wherein the similarity analysis includes text based static analysis of the first workload group and the second workload group ([0101], the workload analyzer 706 uses the namespace identifier included in the storage commands 710 to track how namespaces having a first set of workload attributes relate to namespaces having other workload attributes, particularly similar workload attributes; and [0102], the workload analyzer 706 reviews or analyzes the workload attributes and determines patterns, similarities, relationships, and/or commonalities between namespaces that are based on the workload attributes. In certain embodiments, these patterns, similarities, relationships, and/or commonalities are referred to as hints and can be used to optimize the performance of the non-volatile memory device(s) 118. In certain embodiments, the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace), and wherein the similarity analysis includes dynamic runtime analysis of the first workload group and the second workload group ([0101], the workload analyzer 706 uses the namespace identifier included in the storage commands 710 to track how namespaces having a first set of workload attributes relate to namespaces having other workload attributes, particularly similar workload attributes; and [0102], the workload analyzer 706 reviews or analyzes the workload attributes and determines patterns, similarities, relationships, and/or commonalities between namespaces that are based on the workload attributes. In certain embodiments, these patterns, similarities, relationships, and/or commonalities are referred to as hints and can be used to optimize the performance of the non-volatile memory device(s) 118. In certain embodiments, the workload analyzer 706 determines, or derives, a relationship between two namespaces based on workload attributes for each namespace).
Sharon fails to specifically teach, wherein the prompting data specifies a workload group name having a workload group instantiation in a first namespace defining the first workload group and a workload group instantiation in a second namespace defining the second workload group, and wherein the prompting data further specifies a determined similarity level of the workload group instantiation in the first namespace defining the first workload group and the workload group instantiation in the second namespace defining the second workload group, wherein the method includes performing runtime workload analysis to determine a provisioning resource allocation for supporting a remaining workload group subsequent to merger of the first workload group and the second workload group, and wherein the prompting data references the provisioning resource allocation.
However Singh teaches, wherein the method includes performing runtime workload analysis to determine a provisioning resource allocation for supporting a remaining workload group subsequent to merger of the first workload group and the second workload group ([0078], workload consolidation technique 4A00 as implemented in systems for distributed resource allocation using dynamically classified workloads; [0080], various workload-based resource allocation operations can be generated (operation 180.sub.2). As one example of workload-based resource allocation operations, the workload parameters can be used to consolidate workloads of a given type onto a node that is configured with resources that correspond to the demands of the consolidated workloads (operation 402)); and wherein the prompting data references the provisioning resource allocation ([0025], the resource allocation operations can be presented to a user as a set of recommended resource allocation operations to facilitate accepting or declining any of the operations. The recommended resource allocation operations and/or other information presented for analysis can be expressed in terms pertaining to named workloads).
The combination of Sharon-Singh fails to specifically teach, wherein the prompting data specifies a workload group name having a workload group instantiation in a first namespace defining the first workload group and a workload group instantiation in a second namespace defining the second workload group, and wherein the prompting data further specifies a determined similarity level of the workload group instantiation in the first namespace defining the first workload group and the workload group instantiation in the second namespace defining the second workload group.
However, Taigi teaches, wherein the prompting data specifies a workload group name having a workload group instantiation in a first namespace defining the first workload group and a workload group instantiation in a second namespace defining the second workload group ([0045], the grouped VCIs may be displayed for review and/or labeling. At least a subset of the features of each VCI may be displayed for review. In some embodiments, features considered most important to a workload's inclusion in a group are displayed, such as the features that were most similar to other workloads in the group; [0046], Informing users of the reasons for groupings allows automated grouping processes to be understood and verified; and [0058], displays the grouped workloads along with features of the grouped workloads), and wherein the prompting data further specifies a determined similarity level of the workload group instantiation in the first namespace defining the first workload group and the workload group instantiation in the second namespace defining the second workload group ([0018], workloads in the subset are then grouped into one or more groups based on feature similarity. In one example, cosine similarity between features of workloads is used to group similar workloads in the subset into a group; and [0033], monitoring appliance 140 communicates with an agent on each of hosts 105, such as agent 118 in hypervisor 116, in order to retrieve attributes of VCIs, such as VCIs 135. In some embodiments, attributes are retrieved by hypervisor 116 from endpoint monitoring components (not shown) running on every VCI and/or from network flow data, such as through a virtual switch, monitored by hypervisor 116 on each host 105... One or more of the attributes of VCIs are then used as one or more of the features of the VCIs in order to group VCIs based on similarity of features).
The same motivation used in the rejection of claim 12 is applicable to the instant claim.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure and is as follows:
Ajay et al., (Storage Workload Characterization and Consolidation in Virtualized Environments, 2009, Workshop on Virtualization Performance: Analysis, Characterization, and Tools (VPACT), Vol. 4, Pgs. 1-10.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MELISSA A HEADLY whose telephone number is (571)272-1972. The examiner can normally be reached Monday- Friday 9-5:30pm.
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, Bradley Teets can be reached at 571-272-3338. 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.
/MELISSA A HEADLY/
Examiner, Art Unit 2197