IP Library Granted Patent US 11,900,155
Granted Patent B2
US 11,900,155 · App. 16/801,473 · Granted Feb 13, 2024

Method, device, and computer program product for job processing

Inventors: YuHong Nie (Shanghai, CN); Pengfei Wu (Shanghai, CN); Jinpeng Liu (Shanghai, CN); Zhen Jia (Shanghai, CN)
Assignee: EMC IP Holding Company LLC
G06F9/4881G06F9/5083G06F2209/486G06Q10/06315
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,900,155
App. No.
16/801,473
Granted
Feb 13, 2024
Kind
B2
Abstract

The present disclosure relates to a method, device and computer program product for processing a job. In a method, a first group of tasks in a first portion of the job are obtained, the first group of tasks being executable in parallel by a first group of processing devices. A plurality of priorities are set to a plurality of processing devices, respectively, based on a state of a processing resource of a processing device among the plurality of processing devices in a distributed processing system, the processing resource comprising at least one of a computing resource and a storage resource. The first group of processing devices are selected from the plurality of processing devices based on the plurality of priorities. The first group of tasks are allocated to the first group of processing devices, respectively, which process the first group of tasks for generating a first group of task results.

Claims (88)

1. A method for processing a job using a plurality of processing devices in a distributed processing system, each processing device having a processing resource comprising at least one of a computing resource and a storage resource, the method comprising:

obtaining a first group of tasks in a first portion of the job, the job having a time limitation for indicating a time when a job result is desired to be completed, the first group of tasks being executable in parallel;

setting a respective priority to each processing device of the plurality of processing devices based on a state of a processing resource of the processing device, wherein the priority of each processing device is set based on a time duration for which the processing devices can process one or more tasks associated with the job within the time limitation;

selecting a first group of processing devices from the plurality of processing devices based on the respective priorities, the first group of processing devices including one or more processing devices in each of at least first and second distinct processing systems, the first processing system comprising a cloud-based processing system and the second processing system comprising a blockchain-based processing system; and

allocating the first group of tasks to the first group of processing devices, respectively, so that the first group of processing devices utilize their respective processing resources to process the first group of tasks for generating a first group of task results;

wherein allocating the first group of tasks to the first group of processing devices, respectively comprises:

generating a first group of data partitions associated with the first group of tasks, respectively, based on raw data associated with the job;

storing the first group of data partitions to storage resources in the first group of processing devices; and

instructing the first group of processing devices to obtain the first group of data partitions from the storage resources in the first group of processing devices;

wherein setting a respective priority to each processing device of the plurality of processing devices based on a state of a processing resource of the processing device comprises:

setting a long-term priority to at least one of the processing devices in accordance with determining that a processing resource of the processing device is usable to process a plurality of tasks associated with the job, the long-term priority being based on the processing device not refusing to execute any task associated with the job;

wherein the first group of task results comprises one or more task results generated by one or more processing devices of the blockchain-based processing system; and

wherein the one or more task results generated by the one or more processing devices of the blockchain-based processing system are subject to a multi-level verification process comprising at least a first level in which a verification determination is made as to whether or not the one or more task results are trusted and a second level in which, responsive to the verification determination indicating that the one or more task results are not trusted, voting of multiple processing devices of the blockchain-based processing system is utilized to determine if at least a threshold number of the processing devices vote in a particular manner.

2. The method of claim 1 , wherein setting a respective priority to each processing device of the plurality of processing devices based on a state of a processing resource of the processing device further comprises:

setting a one-time priority to at least one of the processing devices in accordance with determining that the processing resource of the processing device is usable to process only one task associated with the job.

3. The method of claim 2 , wherein the processing resource comprises both a computing resource and a storage resource, and setting the long-term priority to the processing devices comprises at least one of:

setting a first priority to the processing device in accordance with determining that the processing resource is usable to process all allocated tasks associated with the job; and

setting a second priority to the processing device in accordance with determining that the processing resource is usable to process at least two allocated tasks associated with the job.

4. The method of claim 2 , further comprising:

instructing the processing device to store the task result to a storage resource of the first group of processing devices.

5. The method of claim 4 , wherein instructing the processing device to store the task result to the storage resource in the first group of processing devices comprises at least one of:

instructing the processing device to store the task result to a storage resource in a processing device with the long-term priority in the first group of processing devices; and

instructing the processing device to store the task result to the storage resource in the processing device.

