Various exemplary embodiments disclosed herein relate generally to optimization mechanisms for latency reduction and elasticity improvement in geographically distributed datacenters.
Cloud computing is a paradigm that shifts the location of computing infrastructures (such as servers, storage and systems software) to a facility in the network in order to reduce costs. Services are delivered to end users over the Internet or generally over any other network. The facility that hosts the computing infrastructure is usually referred to as a datacenter, which is also called a cloud. The advantage of a datacenter is that computing resources may be pooled in a large scale so that it may effectively respond to instantaneous traffic demand even under unexpected events. Elasticity is the term that is usually used to describe the ability of a cloud provider to scale up or down its resources (e.g., number of servers) for a given user according to the traffic load. The resources dynamically allocated to an end user may be offered in a pay-per-use model so that the user is mainly concerned with operational expenditure and not capital expenditure.
Current prominent examples of cloud providers include Amazon EC2, Microsoft Azure and Google App Engine. Although no detailed data is publicly available, these clouds typically consist of a few large-scale datacenters located at different sites. Such datacenters having a few locations spread over a large geographic area (a country) may be called centralized datacenters. In a typical deployment, each datacenter may host tens of thousands of servers or more. These centralized datacenters may achieve elasticity and the perception of infinite capacity through statistical multiplexing. Because there may only be a few large-scale datacenters, they cannot be all located close to the end users. As a result, users located further away from a datacenter may experience unacceptable latency. With many smaller datacenters (thousands of servers or less per site), the sites may be located much closer to the end users. However, proper provisioning may not be possible or too costly with smaller datacenters when there is a spike in demand that cannot be predicted by a cloud provider.
Accordingly, techniques and methods to build a new type of cloud computing system suited for telephone company (telco) environments may be developed, because telcos and other similar service providers may provide cloud-computing using existing infrastructure. Telcos and other similar service providers may have a “last-mile” advantage. Unlike the traditional cloud-computing providers, telcos can take advantage of considerable real-estate properties of thousands of central offices (COs) to host computing infrastructures. Another advantage of the telcos may be that they also own the “last mile” and therefore have a huge advantage in offering mission-critical services that require low latency.
Further, telco based cloud-computing may be implemented using low-cost construction. Studies have investigated the electricity consumption of different components in COs. These studies show that class-5 TDM telephone switches are the largest contributor of power consumption at COs, accounting for 43% of the total equipment power consumption. These switches also tend to be bulky and take up a large area of a CO. The power consumption of a telephone switch in a typical CO is estimated to be 53 KW. If the power consumption of a server is on the order of 100 W on average, this is equivalent to hosting about 500 servers. It is well known that the widespread use of cell phones have had a huge impact on the decline of landline phones. According to the National Center for Health Statistics data as of December 2009, one out of every 4 Americans has given up her landline phone. As a result, it is likely that telephone switches will eventually be retired and may be displaced with servers, transforming a CO to also function as a small-scale or medium-scale datacenter.
Therefore, distributed datacenters appear to offer a very attractive telco cloud solution because each datacenter site may serve the end users close to it. Unfortunately, such datacenters with a small number of servers may not have the elasticity of larger cloud-computing systems. Therefore, there remains a need for distributed datacenters with load reallocation. When a given datacenter receives more demand than it can process locally, the system may reallocate a fraction of the demand to one or more remote datacenters. Because jobs that are processed by remote datacenters may incur additional round-trip time between the local and remote datacenters, the system may also choose the appropriate locations of the remote datacenters to minimize latency (response time perceived by end users) or other desired performance characteristics.
A brief summary of various exemplary embodiments is presented below. Some simplifications and omissions may be made in the following summary, which is intended to highlight and introduce some aspects of the various exemplary embodiments, but not to limit the scope of the invention. Detailed descriptions of a preferred exemplary embodiment adequate to allow those of ordinary skill in the art to make and use the inventive concepts will follow in later sections.
Various exemplary embodiments relate to a method for reallocating loading from a datacenter site to other datacenter sites in a cloud computing network using an objective function that defines a performance characteristic of the cloud computing network at each datacenter site and a derivative of the objective function, the method comprising: evaluating the derivative for each of a set of other datacenter sites; identifying based upon the evaluated derivatives a datacenter site in the set of eligible datacenter sites that results in the smallest impact in the objective function when its load fraction is incremented; and reallocating loading among the datacenter site and the other datacenter sites based upon the evaluated derivatives and the identified other datacenter site. Eligible datacenter sites (those that are allowed to send load to a given site or receive load from a given site) can include (1) all of the sites, (2) the set of neighbors, (3) the set of pre-configured sites, or (4) the set that is dynamically determined by the distributed method.
Various exemplary embodiments relate to a method for reallocating loading at a datacenter site to other datacenter sites in a cloud computing network using an objective function that defines a performance characteristic of the cloud computing network at each datacenter site and a derivative of the objective function, the method comprising: evaluating the derivative for each of a set of other datacenter sites; identifying based upon the evaluated derivatives a datacenter site in the set of eligible datacenter sites that results in the largest improvement in the objective function when its load fraction is decremented; and reallocating loading among the datacenter site and the other datacenter sites based upon the evaluated derivatives and the identified other datacenter site.
Various exemplary embodiments relate to a method for reallocating loading from a datacenter site to other datacenter sites in a cloud computing network using an objective function that defines a performance characteristic of the cloud computing network at each datacenter site and a derivative of the objective function, the method comprising: determining if the datacenter site is overloaded; if the datacenter site is overloaded then performing the following steps: evaluating the derivative for each of a set of other datacenter sites; identifying based upon the evaluated derivatives a datacenter site in the set of eligible datacenter sites that results in the largest improvement in the objective function when its load fraction is decremented; and reallocating loading among the datacenter site and the other datacenter sites based upon the evaluated derivatives and the identified other datacenter site; if the datacenter site is not overloaded performing the following steps: evaluating the derivative for each of a set of other datacenter sites; identifying based upon the evaluated derivatives a datacenter site in the set of eligible datacenter sites that results in the smallest impact in the objective function when its load fraction is incremented; and reallocating loading among the datacenter site and the other datacenter sites based upon the evaluated derivatives and the identified other datacenter site.
In order to better understand various exemplary embodiments, reference is made to the accompanying drawings, wherein:
To facilitate understanding, identical reference numerals may be used to designate elements having substantially the same or similar structure and/or substantially the same or similar function.
Jobs are processed by a datacenter differently according to their applications. In general, applications may be classified in terms of their resource requirements as: (1) processing-intensive, (2) bandwidth-intensive or (3) storage-intensive. Content delivery is an example that is both bandwidth-intensive and storage-intensive. Internet search is an example that is both processing-intensive and storage-intensive. Telco services found in the control plane are typically processing-intensive. The following embodiments focus on applications that are processing-intensive. Given that each datacenter i (i=1, . . . N), receives type-k jobs per time unit from end users, the fraction of the jobs that should be processed locally and remotely to optimize a given objective function may be determined. Different applications may involve different metrics depending on the service-level-agreement (SLA) between the user and the cloud provider. Latency may be an important metric that influences user experience and that has also been widely considered in the literature. It may be assumed that the load on each datacenter is relatively static and is known by an entity that deals with solving the optimization problem. While a specific objective function is described below directed toward minimizing a weighted average delay, other objective functions may be used to minimize or maximize any desirable performance metric or metrics.
The problem may be posed as a non-linear program with a convex objective function. The decision variable or the reallocation matrix, θi,jk, denotes the fraction of load of type-k jobs that is to be reallocated from site i to site j. It is assumed that a job may be either processed by a local datacenter or a remote datacenter in its entirety. If a job is processed by a remote datacenter, there may be an additional round-trip delay for submitting the job and getting a response, denoted by τi,j, between the two sites i and j. The optimization problem that minimizes the weighted average delay may be defined as follows:
Constraint (2) reflects a requirement that the fractions of load reallocated should be nonnegative, while constraint (3) states the natural condition that the reallocation fractions from a given site i to all sites (including itself) should sum to 1. Constraint (4) stipulates that the utilization at site j should not exceed 1−ε to avoid overload, for a small ε>0.
Let λik be the total exogenous type-k job arrival rate (also called load) from end users that are connected to site i. Equation (5) defines the corresponding normalized arrival rate at site i as the ratio of the total exogenous arrival rate at site i to the total exogenous arrival rate at all sites. Equation (6) defines the total arrival rate of jobs that are processed at site j. This accounts for jobs sent by end users connected to site j and jobs reallocated from other sites. Equation (7) defines the utilization at site j, where βk is the average processing time of a type-k job at a server, and Kj is the number of servers at site j. Equation (8) defines the average processing delay of type-k jobs at site j for multiple-server approximation and single-server approximation. This equation assumes that the job arrival process is a Poisson process. In general, it is sufficient for Equation (8) to be any convex function of ρj. For the multiple-server approximation, it is assumed that arriving jobs are perfectly load balanced across all Kj servers such that each server receives a 1/Kj fraction of the total load. At each server, a processor-sharing scheduler is assumed among different types of jobs. The single-server approximation provides a speed-up factor of Kj to service a job. This may be used to model a job that may be divided into equal tasks and processed in parallel among the available servers in a datacenter.
Striving to optimize equation (1) may lead to a network operating system that may effectively manage resources in multiple sites. An important task of the system is to collect measurements of job arrival rates and estimate their service requirements. These measurements are updated in each interval with appropriate duration depending on load fluctuations. With a centralized computation entity, there may be a central location that gathers the measurement information and runs the optimization method in each interval to dynamically reallocate loads. An alternative may be to use a distributed method for load reallocation. Here, each site may collect the measurement information that is useful to itself.
For the case without load reallocation, Table 1 shows the parameters values for the job arrival rate, λi and the average service rate, μi, at each site i. As all jobs are processed locally at their respective datacenters, there is no additional transmission delay to reallocate load and τ=0. The average delay (response time experienced by users) at each site is given in the last column. In this example, the weighted average delay is 0.8125 time units.
Below the performance in another example of a different cloud alternative is evaluated.
For this example, three alternatives are compared: (1) a centralized datacenter with servers located in one site, (2) distributed datacenters without load reallocation and (3) distributed datacenters with load reallocation. It is assumed that there is one type of job and the average job service time is β=1 time unit and the number of servers is Kj=K for all j. For the centralized datacenter, the number of servers is NK, where N=32. We use the multiple-server approximation in the evaluation.
For the distributed datacenters without load reallocation, the utilization at site j is ρj=λjβ/Kj=λj/K, for Kj=K and β=1. Therefore, the utilizations at different sites may vary when the loads are non-uniform. With load reallocation, the utilization at site j is given by equation (7). Although load reallocation may attempt to minimize the weighted delay, the utilizations at different sites are generally fairly balanced. For the centralized datacenter, the total arrival rate is Σi=1Nλi=Nλ and the total service rate is Σi=1NKi/β=NK, for Kj=K and β=1. The utilization at the centralized datacenter is λ/K. In other words, variation in loads at different sites may not affect the utilization at the centralized server if the total load is the same.
One of the most attractive benefits of cloud computing is the ability to scale resources up or down dynamically and allow users to believe that the cloud resources are unlimited. Obviously, more servers deployed in a datacenter improve the elasticity. While it may be common to deploy a large number of servers in a centralized datacenter, it may become uneconomical with distributed datacenters for a large number of sites. Moreover, for a telco datacenter located in a typical CO, the power and real-estate constraints will generally prohibit deployment of a larger number of servers.
To evaluate elasticity of the three alternatives, we perform the following experiment. In each trial, a load λi may be independently generated for each site i according to a uniform distribution over [λmin,λmax]. After the load for each site has been generated, the loads for a given utilization may be rescaled.
The use of a centralized method for optimizing the load reallocation in any typical network, may prove to be difficult because of the large amount of processing required to optimize the network for a large number of datacenters and the need to collect information from each of the datacenters to perform the optimization. Therefore, a distributed method implemented at a datacenter using a minimal amount of information from the other datacenters would be beneficial.
A distributed method for solving the optimization problem as outlined in equations (1)-(8), i.e., finding the optimal load reallocation fractions θ*={θijk*} will now be described. For convenience, the scenario with just a single job type is described and the superscript k is suppressed, but the method easily extends to the case of several job types. It may be assumed that
to ensure that a feasible solution exists.
In general, the method seeks to maximize or minimize the objective function using a distributed method carried out by each datacenter. In the present example the objective function to be minimized is the weighted average delay. Other objective functions based upon various parameters may also be used.
In one embodiment, the high-level operation of the method may be described as follows. At each iteration, each site i may calculate what the increase δij in the global objective function (the weighted average delay) would be if it were to send an additional infinitesimal fraction of load to any site j (including site i itself, which would amount to keeping more load at site i itself). Each site i then may determine for which site j the increase in the global objective function is minimum, let us say jmin(i). Next, site i may decrease the fraction of load reallocated to all sites other than jmin(i) by a “small” amount that may be proportional to δij, and at the same time may increase the fraction of load reallocated to site jmin(i) by an amount that is equal to the total reduction of the load reallocated to all other sites. As a result, the global objective function may be reduced at each iteration, provided that the step size is “not too small”, until eventually the optimum is reached and the step size reduces to zero. This method may be described as using a “min-rule” method.
A more detailed specification of the operation of the method may be described as follows. Starting from an arbitrary (feasible) initial solution θ(0), the method may produce a sequence of solutions θ(1), θ(2), . . . , with θ(t)→θ* as t→∞. It may be noted here that θ* may not be unique.
Specifically, in order to obtain θ(t+1) from θ(t), the method may first calculate a derivative of the objective function described in equation (1) with respect to θi,j::
with Γj≡1 in the multiple-server approximation and Γj=1/Kj in the single-server approximation, then may determine j min(i)=argminjαij, and for each i may calculate γij=αi,j−αi,j min(i), where here we suppress the update time “t” to simplify the notation. In addition, the method may compute for each j, j=1, . . . , N
Then, the method may calculate θij(t+1)=θ(t)−ηij(t), with ηij(t)=min{θij(t),δγij(t)} for all j≠j min(i), κ>0, and
η is a reallocation adjustment matrix that reflects the shifting of loading from one site to another. The overall method is described in
Note that the method may operate in a largely distributed manner because it suffices for each site j to advertize the value of ρj(θ), so that each site i may then determine the values of αij(t), j min(i) and ηijl (t) based on these values in conjunction with the τij values.
Further observe that in general
i.e., it is generally not optimal for site i to send traffic to the site that offers minimum delay, because it should also account for the impact on other nodes, as captured by the last term in the above expression for the partial derivative. At low load, i.e., ρj<<1, j=1, . . . N, the link latencies may dominate, and j min(i)=argminjτij=i, i.e., the traffic may be served locally. At high load, i.e., ρj↑1, j=1, . . . N, the processing delays may dominate, and
j min(i)=argminjρj(θ(t)),
i.e., the traffic may be routed to the site with the minimum relative load.
An initial solution may be generated in various ways, e.g.,
representing the system-wide average normalized load, and
with
In the methods described above, a site i may look to reallocate loading to or from other sites j. The methods as described above may consider all other sites j to be eligible for load reallocation. In another embodiment, only a subset of other sites j may be considered eligible for load reallocation. For example, at site i only neighboring datacenters, datacenters within a certain distance, or datacenters defined by network policies may be used in seeking to reallocate loading. This may have the benefit of decreasing the amount of information that site i may be required to collect and to reduce the amount of reallocation processing. Further, because distant sites may have a long delay due to travel time, it is unlikely that traffic would ever by reallocated to distant sites, so this may prevent unnecessary computation. Multiple job types can also be easily incorporated in the above methods.
It should be apparent from the foregoing description that various exemplary embodiments of the invention may be implemented in hardware and/or firmware. Furthermore, various exemplary embodiments may be implemented as instructions stored on a machine-readable storage medium, which may be read and executed by at least one processor to perform the operations described in detail herein. A machine-readable storage medium may include any mechanism for storing information in a form readable by a machine, such as a personal or laptop computer, a server, or other computing device. Thus, a tangible and non-transitory machine-readable storage medium may include read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and similar storage media.
It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative circuitry embodying the principles of the invention. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in machine readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
Although the various exemplary embodiments have been described in detail with particular reference to certain exemplary aspects thereof, it should be understood that the invention is capable of other embodiments and its details are capable of modifications in various obvious respects. As is readily apparent to those skilled in the art, variations and modifications can be effected while remaining within the spirit and scope of the invention. Accordingly, the foregoing disclosure, description, and figures are for illustrative purposes only and do not in any way limit the invention, which is defined only by the claims.