IP Library Granted Patent US 11,645,122
Granted Patent B2
US 11,645,122 · App. 16/667,816 · Granted May 9, 2023

Method, device, and computer program product for managing jobs in processing system

Inventors: Jun Tang (Chengdu, CN); Yi Wang (Chengdu, CN); Qingxiao Zheng (Chengdu, CN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F9/505G06F3/0604G06F3/0653G06F3/0673G06F9/4806G06N20/00G06F2209/5019G06F2209/5022
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,645,122
App. No.
16/667,816
Filed
Oct 29, 2019
Granted
May 9, 2023
Kind
B2
Examiner
XU, ZUJIA
Art Unit
2195
USPC
718/104
Abstract

The present disclosure relates to a method, device and computer program product for managing jobs in a processing system. The processing system comprises multiple client devices. In the method, based on a group of jobs from the multiple client devices, a current workload of the group of jobs is determined. A group of job descriptions associated with the group of jobs is determined based on configuration information of various jobs in the group of jobs. A future workload associated with the group of jobs is determined based on associations, comprised in a workload model, between job descriptions and future workloads associated with the job descriptions. The group of jobs in the processing system are managed based on the current workload and the future workload. With the foregoing example implementation, jobs in the processing system may be managed more effectively, and latency in processing jobs may be reduced. Further, there is provided a device and computer program product for managing jobs in a processing system.

Claims (82)

1. A method for managing jobs in a processing system, the processing system comprising multiple client devices, the method comprising:

determining, based on a group of jobs from the multiple client devices, a current workload of the group of jobs;

determining a group of job descriptions associated with the group of jobs based on configuration information of respective jobs in the group of jobs;

obtaining a workload model;

determining a future workload associated with the group of jobs based on associations, comprised in the workload model, between job descriptions and future workloads associated with the job descriptions; and

managing the group of jobs in the processing system based on the current workload and the future workload,

wherein obtaining the workload model comprises:

obtaining multiple historical jobs of the processing system, respectively;

obtaining multiple historical workloads associated with respective historical jobs among the multiple historical jobs, respectively; and

training, by a hardware processor, the workload model based on the multiple historical jobs and the multiple historical workloads, so that the workload model represents the associations between the multiple historical jobs and the multiple historical workloads,

wherein training the workload model comprises:

determining an average value of differences between every pair of successive historical workloads among the multiple historical workloads;

determining a difference between a first historical workload and a second historical workload of one of the pairs of successive historical workloads in the multiple historical workloads;

in response to the difference between the first historical workload and the second historical workload being below the average value, training the workload model by using the first and second historical workloads and one or more historical jobs associated with the first and second historical workloads; and

in response to the difference being above the average value, omitting the first and second historical workloads from being used to train the workload model, and

wherein managing the group of jobs comprises:

determining a threshold workload of jobs which are processable by a group of processing resources started in the processing system; and

in response to determining the threshold workload being below at least one of the current or the future workload, starting at least one processing resource in the processing system for processing at least one portion of the group of jobs.

2. The method of claim 1 , wherein determining the group of job descriptions associated with the group of jobs based on the configuration information of the respective jobs in the group of jobs comprises: with respect to a job in the group of jobs,

extracting a group of attributes of the job from the configuration information, the group of attributes comprising at least one of: type of the job, interval of the job, starting time of the job, ending time of the job, and stream configuration of the job; and

generating a job description of the job based on the group of attributes.

3. The method of claim 2 , wherein the method is performed at a backup server of the processing system, and the job in the group of jobs is a backup job for performing a data backup, and

wherein the group of attributes comprises the stream configuration representing a number of streams associated with an execution of the backup job inside the backup server.

4. The method of claim 1 , further comprising:

in response to determining the threshold workload being above the current workload and the threshold workload being above the future workload, stopping the at least one processing resource in the group of processing resources that have been started in the processing system.

5. The method of claim 1 , further comprising obtaining the group of jobs from at least one of:

policy group configuration of the processing system; or

periodic policies of the processing system.

6. The method of claim 1 , wherein the at least one processing resource is a backup instance for performing a backup job.

7. A device for managing jobs in a processing system, the processing system comprising multiple client devices, comprising:

at least one hardware processor;

a volatile memory; and

a memory coupled to the at least one hardware processor and having instructions stored thereon, the instructions, when executed by the at least one hardware processor, causing the device to perform operations comprising:

determining, based on a group of jobs from the multiple client devices, a current workload of the group of jobs;

determining a group of job descriptions associated with the group of jobs based on configuration information of various jobs in the group of jobs;

obtaining a workload model;

determining a future workload associated with the group of jobs based on associations, comprised in the workload model, between job descriptions and future workloads associated with the job descriptions; and

managing the group of jobs in the processing system based on the current workload and the future workload,

wherein obtaining the workload model comprises:

obtaining multiple historical jobs of the processing system, respectively;

obtaining multiple historical workloads associated with respective historical jobs among the multiple historical jobs, respectively; and

training the workload model based on the multiple historical jobs and the multiple historical workloads, so that the workload model represents the associations between the multiple historical jobs and the multiple historical workloads,

wherein training the workload model comprises:

determining an average value of differences between every pair of successive historical workloads among the multiple historical workloads;

determining a difference between a first historical workload and a second historical workload of one of the pairs of successive historical workloads in the multiple historical workloads;

in response to the difference between the first historical workload and the second historical workload being below the average value, training the workload model by using the first and second historical workloads and one or more historical jobs associated with the first and second historical workloads; and

in response to the difference being above the average value, omitting the first and second historical workloads from being used to train the workload model, and

wherein managing the group of jobs comprises:

determining a threshold workload of jobs which are processable by a group of processing resources started in the processing system; and

in response to determining the threshold workload being below at least one of the current or the future workload, starting at least one processing resource in the processing system for processing at least one portion of the group of jobs.

8. The device of claim 7 , wherein determining the group of job descriptions associated with the group of jobs based on the configuration information of the respective jobs in the group of jobs comprises: with respect to a job in the group of jobs,

extracting a group of attributes of the job from the configuration information, the group of attributes comprising at least one of: type of the job, interval of the job, starting time of the job, ending time of the job, and stream configuration of the job; and

generating a job description of the job based on the group of attributes.

9. The device of claim 8 , wherein the device is a backup server of the processing system, the job in the group of jobs is a backup job for performing a data backup, and

wherein the group of attributes comprises the stream configuration representing a number of streams associated with an execution of the backup job inside the backup server.

10. The device of claim 7 , wherein the operations further comprise:

in response to determining the threshold workload being above the current workload and the threshold workload being above the future workload, stopping at least one processing resource in the group of processing resources that have been started in the processing system.

11. The device of claim 7 , wherein the group of jobs are obtained from at least one of:

policy group configuration of the processing system; or

periodic policies of the processing system.

12. A computer program product, tangibly stored on a non-transient computer readable medium and comprising machine executable instructions which are used to perform operations for managing jobs in a processing system, the operations comprising:

determining, based on a group of jobs from multiple client devices, a current workload of the group of jobs;

determining a group of job descriptions associated with the group of jobs based on configuration information of respective jobs in the group of jobs;

obtaining a workload model;

determining a future workload associated with the group of jobs based on associations, comprised in the workload model, between job descriptions and future workloads associated with the job descriptions; and

managing the group of jobs based on the current workload and the future workload,

wherein obtaining the workload model comprises:

obtaining multiple historical jobs;

obtaining multiple historical workloads associated with respective historical jobs among the multiple historical jobs, respectively; and

training, by a hardware processor, the workload model based on the multiple historical jobs and the multiple historical workloads, so that the workload model represents the associations between the multiple historical jobs and the multiple historical workloads,

wherein training the workload model comprises:

determining an average value of differences between every pair of successive historical workloads among the multiple historical workloads;

determining a difference between a first historical workload and a second historical workload of one of the pairs of successive historical workloads in the multiple historical workloads;

in response to the difference between the first historical workload and the second historical workload being below the average value, training the workload model by using the first and second historical workloads and one or more historical jobs associated with the first and second historical workloads; and

in response to the difference being above the average value, omitting the first and second historical workloads from being used to train the workload model, and

wherein managing the group of jobs comprises:

determining a threshold workload of jobs which are processable by a group of processing resources started in the processing system; and

in response to determining the threshold workload being below at least one of the current or the future workload, starting at least one processing resource in the processing system for processing at least one portion of the group of jobs.

13. The computer program product of claim 12 , wherein a job in the group of jobs is a backup job for performing a data backup, and

wherein determining a group of job descriptions associated with the group of jobs based on the configuration information of the respective jobs in the group of jobs comprises: with respect to the job in the group of jobs,

extracting a group of attributes of the job from the configuration information, the group of attributes comprising a stream configuration of the job representing a number of streams associated with an execution of the backup job; and

generating a job description of the job based on the group of attributes.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2019
From: TANG, JUN; WANG, YI; ZHENG, QINGXIAO
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050872/0124 →
Priority Claims (1)
CN 201910446999.5 · May 27, 2019 · national
Continuity (1)
Related Publication 20200379807A1 · Dec 3, 2020