The time complexity of the Algorithm 13 is analyzed as follows. Step 1 of the algo- rithm takesO(n) time and step 2 takesO(nlogn) times. Mostly the time complexity of the algorithm is being dominated by the computation time taken by step 4 - 11.
The maximum time taken by step 4 -11 can be expressed as O(mn), where n is the number of tasks, andm represents the number of machines.
6.6 Scheduling on Machines with Different Failure
6.6. SCHEDULING ON MACHINES WITH DIFFERENT FAILURE RATES
Submitted Tasks
Job Prioritization
Host Server Selection
Job
Allocation / Execution
Figure 6.2: Reliability model
6.6.1 Task Prioritization
Based on the discussion in the application environment (Section 6.3.1) and their characteristics (defined in Table6.1), the jobs need to be arranged in a specific order for its submission to the system. In this work, the ordering of jobs depends on three factors. Those factors are (a) execution time (ei), (b) reliability requirement (ri), and (c) number of tasks each job have (vi). These three job characteristics (as shown in Table 6.1) may be viewed as follows, (a) execution time (high, medium, and low), (b) reliability requirement (high, medium, and low), and (c) number of tasks per job (high, medium, and low). Based on these criteria the following observations are made for further analysis.
• Job with higher execution time duration (HDJ) need the most reliable machine to be scheduled irrespective of the reliability requirement and the number of tasks per job. Along with high execution time, the high-reliability requirement and more number of tasks per job made the situation worse and that leads to deploying more replications to meet the reliability requirement.
• Jobs with medium-range execution (MDJ) time with high-reliability require- ments and a higher number of tasks per job need the most reliable machine to be scheduled.
• For lower execution time jobs (LDJ), there is no stringent need for a highly reliable machine because the reliability requirement for those jobs can easily be satisfied when scheduled to any type of machine.
• Other combinations of job characteristics are more flexible to schedule any type of machine to enhance the load balancing among the set of machines.
These above observations help us to propose a better scheduling approach for the stated problem. The range of high, mid, and low of any job characteristics can be suitably taken based on the given job parameters. Further highlighting the observa- tion from Figure 6.1(a), the job with longer execution time should be scheduled to a
Table 6.1: Job characteristics Execution time
(ei)
Reliability requirement (ri)
No. of tasks (vi)
Higher duration job (HDJ)
Higher reliability require- ment (HRR)
High number of parallel tasks (HNP)
Medium duration job (MDJ)
Medium reliability require- ment (MRR)
Medium number of parallel tasks (MNP)
Lower duration job (LDJ)
Lower reliability require- ment (LRR)
Lower number of parallel tasks (LNP)
highly reliable machine so that it meets it’s reliability requirement with less number of extra VM deployment. However, it may not be true all the time, because more number of tasks per job will increase the reliability requirement of each task of that job. So any job with more number of tasks must be given priority to be scheduled to high reliable machines as the reliability requirement is high per each task. The same kind of observation can be made for the job with high-reliability requirements even though it has only one task.
Based on these observations, we formulated the ranking criteria for ordering the jobs which depend on execution time (ei), number of tasks (vi), and reliability requirement (ri). As all the jobs are offline jobs, we assume here that the job parameters (discussed in Section 6.3.1) are known before scheduling. We rank the jobs using the Eq. 6.23.
rank(Ji) =−logRreqi
ei =−log vi√ ri
ei (6.23)
where Rreqi = vi√
ri and vi is the number of tasks of the job Ji.
6.6.2 Host Machine Selection
The set of host machines that are available for task allocation need to be prioritized based on its failure rate. The machine with minimum failure rate is given more priority than that of a high failure rate machine. The machines are arranged based on the non-decreasing order of their failure rates. Once the task prioritization and host machine selection were done, we have to efficiently allocate the tasks to machines to minimize the resource utilization (required number of machines (m)). The tasks with higher execution time must be allocated to high reliable machines because that may reduce the number of replications for the task to meet it’s reliability requirement. The sub-reliability requirement of the entry task of a job is calculated using Rreqi1 = √N
ri,
6.6. SCHEDULING ON MACHINES WITH DIFFERENT FAILURE RATES
where N = vi is the number of tasks belongs to job Ji [262]. For the subsequent tasks i.e., Ti2 ... Tivi, the sub-reliability requirement is calculated based on the actual allocation of it’s previous tasks [261]. The sub-reliability requirement of subsequent tasks is calculated as follows.
Rreqil =
N−l+1
v u u u u t
Rreqi
l−1
Y
x=1
R(Tix)
(6.24)
Considering all the tasks to satisfy their reliability requirement and finish their ex- ecution before the deadline is a challenging job. In this approach, we would like to allocate tasks with longer execution time and high-reliability requirements to high reliable machines. The allocation policy checks for the machine with the most failure rate to satisfy the task’s reliability requirement from the set of active machines where it satisfies it’s deadline requirement. The scheduling policy tries to find the candidate machine for allocation to balance the load.
6.6.3 Overall Approach
The pseudo-code of the proposed approach to minimize the replication and satisfy the reliability requirement is shown in Algorithm14. The main idea of the Algorithm 14 is to choose the minimum number of replications of a task so that the reliability value of the task will be just enough of their requirement. As we know that the jobs (or applications) reliability is the product of all its tasks reliability (as defined in Eq. 6.4), so we compute the required reliability of each task of the job Ji. The required reliability of each task belongs to a job depends on the number of tasks associated with the job. Let say ri, be the required reliability of a job Ji, so the reliability requirement of the first task must be greater thanRreqi = N√
ri, where N is the number of tasks of the job Ji. Subsequent reliability requirement of other tasks of the job is computed using Eq. 6.24 after the allocation of previous tasks to the appropriate PMs. If for any task R(Til) < Rreqi , then no matter how many replicas can be deployed for other tasks, ri can not be satisfied for the job Ji. The proposed algorithm efficiently allocates the tasks to machines so that the overall reliability requirement of all the jobs must be satisfied.
The proposed approach sorts all the tasks by their execution time and all the machines by their failure rate (step 1 and 2). Step 3 of the Algorithm computes the lower bound of the number of PMs required for initial allocation, where we have considered
all PMs having the same failure rate i.e., an average of all failure rates. That give us a fair estimation of the minimum number of PMs required for a feasible allocation.
Steps 5-22 allocate the tasks to appropriate PMs so that their reliability requirement can be obtained. The approach selects the machines for a task where it must be executed before its deadline and results in minimum replication. Whenever a task needs more than one replication for the reliability requirement then the algorithm selects different PM at each time for allocation and the reliability requirement of each task is computed using Eq. 6.24 except the first allocation. The term Mmax represents the host server where a task achieves maximum reliability value from the set of active machines (using Eq. 6.1).
The time complexity of the Algorithm 14 is analyzed as follows. Step 1 of the al- gorithm takes O(nlogn) time and step 2 takes O(mlogm) times. Mostly the time complexity of the algorithm is being dominated by the computation time taken by step 5 - 22. Maximum time taken by step 5 -22 can be expressed asO(mnk) wherenis the number of tasks,m represents the number of machines, and k = max(k1, k2,· · · , kn).
The term ki represents the number of replication of the task Ti.