SuiteCloud Processors Priority Scheduling Examples
The examples in this section (Default Priority Scheduling Example and Varying Priority Scheduling Example) show three diagrams. The diagrams compare how 18 jobs are handled by:
-
Pre-2017.2 Scheduling Queues
-
2017.2 SuiteCloud Processors: All queues are removed
-
2017.2 SuiteCloud Processors: Some queues are removed; jobs 1 - 3, 15, and 18 still use queues
The following table shows the duration of each job submitted. As the examples show, the processing environment doesn't affect the time it takes to complete each job after processing starts.
Each map/reduce stage is handled by a minimum of one job. So, the duration listed for map/reduce jobs is per stage. For example, the reduce stage jobs 11 and 12 have a combined duration of 5. This means that the sum of the duration of jobs 11 and 12 is 5. If one job’s canceled or not created, the combined duration is just the time for the remaining job..
Job |
Duration |
---|---|
1 |
5 |
2 |
2 |
3 |
2 |
4 |
6 |
5 +6 |
2 |
7 + 8 |
1 |
9 + 10 |
5 |
11 + 12 |
5 |
13 + 14 |
2 |
15 |
3 |
16 |
3 |
17 |
3 |
18 |
2 |
Default Priority Scheduling Example
This example assumes default priority settings (standard priority) and default preferences. It also assumes that each job executes in full without yielding.
The map/reduce deployment in the first diagram has a Queues value of 2 and 3. The map/reduce deployment in the second and third diagrams has a Concurrency Limit value of 2.
With the introduction of SuiteCloud Processors, the Queues field is replaced with the Concurrency Limit field on map/reduce deployments.
Diagram Key
-
Black circles are scheduled script jobs. Each scheduled script is processed by a single job.
-
Red circles are map/reduce jobs. In this example, all of the map/reduce jobs belong to a single map/reduce task. The map/reduce jobs include a label that indicates the map/reduce stage being processed.
-
Jobs in columns labeled Q1, Q2, and Q3 are for deployments that still use queues. The jobs in columns without a label are for deployments that no longer use queues.
-
P1, P2, and P3 represent the processors that are available in the processor pool.
Note:Although processors are labeled in this example, they aren't technically individual entities. Also, a real account would never have only three processors available to it. The minimum number of processors available to an account with SuiteCloud Plus is listed at SuiteCloud Plus Settings.
-
Numbers within each circle represent the time stamp on the job submission, with 1 being the first job submitted. The example also uses this number as a unique identifier for each job.
-
Arrows show dependencies. For example, in the Scheduling Queues diagram, job 2 can't start until job 1 is complete.
-
Black arrows represent queue dependencies. Jobs within a queue must be processed in the order they were submitted.
-
Red arrows represent dependencies imposed by the map/reduce algorithm.
-
Green arrows indicate access to processors.
-
Scheduling Queues Only |
SuiteCloud Processors – All Queues Removed |
SuiteCloud Processors – Some Queues Removed |
---|---|---|
![]() |
![]() |
![]() |
Time Slot |
Scheduling Queues Only |
SuiteCloud Processors – All Queues Removed |
SuiteCloud Processors – Some Queues Removed |
---|---|---|---|
101 |
Jobs 1, 4, and 6 start. |
Jobs 1, 2, and 3 start. |
Jobs 1, 4, and 5 start. |
102 |
Job 6 cancels job 5. The getInput stage can't be processed by multiple jobs, so the first getInput job to start (job 6) automatically cancels all others in the queues. |
— |
— |
103 |
Job 6 completes. The next job in Q3, job 8, starts. |
Jobs 2 and 3 complete. Jobs 4 and 5 start. |
Job 5 completes. There's no job 6 with SuiteCloud Processors. In the Scheduling Queues example, jobs 5 and 6 are both getInputstage jobs. The getInput stage can't be processed by multiple jobs. Since this map/reduce deployment isn't using queues, multiple getInput stage jobs are no longer needed. Job 7 starts. |
104 |
Job 8 completes. The map stage can be processed by multiple jobs. But since the other map stage job, job 7, is unable to start (the job utilizing its processor, job 4, isn't yet complete), job 8 completes the entire map stage. Job 7 is no longer needed, so it is canceled. The next job in Q3, job 10, starts. |
— |
Job 7 completes. Since job 7 completes the entire map stage, job 8 is no longer needed. Job 8 is canceled. Job 9 starts. |
105 |
Job 10 cancels job 9. The shuffle stage can't be processed by multiple jobs, so the first shuffle job to start (job 10) automatically cancels all others in the queues. |
Job 5 completes. There's no job 6 with SuiteCloud Processors. In the Scheduling Queues example, jobs 5 and 6 are both getInputstage jobs. The getInput stage can't be processed by multiple jobs. Since this map/reduce deployment isn't using queues, multiple getInput stage jobs are no longer needed. Job 7 starts. |
— |
106 |
Job 1 completes. The next job in Q1, job 2, starts. |
Job 7 completes. Since job 7 completes the entire map stage, job 8 is no longer needed. Job 8 is canceled. Job 1 completes. Jobs 9 and 15 start. Jobs 11 - 13 are dependent on job 9. There's no job 10 or job 14 with SuiteCloud Processors. In the Scheduling Queues example, jobs 9 and 10 are both shuffle stage jobs and jobs 13 and 14 are both summarize stage jobs. The shuffle and summarize stages can't be processed by multiple jobs. Since this map/reduce deployment isn't using queues, multiple shuffle and summarize stage jobs are no longer needed. |
Job 1 completes. The next job in Q1, job 2, starts. |
107 |
Job 4 completes. Q2 is blocked. The next job in Q2, job 11, can't start. It is dependent on job 10, and job 10 isn't complete. |
— |
Job 4 completes. The first job in Q3, Job 15, starts. |
108 |
Job 2 completes. The next job in Q1, job 3, starts. |
— |
Job 2 completes. The next job in Q1, job 3, starts. |
109 |
Job 10 completes. Job 11 can now start and Q2 is no longer blocked. The next job in Q3, job 12, starts. These are both reduce stage jobs. The reduce stage can be processed by multiple jobs. |
Jobs 4 and 15 complete. Jobs 16 and 17 start. |
Job 9 completes. There's no job 10 with SuiteCloud Processors. In the Scheduling Queues example, jobs 9 and 10 are both shuffle stage jobs. The shuffle stage can't be processed by multiple jobs. Since this map/reduce deployment isn't using queues, multiple shuffle stage jobs are no longer needed. Job 11 starts. |
110 |
Job 3 completes. The next job in Q1, job 16, starts. |
— |
Jobs 3 and 15 complete. There are no additional jobs to process in Q1. Jobs 12 and 16 start. |
111 |
Job 11 completes. Q2 is blocked. The next job in Q2, job 13, can't start. It is dependent on job 12, and job 12 isn't complete. |
Job 9 completes. Job 11 starts. |
— |
112 |
Job 12 completes. Job 13 can now start and Q2 is no longer blocked. The next job in Q3, job 14, can also start. But these are both summarize stage jobs, and the summarize stage can't be processed by multiple jobs. Job 13 starts first, so job 14 is canceled. Since job 14 is canceled, the next job in Q3, job 15, starts |
Jobs 16 and 17 complete. Jobs 12 and 18 start. |
Jobs 11 and 12 complete. Jobs 13 and 17 start. |
113 |
Job 16 completes. The next job in Q1, job 17, starts. |
— |
Job 16 completes. The next job in Q3, Job 18, starts. |
114 |
Job 13 completes. There are no additional jobs to process in Q2. |
Jobs 11, 12, and 18 complete. Job 13 starts |
Job 13 completes. There's no job 14 with SuiteCloud Processors. In the Scheduling Queues example, jobs 13 and 14 are both summarize stage jobs. The summarize stage can't be processed by multiple jobs. Since this map/reduce deployment isn't using queues, multiple summarize stage jobs are no longer needed. |
115 |
Job 15 completes. The next job in Q3, job 18, starts. |
— |
Jobs 17 and 18 complete. There are no additional jobs to process. |
116 |
Job 17 completes. There are no additional jobs to process in Q1. |
Job 13 completes. There are no additional jobs to process. |
— |
117 |
Job 18 completes. There are no additional jobs to process in Q3. |
— |
— |
Varying Priority Scheduling Example
This example assumes default preferences. It also assumes that each job executes in full without yielding.
The map/reduce deployment in the first diagram has a Queues value of 2 and 3. The map/reduce deployment in the second and third diagrams has a Concurrency Limit value of 2.
With the introduction of SuiteCloud Processors, the Queues field is replaced with the Concurrency Limit field on map/reduce deployments.
The second and third diagrams vary from Default Priority Scheduling Example as follows:
-
In the second diagram, jobs 15 and 18 are high priority. Job 4 is low priority. The remaining jobs are standard priority.
-
In the third diagram, job 4 is low priority. Jobs 15 and 18 in the third diagram are standard priority.
Diagram Key
-
Black circles are scheduled script jobs. Each scheduled script is processed by a single job.
-
Red circles are map/reduce jobs. In this example, all of the map/reduce jobs belong to a single map/reduce task. The map/reduce jobs include a label that indicates the map/reduce stage being processed.
-
Circles with blue fill are high priority. The circles with gray fill are low priority. The circles with white fill are standard priority.
-
Jobs in columns labeled Q1, Q2, and Q3 are for deployments that still use queues. The jobs in columns without a label are for deployments that no longer use queues.
-
P1, P2, and P3 represent the processors that are available in the processor pool.
Note:The processors are labeled for this example. Although technically, processors aren't distinguished as individual entities. Also, a real account would never have only three processors available to it. The minimum number of processors available to an account with SuiteCloud Plus is listed at SuiteCloud Plus Settings.
-
Numbers within each circle represent the time stamp on the job submission, with 1 being the first job submitted. The example also uses this number as a unique identifier for each job.
-
Arrows show dependencies. For example, in the Scheduling Queues diagram, job 2 can't start until job 1 is complete.
-
Black arrows represent queue dependencies. Jobs within a queue must be processed in the order they were submitted.
-
Red arrows represent dependencies imposed by the map/reduce algorithm.
-
Green arrows indicate access to processors.
-
Scheduling Queues Only |
SuiteCloud Processors – All Queues Removed |
SuiteCloud Processors – Some Queues Removed |
---|---|---|
![]() |
![]() |
![]() |
Time Slot |
Scheduling Queues Only |
SuiteCloud Processors – All Queues Removed |
SuiteCloud Processors – Some Queues Removed |
---|---|---|---|
101 |
Jobs 1, 4, and 6 start. |
Jobs 15, 18, and 1 start. Jobs 15 and 18 are designated as high priority so they are assigned to processors first (in the order of submission). Job 1 is the first standard priority job submitted so it is the next job assigned to a processer. |
Jobs 1, 5, and 15 start. Job 4 is designated low priority, so it is processed after all other available standard priority jobs. All other standard priority jobs submitted before job 15 have dependencies that are blocking them. |
102 |
Job 6 cancels job 5. The getInput stage can't be processed by multiple jobs, so the first getInput job to start (job 6) automatically cancels all others in the queues. |
— |
— |
103 |
Job 6 completes. The next job in Q3, job 8, starts. |
Job 18 completes. Job 2 starts. |
Job 5 completes. There's no job 6 with SuiteCloud Processors. In the Scheduling Queues example, jobs 5 and 6 are both getInputstage jobs. The getInput stage can't be processed by multiple jobs. Since this map/reduce deployment isn't using queues, multiple getInput stage jobs are no longer needed. Job 7 starts. |
104 |
Job 8 completes. The map stage can be processed by multiple jobs. But since the other map stage job, job 7, is unable to start (the job utilizing its processor, job 4, isn't yet complete), job 8 completes the entire map stage. Job 7 is no longer needed, so it is canceled. The next job in Q3, job 10, starts. |
Job 15 completes. Job 3 starts. |
Jobs 7 and 15 complete. Since job 7 completes the entire map stage, job 8 is no longer needed. Job 8 is canceled. Jobs 9 and 16 start. |
105 |
Job 10 cancels job 9. The shuffle stage can't be processed by multiple jobs, so the first shuffle job to start (job 10) automatically cancels all others in the queues. |
Job 2 completes. Job 5 starts. Job 4 is designated low priority, so it is processed after all other available standard priority jobs. |
— |
106 |
Job 1 completes. The next job in Q1, job 2, starts. |
Jobs 1 and 3 complete. Jobs 16 and 17 start. |
Job 1 completes. The next job in Q1, job 2, starts. |
107 |
Job 4 completes. Q2 is blocked. The next job in Q2, job 11, can't start. It is dependent on job 10, and job 10 isn't complete. |
Job 5 completes. There's no job 6 with SuiteCloud Processors. In the Scheduling Queues example, jobs 5 and 6 are both getInputstage jobs. The getInput stage can't be processed by multiple jobs. Since this map/reduce deployment isn't using queues, multiple getInput stage jobs are no longer needed. Job 7 starts. |
Job 16 completes. Job 17 starts. |
108 |
Job 2 completes. The next job in Q1, job 3, starts. |
Job 7 completes. Since job 7 completes the entire map stage, job 8 is no longer needed. Job 8 is canceled. Job 9 starts. |
Job 2 completes. The next job in Q1, job 3, starts. |
109 |
Job 10 completes. Job 11 can now start and Q2 is no longer blocked. The next job in Q3, job 12, starts. These are both reduce stage jobs. The reduce stage can be processed by multiple jobs. |
Jobs 16 and 17 complete. Job 4 starts. Job 4 is designated as low priority, but all the remaining standard priority jobs are dependent on job 9. |
Job 9 completes. There's no job 10 with SuiteCloud Processors. In the Scheduling Queues example, jobs 9 and 10 are both shuffle stage jobs. The shuffle stage can't be processed by multiple jobs. Since this map/reduce deployment isn't using queues, multiple shuffle stage jobs are no longer needed. Job 11 starts. |
110 |
Job 3 completes. The next job in Q1, job 16, starts. |
— |
Jobs 3 and 17 complete. There are no additional jobs to process in Q1. Job 12 starts. The next job in Q3, Job 18, starts. |
111 |
Job 11 completes. Q2 is blocked. The next job in Q2, job 13, can't start. It is dependent on job 12, and job 12 isn't complete. |
— |
— |
112 |
Job 12 completes. Job 13 can now start and Q2 is no longer blocked. The next job in Q3, job 14, can also start. But these are both summarize stage jobs, and the summarize stage can't be processed by multiple jobs. Job 13 starts first, so job 14 is canceled. Since job 14 is canceled, the next job in Q3, job 15, starts |
— |
Jobs 11, 12 and 18 complete. There are no additional jobs to process in Q3. Jobs 13 and 4 start. |
113 |
Job 16 completes. The next job in Q1, job 17, starts. |
Job 9 completes. There's no job 10 with SuiteCloud Processors. In the Scheduling Queues example, jobs 9 and 10 are both shuffle stage jobs. The shuffle stage can't be processed by multiple jobs. Since this map/reduce deployment isn't using queues, multiple shuffle jobs are no longer needed. Jobs 11 and 12 start. |
— |
114 |
Job 13 completes. There are no additional jobs to process in Q2. |
— |
Job 13 completes. There's no job 14 with SuiteCloud Processors. In the Scheduling Queues example, jobs 13 and 14 are both summarize stage jobs. The summarize stage can't be processed by multiple jobs. Since this map/reduce deployment isn't using queues, multiple summarize stage jobs are no longer needed. |
115 |
Job 15 completes. The next job in Q3, job 18, starts. |
Jobs 4 and 12 complete. |
— |
116 |
Job 17 completes. There are no additional jobs to process in Q1. |
Job 11 completes. Job 13 starts. |
— |
117 |
Job 18 completes. There are no additional jobs to process in Q3. |
— |
— |
118 |
— |
Job 13 completes. There's no job 14 with SuiteCloud Processors. In the Scheduling Queues example, jobs 13 and 14 are both summarize stage jobs. The summarize stage can't be processed by multiple jobs. Since this map/reduce deployment isn't using queues, multiple summarize stage jobs are no longer needed. There are no additional jobs to process. |
Job 4 completes. There are no additional jobs to process. |