US20060070060A1 - Coordinating service performance and application placement management - Google Patents
Coordinating service performance and application placement management Download PDFInfo
- Publication number
- US20060070060A1 US20060070060A1 US10/952,394 US95239404A US2006070060A1 US 20060070060 A1 US20060070060 A1 US 20060070060A1 US 95239404 A US95239404 A US 95239404A US 2006070060 A1 US2006070060 A1 US 2006070060A1
- Authority
- US
- United States
- Prior art keywords
- service
- placement
- application
- capacity
- quality
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Definitions
- the invention relates to on-demand provisioning of services in a computer system so as to best meet the quality of service level provided in the face of fluctuations in the service request load. More particularly, the invention relates to the coordination of the tasks of a performance manager and an application placement manager, to better estimate capacity needs of the various services and the adjustment of the placement of applications providing the services onto servers in the computer system.
- a computer system which consists of one or more servers, where requests belong to a multitude of quality-of-service classes, each with a guaranteed performance quality of service, and the request load fluctuates with time is considered.
- a performance manager works dynamically towards achieving the performance guarantees for the various quality-of-classes of requests by optimally allocating resources and properly directing schedulers, concurrency controllers, and routers.
- an application placement manager works dynamically towards optimally placing multiple instances of applications, providing the services, onto servers.
- an aspect of this invention is to provide apparatus, systems and methods for dynamic coordination between the performance manager and the application placement manager in a distributed computer system.
- Another aspect of this invention is to provide systems and methods for a process for communicating demand estimation and resource allocation information from the performance manager to the application placement manager in a distributed computer system.
- Still another aspect of this invention is to provide systems and methods for a process for communicating capacity loading constraints information from the application placement manager to the performance manager in a distributed computer system.
- a further aspect of this invention is to provide systems and methods for dynamic coordination between the performance manager and the application placement manager in a distributed computer system.
- This invention introduces a process for coordinating the tasks of the performance manager and the application placement manager in a dynamic fashion. Further, this invention introduces a system that implements the coordination process.
- the process is dynamic in the face of fluctuations in the request load to the distributed computer system and the periodic adjustments to the placement of applications onto servers in the distributed computer system.
- the coordination system involves two subsystems: a demand estimator and a capacity adjuster, along with appropriate interfaces to of the performance manager and the application placement manager.
- There are several advantages to dynamic coordination between the performance manager and the application placement manager First, the application placement process reacts quicker to demand fluctuations. Second, the performance guarantees are better met by rearranging the resources to be allocated to the various classes of service. Third, the management system works in an unsupervised mode, thus reducing manual administration costs and human errors.
- FIG. 1 is a block diagram of the system overview according to an example embodiment of the present invention
- FIG. 2 illustrates a distributed computer system according to an example embodiment of the present invention
- FIG. 3 illustrates an operational and control system according to an example embodiment of the present invention
- FIG. 4 illustrates an coordinated management system according to an example embodiment of the present invention
- FIG. 5 shows flow diagram of the coordination process according to an example embodiment of the present invention
- the present invention provides apparatus, systems and methods for coordinating the tasks of an performance manager and an application placement manager.
- the process is dynamic in the face of fluctuations in the service request load to the computer system and the periodic adjustments to the placement of applications onto servers in the computer system.
- the coordination system involves two subsystems: a capacity estimator and a capacity adjuster, along with appropriate interfaces to of the performance manager and the application placement manager.
- the application placement process reacts quicker to demand fluctuations.
- the performance guarantees are better met by rearranging the resources to be allocated to the various classes of service.
- Third, the management system works in an unsupervised mode, thus reducing manual administration costs and human errors.
- a service includes satisfaction of a client request by providing connectivity, connection elements, application invocation and resources required to perform the actions responsive to the request.
- a service should have means for subscription, means for specifying and committing to a guaranteed quality of service, ensuring provision of the quality of service including resource allocation for complete responsiveness.
- Applications include static and dynamic access to web content, enterprise applications, and access to database servers. More specifically, applications may be provided by HTTP web servers, servlets, Enterprise Java Beans (EJB), database queries in a Websphere environment.
- a particular service may be composed of any combination of simple or complex of one or more services.
- the on-demand provisioning system deploys additional instances of the application in order to accommodate the increased load.
- An instance of an application is deployed in a run-time environment specific to the application. For example, a web page retrieval needs a web server, a servlet needs a web container, an EJB application needs an EJB container, and a database application needs a database server.
- the various run-time environments are provided on one or more computer systems, forming a distributed computer system.
- a customer subscribes to a service, he selects one of potentially many service classes, each defined by a quality-of-service guarantee.
- a quality-of-service guarantee may be a target value for the average response time of a service request, or a target fraction of service requests with response times above a specified threshold value.
- a service contract between the service provider and the customer usually states actions to be taken when the quality-of-service guarantee is, or is not, met. Such actions may be of financial nature and/or legal nature.
- the goal of the service provider is to meet as much as possible the quality-of-service guarantees for all quality-of-service classes and all services provided. To achieve that goal, it is imperative to have an on-demand management environment where (1) resources are dynamically allocated to service requests belonging to a multitude of quality-of-service classes and (2) instances of applications are dynamically deployed and un-deployed.
- the first step involves a service performance manager which, given a set of instances of applications placed on computer systems, allocates capacities of the various resources, such as storage, computing power, threads of execution, and connections to application servers and database servers, to the service requests belonging to the various quality-of-service classes. This step incorporates the performance modeling of the various resources and the optimization of resource allocation.
- the second step involves an application placement manager which, given capacity needs for the various applications as well as their capacity requirements and available capacity in the computer system, decides on the number of instances of each application that need be deployed.
- This step further incorporates the solution of a capacity-constrained placement optimization problem as well as the steps of deploying and un-deploying of application instances. The latter may be performed in a manual, supervised, or fully automatic mode.
- the overall goal is to best meet the quality-of-service guarantees for all quality-of-service classes and all services provided.
- a coordination between performance management and application placement management is sought.
- the process of coordination involves several steps: (1) computing a desired capacity to achieve the quality-of-service guarantees; (2) employing the desired capacity in determining a placement of applications onto servers; (3) computing capacity limits of services and applications based on the placement; and (4) determining an allocation of capacity to satisfy the quality-of-service guarantees, subject to the placement and capacity limit.
- This process repeats periodically and/or based on a criterion, for example when the monitored performance is degraded or when some quality-of-service guarantees are not met.
- the step of computing a desired capacity includes optimizing achievement of the quality of service while disregarding any application placement constraints.
- the step of employing includes determining if desired capacities are satisfied by a current application placement If satisfied, the current placement is used as a solution to the application placement. If not satisfied, the desired capacity is used as an input into a method for solving an application placement problem.
- the step of computing a capacity limit includes examining a placement matrix and capacity of servers within the computer system, and/or the step of determining an allocation of capacity includes solving an optimization problem to achieve the quality of service, the optimization problem is constrained by an application placement matrix.
- the method includes: monitoring performance of the computer system in meeting the quality of service guarantee, when the quality of service guarantee is not being met, repeating the steps of: computing a desired capacity; employing; computing a capacity limit; and the step of determining until the quality of service guarantee is met.
- the step of monitoring is performed based on a monitoring criterion, and/or the step of monitoring is performed based on a monitoring criterion.
- the method includes: the at least one application satisfies a plurality of service requests for a plurality of services, and repeating the steps of: computing a desired capacity; employing; computing a capacity limit; and determining, until the quality of service guarantee is met for all service requests and all services.
- the method includes: at least one application satisfying a plurality of service requests for a plurality of services, repeating the steps of: computing a desired capacity; employing; computing a capacity limit; and the step of determining, until the quality of service guarantee is met for all service requests and all services.
- the first step involves the monitoring of performance metrics for all quality-of-service classes.
- the performance metrics include, but not limited to, the traffic intensity of service requests, the response time of service requests, the resource usage of applications satisfying service requests.
- a performance model is then constructed using such performance metrics as model parameters.
- the model is analyzed to provide values for the quality-of-service measure as a function of the allocated capacity to the various quality-of-service classes.
- the model is used to compute the desired capacity to achieve the quality-of-service guarantees. Given the model and unconstrained by the number of application instances and their placement on servers, an optimization problem is solved to best distribute the overall capacity among the quality-of-service classes.
- the first step is a solution to a measurement-based, model-driven, unconstrained resource allocation problem. The solution obtained may or may not be realizable given the capacity constraints of the applications.
- the second step uses the desired capacities derived in step 1 to determine the best placement of application onto servers, in order to best realize the availability of the desired capacities. In case the current application placement realizes the desired capacities, the placement remains the same. Otherwise, a new application placement is sought.
- Each application instance requires a given amount of resources, such as storage requirement and computing cycles. Such resources are provided by servers with limited capacities.
- the application placement step involves the solution of a multiple-class knapsack bin packing problem.
- the optimization problem is solved using heuristic techniques.
- the output of the optimization problem is an application placement matrix, where rows represent applications, columns represent servers, and a (or 0) entry in a cell represents the placement (or lack of) of a particular application onto a particular server.
- the placement matrix is realized by deploying (and un-deploying) application instances in the current application placement.
- An objective in the optimization problem is the minimization of overhead for carrying out the realization of the placement matrix.
- the third step is about computing capacity limits induced by the new application placement.
- capacity limits for subsets of applications are obtained.
- Each application satisfies one or more quality-of-service classes.
- the capacity limits are computed for subsets of quality-of-service classes.
- the computed capacities are constrained, as opposed to desired capacities computed in step 1 , by the application placement matrix.
- the fourth step uses the capacity limits computed in step three as constraints in solving a constrained resource allocation problem.
- the objective of such a problem is to best meet the quality-of-service guarantees for the various quality-of-service classes.
- the optimization criterion could be the maximization of an overall utility function of the quality-of-service measures and their target, or the balancing of resources among the quality-of-service classes in order to relatively meet the quality-of-service guarantees.
- FIG. 1 A high level layered diagram of the on-demand service provisioning and performance management in a computer system is described in FIG. 1 .
- a distributed computer system 40 There are three layers: a distributed computer system 40 , an operational and control system 80 , and a coordinated management system 90 .
- Requests 10 belonging to various classes of service are submitted to the distributed computer system 40 , where they are processed and appropriate responses 50 are generated.
- An operational and control system 80 monitors the performance of requests 10 as they are processed as well as the usage of resources in the distributed computer system 40 .
- the monitored data 30 is collected through monitors in the distributed computer system 40 and is communicated to the operational and control system 80 .
- the operational and control system 80 generates control actions 20 that are directed to actuators in the distributed computer system 40 .
- the top layer consists of a coordinated management system 90 which receives statistics information 70 from the operational and control system 80 and reacts by sending control parameters 60 to the operational and control system 80 .
- FIG. 2 describes the distributed computer system 40 .
- Requests 10 belonging to various classes of service arrive at a scheduler, which puts requests in a multitude of queues 410 based on the service class, and a concurrency controller, which limits the number of requests of each class that is being serviced in the system.
- a request is routed through a router 420 to a specific server where it receives its service through the execution of an application that is already placed on that server, and then a response 50 is generated.
- FIG. 2 depicts two servers: 430 and 440 , and three applications: Application 1 , Application 2 , and Application 3 . There are two instances of Application 1 : 450 and 470 , running on servers 430 and 440 , respectively.
- Queue 410 collects monitored data 30 and send it to the operational and control system 80 .
- the operational and control system 80 sends queue actions 210 to control the queue 410 , routing actions 220 to control the router 420 , and placement actions 230 to control the placement of application instances on servers.
- FIG. 3 describes the operational and control system 80 .
- a queue controller 810 controls the scheduler and the concurrency controller, and it receives its queue control parameters 610 from the coordinated management system 90 .
- the monitored data 30 is collected a queue monitor 820 which provides statistics 70 to the coordinated management system 90 .
- routing weights 220 are provided to a router controller 830 by the coordinated management system 90 .
- a placement controller 840 affects the placement changes 630 directives that it receives from the coordinated management system 90 and perform the corresponding placement actions 230 .
- FIG. 4 describes the coordinated management system 90 .
- the performance manager 920 optimizes the performance of the system, while attempting to meet performance targets provided by the service manager 910 .
- the application placement manager 950 generates an optimal placement of application instances onto servers, using the configuration parameters provided by the system configuration manager 960 .
- the coordination between the performance manager 920 and the application placement manager 950 is performed through a capacity estimator 930 and a capacity adjuster 940 .
- the capacity estimator 930 uses the optimal capacity requirements (unconstrained by the placement) and the statistics data to predict the load on the applications.
- the obtained predictions as well as the configuration information are used by the application placement manager 950 to produce placement changes 630 .
- This new placement data is then used by the capacity adjuster 940 to calculate a new set of capacity limits that are constrained by the new placement.
- a flow diagram of the coordination process is illustrated in FIG. 5 .
- the process repeats based on decision 1070 , which may be periodic with a given control period or activated when the performance of the system starts to deteriorate.
- the first step 1010 in the process involves the estimation of capacity needs for the various service classes. Unconstrained by the current application placement, a capacity estimator computes the optimal allocation of the overall capacities among the various service classes so as to optimize the quality of service.
- the computed desired capacities are communicated along with other loading information to the application placement manager.
- a decision 1030 is made of whether the desired capacities are satisfied by the current application placement. If so, no change is necessary. Otherwise, a new application placement is determined 1040 based on the desired capacities and the projected load.
- the algorithm for determining an application placement may use a given placement policy.
- the new application placement is communicated to a Capacity Adjuster which computes 1050 the corresponding capacity constraints for all pairs of service classes and servers. Such capacity limits are then provided to the Performance Manager as input.
- the Performance Manager computes 1060 an optimal allocation of capacities among the service classes so as to optimize the quality of service.
- the present invention includes a method for coordinating performance management and application placement management.
- the method includes the steps of: estimating capacity needs for various service classes of service requests; computing desired capacities of at least one application for the service requests; deciding whether the desired capacities are satisfied by the current application placement, making no change to current application placement if the desired capacities are satisfied; determining a new application placement based on the desired capacities and a projected load if the desired capacities are not satisfied; computing corresponding capacity constraints for all pairs of service classes and servers; and computing an optimal allocation of capacities among the service classes so as to optimize the quality of service.
- the method includes: repeating the steps of estimating; computing desired capacities; deciding, computing corresponding capacity constraints; and computing an optimal allocation, based on a repetition criterion.
- the present invention also includes a method for provisioning at least one application to satisfy a quality service level for at least one service.
- the method including the step of coordinating a service performance manager and an application placement manager in a computer system, the service performance manager managing performance of the at least one service, and the application placement manager managing placement of at least one application, the application satisfying a service request for a particular service.
- the step of coordinating includes the steps of: computing a desired capacity to achieve the quality of service level defined for the particular service; the application placement manager employing the desired capacity in determining a placement of the at least one application onto at least one server in the computer system in accordance with a placement policy; computing a capacity limit of the particular service to the at least one application based on the placement; and the performance manager determining an allocation of capacity to satisfy the quality of service level subject to the placement and capacity limit.
- the method includes: communicating the desired capacity to the application placement manager; and communicating the placement and the capacity limit to the service performance manager.
- the step of communicating the desired capacity comprises representing the desired capacity as a desired capacity vector, wherein an element in the desired capacity vector corresponds to the quality of service level; and/or the step of communicating the placement and the capacity limit comprises representing the placement as a placement matrix, wherein rows or columns of the placement matrix correspond to the applications and columns or rows of the placement matrix correspond to the servers, and representing the capacity limit as a capacity limit vector wherein an element in the capacity limit vector correspond to the server.
- the present invention also includes an apparatus to provision at least one application to satisfy at least one quality of service guarantee. Said at least one application satisfying a plurality of service requests for a particular service.
- the apparatus includes: means for computing a desired capacity to achieve the quality of service level defined for the particular service; means for employing the desired capacity in determining a placement of said at least one application onto at least one server in a computer system in accordance with a placement policy; means for computing a capacity limit of the particular service to said at least one application based on the placement; and means for determining an allocation of capacity to satisfy the quality of service level subject to the placement and capacity limit.
- the present invention also includes an apparatus to coordinate performance management and application placement management.
- the apparatus includes: means for estimating capacity needs for various service classes of service requests; means for computing desired capacities of at least one application for the service requests; means for deciding whether the desired capacities are satisfied by the current application placement; means for making no change to current application placement if the desired capacities are satisfied; means for determining a new application placement based on the desired capacities and a projected load if the desired capacities are not satisfied; means for computing corresponding capacity constraints for all pairs of service classes and servers; and means for computing an optimal allocation of capacities among the service classes so as to optimize the quality of service.
- the present invention also includes an apparatus to provision at least one application to satisfy a quality service level for at least one service.
- the apparatus includes: means for coordinating a service performance manager and an application placement manager in a computer system, the service performance manager includes means for managing performance of said at least one service, and the application placement manager includes means for managing placement of at least one application, the application satisfying a service request for a particular service.
- the means for coordinating includes: means for computing a desired capacity to achieve the quality of service level defined for the particular service, the application placement manager includes means for employing the desired capacity in determining a placement of said at least one application onto at least one server in the computer system in accordance with a placement policy; means for computing a capacity limit of the particular service to said at least one application based on the placement; and the performance manager includes means for determining an allocation of capacity to satisfy the quality of service level subject to the placement and capacity limit.
- the entirety or a portion of the methods, systems and apparatus employing concepts of this invention may be implemented as being provided by a service provider.
- the entirety or portions of these may be used in a business and/or as a basis of forming a business.
- the present invention can be realized in hardware, software, or a combination of hardware and software.
- the present invention can be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system—or other apparatus adapted for carrying out the methods described herein—is suitable.
- a typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
- the present invention can also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out these methods.
- Computer program means or computer program in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after conversion to another language, code or notation and/or reproduction in a different material form.
Abstract
Apparatus, systems and methods for service and/or business for coordinating tasks of performance management and application placement management in a dynamic fashion. An example process is dynamic in the face of fluctuations in the request load to the distributed computer system and the periodic adjustments to the placement of applications onto servers in said distributed computer system. There are two opposite functional flows in said process: a demand estimation function and a capacity adjustment function. The coordination system involves two subsystems: a demand estimator and a capacity adjuster, along with appropriate interfaces to of the performance manager and the application placement manager. This results in application placement process reacting quicker to demand fluctuations, performance guarantees are better met by rearranging the resources to be allocated to the various classes of service, and the management system works in an unsupervised mode, thus reducing manual administration costs and human errors.
Description
- The invention relates to on-demand provisioning of services in a computer system so as to best meet the quality of service level provided in the face of fluctuations in the service request load. More particularly, the invention relates to the coordination of the tasks of a performance manager and an application placement manager, to better estimate capacity needs of the various services and the adjustment of the placement of applications providing the services onto servers in the computer system.
- A computer system, which consists of one or more servers, where requests belong to a multitude of quality-of-service classes, each with a guaranteed performance quality of service, and the request load fluctuates with time is considered. In such a system, a performance manager works dynamically towards achieving the performance guarantees for the various quality-of-classes of requests by optimally allocating resources and properly directing schedulers, concurrency controllers, and routers. Similarly, an application placement manager works dynamically towards optimally placing multiple instances of applications, providing the services, onto servers. If the performance manager and the application placement manager are not working in synchrony, then either each manager will attempt to achieve its local goals without addressing the global objectives, or both managers may work against each other in a way that improving the performance of one manager may place severe restrictions on the other manager. Therefore, there is a need for coordination between the efforts of the performance manager and the application placement manager.
- The prior art suggests that the performance manager and the application placement manager perform their tasks in two separate management domains. A system administrator sets some management configuration parameters manually, without a dynamic, automatic process for coordinating meeting the performance guarantees and placing applications onto servers.
- To overcome these problems, an aspect of this invention is to provide apparatus, systems and methods for dynamic coordination between the performance manager and the application placement manager in a distributed computer system.
- Another aspect of this invention is to provide systems and methods for a process for communicating demand estimation and resource allocation information from the performance manager to the application placement manager in a distributed computer system.
- Still another aspect of this invention is to provide systems and methods for a process for communicating capacity loading constraints information from the application placement manager to the performance manager in a distributed computer system.
- A further aspect of this invention is to provide systems and methods for dynamic coordination between the performance manager and the application placement manager in a distributed computer system.
- This invention introduces a process for coordinating the tasks of the performance manager and the application placement manager in a dynamic fashion. Further, this invention introduces a system that implements the coordination process. The process is dynamic in the face of fluctuations in the request load to the distributed computer system and the periodic adjustments to the placement of applications onto servers in the distributed computer system. There are two opposite functional flows in the process: a demand estimation function and a capacity adjustment function. The coordination system involves two subsystems: a demand estimator and a capacity adjuster, along with appropriate interfaces to of the performance manager and the application placement manager. There are several advantages to dynamic coordination between the performance manager and the application placement manager. First, the application placement process reacts quicker to demand fluctuations. Second, the performance guarantees are better met by rearranging the resources to be allocated to the various classes of service. Third, the management system works in an unsupervised mode, thus reducing manual administration costs and human errors.
- These and other aspects, features, and advantages of the present invention will become apparent upon further consideration of the following detailed description of the invention when read in conjunction with the drawing figures, in which:
-
FIG. 1 is a block diagram of the system overview according to an example embodiment of the present invention; -
FIG. 2 illustrates a distributed computer system according to an example embodiment of the present invention; -
FIG. 3 illustrates an operational and control system according to an example embodiment of the present invention; -
FIG. 4 illustrates an coordinated management system according to an example embodiment of the present invention; -
FIG. 5 shows flow diagram of the coordination process according to an example embodiment of the present invention; - The present invention provides apparatus, systems and methods for coordinating the tasks of an performance manager and an application placement manager. The process is dynamic in the face of fluctuations in the service request load to the computer system and the periodic adjustments to the placement of applications onto servers in the computer system. There are two opposite functional flows in the process: a capacity estimation function and a capacity adjustment function. The coordination system involves two subsystems: a capacity estimator and a capacity adjuster, along with appropriate interfaces to of the performance manager and the application placement manager. There are several advantages to the dynamic coordination between the performance manager and the application placement manager. First, the application placement process reacts quicker to demand fluctuations. Second, the performance guarantees are better met by rearranging the resources to be allocated to the various classes of service. Third, the management system works in an unsupervised mode, thus reducing manual administration costs and human errors.
- As used herein a service includes satisfaction of a client request by providing connectivity, connection elements, application invocation and resources required to perform the actions responsive to the request. In order to be a satisfactory service, a service should have means for subscription, means for specifying and committing to a guaranteed quality of service, ensuring provision of the quality of service including resource allocation for complete responsiveness. Applications include static and dynamic access to web content, enterprise applications, and access to database servers. More specifically, applications may be provided by HTTP web servers, servlets, Enterprise Java Beans (EJB), database queries in a Websphere environment. A particular service may be composed of any combination of simple or complex of one or more services.
- When the service requests for a particular application increases, the on-demand provisioning system deploys additional instances of the application in order to accommodate the increased load. An instance of an application is deployed in a run-time environment specific to the application. For example, a web page retrieval needs a web server, a servlet needs a web container, an EJB application needs an EJB container, and a database application needs a database server. The various run-time environments are provided on one or more computer systems, forming a distributed computer system.
- A service provider and/or business offers to customers services which are satisfied by executing one or more applications. When a customer subscribes to a service, he selects one of potentially many service classes, each defined by a quality-of-service guarantee. For example, a quality-of-service guarantee may be a target value for the average response time of a service request, or a target fraction of service requests with response times above a specified threshold value. A service contract between the service provider and the customer usually states actions to be taken when the quality-of-service guarantee is, or is not, met. Such actions may be of financial nature and/or legal nature. The goal of the service provider is to meet as much as possible the quality-of-service guarantees for all quality-of-service classes and all services provided. To achieve that goal, it is imperative to have an on-demand management environment where (1) resources are dynamically allocated to service requests belonging to a multitude of quality-of-service classes and (2) instances of applications are dynamically deployed and un-deployed.
- The first step involves a service performance manager which, given a set of instances of applications placed on computer systems, allocates capacities of the various resources, such as storage, computing power, threads of execution, and connections to application servers and database servers, to the service requests belonging to the various quality-of-service classes. This step incorporates the performance modeling of the various resources and the optimization of resource allocation.
- The second step involves an application placement manager which, given capacity needs for the various applications as well as their capacity requirements and available capacity in the computer system, decides on the number of instances of each application that need be deployed. This step further incorporates the solution of a capacity-constrained placement optimization problem as well as the steps of deploying and un-deploying of application instances. The latter may be performed in a manual, supervised, or fully automatic mode.
- The overall goal is to best meet the quality-of-service guarantees for all quality-of-service classes and all services provided. To achieve that end, a coordination between performance management and application placement management is sought. The process of coordination involves several steps: (1) computing a desired capacity to achieve the quality-of-service guarantees; (2) employing the desired capacity in determining a placement of applications onto servers; (3) computing capacity limits of services and applications based on the placement; and (4) determining an allocation of capacity to satisfy the quality-of-service guarantees, subject to the placement and capacity limit. This process repeats periodically and/or based on a criterion, for example when the monitored performance is degraded or when some quality-of-service guarantees are not met.
- In some embodiments, the step of computing a desired capacity includes optimizing achievement of the quality of service while disregarding any application placement constraints.
- In some embodiments, the step of employing includes determining if desired capacities are satisfied by a current application placement If satisfied, the current placement is used as a solution to the application placement. If not satisfied, the desired capacity is used as an input into a method for solving an application placement problem.
- In some embodiments, the step of computing a capacity limit includes examining a placement matrix and capacity of servers within the computer system, and/or the step of determining an allocation of capacity includes solving an optimization problem to achieve the quality of service, the optimization problem is constrained by an application placement matrix.
- In some embodiments the method includes: monitoring performance of the computer system in meeting the quality of service guarantee, when the quality of service guarantee is not being met, repeating the steps of: computing a desired capacity; employing; computing a capacity limit; and the step of determining until the quality of service guarantee is met. Sometimes the step of monitoring is performed based on a monitoring criterion, and/or the step of monitoring is performed based on a monitoring criterion.
- In some embodiments the method includes: the at least one application satisfies a plurality of service requests for a plurality of services, and repeating the steps of: computing a desired capacity; employing; computing a capacity limit; and determining, until the quality of service guarantee is met for all service requests and all services.
- In some embodiments the method includes: at least one application satisfying a plurality of service requests for a plurality of services, repeating the steps of: computing a desired capacity; employing; computing a capacity limit; and the step of determining, until the quality of service guarantee is met for all service requests and all services.
- The first step involves the monitoring of performance metrics for all quality-of-service classes. The performance metrics include, but not limited to, the traffic intensity of service requests, the response time of service requests, the resource usage of applications satisfying service requests. A performance model is then constructed using such performance metrics as model parameters. The model is analyzed to provide values for the quality-of-service measure as a function of the allocated capacity to the various quality-of-service classes. The model is used to compute the desired capacity to achieve the quality-of-service guarantees. Given the model and unconstrained by the number of application instances and their placement on servers, an optimization problem is solved to best distribute the overall capacity among the quality-of-service classes. In other words, the first step is a solution to a measurement-based, model-driven, unconstrained resource allocation problem. The solution obtained may or may not be realizable given the capacity constraints of the applications.
- The second step uses the desired capacities derived in
step 1 to determine the best placement of application onto servers, in order to best realize the availability of the desired capacities. In case the current application placement realizes the desired capacities, the placement remains the same. Otherwise, a new application placement is sought. Each application instance requires a given amount of resources, such as storage requirement and computing cycles. Such resources are provided by servers with limited capacities. Due to the multitude of applications and services, the application placement step involves the solution of a multiple-class knapsack bin packing problem. For practical considerations, the optimization problem is solved using heuristic techniques. The output of the optimization problem is an application placement matrix, where rows represent applications, columns represent servers, and a (or 0) entry in a cell represents the placement (or lack of) of a particular application onto a particular server. The placement matrix is realized by deploying (and un-deploying) application instances in the current application placement. An objective in the optimization problem is the minimization of overhead for carrying out the realization of the placement matrix. - The third step is about computing capacity limits induced by the new application placement. By examining the application matrix and measuring available server capacities, capacity limits for subsets of applications are obtained. Each application satisfies one or more quality-of-service classes. Thus, the capacity limits are computed for subsets of quality-of-service classes. The computed capacities are constrained, as opposed to desired capacities computed in
step 1, by the application placement matrix. - The fourth step uses the capacity limits computed in step three as constraints in solving a constrained resource allocation problem. The objective of such a problem is to best meet the quality-of-service guarantees for the various quality-of-service classes. The optimization criterion could be the maximization of an overall utility function of the quality-of-service measures and their target, or the balancing of resources among the quality-of-service classes in order to relatively meet the quality-of-service guarantees.
- A high level layered diagram of the on-demand service provisioning and performance management in a computer system is described in
FIG. 1 . There are three layers: a distributedcomputer system 40, an operational andcontrol system 80, and acoordinated management system 90.Requests 10 belonging to various classes of service are submitted to the distributedcomputer system 40, where they are processed andappropriate responses 50 are generated. An operational andcontrol system 80 monitors the performance ofrequests 10 as they are processed as well as the usage of resources in the distributedcomputer system 40. The monitoreddata 30 is collected through monitors in the distributedcomputer system 40 and is communicated to the operational andcontrol system 80. In addition, the operational andcontrol system 80 generatescontrol actions 20 that are directed to actuators in the distributedcomputer system 40. The top layer consists of a coordinatedmanagement system 90 which receivesstatistics information 70 from the operational andcontrol system 80 and reacts by sendingcontrol parameters 60 to the operational andcontrol system 80. -
FIG. 2 describes the distributedcomputer system 40.Requests 10 belonging to various classes of service arrive at a scheduler, which puts requests in a multitude ofqueues 410 based on the service class, and a concurrency controller, which limits the number of requests of each class that is being serviced in the system. Once dispatched, a request is routed through arouter 420 to a specific server where it receives its service through the execution of an application that is already placed on that server, and then aresponse 50 is generated.FIG. 2 depicts two servers: 430 and 440, and three applications:Application 1, Application2, and Application3. There are two instances of Application 1: 450 and 470, running onservers Application2 460 running onserver 430, and only one instance ofApplication3 480 running onserver 440.Queue 410 collects monitoreddata 30 and send it to the operational andcontrol system 80. In return, the operational andcontrol system 80 sendsqueue actions 210 to control thequeue 410, routingactions 220 to control therouter 420, andplacement actions 230 to control the placement of application instances on servers. -
FIG. 3 describes the operational andcontrol system 80. Aqueue controller 810 controls the scheduler and the concurrency controller, and it receives itsqueue control parameters 610 from the coordinatedmanagement system 90. Also, the monitoreddata 30 is collected aqueue monitor 820 which providesstatistics 70 to the coordinatedmanagement system 90. Also, routingweights 220 are provided to arouter controller 830 by the coordinatedmanagement system 90. Aplacement controller 840 affects the placement changes 630 directives that it receives from the coordinatedmanagement system 90 and perform the correspondingplacement actions 230. -
FIG. 4 describes the coordinatedmanagement system 90. Theperformance manager 920 optimizes the performance of the system, while attempting to meet performance targets provided by theservice manager 910. Theapplication placement manager 950 generates an optimal placement of application instances onto servers, using the configuration parameters provided by thesystem configuration manager 960. The coordination between theperformance manager 920 and theapplication placement manager 950 is performed through acapacity estimator 930 and acapacity adjuster 940. Thecapacity estimator 930 uses the optimal capacity requirements (unconstrained by the placement) and the statistics data to predict the load on the applications. The obtained predictions as well as the configuration information are used by theapplication placement manager 950 to produce placement changes 630. This new placement data is then used by thecapacity adjuster 940 to calculate a new set of capacity limits that are constrained by the new placement. - We note that there is no need to iterate though the coordination process since both the
performance manager 920 and theapplication placement manager 950 employ their own models and optimization problems, as opposed to a black box control approach. - A flow diagram of the coordination process is illustrated in
FIG. 5 . The process repeats based ondecision 1070, which may be periodic with a given control period or activated when the performance of the system starts to deteriorate. Thefirst step 1010 in the process involves the estimation of capacity needs for the various service classes. Unconstrained by the current application placement, a capacity estimator computes the optimal allocation of the overall capacities among the various service classes so as to optimize the quality of service. Instep 1020, the computed desired capacities are communicated along with other loading information to the application placement manager. Adecision 1030 is made of whether the desired capacities are satisfied by the current application placement. If so, no change is necessary. Otherwise, a new application placement is determined 1040 based on the desired capacities and the projected load. The algorithm for determining an application placement may use a given placement policy. The new application placement is communicated to a Capacity Adjuster which computes 1050 the corresponding capacity constraints for all pairs of service classes and servers. Such capacity limits are then provided to the Performance Manager as input. In turn, the Performance Manager computes 1060 an optimal allocation of capacities among the service classes so as to optimize the quality of service. - Thus, the present invention includes a method for coordinating performance management and application placement management. The method includes the steps of: estimating capacity needs for various service classes of service requests; computing desired capacities of at least one application for the service requests; deciding whether the desired capacities are satisfied by the current application placement, making no change to current application placement if the desired capacities are satisfied; determining a new application placement based on the desired capacities and a projected load if the desired capacities are not satisfied; computing corresponding capacity constraints for all pairs of service classes and servers; and computing an optimal allocation of capacities among the service classes so as to optimize the quality of service.
- In some embodiments the method includes: repeating the steps of estimating; computing desired capacities; deciding, computing corresponding capacity constraints; and computing an optimal allocation, based on a repetition criterion.
- The present invention also includes a method for provisioning at least one application to satisfy a quality service level for at least one service. The method including the step of coordinating a service performance manager and an application placement manager in a computer system, the service performance manager managing performance of the at least one service, and the application placement manager managing placement of at least one application, the application satisfying a service request for a particular service. The step of coordinating includes the steps of: computing a desired capacity to achieve the quality of service level defined for the particular service; the application placement manager employing the desired capacity in determining a placement of the at least one application onto at least one server in the computer system in accordance with a placement policy; computing a capacity limit of the particular service to the at least one application based on the placement; and the performance manager determining an allocation of capacity to satisfy the quality of service level subject to the placement and capacity limit.
- In some embodiments the method includes: communicating the desired capacity to the application placement manager; and communicating the placement and the capacity limit to the service performance manager. In some embodiments: the step of communicating the desired capacity comprises representing the desired capacity as a desired capacity vector, wherein an element in the desired capacity vector corresponds to the quality of service level; and/or the step of communicating the placement and the capacity limit comprises representing the placement as a placement matrix, wherein rows or columns of the placement matrix correspond to the applications and columns or rows of the placement matrix correspond to the servers, and representing the capacity limit as a capacity limit vector wherein an element in the capacity limit vector correspond to the server.
- The present invention also includes an apparatus to provision at least one application to satisfy at least one quality of service guarantee. Said at least one application satisfying a plurality of service requests for a particular service. The apparatus includes: means for computing a desired capacity to achieve the quality of service level defined for the particular service; means for employing the desired capacity in determining a placement of said at least one application onto at least one server in a computer system in accordance with a placement policy; means for computing a capacity limit of the particular service to said at least one application based on the placement; and means for determining an allocation of capacity to satisfy the quality of service level subject to the placement and capacity limit.
- The present invention also includes an apparatus to coordinate performance management and application placement management. The apparatus includes: means for estimating capacity needs for various service classes of service requests; means for computing desired capacities of at least one application for the service requests; means for deciding whether the desired capacities are satisfied by the current application placement; means for making no change to current application placement if the desired capacities are satisfied; means for determining a new application placement based on the desired capacities and a projected load if the desired capacities are not satisfied; means for computing corresponding capacity constraints for all pairs of service classes and servers; and means for computing an optimal allocation of capacities among the service classes so as to optimize the quality of service.
- The present invention also includes an apparatus to provision at least one application to satisfy a quality service level for at least one service. The apparatus includes: means for coordinating a service performance manager and an application placement manager in a computer system, the service performance manager includes means for managing performance of said at least one service, and the application placement manager includes means for managing placement of at least one application, the application satisfying a service request for a particular service.
- The means for coordinating includes: means for computing a desired capacity to achieve the quality of service level defined for the particular service, the application placement manager includes means for employing the desired capacity in determining a placement of said at least one application onto at least one server in the computer system in accordance with a placement policy; means for computing a capacity limit of the particular service to said at least one application based on the placement; and the performance manager includes means for determining an allocation of capacity to satisfy the quality of service level subject to the placement and capacity limit.
- The entirety or a portion of the methods, systems and apparatus employing concepts of this invention may be implemented as being provided by a service provider. The entirety or portions of these may be used in a business and/or as a basis of forming a business.
- The present invention can be realized in hardware, software, or a combination of hardware and software. The present invention can be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system—or other apparatus adapted for carrying out the methods described herein—is suitable. A typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein. The present invention can also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out these methods.
- Computer program means or computer program in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after conversion to another language, code or notation and/or reproduction in a different material form.
- It is noted that the foregoing has outlined some of the more pertinent aspects and embodiments of the present invention. This invention may be used for many applications. Thus, although the description is made for particular arrangements and methods, the intent and concept of the invention is suitable and applicable to other arrangements and applications. It will be clear to those skilled in the art that other modifications to the disclosed embodiments can be effected without departing from the spirit and scope of the invention. The described embodiments ought to be construed to be merely illustrative of some of the more prominent features and applications of the invention. Other beneficial results can be realized by applying the disclosed invention in a different manner or modifying the invention in ways known to those familiar with the art.
Claims (35)
1. A method comprising provisioning at least one application to satisfy at least one quality of service guarantee, said at least one application satisfying a plurality of service requests for a particular service, said step of provisioning comprising:
computing a desired capacity to achieve said quality of service level defined for said particular service;
employing said desired capacity in determining a placement of said at least one application onto at least one server in said computer system in accordance with a placement policy;
computing a capacity limit of said particular service to said at least one application based on said placement; and
determining an allocation of capacity to satisfy said quality of service level subject to said placement and capacity limit.
2. A method as recited in claim 1 , wherein said step of computing a desired capacity includes optimizing achievement of the quality of service while disregarding any application placement constraints.
3. A method as recited in claim 1 , wherein said step of employing comprises determining if desired capacities are satisfied by a current application placement,
if satisfied using the current placement as a solution to the application placement;
if not satisfied using the desired capacity as an input into a method for solving an application placement problem.
4. A method as recited in claim 1 , wherein said step of computing a capacity limit includes examining a placement matrix and capacity of servers within said computer system.
5. A method as recited in claim 1 , wherein said step of determining an allocation of capacity includes solving an optimization problem to achieve the quality of service, said optimization problem is constrained by an application placement matrix.
6. A method as recited in claim 1 , further comprising:
monitoring performance of the computer system in meeting the quality of service guarantee, when the quality of service guarantee is not being met; and
repeating the steps of: computing a desired capacity; employing; computing a capacity limit; and determining; until the quality of service guarantee is met.
7. A method as recited in claim 6 , wherein the step of monitoring is performed based on a monitoring criterion.
8. A method as recited in claim 1 , further comprising:
said at least one application satisfying a plurality of service requests for a plurality of services; and
repeating the steps of: computing a desired capacity; employing; computing a capacity limit; and determining; until the quality of service guarantee is met for all service requests and all services.
9. A method comprising coordinating performance management and application placement management, said step of coordinating comprising:
estimating capacity needs for various service classes of service requests;
computing desired capacities of at least one application for said service requests;
deciding whether the desired capacities are satisfied by the current application placement;
making no change to current application placement if the desired capacities are satisfied;
determining a new application placement based on the desired capacities and a projected load if the desired capacities are not satisfied;
computing corresponding capacity constraints for all pairs of service classes and servers; and
computing an optimal allocation of capacities among the service classes so as to optimize the quality of service.
10. A method as recited in claim 9 , further comprising repeating the steps of estimating;
computing desired capacities; deciding; computing corresponding capacity constraints;
and computing an optimal allocation; based on a repetition criterion.
11. A method for provisioning at least one application to satisfy a quality service level for at least one service, said method comprising:
coordinating a service performance manager and an application placement manager in a computer system, said service performance manager managing performance of said at least one service, and said application placement manager managing placement of at least one application, said application satisfying a service request for a particular service, the step of coordinating comprising the steps of:
computing a desired capacity to achieve said quality of service level defined for said particular service;
said application placement manager employing said desired capacity in determining a placement of said at least one application onto at least one server in said computer system in accordance with a placement policy;
computing a capacity limit of said particular service to said at least one application based on said placement; and
said performance manager determining an allocation of capacity to satisfy said quality of service level subject to said placement and capacity limit.
12. A method as recited in claim 11 , further comprising:
communicating said desired capacity to said application placement manager; and
communicating said placement and said capacity limit to the service performance manager.
13. An apparatus to provision at least one application to satisfy at least one quality of service guarantee, said at least one application satisfying a plurality of service requests for a particular service, said apparatus comprising:
means for computing a desired capacity to achieve said quality of service level defined for said particular service; means for employing said desired capacity in determining a placement of said at least one application onto at least one server in a computer system in accordance with a placement policy;
means for computing a capacity limit of said particular service to said at least one application based on said placement; and
means for determining an allocation of capacity to satisfy said quality of service level subject to said placement and capacity limit.
14. An apparatus to coordinate performance management and application placement management, said apparatus comprising:
means for estimating capacity needs for various service classes of service requests;
means for computing desired capacities of at least one application for said service requests;
means for deciding whether the desired capacities are satisfied by the current application placement;
means for making no change to current application placement if the desired capacities are satisfied;
means for determining a new application placement based on the desired capacities and a projected load if the desired capacities are not satisfied;
means for computing corresponding capacity constraints for all pairs of service classes and servers; and
means for computing an optimal allocation of capacities among the service classes so as to optimize the quality of service.
15. An apparatus to provision at least one application to satisfy a quality service level for at least one service, said apparatus comprising:
means for coordinating a service performance manager and an application placement manager in a computer system, said service performance manager comprising means for managing performance of said at least one service, and said application placement manager comprising means for managing placement of at least one application, said application satisfying a service request for a particular service, the means for coordinating comprising:
means for computing a desired capacity to achieve said quality of service level defined for said particular service, said application placement manager comprising means for employing said desired capacity in determining a placement of said at least one application onto at least one server in said computer system in accordance with a placement policy;
means for computing a capacity limit of said particular service to said at least one application based on said placement; and
said performance manager comprising means for determining an allocation of capacity to satisfy said quality of service level subject to said placement and capacity limit.
16. An article of manufacture comprising a computer usable medium having computer readable program code means embodied therein for causing provisioning of at least one application to satisfy at least one quality of service guarantee, said at least one application satisfying a plurality of service requests for a particular service, the computer readable program code means in said article of manufacture comprising computer readable program code means for causing a computer to effect the steps of:
computing a desired capacity to achieve said quality of service level defined for said particular service;
employing said desired capacity in determining a placement of said at least one application onto at least one server in said computer system in accordance with a placement policy;
computing a capacity limit of said particular service to said at least one application based on said placement; and
determining an allocation of capacity to satisfy said quality of service level subject to said placement and capacity limit.
17. A computer program product comprising a computer usable medium having computer readable program code means embodied therein for causing provisioning of at least one application to satisfy at least one quality of service guarantee, said at least one application satisfying a plurality of service requests for a particular service, the computer readable program code means in said computer program product comprising computer readable program code means for causing a computer to effect the functions of claim 13 .
18. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for provisioning at least one application to satisfy at least one quality of service guarantee, said method steps comprising the steps of claim 13 .
19. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for coordinating performance management and application placement management, said method steps comprising the steps of claim 14 .
20. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for provisioning at least one application to satisfy a quality service level for at least one service, said method steps comprising the steps of claim 15 .
21. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for provisioning of at least one application to satisfy at least one quality of service guarantee, said at least one application satisfying a plurality of service requests for a particular service, said method steps comprising the steps of claim 1 .
22. An article of manufacture comprising a computer usable medium having computer readable program code means embodied therein for causing to coordination of performance management and application placement management, the computer readable program code means in said article of manufacture comprising computer readable program code means for causing a computer to effect the functions of claim 14 .
23. An article of manufacture comprising a computer usable medium having computer readable program code means embodied therein for causing coordination of performance management and application placement management, the computer readable program code means in said article of manufacture comprising computer readable program code means for causing a computer to effect the steps of claim 9 .
24. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for coordination of performance management and application placement management, said at least one application satisfying a plurality of service requests for a particular service, said method steps comprising the steps of claim 9 .
25. A method as recited in claim 12 , wherein:
the step of communicating said desired capacity comprises representing said desired capacity as a desired capacity vector, wherein an element in said desired capacity vector corresponds to said quality of service level; and
the step of communicating said placement and said capacity limit comprises representing said placement as a placement matrix, wherein rows of said placement matrix correspond to said applications and columns of said placement matrix correspond to said servers, and representing said capacity limit as a capacity limit vector wherein an element in said capacity limit vector correspond to said server.
26. An article of manufacture comprising a computer usable medium having computer readable program code means embodied therein for causing provisioning of at least one application to satisfy a quality service level for at least one service, the computer readable program code means in said article of manufacture comprising computer readable program code means for causing a computer to effect the steps of:
coordinating a service performance manager and an application placement manager in a computer system, said service performance manager managing performance of said at least one service, and said application placement manager managing placement of at least one application, said application satisfying a service request for a particular service, the step of coordinating comprising the steps of:
computing a desired capacity to achieve said quality of service level defined for said particular service;
said application placement manager employing said desired capacity in determining a placement of said at least one application onto at least one server in said computer system in accordance with a placement policy;
computing a capacity limit of said particular service to said at least one application based on said placement; and
said performance manager determining an allocation of capacity to satisfy said quality of service level subject to said placement and capacity limit.
27. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for provisioning of at least one application to satisfy a quality service level for at least one service, said method steps comprising the steps of claim 11 .
28. A method as recited in claim 1 , wherein at least a portion of the step of provisioning is performed by a service provider.
29. A method as recited in claim 1 , further comprising forming a business providing at least a portion of the step of provisioning.
30. A method as recited in claim 11 , wherein at least a portion of the step of coordinating is performed by a service provider.
31. A method as recited in claim 11 , further comprising forming a business providing at least a portion of the step of coordinating.
32. An apparatus as recited in claim 13 , wherein at least a portion of a means of the apparatus is performed by a service provider.
33. A method as recited in claim 13 , wherein at least a portion of a means of the apparatus is used to form a business.
34. An apparatus as recited in claim 14 , wherein at least a portion of a means of the apparatus is performed by a service provider.
33. A method as recited in claim 14 , at least a portion of a means of the apparatus is used to form a business.
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/952,394 US20060070060A1 (en) | 2004-09-28 | 2004-09-28 | Coordinating service performance and application placement management |
TW094131166A TWI382318B (en) | 2004-09-28 | 2005-09-09 | Coordinating service performance and application placement management |
PCT/US2005/034933 WO2006037077A2 (en) | 2004-09-28 | 2005-09-28 | Coordinating service performance and application placement management |
JP2007534746A JP2008515106A (en) | 2004-09-28 | 2005-09-28 | Apparatus, system, and method for coordinating service performance and application placement management |
EP05801859A EP1805679A4 (en) | 2004-09-28 | 2005-09-28 | Coordinating service performance and application placement management |
CNB2005800237919A CN100555297C (en) | 2004-09-28 | 2005-09-28 | The method and apparatus of coordinating service performance and application placement management |
US12/117,521 US7720551B2 (en) | 2004-09-28 | 2008-05-08 | Coordinating service performance and application placement management |
US12/776,469 US8224465B2 (en) | 2004-09-28 | 2010-05-10 | Coordinating service performance and application placement management |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/952,394 US20060070060A1 (en) | 2004-09-28 | 2004-09-28 | Coordinating service performance and application placement management |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/117,521 Continuation US7720551B2 (en) | 2004-09-28 | 2008-05-08 | Coordinating service performance and application placement management |
Publications (1)
Publication Number | Publication Date |
---|---|
US20060070060A1 true US20060070060A1 (en) | 2006-03-30 |
Family
ID=36100672
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/952,394 Abandoned US20060070060A1 (en) | 2004-09-28 | 2004-09-28 | Coordinating service performance and application placement management |
US12/117,521 Expired - Fee Related US7720551B2 (en) | 2004-09-28 | 2008-05-08 | Coordinating service performance and application placement management |
US12/776,469 Expired - Fee Related US8224465B2 (en) | 2004-09-28 | 2010-05-10 | Coordinating service performance and application placement management |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/117,521 Expired - Fee Related US7720551B2 (en) | 2004-09-28 | 2008-05-08 | Coordinating service performance and application placement management |
US12/776,469 Expired - Fee Related US8224465B2 (en) | 2004-09-28 | 2010-05-10 | Coordinating service performance and application placement management |
Country Status (6)
Country | Link |
---|---|
US (3) | US20060070060A1 (en) |
EP (1) | EP1805679A4 (en) |
JP (1) | JP2008515106A (en) |
CN (1) | CN100555297C (en) |
TW (1) | TWI382318B (en) |
WO (1) | WO2006037077A2 (en) |
Cited By (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060161885A1 (en) * | 2005-01-20 | 2006-07-20 | Raja Krishnaswamy | Transactions for an application domain manager |
US20080209016A1 (en) * | 2007-02-27 | 2008-08-28 | Karve Alexei A | Method and apparatus for policy-based provisioning in a virtualized service delivery environment |
US20080209435A1 (en) * | 2007-02-23 | 2008-08-28 | Microsoft Corporation | Scalable workflow management system |
US20090055535A1 (en) * | 2007-08-22 | 2009-02-26 | International Business Machines Corporation | Deploying resources in target server environments |
US20090254909A1 (en) * | 2008-04-04 | 2009-10-08 | James Edwin Hanson | Methods and Apparatus for Power-aware Workload Allocation in Performance-managed Computing Environments |
US20110191759A1 (en) * | 2010-02-01 | 2011-08-04 | International Business Machines Corporation | Interactive Capacity Planning |
US20120173734A1 (en) * | 2005-04-21 | 2012-07-05 | International Business Machines Corporation | Dynamic Application Placement Under Service and Memory Constraints |
US20120215576A1 (en) * | 2011-02-17 | 2012-08-23 | International Business Machines Corporation | Allocating tasks to resources |
WO2013113575A1 (en) * | 2012-02-01 | 2013-08-08 | International Business Machines Corporation | Deploying an executable with historical performance data |
US9525659B1 (en) | 2012-09-04 | 2016-12-20 | Amazon Technologies, Inc. | Request routing utilizing point of presence load information |
US9544394B2 (en) | 2008-03-31 | 2017-01-10 | Amazon Technologies, Inc. | Network resource identification |
US9571389B2 (en) | 2008-03-31 | 2017-02-14 | Amazon Technologies, Inc. | Request routing based on class |
US9590946B2 (en) | 2008-11-17 | 2017-03-07 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US20170068484A1 (en) * | 2015-09-03 | 2017-03-09 | Sas Institute Inc. | Computer-implemented system for hierarchical unconstraining in data processes |
US9608957B2 (en) | 2008-06-30 | 2017-03-28 | Amazon Technologies, Inc. | Request routing using network computing components |
US9621660B2 (en) | 2008-03-31 | 2017-04-11 | Amazon Technologies, Inc. | Locality based content distribution |
US9628554B2 (en) | 2012-02-10 | 2017-04-18 | Amazon Technologies, Inc. | Dynamic content delivery |
US9712325B2 (en) | 2009-09-04 | 2017-07-18 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US9734472B2 (en) | 2008-11-17 | 2017-08-15 | Amazon Technologies, Inc. | Request routing utilizing cost information |
US9742795B1 (en) | 2015-09-24 | 2017-08-22 | Amazon Technologies, Inc. | Mitigating network attacks |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US9787775B1 (en) | 2010-09-28 | 2017-10-10 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9787599B2 (en) | 2008-11-17 | 2017-10-10 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US9794216B2 (en) | 2010-09-28 | 2017-10-17 | Amazon Technologies, Inc. | Request routing in a networked environment |
US9794281B1 (en) | 2015-09-24 | 2017-10-17 | Amazon Technologies, Inc. | Identifying sources of network attacks |
US9800539B2 (en) | 2010-09-28 | 2017-10-24 | Amazon Technologies, Inc. | Request routing management based on network components |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US9888089B2 (en) | 2008-03-31 | 2018-02-06 | Amazon Technologies, Inc. | Client side cache management |
US9887931B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9887932B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9893957B2 (en) | 2009-10-02 | 2018-02-13 | Amazon Technologies, Inc. | Forward-based resource delivery network management techniques |
US9912740B2 (en) | 2008-06-30 | 2018-03-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US9929959B2 (en) | 2013-06-04 | 2018-03-27 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
US9930131B2 (en) | 2010-11-22 | 2018-03-27 | Amazon Technologies, Inc. | Request routing processing |
US9954934B2 (en) | 2008-03-31 | 2018-04-24 | Amazon Technologies, Inc. | Content delivery reconciliation |
US9985927B2 (en) | 2008-11-17 | 2018-05-29 | Amazon Technologies, Inc. | Managing content delivery network service providers by a content broker |
US9992303B2 (en) | 2007-06-29 | 2018-06-05 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10015237B2 (en) | 2010-09-28 | 2018-07-03 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10015241B2 (en) | 2012-09-20 | 2018-07-03 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US10021179B1 (en) | 2012-02-21 | 2018-07-10 | Amazon Technologies, Inc. | Local resource delivery network |
US10027582B2 (en) | 2007-06-29 | 2018-07-17 | Amazon Technologies, Inc. | Updating routing information based on client location |
US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10079742B1 (en) | 2010-09-28 | 2018-09-18 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US10162753B2 (en) | 2009-06-16 | 2018-12-25 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
US10225322B2 (en) | 2010-09-28 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US10225362B2 (en) | 2012-06-11 | 2019-03-05 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US10230819B2 (en) | 2009-03-27 | 2019-03-12 | Amazon Technologies, Inc. | Translation of resource identifiers using popularity information upon client request |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10264062B2 (en) | 2009-03-27 | 2019-04-16 | Amazon Technologies, Inc. | Request routing using a popularity identifier to identify a cache component |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US10469513B2 (en) | 2016-10-05 | 2019-11-05 | Amazon Technologies, Inc. | Encrypted network addresses |
US10491534B2 (en) | 2009-03-27 | 2019-11-26 | Amazon Technologies, Inc. | Managing resources and entries in tracking information in resource cache components |
US10506029B2 (en) | 2010-01-28 | 2019-12-10 | Amazon Technologies, Inc. | Content distribution network |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
US10554748B2 (en) | 2008-03-31 | 2020-02-04 | Amazon Technologies, Inc. | Content management |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
US10601767B2 (en) | 2009-03-27 | 2020-03-24 | Amazon Technologies, Inc. | DNS query processing based on application information |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US10642633B1 (en) * | 2015-09-29 | 2020-05-05 | EMC IP Holding Company LLC | Intelligent backups with dynamic proxy in virtualized environment |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US11194719B2 (en) | 2008-03-31 | 2021-12-07 | Amazon Technologies, Inc. | Cache optimization |
US11290418B2 (en) | 2017-09-25 | 2022-03-29 | Amazon Technologies, Inc. | Hybrid content request routing system |
US11604667B2 (en) | 2011-04-27 | 2023-03-14 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8583797B2 (en) * | 2008-01-07 | 2013-11-12 | Ca, Inc. | Interdependent capacity levels of resources in a distributed computing system |
US8078664B2 (en) * | 2008-01-07 | 2011-12-13 | Computer Associates Think, Inc. | Evaluation of current capacity levels of resources in a distributed computing system |
US7970905B2 (en) * | 2008-07-03 | 2011-06-28 | International Business Machines Corporation | Method, system and computer program product for server selection, application placement and consolidation planning of information technology systems |
US8055739B2 (en) * | 2008-09-09 | 2011-11-08 | International Business Machines Corporation | Sharing performance data between different information technology product/ solution deployments |
JP5315128B2 (en) * | 2009-05-25 | 2013-10-16 | 株式会社日立製作所 | Process request destination management apparatus, process request destination management program, and process request destination management method |
US8615792B2 (en) * | 2009-12-29 | 2013-12-24 | International Business Machines Corporation | Method and system for policy driven data disclosure |
US9043342B2 (en) * | 2009-12-29 | 2015-05-26 | International Business Machines Corporation | Method and system for policy driven data distribution |
US20120158819A1 (en) * | 2010-12-21 | 2012-06-21 | Microsoft Corporation | Policy-based application delivery |
US9471389B2 (en) * | 2011-06-30 | 2016-10-18 | International Business Machines Corporation | Dynamically tuning server placement |
US8943372B2 (en) | 2012-03-30 | 2015-01-27 | International Business Machines Corporation | Systems and methods for open and extensible integration of management domains in computation and orchestration of resource placement |
US9071631B2 (en) * | 2012-08-09 | 2015-06-30 | International Business Machines Corporation | Service management roles of processor nodes in distributed node service management |
US9678801B2 (en) | 2012-08-09 | 2017-06-13 | International Business Machines Corporation | Service management modes of operation in distributed node service management |
JP5892031B2 (en) * | 2012-10-22 | 2016-03-23 | 富士通株式会社 | Resource management system, resource management method, and resource management program |
US9433404B2 (en) | 2012-10-31 | 2016-09-06 | Suture Concepts Inc. | Method and apparatus for closing fissures in the annulus fibrosus |
US10786235B2 (en) | 2012-10-31 | 2020-09-29 | Anchor Innovation Medical, Inc. | Method and apparatus for closing a fissure in the annulus of an intervertebral disc, and/or for effecting other anatomical repairs and/or fixations |
WO2015024013A2 (en) | 2013-08-16 | 2015-02-19 | Suture Concepts Inc. | Method and apparatus for closing a fissure in the annulus of an intervertebral disc, and/or for effecting other anatomical repairs and/or fixations |
WO2015151129A1 (en) * | 2014-03-31 | 2015-10-08 | 株式会社スクウェア・エニックス | Information processing device, rendering system, control method, and program |
US10616179B1 (en) | 2015-06-25 | 2020-04-07 | Amazon Technologies, Inc. | Selective routing of domain name system (DNS) requests |
CN105141697A (en) * | 2015-09-16 | 2015-12-09 | 国云科技股份有限公司 | Multi-QoS constrained cloud computing task scheduling method |
US10372640B2 (en) * | 2016-11-21 | 2019-08-06 | International Business Machines Corporation | Arbitration of data transfer requests |
US10587504B2 (en) | 2017-02-08 | 2020-03-10 | International Business Machines Corporation | Packet broadcasting mechanism for mesh interconnected multi-computers |
US20190007747A1 (en) * | 2017-06-29 | 2019-01-03 | Intel Corporation | Technologies for providing adaptive platform quality of service |
KR102120868B1 (en) * | 2017-08-09 | 2020-06-09 | 삼성전자주식회사 | System for providing Function as a service and operating method for the same |
US11537440B2 (en) * | 2019-12-19 | 2022-12-27 | Hewlett Packard Enterprise Development Lp | Infrastructure adaptive consistency level mechanism |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003079A (en) * | 1997-02-27 | 1999-12-14 | Hewlett Packard Company | System and method for continuously measuring quality of service in a federated application environment |
US6195590B1 (en) * | 1998-02-11 | 2001-02-27 | Roger A. Powell | System for control and resource allocation for the manufacture of a product |
US20010007976A1 (en) * | 1999-11-08 | 2001-07-12 | Thompson Simon G. | Task management |
US6351734B1 (en) * | 1998-09-09 | 2002-02-26 | Unisys Corporation | System and method for resource allocation and planning |
US20020133328A1 (en) * | 1999-06-02 | 2002-09-19 | Michel K. Bowman-Amuah | Customer-driven qos in hybrid communication system |
US20020174227A1 (en) * | 2000-03-03 | 2002-11-21 | Hartsell Neal D. | Systems and methods for prioritization in information management environments |
US20030055967A1 (en) * | 1999-05-17 | 2003-03-20 | David Dewitt Worley | Encapsulating local application environments in a cluster within a computer network |
US20030236745A1 (en) * | 2000-03-03 | 2003-12-25 | Hartsell Neal D | Systems and methods for billing in information management environments |
US20040117794A1 (en) * | 2002-12-17 | 2004-06-17 | Ashish Kundu | Method, system and framework for task scheduling |
US6778531B1 (en) * | 1999-11-04 | 2004-08-17 | Lucent Technologies Inc. | Multicast routing with service-level guarantees between ingress egress-points in a packet network |
US20040243650A1 (en) * | 2003-06-02 | 2004-12-02 | Surgient, Inc. | Shared nothing virtual cluster |
US20050005200A1 (en) * | 2003-03-12 | 2005-01-06 | Vladimir Matena | Method and apparatus for executing applications on a distributed computer system |
US6907304B1 (en) * | 1999-04-08 | 2005-06-14 | George Mason University | Method and apparatus of measuring a relative utility for each of several different tasks based on identified system goals |
US7134011B2 (en) * | 1990-06-01 | 2006-11-07 | Huron Ip Llc | Apparatus, architecture, and method for integrated modular server system providing dynamically power-managed and work-load managed network devices |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6466980B1 (en) * | 1999-06-17 | 2002-10-15 | International Business Machines Corporation | System and method for capacity shaping in an internet environment |
US6728865B1 (en) * | 1999-10-20 | 2004-04-27 | Transmeta Corporation | Pipeline replay support for unaligned memory operations |
US6877035B2 (en) * | 2001-01-29 | 2005-04-05 | International Business Machines Corporation | System for optimal resource allocation and planning for hosting computing services |
JP2004081789A (en) | 2002-08-28 | 2004-03-18 | Hideo Inamura | Working shoe with brush |
US7761873B2 (en) * | 2002-12-03 | 2010-07-20 | Oracle America, Inc. | User-space resource management |
US7350186B2 (en) * | 2003-03-10 | 2008-03-25 | International Business Machines Corporation | Methods and apparatus for managing computing deployment in presence of variable workload |
-
2004
- 2004-09-28 US US10/952,394 patent/US20060070060A1/en not_active Abandoned
-
2005
- 2005-09-09 TW TW094131166A patent/TWI382318B/en not_active IP Right Cessation
- 2005-09-28 JP JP2007534746A patent/JP2008515106A/en active Pending
- 2005-09-28 EP EP05801859A patent/EP1805679A4/en not_active Withdrawn
- 2005-09-28 WO PCT/US2005/034933 patent/WO2006037077A2/en active Application Filing
- 2005-09-28 CN CNB2005800237919A patent/CN100555297C/en not_active Expired - Fee Related
-
2008
- 2008-05-08 US US12/117,521 patent/US7720551B2/en not_active Expired - Fee Related
-
2010
- 2010-05-10 US US12/776,469 patent/US8224465B2/en not_active Expired - Fee Related
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7134011B2 (en) * | 1990-06-01 | 2006-11-07 | Huron Ip Llc | Apparatus, architecture, and method for integrated modular server system providing dynamically power-managed and work-load managed network devices |
US6003079A (en) * | 1997-02-27 | 1999-12-14 | Hewlett Packard Company | System and method for continuously measuring quality of service in a federated application environment |
US6195590B1 (en) * | 1998-02-11 | 2001-02-27 | Roger A. Powell | System for control and resource allocation for the manufacture of a product |
US6351734B1 (en) * | 1998-09-09 | 2002-02-26 | Unisys Corporation | System and method for resource allocation and planning |
US6907304B1 (en) * | 1999-04-08 | 2005-06-14 | George Mason University | Method and apparatus of measuring a relative utility for each of several different tasks based on identified system goals |
US20030055967A1 (en) * | 1999-05-17 | 2003-03-20 | David Dewitt Worley | Encapsulating local application environments in a cluster within a computer network |
US20020133328A1 (en) * | 1999-06-02 | 2002-09-19 | Michel K. Bowman-Amuah | Customer-driven qos in hybrid communication system |
US6778531B1 (en) * | 1999-11-04 | 2004-08-17 | Lucent Technologies Inc. | Multicast routing with service-level guarantees between ingress egress-points in a packet network |
US20010007976A1 (en) * | 1999-11-08 | 2001-07-12 | Thompson Simon G. | Task management |
US20020174227A1 (en) * | 2000-03-03 | 2002-11-21 | Hartsell Neal D. | Systems and methods for prioritization in information management environments |
US20030236745A1 (en) * | 2000-03-03 | 2003-12-25 | Hartsell Neal D | Systems and methods for billing in information management environments |
US20040117794A1 (en) * | 2002-12-17 | 2004-06-17 | Ashish Kundu | Method, system and framework for task scheduling |
US20050005200A1 (en) * | 2003-03-12 | 2005-01-06 | Vladimir Matena | Method and apparatus for executing applications on a distributed computer system |
US20040243650A1 (en) * | 2003-06-02 | 2004-12-02 | Surgient, Inc. | Shared nothing virtual cluster |
Cited By (148)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8140985B2 (en) * | 2005-01-20 | 2012-03-20 | Microsoft Corporation | Transactions for an application domain manager |
US20060161885A1 (en) * | 2005-01-20 | 2006-07-20 | Raja Krishnaswamy | Transactions for an application domain manager |
US8510745B2 (en) * | 2005-04-21 | 2013-08-13 | International Business Machines Corporation | Dynamic application placement under service and memory constraints |
US20120173734A1 (en) * | 2005-04-21 | 2012-07-05 | International Business Machines Corporation | Dynamic Application Placement Under Service and Memory Constraints |
US20080209435A1 (en) * | 2007-02-23 | 2008-08-28 | Microsoft Corporation | Scalable workflow management system |
US20080209016A1 (en) * | 2007-02-27 | 2008-08-28 | Karve Alexei A | Method and apparatus for policy-based provisioning in a virtualized service delivery environment |
US8028048B2 (en) | 2007-02-27 | 2011-09-27 | International Business Machines Corporation | Method and apparatus for policy-based provisioning in a virtualized service delivery environment |
US9992303B2 (en) | 2007-06-29 | 2018-06-05 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US10027582B2 (en) | 2007-06-29 | 2018-07-17 | Amazon Technologies, Inc. | Updating routing information based on client location |
US20090055535A1 (en) * | 2007-08-22 | 2009-02-26 | International Business Machines Corporation | Deploying resources in target server environments |
US9888089B2 (en) | 2008-03-31 | 2018-02-06 | Amazon Technologies, Inc. | Client side cache management |
US9894168B2 (en) | 2008-03-31 | 2018-02-13 | Amazon Technologies, Inc. | Locality based content distribution |
US11451472B2 (en) | 2008-03-31 | 2022-09-20 | Amazon Technologies, Inc. | Request routing based on class |
US10554748B2 (en) | 2008-03-31 | 2020-02-04 | Amazon Technologies, Inc. | Content management |
US11245770B2 (en) | 2008-03-31 | 2022-02-08 | Amazon Technologies, Inc. | Locality based content distribution |
US11194719B2 (en) | 2008-03-31 | 2021-12-07 | Amazon Technologies, Inc. | Cache optimization |
US10158729B2 (en) | 2008-03-31 | 2018-12-18 | Amazon Technologies, Inc. | Locality based content distribution |
US9544394B2 (en) | 2008-03-31 | 2017-01-10 | Amazon Technologies, Inc. | Network resource identification |
US9571389B2 (en) | 2008-03-31 | 2017-02-14 | Amazon Technologies, Inc. | Request routing based on class |
US10511567B2 (en) | 2008-03-31 | 2019-12-17 | Amazon Technologies, Inc. | Network resource identification |
US10797995B2 (en) | 2008-03-31 | 2020-10-06 | Amazon Technologies, Inc. | Request routing based on class |
US11909639B2 (en) | 2008-03-31 | 2024-02-20 | Amazon Technologies, Inc. | Request routing based on class |
US9621660B2 (en) | 2008-03-31 | 2017-04-11 | Amazon Technologies, Inc. | Locality based content distribution |
US9954934B2 (en) | 2008-03-31 | 2018-04-24 | Amazon Technologies, Inc. | Content delivery reconciliation |
US9887915B2 (en) | 2008-03-31 | 2018-02-06 | Amazon Technologies, Inc. | Request routing based on class |
US10771552B2 (en) | 2008-03-31 | 2020-09-08 | Amazon Technologies, Inc. | Content management |
US10530874B2 (en) | 2008-03-31 | 2020-01-07 | Amazon Technologies, Inc. | Locality based content distribution |
US10305797B2 (en) | 2008-03-31 | 2019-05-28 | Amazon Technologies, Inc. | Request routing based on class |
US10645149B2 (en) | 2008-03-31 | 2020-05-05 | Amazon Technologies, Inc. | Content delivery reconciliation |
US20090254909A1 (en) * | 2008-04-04 | 2009-10-08 | James Edwin Hanson | Methods and Apparatus for Power-aware Workload Allocation in Performance-managed Computing Environments |
US8635625B2 (en) * | 2008-04-04 | 2014-01-21 | International Business Machines Corporation | Power-aware workload allocation in performance-managed computing environments |
US9912740B2 (en) | 2008-06-30 | 2018-03-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US9608957B2 (en) | 2008-06-30 | 2017-03-28 | Amazon Technologies, Inc. | Request routing using network computing components |
US9787599B2 (en) | 2008-11-17 | 2017-10-10 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US11811657B2 (en) | 2008-11-17 | 2023-11-07 | Amazon Technologies, Inc. | Updating routing information based on client location |
US10116584B2 (en) | 2008-11-17 | 2018-10-30 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US11283715B2 (en) | 2008-11-17 | 2022-03-22 | Amazon Technologies, Inc. | Updating routing information based on client location |
US11115500B2 (en) | 2008-11-17 | 2021-09-07 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US10523783B2 (en) | 2008-11-17 | 2019-12-31 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US9590946B2 (en) | 2008-11-17 | 2017-03-07 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US9734472B2 (en) | 2008-11-17 | 2017-08-15 | Amazon Technologies, Inc. | Request routing utilizing cost information |
US9985927B2 (en) | 2008-11-17 | 2018-05-29 | Amazon Technologies, Inc. | Managing content delivery network service providers by a content broker |
US10742550B2 (en) | 2008-11-17 | 2020-08-11 | Amazon Technologies, Inc. | Updating routing information based on client location |
US10601767B2 (en) | 2009-03-27 | 2020-03-24 | Amazon Technologies, Inc. | DNS query processing based on application information |
US10230819B2 (en) | 2009-03-27 | 2019-03-12 | Amazon Technologies, Inc. | Translation of resource identifiers using popularity information upon client request |
US10264062B2 (en) | 2009-03-27 | 2019-04-16 | Amazon Technologies, Inc. | Request routing using a popularity identifier to identify a cache component |
US10491534B2 (en) | 2009-03-27 | 2019-11-26 | Amazon Technologies, Inc. | Managing resources and entries in tracking information in resource cache components |
US10574787B2 (en) | 2009-03-27 | 2020-02-25 | Amazon Technologies, Inc. | Translation of resource identifiers using popularity information upon client request |
US10162753B2 (en) | 2009-06-16 | 2018-12-25 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US10783077B2 (en) | 2009-06-16 | 2020-09-22 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US10521348B2 (en) | 2009-06-16 | 2019-12-31 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US10785037B2 (en) | 2009-09-04 | 2020-09-22 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US9712325B2 (en) | 2009-09-04 | 2017-07-18 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US10135620B2 (en) | 2009-09-04 | 2018-11-20 | Amazon Technologis, Inc. | Managing secure content in a content delivery network |
US9893957B2 (en) | 2009-10-02 | 2018-02-13 | Amazon Technologies, Inc. | Forward-based resource delivery network management techniques |
US10218584B2 (en) | 2009-10-02 | 2019-02-26 | Amazon Technologies, Inc. | Forward-based resource delivery network management techniques |
US10506029B2 (en) | 2010-01-28 | 2019-12-10 | Amazon Technologies, Inc. | Content distribution network |
US11205037B2 (en) | 2010-01-28 | 2021-12-21 | Amazon Technologies, Inc. | Content distribution network |
US8479181B2 (en) * | 2010-02-01 | 2013-07-02 | International Business Machines Corporation | Interactive capacity planning |
US20110191759A1 (en) * | 2010-02-01 | 2011-08-04 | International Business Machines Corporation | Interactive Capacity Planning |
US10225322B2 (en) | 2010-09-28 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9787775B1 (en) | 2010-09-28 | 2017-10-10 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10097398B1 (en) | 2010-09-28 | 2018-10-09 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9794216B2 (en) | 2010-09-28 | 2017-10-17 | Amazon Technologies, Inc. | Request routing in a networked environment |
US10015237B2 (en) | 2010-09-28 | 2018-07-03 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10778554B2 (en) | 2010-09-28 | 2020-09-15 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US11108729B2 (en) | 2010-09-28 | 2021-08-31 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US10079742B1 (en) | 2010-09-28 | 2018-09-18 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US10931738B2 (en) | 2010-09-28 | 2021-02-23 | Amazon Technologies, Inc. | Point of presence management in request routing |
US11632420B2 (en) | 2010-09-28 | 2023-04-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9800539B2 (en) | 2010-09-28 | 2017-10-24 | Amazon Technologies, Inc. | Request routing management based on network components |
US11336712B2 (en) | 2010-09-28 | 2022-05-17 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9930131B2 (en) | 2010-11-22 | 2018-03-27 | Amazon Technologies, Inc. | Request routing processing |
US10951725B2 (en) | 2010-11-22 | 2021-03-16 | Amazon Technologies, Inc. | Request routing processing |
US20120215576A1 (en) * | 2011-02-17 | 2012-08-23 | International Business Machines Corporation | Allocating tasks to resources |
US11604667B2 (en) | 2011-04-27 | 2023-03-14 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
US9253058B2 (en) | 2012-02-01 | 2016-02-02 | International Business Machines Corporation | Deploying an executable with historical performance data |
US9253059B2 (en) | 2012-02-01 | 2016-02-02 | International Business Machines Corporation | Deploying an executable with historical performance data |
WO2013113575A1 (en) * | 2012-02-01 | 2013-08-08 | International Business Machines Corporation | Deploying an executable with historical performance data |
US9628554B2 (en) | 2012-02-10 | 2017-04-18 | Amazon Technologies, Inc. | Dynamic content delivery |
US10021179B1 (en) | 2012-02-21 | 2018-07-10 | Amazon Technologies, Inc. | Local resource delivery network |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US11729294B2 (en) | 2012-06-11 | 2023-08-15 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US10225362B2 (en) | 2012-06-11 | 2019-03-05 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US11303717B2 (en) | 2012-06-11 | 2022-04-12 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US9525659B1 (en) | 2012-09-04 | 2016-12-20 | Amazon Technologies, Inc. | Request routing utilizing point of presence load information |
US10015241B2 (en) | 2012-09-20 | 2018-07-03 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US10542079B2 (en) | 2012-09-20 | 2020-01-21 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US10645056B2 (en) | 2012-12-19 | 2020-05-05 | Amazon Technologies, Inc. | Source-dependent address resolution |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
US9929959B2 (en) | 2013-06-04 | 2018-03-27 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
US10374955B2 (en) | 2013-06-04 | 2019-08-06 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
US11863417B2 (en) | 2014-12-18 | 2024-01-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10728133B2 (en) | 2014-12-18 | 2020-07-28 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US11381487B2 (en) | 2014-12-18 | 2022-07-05 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US11297140B2 (en) | 2015-03-23 | 2022-04-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9887932B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9887931B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US10469355B2 (en) | 2015-03-30 | 2019-11-05 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US11461402B2 (en) | 2015-05-13 | 2022-10-04 | Amazon Technologies, Inc. | Routing based request correlation |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US10691752B2 (en) | 2015-05-13 | 2020-06-23 | Amazon Technologies, Inc. | Routing based request correlation |
US10180993B2 (en) | 2015-05-13 | 2019-01-15 | Amazon Technologies, Inc. | Routing based request correlation |
US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
US20170068484A1 (en) * | 2015-09-03 | 2017-03-09 | Sas Institute Inc. | Computer-implemented system for hierarchical unconstraining in data processes |
US9734473B2 (en) * | 2015-09-03 | 2017-08-15 | Sas Institute Inc. | Computer-implemented system for hierarchical unconstraining in data processes |
US9742795B1 (en) | 2015-09-24 | 2017-08-22 | Amazon Technologies, Inc. | Mitigating network attacks |
US10200402B2 (en) | 2015-09-24 | 2019-02-05 | Amazon Technologies, Inc. | Mitigating network attacks |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US9794281B1 (en) | 2015-09-24 | 2017-10-17 | Amazon Technologies, Inc. | Identifying sources of network attacks |
US10642633B1 (en) * | 2015-09-29 | 2020-05-05 | EMC IP Holding Company LLC | Intelligent backups with dynamic proxy in virtualized environment |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US11134134B2 (en) | 2015-11-10 | 2021-09-28 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US11463550B2 (en) | 2016-06-06 | 2022-10-04 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10666756B2 (en) | 2016-06-06 | 2020-05-26 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US11457088B2 (en) | 2016-06-29 | 2022-09-27 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US10516590B2 (en) | 2016-08-23 | 2019-12-24 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
US10469442B2 (en) | 2016-08-24 | 2019-11-05 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
US11330008B2 (en) | 2016-10-05 | 2022-05-10 | Amazon Technologies, Inc. | Network addresses with encoded DNS-level information |
US10469513B2 (en) | 2016-10-05 | 2019-11-05 | Amazon Technologies, Inc. | Encrypted network addresses |
US10616250B2 (en) | 2016-10-05 | 2020-04-07 | Amazon Technologies, Inc. | Network addresses with encoded DNS-level information |
US10505961B2 (en) | 2016-10-05 | 2019-12-10 | Amazon Technologies, Inc. | Digitally signed network address |
US11762703B2 (en) | 2016-12-27 | 2023-09-19 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US11290418B2 (en) | 2017-09-25 | 2022-03-29 | Amazon Technologies, Inc. | Hybrid content request routing system |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
US11362986B2 (en) | 2018-11-16 | 2022-06-14 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
Also Published As
Publication number | Publication date |
---|---|
CN101044486A (en) | 2007-09-26 |
WO2006037077A2 (en) | 2006-04-06 |
CN100555297C (en) | 2009-10-28 |
TW200630818A (en) | 2006-09-01 |
US8224465B2 (en) | 2012-07-17 |
WO2006037077A3 (en) | 2006-07-20 |
US20100223379A1 (en) | 2010-09-02 |
EP1805679A2 (en) | 2007-07-11 |
TWI382318B (en) | 2013-01-11 |
EP1805679A4 (en) | 2008-12-24 |
US7720551B2 (en) | 2010-05-18 |
JP2008515106A (en) | 2008-05-08 |
US20080216088A1 (en) | 2008-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7720551B2 (en) | Coordinating service performance and application placement management | |
Nouri et al. | Autonomic decentralized elasticity based on a reinforcement learning controller for cloud applications | |
US7756989B2 (en) | Method and apparatus for dynamically adjusting resources assigned to plurality of customers, for meeting service level agreements (SLAs) with minimal resources, and allowing common pools of resources to be used across plural customers on a demand basis | |
KR101096000B1 (en) | Method For Managing Resources In A Platform For Telecommunication Service And/Or Network Management, Corresponding Platform And Computer Program Product Therefor | |
US7584281B2 (en) | Method for allocating shared computing infrastructure for application server-based deployments | |
US8510745B2 (en) | Dynamic application placement under service and memory constraints | |
Abrahao et al. | Self-adaptive SLA-driven capacity management for internet services | |
Nguyen et al. | Monad: Self-adaptive micro-service infrastructure for heterogeneous scientific workflows | |
Al-Dulaimy et al. | Multiscaler: A multi-loop auto-scaling approach for cloud-based applications | |
Wei et al. | Proactive virtualized resource management for service workflows in the cloud | |
Ashraf et al. | Feedback control algorithms to deploy and scale multiple web applications per virtual machine | |
Mostafavi et al. | A stochastic approximation approach for foresighted task scheduling in cloud computing | |
Caporuscio et al. | Reinforcement learning techniques for decentralized self-adaptive service assembly | |
Björkqvist et al. | Cost-driven service provisioning in hybrid clouds | |
Tarahomi et al. | A prediction‐based and power‐aware virtual machine allocation algorithm in three‐tier cloud data centers | |
Kim et al. | Dynamic control of cpu usage in a lambda platform | |
Yagoubi et al. | Load balancing strategy in grid environment | |
Suresh et al. | User demand aware grid scheduling model with hierarchical load balancing | |
Bagga et al. | Moldable load scheduling using demand adjustable policies | |
Farooq et al. | Achieving efficiency, quality of service and robustness in multi-organizational Grids | |
Thangaraj et al. | NFC-ARP: neuro-fuzzy controller for adaptive resource provisioning in virtualized environments | |
Simmons et al. | Dynamic provisioning of resources in data centers | |
Ogawa et al. | Hierarchical and Frequency-Aware Model Predictive Control for Bare-Metal Cloud Applications | |
Phan | Proactive and Dynamic Task Scheduling in Fog-cloud Environment | |
HoseinyFarahabady et al. | Dynamic control of CPU cap allocations in stream processing and data-flow platforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TANTAWI, ASSER N.;PACIFICI, GIOVANNI;SPREITZER, MICHAEL;AND OTHERS;REEL/FRAME:015588/0538;SIGNING DATES FROM 20041014 TO 20050111 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |