Browse Prior Art Database

System and Method for scheduling resources in a multi-resource group environment with high availability and performance

IP.com Disclosure Number: IPCOM000245275D
Publication Date: 2016-Feb-25
Document File: 6 page(s) / 569K

Publishing Venue

The IP.com Prior Art Database

Abstract

This article describe an invention idea about a new scheduler architecture which can schedule resources in a multi-resource group environment with high availability and performance.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 35% of the total text.

Page 01 of 6

System and Method for scheduling resources in a multi

System and Method for scheduling resources in a multi- --resource group environment with high availability and

resource group environment with high availability and resource group environment with high availability and

performance

1


1.

.. Background

Background

Background:

::

In a large distributed compute environment, there will be a huge number of compute resources on which user's jobs (e.g., batch jobs, big data

jobs, etc.) can be scheduled to run, and these resources usually will be partitioned into multiple resources groups with some rules, e.g., partition resources based on locality, partition resources based on specific hardware capability, etc. There needs to be a resource scheduler to schedule user's jobs onto these resources. Let's take a simple example for how a typical scheduler will work, suppose there are two resource groups in the compute environment:

resource_group_1:

resource_1:16GB free memory

resource_2:8GB free memory

resource_group_2:

resource_3:4GB free memory

resource_4:16GB free memory

Now there is a user who requests 10GB memory from resource_group_1 to run a job, after the scheduler receives this request, it will make the scheduling decision: allocate 10GB memory from resource_1 to this user, and then update the free memory ofresource_1 from 16GB to 6GB.

The expectation for the scheduler is that it needs to work in an efficient , high available, reliable and scalable way, which means:

1) Scheduler needs to respond to user's requests in a low latency fashion , e.g., in several milliseconds.

2) Scheduler itself's failure needs to be transparent to users and has no significant impact on the whole environment .

3) When multiple user requests come in and try to consume the resources in the same resource group, scheduler needs to ensure the resources are consumed in a reliable and accurate way, e.g., no resource overuse.

4) When more resources are added into the environment, they need to be automatically picked up by the scheduler rather than some manual steps, so that they can be consumed by user immediately, i.e., the capacity of compute environment can be seamlessly extended.

Currently in the industry, monolithic scheduler is the common way to schedule resources in a multi-resource-group environment, and it uses a

1


Page 02 of 6

single centralized scheduling algorithm to schedule resources for all jobs . See the diagram below for its architecture:

The disadvantages of monolithic scheduler are:

1) There is only a single centralized scheduler, so if multiple user requests come in, it can only handle these requests one at a time, even each request is for a different resource group which actually should be handled independently and in parallel. So the scheduling efficiency is relatively low.

2) The centralized scheduler is a single failure point, once it fails, the whole system will be heavilyaffected, and no further user requests can be served during the dow...