6. The method of claim 2 , wherein setting the one-time priority to the processing device comprises at least one of:

setting a third priority to the processing device in accordance with determining that the processing resource is usable to process only one allocated task associated with the job, the processing resource comprising a computing resource and a storage resource; and

setting a fourth priority to the processing device in accordance with determining that the processing resource is usable to process only one allocated task associated with the job, the processing resource only comprising a computing resource.

7. The method of claim 4 , further comprising:

receiving from the first group of processing devices a first group of result addresses associated with a first group of task results of the first group of tasks; and

obtaining the first group of task results based on the first group of result addresses.

8. The method of claim 7 , further comprising:

obtaining a second group of tasks in a second portion of the job, the second group of tasks being executable in parallel by a second group of processing devices;

selecting the second group of processing devices from the plurality of processing devices based on the respective priorities; and

allocating the second group of tasks to the second group of processing devices, respectively, so that the second group of processing devices utilize their respective processing resources to process the second group of tasks for generating a second group of task results.

9. The method of claim 8 , wherein allocating the second group of tasks to the second group of processing devices, respectively comprises:

determining a second group of addresses of a second group of data partitions to be processed by the second group of processing devices based on the first group of result addresses of the first group of task results; and

instructing the second group of processing devices to execute the second group of tasks based on the second group of addresses.

10. An electronic device, comprising:

at least one processor; and

a memory coupled to the at least one processor, the memory having instructions stored thereon, the instructions, when executed by the at least one processor, causing the electronic device to perform acts for processing a job using a plurality of processing devices in a distributed processing system, each processing device having a processing resource comprising at least one of a computing resource and a storage resource, the acts including:

obtaining a first group of tasks in a first portion of the job, the job having a time limitation for indicating a time when a job result is desired to be completed, the first group of tasks being executable in parallel;

setting a respective priority to each processing device of the plurality of processing devices based on a state of a processing resource of the processing device wherein the priority of each processing device is set based on a time duration for which the processing devices can process one or more tasks associated with the job within the time limitation;

selecting a first group of processing devices from the plurality of processing devices based on the respective priorities, the first group of processing devices including one or more processing devices in each of at least first and second distinct processing systems, the first processing system comprising a cloud-based processing system and the second processing system comprising a blockchain-based processing system; and

allocating the first group of tasks to the first group of processing devices, respectively, so that the first group of processing devices utilize their respective processing resources to process the first group of tasks for generating a first group of task results;

wherein allocating the first group of tasks to the first group of processing devices, respectively comprises:

generating a first group of data partitions associated with the first group of tasks, respectively, based on raw data associated with the job;

storing the first group of data partitions to storage resources in the first group of processing devices; and

instructing the first group of processing devices to obtain the first group of data partitions from the storage resources in the first group of processing devices;

wherein setting a respective priority to each processing device of the plurality of processing devices based on a state of a processing resource of the processing device comprises:

setting a long-term priority to at least one of the processing devices in accordance with determining that a processing resource of the processing device is usable to process a plurality of tasks associated with the job, the long-term priority being based on the processing device not refusing to execute any task associated with the job;

wherein the first group of task results comprises one or more task results generated by one or more processing devices of the blockchain-based processing system; and

wherein the one or more task results generated by the one or more processing devices of the blockchain-based processing system are subject to a multi-level verification process comprising at least a first level in which a verification determination is made as to whether or not the one or more task results are trusted and a second level in which, responsive to the verification determination indicating that the one or more task results are not trusted, voting of multiple processing devices of the blockchain-based processing system is utilized to determine if at least a threshold number of the processing devices vote in a particular manner.

11. The electronic device of claim 10 , wherein setting a respective priority to each processing device of the plurality of processing devices based on a state of a processing resource of the processing device further comprises:

setting a one-time priority to at least one of the processing devices in accordance with determining that the processing resource of the processing device is usable to process only one task associated with the job.

12. The electronic device of claim 11 , wherein the processing resource comprises both a computing resource and a storage resource, and setting the long-term priority to the processing devices comprises at least one of:

setting a first priority to the processing device in accordance with determining that the processing resource is usable to process all allocated tasks associated with the job; and

setting a second priority to the processing device in accordance with determining that the processing resource is usable to process at least two allocated tasks associated with the job.

13. The electronic device of claim 11 , wherein the acts further comprise:

instructing the processing device to store the task result to a storage resource of the first group of processing devices.

