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 .
Information Disclosure Statement
The information disclosure statements (IDS) submitted on 10/06/2023. The submission is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statements are being considered by the examiner.
Claim Objections
Claims 1, 10, 11 and 20 objected to because of the following informalities:
Regarding claims 1, 11 and 20 the phrase “in response to a determining” should be amended to read “in response to determining”.
Regarding claims 10, the typo “metrices” should be corrected to metrics. Appropriate correction is required.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Kern (US 8572612 B2) in view of Pai (US 10021008 B1).
Regarding claim 1, Kern teaches:
A method for autoscaling parameters of a computing environment, the method comprising, by a processor: (Claim 1. A method of autonomic scaling of virtual machines in a cloud computing environment, the cloud computing environment comprising a plurality of virtual machines (`VMs`), the VMs comprising modules of automated computing machinery installed upon cloud computers disposed within a data center, the cloud computing environment further comprising a cloud operating system and a data center administration server operably coupled to the VMs, the method comprising)
receiving a system metric that relates to usage of one or more computing resources associated with an application executed within the computing environment. (col 9, line 54-63. The method of FIG. 2 also includes monitoring (312), by the cloud operating system (194), one or more operating characteristics of the instance of the VM (102). The cloud operating system maintains communications with the instance of the VM through network (100) and/or through a VM Manager (126) on the data center administration server (118). Examples of monitored operating characteristics include computer processor or `CPU` utilization, memory utilization, request/response latency, I/O resource utilization, and so on.)
determining whether the system metric is within a desired operating range; and in response to a determining that the system metric is not within the desired operating range. (col 7, line 65 – col 8, line 12. Having deployed an instance of a VM, flagged the instance for autonomic scaling, and executed a data processing workload upon the instance, the cloud operating system monitors one or more operating characteristics of the instance of the VM. The cloud operating system maintains communications with the instance of the VM through network (100) and/or through a VM Manager (126) on the data center administration server (118). Examples of monitored operating characteristics include computer processor or `CPU` utilization, memory utilization, request/response latency, I/O resource utilization, and so on. Monitoring includes comparing actual monitored values of operating characteristics with predetermined threshold values and determining whether to add or remove additional instances of the VM in dependence upon the results of such comparisons. See also col 9 line 64- col 10 line 20)
autoscaling the one or more parameters of the computing environment to bring the system metric within the desired operating range. (col 8, line 16-27. Given a first predetermined threshold value of 75% of CPU utilization compared with a current monitored actual value of 85% of CPU utilization, for example, the cloud operating system deploys an additional instance (104) of the VM, and shifts a portion of the data processing workload to the additional instance (104). Including the additional instance (104) in a workload balancing cluster with the first instance (102), for example, automatically shares the workload among the two instances because the additional instance (104), being identical to the first instance (102), contains and executes the same data processing application (132))
Kern does not appear to explicitly teach determining, based on a number of currently utilized computing resources, a scaling rule for autoscaling one or more parameters of the computing environment, and
However, Pai teaches the limitation: col 6, line 4-17. the magnitude scaling policy is evaluated to determine one or more corresponding changes to perform for the group. For example, the changes could be based on, or be proportional to, the magnitude of the breach, such that, for instance, if the breach is 20% above a threshold level (or baseline level), then the number of computing resources is scaled by 20% (or some amount based on that 20% magnitude breach). In this way, the scaling service can dynamically change the amount of computing resources to scale with or without receiving specified scaling values from a customer. As another example, if the alarm indicates that a single defined threshold of multiple thresholds is breached, the change associated with that single threshold may be selected and made.
Accordingly, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention, having the teachings of Kern and Pai before them, to include Pai’s scaling rules/policies in Kerns’s threshold based auto scaling. One would have been motivated to make such a combination to more efficiently adjust computing resources in response to metric deviations, thereby improving the distributed system response to workloads changes.
Regarding claim 2, Pai teaches:
The method of claim 1, further comprising receiving and storing a scaling policy, the scaling policy comprising one or more scaling rules and corresponding one or more ranges of the number of currently utilized computing resources. (col 20line 21-32. The routine 500 begins at block 502 with receipt of configuration information including a magnitude scaling policy and/or a prioritization policy. At block 504, the configuration information is stored. Further, alarm triggers based on a target level for a value of a resource utilization metric and/or multiple threshold levels defined relative to the target level may be provided to a computing resource utilization monitoring service for issuing alarms based on such alarm triggers. The computing resource utilization monitoring service may monitor one or more resource utilization metrics as described herein to determine whether to issue corresponding alarms, such as with an indicated magnitude.)
Same motivation as claim 1
Regarding claim 3, Pai teaches:
The method of claim 2, wherein the one or more scaling rules are configured to determine a number of unutilized computing resources based on a total number of available computing resources. (col 10, line 10-49. A variety of resource utilization metrics may be monitored by the computing resource utilization monitoring service 112. The various resource utilization metrics may be indicative of utilization of the group 202 or of utilization of other computing resources of the computing resource service 104. For example, the resource utilization metrics may include bandwidth utilization of a network device 210 used to exchange network traffic from one or more computing resources of the group 202 to one or more external recipients (not shown). It is noted that in alternative embodiments, the network device may be external to the program execution service 108. The bandwidth utilization may be indicative of a portion of network bandwidth used by the group 202 (for example, out of total network bandwidth available for use by the group 202). Other resource utilization metrics may include memory or storage utilization (for example, calculated as a percentage of used memory or storage to available memory or storage, respectively). Resource utilization metrics may also include read or write operations (for example, measured as the number of read or write operations respectively read from or written to disk), or various other metrics.)
Same motivation as claim 1
Regarding claim 4, Kern teaches:
The method of claim 1, wherein determining, based on the number of currently utilized computing resources, the scaling rule for autoscaling one or more parameters of the computing environment comprises determining whether the number of currently utilized computing resources is less than a threshold. (col 8, line 12-27. The cloud operating system deploys an additional instance of the VM if a value of an operating characteristic exceeds a first predetermined threshold value, including executing a portion of the data processing workload on the additional instance of the VM. Given a first predetermined threshold value of 75% of CPU utilization compared with a current monitored actual value of 85% of CPU utilization, for example, the cloud operating system deploys an additional instance (104) of the VM, and shifts a portion of the data processing workload to the additional instance (104). Including the additional instance (104) in a workload balancing cluster with the first instance (102), for example, automatically shares the workload among the two instances because the additional instance (104), being identical to the first instance (102), contains and executes the same data processing application (132).)
Regarding claim 5, Kern teaches:
The method of claim 4, further comprising determining the threshold based on at least one of the following: historical data associated with the computing environment, one or more system parameters, or user feedback. (col 7, line 32-49. The subject VM (102) in this example has scaling specifications provided as part of its user specifications (174). Such scaling specifications are specified by the user (101) through interface (170) and retained by the self service portal as part of the specification of a VM being installed in the cloud computer environment (192), thus `flagging` the VM for autonomic scaling in the records maintained by the self service portal. The scaling specifications include, for example, a Boolean indication that scaling is enabled for a VM and threshold values for scaling operations. In an embodiment, for example, flagging an instance of a VM for autonomic scaling can include storing, in the cloud operating system in association with an identifier of the instance of a VM, predetermined threshold values of operating characteristics, including threshold values for processor utilization and for memory utilization. In this example, the scaling specifications are retained in a data record (202) for the specified, deployed instance of the VM (102).)
Regarding claim 6, Pai teaches:
The method of claim 4, further comprising upon determining that the number of currently utilized computing resources is less than the threshold, using a ratio of the number of currently utilized computing resources to a desired system metric to determine a number of unutilized computing resources during autoscaling. (col 11, 55-67. In FIG. 2B, the customer-configured magnitude scaling policy 124 indicates that the target processor utilization is 50%. At the 50% processor utilization the number of computing nodes should be 10. If the processor utilization increases over 50% by a percentage (denoted as X), the number of computing nodes is correspondingly increases by the same percentage. Because the number of computing nodes is discrete but the resultant percentage increase is not, a ceiling function (or a round up) function is applied. The number of computing nodes to which the group of computing nodes is to be scaled may accordingly be represented as the ceiling of 10(1+X), where X is the percentage by which the processor utilization exceeds 50%.)
Same motivation as claim 1
Regarding claim 7, Pai teaches:
The method of claim 4, further comprising upon determining that the number of currently utilized resources is more than the threshold, using a multiple of the number of currently utilized computing resources added to a scalar constant as a number of unutilized computing resources during autoscaling. (col 12, line 17-40. The group of computing resource in FIG. 2B includes computing nodes. A customer-configured magnitude scaling policy 124 is provided. The magnitude scaling policy 124 is a scale-up policy that specifies a target value of 50% utilization for the utilization metric of processor utilization. Accordingly, when the processor utilization is 50% or less, the number of computing nodes of the group of computing resources is desired to be 10. The magnitude scaling policy also specifies that if the processor utilization increases by 0 to 10% from the target utilization (e.g., in the overall range of 50+% to 60%), the number of computing nodes is scaled by 20% (e.g., relative to the desired target level value, or to a current value in other embodiments), such as to 12 nodes from 10 nodes. Further, if processor utilization increases by 10-20% above the target (e.g., in the overall range of 60+% to 70%), the number of computing nodes is increased by 30% (e.g., relative to the desired target level value, such as to 13 total in this example, or alternatively in a manner relative to a current value in other embodiments), and if the processor utilization increases by 20-30% above the target (e.g., in the overall range of 70+% to 80%), the number of computing nodes is increased by 80% (e.g., relative to the desired target level value, or to a current value in other embodiments).)
Same motivation as claim 1
Regarding claim 8, Kern teaches:
The method of claim 1, wherein the desired system metric value is a utilization ratio of the one or more computing resources for executing the application. (col 10, line 21-42. The method of FIG. 2 also includes terminating (336) operation of the additional instance (104) of the VM if a value of an operating characteristic declines below (330) a second predetermined threshold value (328). If a particular actual monitored value of an operating characteristic (314) does not exceed (320) a first predetermined threshold value (316), the method of FIG. 2 proceeds to test for a low value of the operating characteristic, determining (324) whether a value of an operating characteristic (314) declines below (330) a second predetermined threshold value (328). Continuing the example explanation with CPU utilization as a monitored operating characteristic and taking as a second predetermined threshold value the figure 25% CPU utilization, the cloud operating system terminates the additional instance (104) if actual CPU utilization by the first instance (102) the VM drops below 25%. After terminating (336) the additional instance (104), the method returns (338) to monitoring (312) the operating characteristics of the instance of the VM. If the particular value under test (314) does not decline below a second predetermined threshold value (328), then the method returns (326) to monitoring (312) the operating characteristics of the instance of the VM)
Regarding claim 9, Kern teaches:
The method of claim 1, wherein the system metric is associated with at least one of the following: a processing utilization, a network bandwidth, a network latency, a computing resource accessibility, a persistent storage utilization, a memory utilization, a number of transactions, a number of requests, a number of users accessing the application, a length of time the application has been running, or traffic to the one or more computing resources. (col 9, line 54-63. The method of FIG. 2 also includes monitoring (312), by the cloud operating system (194), one or more operating characteristics of the instance of the VM (102). The cloud operating system maintains communications with the instance of the VM through network (100) and/or through a VM Manager (126) on the data center administration server (118). Examples of monitored operating characteristics include computer processor or `CPU` utilization, memory utilization, request/response latency, I/O resource utilization, and so on.)
Regarding claim 10, Kern teaches:
The method of claim 1, further comprising continuous monitoring of metrices associated of the computing environment for receiving the system metric. (col 8, line 28-38. The cloud operating system continues monitoring one or more operating characteristics of the first instance of the VM (102), terminating operation of the additional instance (104) of the VM if a value of an operating characteristic declines below a second predetermined threshold value. Continuing the example explanation with CPU utilization as a monitored operating characteristic and taking as a second predetermined threshold value the figure 25% CPU utilization, the cloud operating system terminates the additional instance (104) if actual CPU utilization by the first instance (102) the VM drops below 25%.)
Regarding claim 11, Kern teaches:
A system for autoscaling parameters of a computing environment, the system comprising: a processor; and programming instructions stored in a memory and configured to cause the processor to: (claim 6. An apparatus for autonomic scaling of virtual machines in a cloud computing environment, the apparatus comprising:)
The claim recites similar limitation as corresponding claim 1 and is rejected for similar reasons as claim 1 using similar teachings and rationale
Regarding claim 12, the claim recites similar limitation as corresponding claim 2 and is rejected for similar reasons as claim 2 using similar teachings and rationale.
Regarding claim 13, the claim recites similar limitation as corresponding claim 3 and is rejected for similar reasons as claim 3 using similar teachings and rationale.
Regarding claim 14, the claim recites similar limitation as corresponding claim 4 and is rejected for similar reasons as claim 4 using similar teachings and rationale.
Regarding claim 15, the claim recites similar limitation as corresponding claim 5 and is rejected for similar reasons as claim 15 using similar teachings and rationale.
Regarding claim 16, the claim recites similar limitation as corresponding claim 6 and is rejected for similar reasons as claim 16 using similar teachings and rationale.
Regarding claim 17, the claim recites similar limitation as corresponding claim 7 and is rejected for similar reasons as claim 17 using similar teachings and rationale.
Regarding claim 18, the claim recites similar limitation as corresponding claim 8 and is rejected for similar reasons as claim 8 using similar teachings and rationale.
Regarding claim 19, the claim recites similar limitation as corresponding claim 9 and is rejected for similar reasons as claim 9 using similar teachings and rationale.
Regarding claim 20, Kern teaches:
A computer program product comprising a non-transitory computer-readable medium that stores instructions that, when executed by a computing device, will cause the computing device to perform operations comprising: (claim 11. A computer program product for autonomic scaling of virtual machines in a cloud computing environment,)
The claim recites similar limitation as corresponding claim 1 and is rejected for similar reasons as claim 1 using similar teachings and rationale
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CARLOS A ESPANA whose telephone number is (703)756-1069. The examiner can normally be reached Monday - Friday 8 a.m - 5 p.m EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, LEWIS BULLOCK JR 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.
/C.A.E./Examiner, Art Unit 2199
/LEWIS A BULLOCK JR/Supervisory Patent Examiner, Art Unit 2199