Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 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 and or mathematical equation without significantly more.
In regards to claim 1, the claim(s) recite(s) - A method for scaling dependent objects running in a container cluster based on scaling of a first object running in the container cluster, the method comprising:
determining to scale the first object;
determining one or more first dependent objects that depend from the first object; and for each of the one or more first dependent objects:
determining a corresponding scaling value;
determining whether to scale the corresponding first dependent object based on the corresponding scaling value; and
scaling the corresponding first dependent object when determined to scale the corresponding first dependent object. The steps of “determining to scale the first object; determining one or more first dependent objects that depend from the first object; and for each of the one or more first dependent objects: determining a corresponding scaling value; determining whether to scale the corresponding first dependent object based on the corresponding scaling value; and scaling the corresponding first dependent object when determined to scale the corresponding first dependent object.” are reasonably directed to a mental observation, evaluations, judgements and opinions wherein a human with the aid of a computer by making a determination / assessment regarding the resources / referenced resources for deployment of an application to be put / associated into / with an application definition.
The claim further contains additional elements – “running in a container cluster” generally links the use of the judicial exception to a particular technological environment or field of use and thus does not amount to a practical application of the abstract idea or amount to significantly more. See MPEP 2106.05(h).
In regards to claim 2, the claim(s) recite(s) – “determining the one or more first dependent objects and for each of the one or more first dependent objects, the determining the corresponding scaling value is based on a probabilistic graph model indicating dependencies between objects in the container cluster.” The identified step is considered to be a mathematical concept or mental process, including probability relationships and mathematical modeling of dependencies, which falls within the abstract idea groupings of mathematical concepts or mental processes. See MPEP 2106.04(a). The additional recitation of a mathematical model does not amount to significantly more because applying mathematical techniques to conventional resource allocation and thus when combined with the additional elements of the parent claims do not amount to a practical application of the abstract idea or significantly more than such. See MPEP 2106.05.
In regards to claims 3-5, the claim(s) recite(s) – “determining to scale the first object is based on a resource utilization by the first object; determining whether to scale the corresponding first dependent object based on the corresponding scaling value comprises determining whether to scale the corresponding first dependent object based on whether the corresponding scaling value satisfies a threshold; determining whether to scale the corresponding first dependent object is further based on a replica count of the corresponding first dependent object and a replica count of the first object.”
The identified steps further specify decision criteria such as resource utilization, thresholds, and replica count considerations. Such limitations merely refine the abstract decision-making process by adding additional parameters for evaluation and are a further abstract idea as they amount to a mental observation, determination, judgement, or act. These steps whether considered individually and in combination, further do not amount to significantly more than the judicial exception because the elements do not integrate the abstract idea into a practical application nor recite any improvement to computer functionality.
In regards to claims 6-7, the claim(s) recite(s) – “wherein scaling the corresponding first dependent object comprises scaling a number of instances of the first dependent object; wherein scaling the corresponding first dependent object comprises scaling a resource allocation of the first dependent object.” The identified steps considered mere instructions to apply using a computer in performance of the steps of determining / scaling. See MPEP 2106.05(f). The identified additional elements whether considered individually and in a combination further do not amount to significantly more than the judicial exception because the elements merely apply the abstract idea to be implemented on a generic computer by performing insignificant steps of determining. See MPEP 2106.(f)
In regards to claims 8-14, Claim 8 recites the abstract idea in the form of a non-transitory computer readable medium. The recited storage medium and processors perform generic computing functions such as executing instructions and processing data. These components do not amount to significantly more than the abstract idea. See MPEP 2106.05 (d). Dependent claims 9-14 merely add additional abstract evaluation steps or mathematical concepts already discussed and therefore are rejected under the same logic associated with claims 1-7.
In regards to claims 15-20, reference is made to an apparatus that corresponds to method claims 1-7 and is therefore rejected based on the logic associated with the rejection of claims 1-7 above. Further claims 15-20 detail “A computer system comprising: one or more memories; and one or more processors configured to perform operations for scaling dependent objects running in a container cluster based on scaling of a first object running in the container cluster.” The further limitation is an additional element that amounts to mere instructions to apply and when considered individually and in combination further do not amount to a practical application of the abstract idea or amount to significantly more. See MPEP 2106.05(f) and MPEP2106.05(d).
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claim(s) 1, 3-4, 6, 8, 10-11, 13, 15, 17-18, and 20 is/are rejected under 35 U.S.C. 102 (a)(1) as being anticipated by EINKAUF (US PUBLICATION 20160323377).
As to claim 1, EINKAUF teaches a method for scaling dependent objects running in a container cluster based on scaling of a first object running in the container cluster, the method comprising:
Determining to scale the first object; ((P. (0048) As illustrated in FIG. 3, in some embodiments, distributed computation system 300 may include a monitoring service that is employed in implementing auto-scaling for the cluster of nodes (e.g., for a MapReduce cluster). For example, in various embodiments, each of the master nodes 310 and/or worker nodes 320 may include a monitoring component or may interact with a separate monitoring component in the same system (such as monitoring component 350). In other embodiments, the monitoring component may be implemented in a different system on the service provider network (e.g., in a service that gathers and/or analyzes relevant metrics characterizing the behavior of the compute nodes and/or storage nodes of distributed computation system 300) and may be configured to determine if and when to add or subtract capacity)
Determining one or more first dependent objects that depend on the first object; and for each of the one or more first dependent objects ((P. (0027) “As previously noted, distributed applications that are implemented in a MapReduce framework may require a different approach to auto-scaling than other distributed applications. For example, for most of these applications, there exists the concept of a master node, and there are groups of worker nodes in the cluster. The master node behaves very differently from the worker nodes (e.g., data nodes).)
Determining a corresponding scaling value ((P. (0022) “In some embodiments, the policy may define a scaling action to be taken when the condition is met, may specify an amount by which capacity in the cluster (or a subset thereof) should be increased or decreased, and may identify the portion of the cluster to which the policy applies)
Determining whether to scale the corresponding first dependent object based on the corresponding scaling value; and ((P. (0064) As described herein, a MapReduce cluster may in various embodiments, be configured to automatically scale up or down when triggered by one or more of the following: [0065] a metric captured by a monitoring service crossing a specified threshold for a specified time period—For example, an auto-scaling action (e.g., an action to reduce capacity) may be triggered if the number of mappers in the cluster is less than 2 for at least 60 minutes. [0066] a cluster metric (e.g., one that is published by the cluster but is not available in the monitoring service) crossing a specified threshold for a specified time period.—For example, an auto-scaling action (e.g., an action to add capacity) may be triggered if the storage-to-virtualized-computing-service throughput is greater than or equal to 100 for at least 120 minutes.)
Scaling the corresponding first dependent object when determined to scale the corresponding first dependent object ((P. (0023) “The systems and methods described herein may be used to manage computing resource instances in systems that employ both of these models. For example, they may be used to programmatically scale a cluster up or down based on the workload.) (P. (0048) “As illustrated in FIG. 3, in some embodiments, distributed computation system 300 may include a monitoring service that is employed in implementing auto-scaling for the cluster of nodes (e.g., for a MapReduce cluster). For example, in various embodiments, each of the master nodes 310 and/or worker nodes 320 may include a monitoring component or may interact with a separate monitoring component in the same system (such as monitoring component 350). In other embodiments, the monitoring component may be implemented in a different system on the service provider network (e.g., in a service that gathers and/or analyzes relevant metrics characterizing the behavior of the compute nodes and/or storage nodes of distributed computation system 300) and may be configured to determine if and when to add or subtract capacity.
As to claim 3, EINKAUF teaches the method wherein determining to scale the first object is based on a resource utilization by the first object. ((P. (0028) The systems described herein may allow the operator to create an auto-scaling policy so that if utilization exceeded 80%, the system would, automatically (e.g., programmatically) add capacity on behalf of the operator.) ((P. (0048) “As illustrated in FIG. 3, in some embodiments, distributed computation system 300 may include a monitoring service that is employed in implementing auto-scaling for the cluster of nodes (e.g., for a MapReduce cluster). For example, in various embodiments, each of the master nodes 310 and/or worker nodes 320 may include a monitoring component or may interact with a separate monitoring component in the same system (such as monitoring component 350). In other embodiments, the monitoring component may be implemented in a different system on the service provider network (e.g., in a service that gathers and/or analyzes relevant metrics characterizing the behavior of the compute nodes and/or storage nodes of distributed computation system 300) and may be configured to determine if and when to add or subtract capacity.)
As to claim 4, EINKAUF teaches the method comprises determining whether to scale the corresponding first dependent object based on whether the corresponding scaling value satisfies a threshold ((P. (0022) “ a client may define metrics to be monitored during execution of an application on the cluster and may define or select an auto-scaling policy that includes an auto-scaling trigger condition (e.g., a condition that is dependent on the monitored metrics). In some embodiments, the policy may define a scaling action to be taken when the condition is met, may specify an amount by which capacity in the cluster (or a subset thereof) should be increased or decreased, and may identify the portion of the cluster to which the policy applies.) ((P. (0064) “As described herein, a MapReduce cluster may in various embodiments, be configured to automatically scale up or down when triggered by one or more of the following: [0065] a metric captured by a monitoring service crossing a specified threshold for a specified time period—For example, an auto-scaling action (e.g., an action to reduce capacity) may be triggered if the number of mappers in the cluster is less than 2 for at least 60 minutes. [0066] a cluster metric (e.g., one that is published by the cluster but is not available in the monitoring service) crossing a specified threshold for a specified time period.—For example, an auto-scaling action (e.g., an action to add capacity) may be triggered if the storage-to-virtualized-computing-service throughput is greater than or equal to 100 for at least 120 minutes..”; Discloses conditional evaluation of scaling criteria prior to performing scaling.)
As to claim 6, EINKAUF teaches the method wherein scaling the corresponding first dependent object comprises scaling a number of instances of the first dependent object ((Abstract) an amount by which capacity should be increased or decreased. The expression may be dependent on metrics emitted by the application, cluster, or resource instances…) (P. (0048) “As illustrated in FIG. 3, in some embodiments, distributed computation system 300 may include a monitoring service that is employed in implementing auto-scaling for the cluster of nodes (e.g., for a MapReduce cluster). For example, in various embodiments, each of the master nodes 310 and/or worker nodes 320 may include a monitoring component or may interact with a separate monitoring component in the same system (such as monitoring component 350). In other embodiments, the monitoring component may be implemented in a different system on the service provider network (e.g., in a service that gathers and/or analyzes relevant metrics characterizing the behavior of the compute nodes and/or storage nodes of distributed computation system 300) and may be configured to determine if and when to add or subtract capacity.
As to claims 8, 10-11, and 13, reference is made to a non-transitory computer readable medium that corresponds to the method of claims 1, 3-4, and 6 and is therefore met by the rejection of claims 1, 3-4, and 6 above.
As to claims 15, 17-18, and 20, reference is made to an apparatus that corresponds to the method of claims 1, 3-4, and 6 and is therefore met by the rejections of claims 1, 3-4, and 6 above. Further it is noted that claim 15 details the apparatus is a computer system comprising: one or more memories; and one or more processors configured to perform operations for scaling dependent objects running in a container cluster based on scaling of a first object running in the container cluster which is shown in EINKAUF paragraph 0194.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
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.
Claim(s) 2, 9, and 16 is/are rejected under 35 U.S.C. 103 as being unpatentable over EINKAUF (US PUBLICATION 20160323377 in view of HELANDER (US PUBLICATION 20070011683.
As to claim 2, EINKAUF teaches the method, wherein the determining the one or more first dependent objects and for each of the one or more first dependent objects ((P. (0027) “As previously noted, distributed applications that are implemented in a MapReduce framework may require a different approach to auto-scaling than other distributed applications. For example, for most of these applications, there exists the concept of a master node, and there are groups of worker nodes in the cluster. The master node behaves very differently from the worker nodes (e.g., data nodes).) However, EINKAUF does not teach that the determining the corresponding scaling value is based on a probabilistic graph model indicating dependencies between objects in the container cluster. HELANDER teaches a known technique in providing a statistical analysis of actual resource usage of the various worker nodes in performing particular tasks and using that information to tune resource reservations.(P. (0070) “During operation of tasks, the sampler module 320 provides a statistical analysis of actual resource usage of the various worker nodes in performing particular tasks, and adaptively uses that information to tune resource reservations made by the scheduler module 315 in real-time. Further, prior to actually beginning a task, system level "dry-runs" can be performed to prime the sampler module with statistical resource usage data so that the appropriate amount of resources can be reserved so that any particular task will succeed within some desired confidence level. Similarly, initial estimates or guesses as to the resources needed for a particular task can also be used to prime the sampler module 320.) It would have been obvious to one of ordinary skill in the art before the effective filing of the claimed invention to apply HELANDER’s technique to the teachings of EINKAUF in order to provide a statistical analysis of actual resource usage of the worker nodes in performing particular tasks.
As to claim 9, reference is made to a non-transitory computer readable medium that corresponds to the method of claim 2 and is therefore met by the rejection of claim 2 above.
As to claim 16, reference is made to an apparatus that corresponds to the method of claim 2 and is therefore met by the rejection of claim 2 above. Claim 16 which depends from 15 further details the computer system comprising: at least one processor; and at least one memory (See EINKAUF P. 0194)
Claim(s) 5, 12, and 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over EINKAUF (US PUBLICATION 2016032337 in view of OU (US PUBLICATION 20210263780).
As to claim 5, EINKAUF teaches the method, wherein determining whether to scale the corresponding first dependent object (P. (0048) As illustrated in FIG. 3, in some embodiments, distributed computation system 300 may include a monitoring service that is employed in implementing auto-scaling for the cluster of nodes (e.g., for a MapReduce cluster). For example, in various embodiments, each of the master nodes 310 and/or worker nodes 320 may include a monitoring component or may interact with a separate monitoring component in the same system (such as monitoring component 350). In other embodiments, the monitoring component may be implemented in a different system on the service provider network (e.g., in a service that gathers and/or analyzes relevant metrics characterizing the behavior of the compute nodes and/or storage nodes of distributed computation system 300) and may be configured to determine if and when to add or subtract capacity). However, EINKAUF does not teach a replica count of the corresponding first dependent object and a replica count of the first object.
OU teaches a known technique of using a role-based policy including rule sets such as “scale-out-1” and a trigger condition when the metrics are met. (P. (0065) “FIGS. 5A-B together depict portions 510 and 520 of a policy file 500 containing a role-based policy 530 expressed in an object notation format in accordance with an example embodiment. In the context of the present example, the role-based policy 530 is for a role ID of “server” and the minimum and maximum number of nodes for this role are 1 and 20, respectively. The role-based policy 530 includes multiple rule sets 511 and 521. Rule set 511 is named “scale-out-1” and has an evaluation period of 180 seconds and an action interval of 300 seconds. Rule set 511 includes two metrics (i.e., “cpu” and “rss_pct”) that are evaluated by an “if_any” statement. As such, when either of the conditions relating to the metrics are met (i.e., when the cpu percent is greater than 100 percent or when the rss percent is greater than 50 percent), then the associated expand action 513 is triggered to cause the role of “server” to be scaled out by the number of nodes specified by the “step” associated with the expand action 513.
[0066] In this example, when the conditions relating to the metrics are met, a tandem expand action 514 is also triggered for a dependent role ID of “gateway” to cause the role of “gateway” to be scaled out by the number of nodes specified by the “step” associated with the tandem expand action 514 in tandem with (subject to a specified “delay”) the “server” role ID.
[0067] Rule set 521 is named “scale-in-1” and has an evaluation period of 180 seconds and an action interval of 300 seconds. Rule set 521 includes two metrics (i.e., “cpu” and “rss_pct”) that are evaluated by an “if_all” statement. As such, only when all of the conditions relating to the metrics are met (i.e., when the cpu percent is less than 50 percent and when the rss percent is less than 20 percent), then the associated shrink action 523 is triggered to cause the role of “server” to be scaled in by the number of nodes specified by the “step” associated with the shrink action 523.
[0068] In this example, when the conditions relating to the metrics are met, a tandem shrink action 524 is also triggered for a dependent role ID of “gateway” to cause the role of “gateway” to be scaled in by the number of nodes specified by the “step” associated with the tandem shrink action 524 in tandem with (subject to a specified “delay”) the “server” role ID.)
PNG
media_image1.png
720
522
media_image1.png
Greyscale
It would have been obvious to one of ordinary skill in the art before the effective filing of the claimed invention to apply OU’s technique to the teachings of EINKAUF in order to evaluate resource metrics using and trigger a scaling action when conditions are satisfied.
As to claim 12, reference is made to a non-transitory computer readable medium that corresponds to the method of claim 5 and is therefore met by the rejection of claim 5 above.
As to claim 19, reference is made to an apparatus that corresponds to the method of claim 5 and is therefore met by the rejection of claim 5 above. Claim 19 which depends from 15 further details the computer system comprising: at least one processor; and at least one memory (See EINKAUF P. 0194)
Claims 7 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over EINKAUF (US PUBLICATION 20160323377.
As to claim 7, EINKAUF teaches the method, wherein scaling the corresponding first dependent object comprises scaling a resource allocation of the first dependent object ((P. (0023) “The systems and methods described herein may be used to manage computing resource instances in systems that employ both of these models. For example, they may be used to programmatically scale a cluster up or down based on the workload. In some embodiments, service provider customers who do not know how much capacity they will need may create a small cluster (e.g., one with only one or two nodes) and, by enabling auto-scaling as described herein, may allow the system to determine when and if to scale up based on the actual demand (rather than trying to size it correctly at creation based on a blind estimate). A person of ordinary skill in the art would understand that scaling computing clusters based on workload inherently involves adjusting the amount of resources allocated to individual components within the cluster. Thus, applying known cluster scaling techniques to dependent objects would have been an obvious design choice.
As to claim 14, reference is made to a non-transitory computer readable medium that corresponds to the method of claim 7 and is therefore met by the rejection of claim 7 above.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SELMAN MOHAMED ABDULLAHI whose telephone number is (571)272-8556. The examiner can normally be reached 7:30-5:00 (Fri alternating).
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, LEWIS BULLOCK can be reached at (571) 272-3759. 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.
/LEWIS A BULLOCK JR/Supervisory Patent Examiner, Art Unit 2199