14. The electronic device of claim 13 , wherein instructing the processing device to store the task result to the storage resource in the first group of processing devices comprises at least one of:

instructing the processing device to store the task result to a storage resource in a processing device with the long-term priority in the first group of processing devices; and

instructing the processing device to store the task result to the storage resource in the processing device.

15. The electronic device of claim 11 , wherein setting the one-time priority to the processing device comprises at least one of:

setting a third priority to the processing device in accordance with determining that the processing resource is usable to process only one allocated task associated with the job, the processing resource comprising a computing resource and a storage resource; and

setting a fourth priority to the processing device in accordance with determining that the processing resource is usable to process only one allocated task associated with the job, the processing resource only comprising a computing resource.

16. The electronic device of claim 13 , wherein the acts further comprise:

receiving from the first group of processing devices a first group of result addresses associated with a first group of task results of the first group of tasks; and

obtaining the first group of task results based on the first group of result addresses.

17. The electronic device of claim 16 , wherein the acts further comprise:

obtaining a second group of tasks in a second portion of the job, the second group of tasks being executable in parallel by a second group of processing devices;

selecting the second group of processing devices from the plurality of processing devices based on the respective priorities; and

allocating the second group of tasks to the second group of processing devices, respectively, so that the second group of processing devices utilize their respective processing resources to process the second group of tasks for generating a second group of task results.

18. A computer program product, tangibly stored on a non-transitory computer-readable medium and comprising machine-executable instructions, which when executed by a processor of an electronic device, cause the electronic device to perform steps of a method for processing a job using a plurality of processing devices in a distributed processing system, each processing device having a processing resource comprising at least one of a computing resource and a storage resource, the method comprising:

obtaining a first group of tasks in a first portion of the job, the job having a time limitation for indicating a time when a job result is desired to be completed, the first group of tasks being executable in parallel;

setting a respective priority to each processing device of the plurality of processing devices based on a state of a processing resource of the processing device, wherein the priority of each processing device is set based on a time duration for which the processing devices can process one or more tasks associated with the job within the time limitation;

selecting a first group of processing devices from the plurality of processing devices based on the respective priorities, the first group of processing devices including one or more processing devices in each of at least first and second distinct processing systems, the first processing system comprising a cloud-based processing system and the second processing system comprising a blockchain-based processing system; and

allocating the first group of tasks to the first group of processing devices, respectively, so that the first group of processing devices utilize their respective processing resources to process the first group of tasks for generating a first group of task results;

wherein allocating the first group of tasks to the first group of processing devices, respectively comprises:

generating a first group of data partitions associated with the first group of tasks, respectively, based on raw data associated with the job;

storing the first group of data partitions to storage resources in the first group of processing devices; and

instructing the first group of processing devices to obtain the first group of data partitions from the storage resources in the first group of processing devices;

wherein setting a respective priority to each processing device of the plurality of processing devices based on a state of a processing resource of the processing device comprises:

setting a long-term priority to at least one of the processing devices in accordance with determining that a processing resource of the processing device is usable to process a plurality of tasks associated with the job, the long-term priority being based on the processing device not refusing to execute any task associated with the job;

wherein the first group of task results comprises one or more task results generated by one or more processing devices of the blockchain-based processing system; and

wherein the one or more task results generated by the one or more processing devices of the blockchain-based processing system are subject to a multi-level verification process comprising at least a first level in which a verification determination is made as to whether or not the one or more task results are trusted and a second level in which, responsive to the verification determination indicating that the one or more task results are not trusted, voting of multiple processing devices of the blockchain-based processing system is utilized to determine if at least a threshold number of the processing devices vote in a particular manner.

19. The computer program product of claim 18 , wherein setting a respective priority to each processing device of the plurality of processing devices based on a state of a processing resource of the processing device further comprises:

setting a one-time priority to at least one of the processing devices in accordance with determining that the processing resource of the processing device is usable to process only one task associated with the job.

20. The computer program product of claim 19 , wherein the method further comprises:

instructing the processing device to store the task result to a storage resource of the first group of processing devices.

Assignments (13)
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 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
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 AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
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 INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
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 Mar 31, 2020
From: NIE, YUHONG; WU, PENGFEI; LIU, JINPENG; JIA, ZHEN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052274/0216 →
Priority Claims (1)
CN 201911187922.7 · Nov 28, 2019 · national
Continuity (1)
Related Publication 20210165685A1 · Jun 3, 2021
Cited By (1)
US 12,321,785