IP Library › Granted Patent US 11,138,046
Granted Patent B2
US 11,138,046 · App. 16/444,362 · Granted Oct 5, 2021

Methods for auxiliary service scheduling for grid computing and devices thereof

Inventors: Minlin Gao (Livingston, NJ); Darren Marvin (Poole, GB)
Assignee: JPMORGAN CHASE BANK, N.A.
G06F9/5072G06F9/3838G06F9/4881G06F9/5022G06F9/542
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,138,046
App. No.
16/444,362
Granted
Oct 5, 2021
Kind
B2
Abstract

Systems and methods for managing resources in a multi-tenancy grid computing environment are provided. The methods include an auxiliary service scheduler managing the lifecycle of auxiliary services by policies to optimize the resource allocation; coordinating with an application scheduler to dispatch tasks and an auxiliary service to the same set of servers; and using a multiple layer auxiliary service map to manage and record auxiliary service status. The methods optimize dynamical resource sharing between applications with a dependency on an auxiliary service running aside on the same server.

Claims (68)

1. A method for managing resources in a grid computing environment, the method being implemented by a processor on a computing device, the method comprising:

receiving, from a first client device, a first request for an access to a first auxiliary service in support of a first task execution on the first client device;

identifying at least one recommended server device that is currently running the first auxiliary service;

generating a recommended server list that includes the at least one recommended server device;

using an auxiliary service map and the recommended server list to determine at least one server device that is available for providing the access to the first auxiliary service;

allocating, to the first client device, at least one of the available at least one server device;

initializing the first auxiliary service on the allocated at least one server device when the first auxiliary service is not running on the allocated at least one server device;

updating the auxiliary service map based on a result of the allocating;

executing, by the first client device, the first task using the first auxiliary service;

receiving, from the first client device, a notification that the first task has completed executing;

deallocating each of the allocated at least one server device; and

updating the auxiliary service map based on a result of the deallocating.

2. The method of claim 1 , further comprising initializing the first auxiliary service on the allocated at least one server device prior to the updating the auxiliary service map, and wherein the initializing further comprises transmitting an initialization request to the allocated at least one server device.

3. The method of claim 1 , further comprising:

receiving, from a second client device and prior to the deallocating, a second request for an access to a second auxiliary service in support of a second task execution on the second client device;

using, prior to the deallocating, the updated auxiliary service map to determine at least one server device that is available for providing the access to the second auxiliary service;

allocating, to the second client device, at least one of the available at least one server device; and

updating the auxiliary service map based on a result of the allocating to the second client device.

4. The method of claim 3 , wherein the auxiliary service map includes a plurality of layers, wherein a number of layers corresponds to a number of auxiliary services, and each respective layer from among the plurality of layers includes a plurality of server devices from which an availability determination is to be made.

5. The method of claim 4 , further comprising: when at least one additional request is received for access to at least one additional auxiliary service in support of at least one additional task execution, dynamically sharing the plurality of server devices by using the auxiliary service map to determine, for each of the plurality of server devices, a respective time slot of availability for providing access to the at least one additional auxiliary service.

6. The method of claim 4 , wherein the availability determination is made by determining, for each of the plurality of server devices, at least one of an amount of available memory and an amount of available central processing unit (CPU) capacity.

7. The method of claim 1 , wherein the first task comprises at least one of a data analytics application and a high performance computing (HPC) application.

8. The method of claim 1 , further comprising:

when the notification that the first task has completed execution is received, delaying a deallocation of each of the allocated at least one server device until a second request for an access to a second auxiliary service is received;

receiving, from a second client device, the second request for the access to the second auxiliary service in support of a second task execution on the second client device; and

performing the deallocating in response to the receiving the second request.

9. A computing device configured to implement an execution of a method for managing resources in a grid computing environment, the computing device comprising:

a processor;

a memory; and

a communication interface coupled to each of the processor and the memory, wherein the processor is configured to:

receive, from a first client device, a first request for an access to a first auxiliary service in support of a first task execution on the first client device;

