## 3 Google and Alibaba Traces  
The Google data center log trace has been investigated, in detail, in [40], where the workload is assigned as a set of jobs, and each job has a set of tasks. Each task has a CPU, RAM and Disk I/O resource demand (\(RD\)). There are nine states that tasks can go through during the execution where resources scale; either scale out to tasks in Submit, Schedule, Pending and Running states or scale in when tasks are in Evict, Fail, Finish, Kill and Lost states. Resource provision (\(PR\)) is achieved by adding, modifying or removing the physical server. Server resources normalize to the maximum resource value, where the four machine types that are normalized for maximum resources are 1.0, 0.75, 0.5 and 0.25 resource units. Figure 1: Review of Elastic Resources Scaling Methods and Taxonomy. The Google workload demand and data center resource provisioning relationships are shown in Figures 2 and 3. In elastic scaling, there are three cases of provisioning resources, releasing too many resources (much more resources than is required), called over-provisioning (\(OP\)), matching the demand condition as in SLA, called fit-provisioning (\(FP\)), or giving fewer resources than needed, called under-provisioning (\(UP\)). It is clear that in Figure 2, an under-provisioning case happens, and in Figure 3, an over-provisioning case happens after 600 min. The fit-provisioning case occurs in both figures with limited time intervals. These two figures show the real workload demand and how the data center reacts to it. In both workload types, there are violations of either over-provisioning or under-provisioning that can be seen visually. In practical scaling, it is very important to define the boundaries of resource scaling, which defines over/under/fit-provisioning states. The boundaries of the Upper Bound (\(UB\)) and Lower Bound (\(LB\)) define the range of the fit state. Usually, the Lower Bound is equal to the exact demand (\(LB=RD\)), and the Upper Bound is greater than the demand with a certain base value \(B\) where (\(UB>RD+B\)). Under-provisioning happens when the provisioned resources are lower than the requested demand (\(UP=PR<RD\)). Fit-provisioning (\(FP\)) is achieved when the provisioned resources are between the \(LB\) and the \(UB\) (\(FP=(RD+B)\geq PR\geq RD\)). Over-provisioning (\(OP\)) is defined when the provisioned resources are more than the sum of demand and boundary value (\(OP=PR>(RD+B)\)). Defining the boundary value \(B\) is a challenging task because the workload demand shape is non-deterministic. For Google trace, it is shown statistically that \(B=RD\times 0.2\) would be fair for resource utilization and system performance in sample 1, Figure 2, since the demand increases non-continuously. However, in the case of a gradual demand increase, as in sample 2, Figure 3, the resources provisioned become very large, and resource wastage increases dramatically. A general gradual increase in the requested demand is depicted in Figure 4, where the Upper Bound represents the sum of the demand and boundary (\(RD+B\)), and the Lower Bound is equal to the actual demand. Note that in Figure 4, the curve for the Lower Bound is the same as the demand curve. The best provisioning value is the provision line that has a value close to the demand and a variable base value, \(B\), as it is clear that the demand was small in the beginning and the boundary value was \(B=0.5\times RD\); however, with higher demand values \(B=0.01\times RD\). The value of \(B\) must be reasonable with respect to the demanded resources provisioned, such that it is as close as possible to the demand. On the other hand, fixing the \(B\) value as a small constant factor will cause many provisioning problems because the configuration time and resource preparation has a relationship with the total demand. The value of \(B\) must dynamically change as the demand increases.