identify at least one recommended server device that is currently running the first auxiliary service;

generate a recommended server list that includes the at least one recommended server device;

use an auxiliary service map and the recommended server list to determine at least one server device that is available for providing the access to the first auxiliary service;

allocate, to the first client device, at least one of the available at least one server device;

initialize the first auxiliary service on the allocated at least one server device when the first auxiliary service is not running on the allocated at least one server device;

update the auxiliary service map based on a result of the allocating;

execute, by the first client device, the first task using the initialized first auxiliary service;

receive, from the first client device, a notification that the first task has completed executing;

deallocate each of the allocated at least one server device; and

updating the auxiliary service map based on a result of the deallocating.

10. The computing device of claim 9 , wherein the processor is further configured to initialize the first auxiliary service on the allocated at least one server device prior to the updating the auxiliary service map, and wherein the initializing further comprises transmitting an initialization request to the allocated at least one server device.

11. The computing device of claim 9 , wherein the processor is further configured to:

receive, from a second client device and prior to the deallocating, a second request for an access to a second auxiliary service in support of a second task execution on the second client device;

use, prior to the deallocating, the updated auxiliary service map to determine at least one server device that is available for providing the access to the second auxiliary service;

allocate, to the second client device, at least one of the available at least one server device; and

update the auxiliary service map based on a result of the allocating to the second client device.

12. The computing device of claim 11 , wherein the auxiliary service map includes a plurality of layers, wherein a number of layers corresponds to a number of auxiliary services, and each respective layer from among the plurality of layers includes a plurality of server devices from which an availability determination is to be made.

13. The computing device of claim 12 , wherein the processor is further configured to: when at least one additional request is received for access to at least one additional auxiliary service in support of at least one additional task execution, dynamically share the plurality of server devices by using the auxiliary service map to determine, for each of the plurality of server devices, a respective time slot of availability for providing access to the at least one additional auxiliary service.

14. The computing device of claim 12 , wherein the availability determination is made by determining, for each of the plurality of server devices, at least one of an amount of available memory and an amount of available central processing unit (CPU) capacity.

15. The computing device of claim 9 , wherein the first task comprises at least one of a data analytics application and a high performance computing (HPC) application.

16. The computing device of claim 9 , wherein the processor is further configured to:

when the notification that the first task has completed execution is received, delay a deallocation of each of the allocated at least one server device until a second request for an access to a second auxiliary service is received;

receive, from a second client device, the second request for the access to the second auxiliary service in support of a second task execution on the second client device; and

perform the deallocation in response to the receiving the second request.

17. A non-transitory computer-readable medium storing instructions which, when executed by a processor, cause the processor to execute a method for managing resources in a grid computing environment, the method comprising:

receiving, from a first client device, a first request for an access to a first auxiliary service in support of a first task execution on the first client device;

identifying at least one recommended server device that is currently running the first auxiliary service;

generating a recommended server list that includes the at least one recommended server device;

using an auxiliary service map and the recommended server list to determine at least one server device that is available for providing the access to the first auxiliary service;

allocating, to the first client device, at least one of the available at least one server device;

initializing the first auxiliary service on the allocated at least one server device when the first auxiliary service is not running on the allocated at least one server device;

updating the auxiliary service map based on a result of the allocating;

executing, by the first client device, the first task using the first auxiliary service;

receiving, from the first client device, a notification that the first task has completed executing;

deallocating each of the allocated at least one server device; and

updating the auxiliary service map based on a result of the deallocating.

18. The computer-readable medium of claim 17 , wherein the method further comprises initializing the first auxiliary service on the allocated at least one server device prior to the updating the auxiliary service map, and wherein the initializing further comprises transmitting an initialization request to the allocated at least one server device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2021
From: GAO, MINLIN; MARVIN, DARREN
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055671/0919 →
Continuity (2)
Provisional Application 62686742 · Jun 19, 2018
Related Publication 20190384643A1 · Dec 19, 2019