IP Library Granted Patent US 11,513,850
Granted Patent B2
US 11,513,850 · App. 17/563,697 · Granted Nov 29, 2022

Coordinated performance controller failover in many task computing

Inventors: Henry Gabriel Victor Bequet (Cary, NC); Ronald Earl Stogner (Cary, NC); Eric Jian Yang (Morrisville, NC); Qing Gong (Cary, NC)
Assignee: SAS INSTITUTE INC.
G06F9/4881G06F9/5066
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,513,850
App. No.
17/563,697
Granted
Nov 29, 2022
Kind
B2
Abstract

An apparatus includes a processor to: within a first container, and prior to its uninstantiation, execute a first instance of a routine to cause the processor to monitor for and detect a job performance request in a job queue; and within a second container, execute a second instance of the routine to cause the processor to search the job queue for a job performance request, and in response to a combination of the uninstantiation of the first container, the storage of the job performance request in the job queue and there being no indication of completion of the job flow in the job queue, perform a combination of store an indication of the job flow performance commencing in the job queue, derive an order of performance of the set of tasks of the job flow and store a first task execution request in a task queue.

Claims (201)

1. An apparatus comprising at least one processor and a storage to store instructions that, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

receive, at the at least one processor and from a requesting device via a network, a request to perform a job flow, wherein:

the job flow is defined in a job flow definition that specifies a set of tasks to be performed via execution of a corresponding set of task routines during a performance of the job flow, and that specifies data dependencies among the set of tasks;

store, within a job queue, a job performance request message comprising:

the job flow definition;

a job flow instance identifier associated with the requested performance of the job flow; and

multiple task instance identifiers that are each associated with a task of the set of tasks;

within a first performance container, and prior to uninstantiation of the first performance container, execute instructions of a first instance of a performance routine to cause the at least one processor to, perform operations comprising:

monitor the job queue for job performance request messages; and

detect the storage of the job performance request message within the job queue; and

within a second performance container, execute instructions of a second instance of the performance routine to cause the at least one processor to perform operations comprising:

search the job queue for at least job performance request messages or job completion messages;

in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, and in response to there being no job completion message in the job queue that includes the job flow instance identifier to indicate completion of the requested performance of the job flow, perform operations comprising:

store, within the job queue a job in progress message comprising the job flow instance identifier and an identifier of the second instance of the performance routine to indicate commencement of the requested performance of the job flow by the second instance of the performance routine;

derive an order of performance of the set of tasks based on indications in the job flow definition of dependencies among the set of tasks; and

store, within a task queue, a first task routine execution request message comprising the job flow instance identifier and a first task instance identifier of the multiple task instance identifiers that is associated with a first task of the set of tasks; and

in response to a lack of uninstantiation of the first performance container prior to completion of the requested performance of the job flow, refrain from storing, within the job queue, a message comprising the job flow instance identifier and the identifier of the second instance of the performance routine.

2. The apparatus of claim 1 , wherein the at least one processor is caused to perform operations comprising:

within the first performance container, and prior to uninstantiation of the first performance container, perform operations comprising:

store, within the job queue a job in progress message comprising the job flow instance identifier and an identifier of the first instance of the performance routine to indicate commencement of the requested performance of the job flow by the first instance of the performance routine; and

within the second performance container, the at least one processor is caused to perform operations comprising:

search the job queue for job in progress messages;

search the task queue for task routine execution request messages; and

in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, in response to the storage of the job in progress message within the job queue that indicates commencement of the requested performance of the job flow by the first instance of the performance routine, and in response to there being no task routine execution request message in the task queue that includes the job flow instance identifier to indicate that a task routine is being executed to cause a performance of a task of the job flow, perform operations comprising:

derive the order of performance of the set of tasks based on indications in the job flow definition of dependencies among the set of tasks; and

store, within the task queue, the first task routine execution request message.

3. The apparatus of claim 2 , wherein the at least one processor is caused to perform operations comprising:

within the first performance container, and prior to uninstantiation of the first performance container, perform operations comprising:

store, within the task queue, the first task routine execution request message; and

within the second performance container, the at least one processor is caused to perform operations comprising:

search the task queue for task completion messages; and

in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, in response to the storage of the job in progress message within the job queue that indicates commencement of the requested performance of the job flow by the first instance of the performance routine, in response to the storage of the first task routine execution request message in the task queue, and in response to there being no task completion message in the task queue that includes the job flow instance identifier to indicate that that a task routine has been completed such that a task of the job flow has been performed, perform operations comprising:

derive the order of performance of the set of tasks based on indications in the job flow definition of dependencies among the set of tasks;

compare the first task instance identifier in the first task routine execution request message to the multiple task instance identifiers to determine an extent of performance of the job flow, in view of the order of performance, at the uninstantiation of the first performance container;

based on the determination of the extent of performance, identify a second task of the set of tasks to be performed;

monitor the task queue for storage of a task completion message comprising the job flow instance identifier and the first task instance identifier to indication completion of execution of the first task routine; and

in response to at least to the storage of the task completion message in the task queue, store, within the task queue, a second task routine execution request message comprising the job flow instance identifier and a second task instance identifier of the multiple task instance identifiers that is associated with the second task.

4. The apparatus of claim 3 , wherein the at least one processor is caused to perform operations comprising:

within a first task container, and in response to storage of the first task routine execution request message within the task queue, the at least one processor is caused to perform operations comprising:

execute instructions of a first task routine to cause a performance of the first task; and

in response to completion of execution of the instructions of the first task routine, store, within the task queue, a task completion message comprising the job flow instance identifier and the first task instance identifier to indicate completion of execution of the first task routine; and

within the second performance container, in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, in response to the storage of the job in progress message within the job queue that indicates commencement of the requested performance of the job flow by the first instance of the performance routine, in response to the storage of the first task routine execution request message in the task queue, and in response to the storage of the task completion message in the task queue that includes the job flow instance identifier to indicate that that the first task routine has been completed such that a task of the job flow has been performed, perform operations comprising:

derive the order of performance of the set of tasks based on indications in the job flow definition of dependencies among the set of tasks;

compare the first task instance identifier in the task completion message to the multiple task instance identifiers to determine an extent to which the job flow had been performed, in view of the order of performance, at the uninstantiation of the first performance container;

based on the determination of the extent of performance, identify a second task of the set of tasks to be performed; and

store, within the task queue, a second task routine execution request message comprising the job flow instance identifier and a second task instance identifier of the multiple task instance identifiers that is associated with the second task.

5. The apparatus of claim 2 , wherein the at least one processor is caused to perform operations comprising:

within the second performance container, the at least one processor is caused to perform operations comprising:

search the task queue for task kill messages; and

in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, in response to the storage of the job in progress message within the job queue that indicates commencement of the requested performance of the job flow by the first instance of the performance routine, and in response to storage of a task kill message in the task queue that includes the job flow instance identifier and the first task instance identifier to indicate that performance of the first task has been canceled, perform operations comprising:

store, within the job queue, a job cancelation message comprising the job flow instance identifier to indicate cancelation of the job flow; and

in response to the storage of the job cancelation message within the job queue, transmit an indication of cancelation of the job flow to the requesting device via the network.

6. The apparatus of claim 1 , wherein the at least one processor is caused to perform operations comprising:

execute instructions of a resource allocation routine to dynamically allocate multiple containers to support executing a plurality of routines based on availability of at least one of processing resources or storage resources; and

uninstantiate the first performance container based on a reduction in availability of the at least one of processing resources or storage resources.

7. The apparatus of claim 1 , wherein the at least one processor is caused to perform operations comprising:

within the second performance container, provide, to a resource allocation routine executed by the at least one processor, an indication of a need for provision of at least a first task container in which to execute at least the first task routine of the set of task routines to perform the first task, wherein execution of the resource allocation routine causes the at least one processor to dynamically allocate multiple containers based on availability of at least one of processing resources and storage resources; and

in executing the resource allocation routine, and in response to the provision of the indication of the need for the provision of at least the first task container, refrain from uninstantiating any task containers until after provision of an indication of cessation of the need for the provision of at least the first task container.

8. The apparatus of claim 7 , wherein the at least one processor is caused to perform operations comprising:

within the second performance container, in response to completion of all tasks of the set of tasks, provide, to the resource allocation routine, an indication of cessation of the need for provision of the first task container.

9. The apparatus of claim 1 , wherein:

the job queue comprises a pair of queues;

a first queue of the pair of queues conveys job performance request messages from at least one portal container in which the at least one processor executes instructions of an instance of a portal routine that receives the request to perform a job flow from the requesting device, and to the first performance container and the second performance container; and

a second queue of the pair of queues conveys job in progress messages and job completion messages from the first performance container and the second performance container, and to at least the portal container.

10. The apparatus of claim 1 , wherein the at least one processor is caused to perform operations comprising:

randomly generate the job flow instance identifier for the requested performance of the job flow; and

randomly generate each task instance identifier of the multiple task instance identifiers for one of the tasks of the set of tasks.

11. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, the computer-program product including instructions operable to cause at least one processor to perform operations comprising:

receive, at the at least one processor and from a requesting device via a network, a request to perform a job flow, wherein:

the job flow is defined in a job flow definition that specifies a set of tasks to be performed via execution of a corresponding set of task routines during a performance of the job flow, and that specifies data dependencies among the set of tasks;

store, within a job queue, a job performance request message comprising:

the job flow definition;

a job flow instance identifier associated with the requested performance of the job flow; and

multiple task instance identifiers that are each associated with a task of the set of tasks;

within a first performance container, and prior to uninstantiation of the first performance container, execute instructions of a first instance of a performance routine to cause the at least one processor to, perform operations comprising:

monitor the job queue for job performance request messages; and

detect the storage of the job performance request message within the job queue; and

within a second performance container, execute instructions of a second instance of the performance routine to cause the at least one processor to perform operations comprising:

search the job queue for at least job performance request messages or job completion messages;

in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, and in response to there being no job completion message in the job queue that includes the job flow instance identifier to indicate completion of the requested performance of the job flow, perform operations comprising:

store, within the job queue a job in progress message comprising the job flow instance identifier and an identifier of the second instance of the performance routine to indicate commencement of the requested performance of the job flow by the second instance of the performance routine;

derive an order of performance of the set of tasks based on indications in the job flow definition of dependencies among the set of tasks; and

store, within a task queue, a first task routine execution request message comprising the job flow instance identifier and a first task instance identifier of the multiple task instance identifiers that is associated with a first task of the set of tasks; and

in response to a lack of uninstantiation of the first performance container prior to completion of the requested performance of the job flow, refrain from storing, within the job queue, a message comprising the job flow instance identifier and the identifier of the second instance of the performance routine.

12. The computer-program product of claim 11 , wherein the at least one processor is caused to perform operations comprising:

within the first performance container, and prior to uninstantiation of the first performance container, perform operations comprising:

store, within the job queue a job in progress message comprising the job flow instance identifier and an identifier of the first instance of the performance routine to indicate commencement of the requested performance of the job flow by the first instance of the performance routine; and

within the second performance container, the at least one processor is caused to perform operations comprising:

search the job queue for job in progress messages;

search the task queue for task routine execution request messages; and

in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, in response to the storage of the job in progress message within the job queue that indicates commencement of the requested performance of the job flow by the first instance of the performance routine, and in response to there being no task routine execution request message in the task queue that includes the job flow instance identifier to indicate that a task routine is being executed to cause a performance of a task of the job flow, perform operations comprising:

derive the order of performance of the set of tasks based on indications in the job flow definition of dependencies among the set of tasks; and

store, within the task queue, the first task routine execution request message.

13. The computer-program product of claim 12 , wherein the at least one processor is caused to perform operations comprising:

within the first performance container, and prior to uninstantiation of the first performance container, perform operations comprising:

store, within the task queue, the first task routine execution request message; and

within the second performance container, the at least one processor is caused to perform operations comprising:

search the task queue for task completion messages; and

in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, in response to the storage of the job in progress message within the job queue that indicates commencement of the requested performance of the job flow by the first instance of the performance routine, in response to the storage of the first task routine execution request message in the task queue, and in response to there being no task completion message in the task queue that includes the job flow instance identifier to indicate that that a task routine has been completed such that a task of the job flow has been performed, perform operations comprising:

derive the order of performance of the set of tasks based on indications in the job flow definition of dependencies among the set of tasks;

compare the first task instance identifier in the first task routine execution request message to the multiple task instance identifiers to determine an extent of performance of the job flow, in view of the order of performance, at the uninstantiation of the first performance container;

based on the determination of the extent of performance, identify a second task of the set of tasks to be performed;

monitor the task queue for storage of a task completion message comprising the job flow instance identifier and the first task instance identifier to indication completion of execution of the first task routine; and

in response to at least to the storage of the task completion message in the task queue, store, within the task queue, a second task routine execution request message comprising the job flow instance identifier and a second task instance identifier of the multiple task instance identifiers that is associated with the second task.

14. The computer-program product of claim 13 , wherein the at least one processor is caused to perform operations comprising:

within a first task container, and in response to storage of the first task routine execution request message within the task queue, the at least one processor is caused to perform operations comprising:

execute instructions of a first task routine to cause a performance of the first task; and

in response to completion of execution of the instructions of the first task routine, store, within the task queue, a task completion message comprising the job flow instance identifier and the first task instance identifier to indicate completion of execution of the first task routine; and

within the second performance container, in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, in response to the storage of the job in progress message within the job queue that indicates commencement of the requested performance of the job flow by the first instance of the performance routine, in response to the storage of the first task routine execution request message in the task queue, and in response to the storage of the task completion message in the task queue that includes the job flow instance identifier to indicate that that the first task routine has been completed such that a task of the job flow has been performed, perform operations comprising:

derive the order of performance of the set of tasks based on indications in the job flow definition of dependencies among the set of tasks;

compare the first task instance identifier in the task completion message to the multiple task instance identifiers to determine an extent to which the job flow had been performed, in view of the order of performance, at the uninstantiation of the first performance container;

based on the determination of the extent of performance, identify a second task of the set of tasks to be performed; and

store, within the task queue, a second task routine execution request message comprising the job flow instance identifier and a second task instance identifier of the multiple task instance identifiers that is associated with the second task.

15. The computer-program product of claim 12 , wherein the at least one processor is caused to perform operations comprising:

within the second performance container, the at least one processor is caused to perform operations comprising:

search the task queue for task kill messages; and

in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, in response to the storage of the job in progress message within the job queue that indicates commencement of the requested performance of the job flow by the first instance of the performance routine, and in response to storage of a task kill message in the task queue that includes the job flow instance identifier and the first task instance identifier to indicate that performance of the first task has been canceled, perform operations comprising:

store, within the job queue, a job cancelation message comprising the job flow instance identifier to indicate cancelation of the job flow; and

in response to the storage of the job cancelation message within the job queue, transmit an indication of cancelation of the job flow to the requesting device via the network.

16. The computer-program product of claim 11 , wherein the at least one processor is caused to perform operations comprising:

execute instructions of a resource allocation routine to dynamically allocate multiple containers to support executing a plurality of routines based on availability of at least one of processing resources or storage resources; and

uninstantiate the first performance container based on a reduction in availability of the at least one of processing resources or storage resources.

17. The computer-program product of claim 11 , wherein the at least one processor is caused to perform operations comprising:

within the second performance container, provide, to a resource allocation routine executed by the at least one processor, an indication of a need for provision of at least a first task container in which to execute at least the first task routine of the set of task routines to perform the first task, wherein execution of the resource allocation routine causes the at least one processor to dynamically allocate multiple containers based on availability of at least one of processing resources and storage resources; and

in executing the resource allocation routine, and in response to the provision of the indication of the need for the provision of at least the first task container, refrain from uninstantiating any task containers until after provision of an indication of cessation of the need for the provision of at least the first task container.

18. The computer-program product of claim 17 , wherein the at least one processor is caused to perform operations comprising:

within the second performance container, in response to completion of all tasks of the set of tasks, provide, to the resource allocation routine, an indication of cessation of the need for provision of the first task container.

19. The computer-program product of claim 11 , wherein:

the job queue comprises a pair of queues;

a first queue of the pair of queues conveys job performance request messages from at least one portal container in which the at least one processor executes instructions of an instance of a portal routine that receives the request to perform a job flow from the requesting device, and to the first performance container and the second performance container; and

a second queue of the pair of queues conveys job in progress messages and job completion messages from the first performance container and the second performance container, and to at least the portal container.

20. The computer-program product of claim 11 , wherein the at least one processor is caused to perform operations comprising:

randomly generate the job flow instance identifier for the requested performance of the job flow; and

randomly generate each task instance identifier of the multiple task instance identifiers for one of the tasks of the set of tasks.

21. A computer-implemented method comprising:

receiving, by at least one processor and from a requesting device via a network, a request to perform a job flow, wherein:

the job flow is defined in a job flow definition that specifies a set of tasks to be performed via execution of a corresponding set of task routines during a performance of the job flow, and that specifies data dependencies among the set of tasks;

storing, within a job queue, a job performance request message comprising:

the job flow definition;

a job flow instance identifier associated with the requested performance of the job flow; and

multiple task instance identifiers that are each associated with a task of the set of tasks;

within a first performance container, and prior to uninstantiation of the first performance container, executing, by the at least one processor, instructions of a first instance of a performance routine to cause the at least one processor to, perform operations comprising:

monitoring the job queue for job performance request messages; and

detecting the storage of the job performance request message within the job queue; and

within a second performance container, executing instructions of a second instance of the performance routine to cause the at least one processor to perform operations comprising:

searching the job queue for at least job performance request messages or job completion messages;

in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, and in response to there being no job completion message in the job queue that includes the job flow instance identifier to indicate completion of the requested performance of the job flow, performing operations comprising:

storing, within the job queue a job in progress message comprising the job flow instance identifier and an identifier of the second instance of the performance routine to indicate commencement of the requested performance of the job flow by the second instance of the performance routine;

deriving, by the at least one processor, an order of performance of the set of tasks based on indications in the job flow definition of dependencies among the set of tasks; and

storing, within a task queue, a first task routine execution request message comprising the job flow instance identifier and a first task instance identifier of the multiple task instance identifiers that is associated with a first task of the set of tasks; or

in response to a lack of uninstantiation of the first performance container prior to completion of the requested performance of the job flow, refraining from storing, within the job queue, a message comprising the job flow instance identifier and the identifier of the second instance of the performance routine.

22. The computer-implemented method of claim 21 , comprising:

within the first performance container, and prior to uninstantiation of the first performance container, performing operations comprising:

storing, within the job queue a job in progress message comprising the job flow instance identifier and an identifier of the first instance of the performance routine to indicate commencement of the requested performance of the job flow by the first instance of the performance routine; and

within the second performance container, performing operations comprising:

searching the job queue for job in progress messages;

searching the task queue for task routine execution request messages; and

in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, in response to the storage of the job in progress message within the job queue that indicates commencement of the requested performance of the job flow by the first instance of the performance routine, and in response to there being no task routine execution request message in the task queue that includes the job flow instance identifier to indicate that a task routine is being executed to cause a performance of a task of the job flow, performing operations comprising:

deriving, by the at least one processor, the order of performance of the set of tasks based on indications in the job flow definition of dependencies among the set of tasks; and

storing, within the task queue, the first task routine execution request message.

23. The computer-implemented method of claim 22 , comprising:

within the first performance container, and prior to uninstantiation of the first performance container, performing operations comprising:

storing, within the task queue, the first task routine execution request message; and

within the second performance container, performing operations comprising:

searching the task queue for task completion messages; and

in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, in response to the storage of the job in progress message within the job queue that indicates commencement of the requested performance of the job flow by the first instance of the performance routine, in response to the storage of the first task routine execution request message in the task queue, and in response to there being no task completion message in the task queue that includes the job flow instance identifier to indicate that that a task routine has been completed such that a task of the job flow has been performed, performing operations comprising:

deriving, by the at least one processor, the order of performance of the set of tasks based on indications in the job flow definition of dependencies among the set of tasks;

comparing, by the at least one processor, the first task instance identifier in the first task routine execution request message to the multiple task instance identifiers to determine an extent of performance of the job flow, in view of the order of performance, at the uninstantiation of the first performance container;

based on the determination of the extent of performance, identifying a second task of the set of tasks to be performed;

monitoring the task queue for storage of a task completion message comprising the job flow instance identifier and the first task instance identifier to indication completion of execution of the first task routine; and

in response to at least to the storage of the task completion message in the task queue, storing, within the task queue, a second task routine execution request message comprising the job flow instance identifier and a second task instance identifier of the multiple task instance identifiers that is associated with the second task.

24. The computer-implemented method of claim 23 , comprising:

within a first task container, and in response to storage of the first task routine execution request message within the task queue, performing operations comprising:

executing, by the at least one processor, instructions of a first task routine to cause a performance of the first task; and

in response to completion of execution of the instructions of the first task routine, storing, within the task queue, a task completion message comprising the job flow instance identifier and the first task instance identifier to indicate completion of execution of the first task routine; and

within the second performance container, in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, in response to the storage of the job in progress message within the job queue that indicates commencement of the requested performance of the job flow by the first instance of the performance routine, in response to the storage of the first task routine execution request message in the task queue, and in response to the storage of the task completion message in the task queue that includes the job flow instance identifier to indicate that that the first task routine has been completed such that a task of the job flow has been performed, performing operations comprising:

deriving, by the at least one processor, the order of performance of the set of tasks based on indications in the job flow definition of dependencies among the set of tasks;

comparing the first task instance identifier in the task completion message to the multiple task instance identifiers to determine an extent to which the job flow had been performed, in view of the order of performance, at the uninstantiation of the first performance container;

based on the determination of the extent of performance, identifying a second task of the set of tasks to be performed; and

storing, within the task queue, a second task routine execution request message comprising the job flow instance identifier and a second task instance identifier of the multiple task instance identifiers that is associated with the second task.

25. The computer-implemented method of claim 22 , comprising:

within the second performance container, performing operations comprising:

searching the task queue for task kill messages; and

in response to the uninstantiation of the first performance container, in response to the storage of the job performance request message within the job queue, in response to the storage of the job in progress message within the job queue that indicates commencement of the requested performance of the job flow by the first instance of the performance routine, and in response to storage of a task kill message in the task queue that includes the job flow instance identifier and the first task instance identifier to indicate that performance of the first task has been canceled, performing operations comprising:

storing, within the job queue, a job cancelation message comprising the job flow instance identifier to indicate cancelation of the job flow; and

in response to the storage of the job cancelation message within the job queue, transmitting, from the at least one processor, an indication of cancelation of the job flow to the requesting device via the network.

26. The computer-implemented method of claim 21 , comprising:

executing, by the at least one processor, instructions of a resource allocation routine to dynamically allocate multiple containers to support executing a plurality of routines based on availability of at least one of processing resources or storage resources; and

uninstantiating the first performance container based on a reduction in availability of the at least one of processing resources or storage resources.

27. The computer-implemented method of claim 21 , comprising:

within the second performance container, providing, to a resource allocation routine executed by the at least one processor, an indication of a need for provision of at least a first task container in which to execute at least the first task routine of the set of task routines to perform the first task, wherein execution of the resource allocation routine causes the at least one processor to dynamically allocate multiple containers based on availability of at least one of processing resources and storage resources; and

in executing, by the at least one processor, the resource allocation routine, and in response to the provision of the indication of the need for the provision of at least the first task container, refrain from uninstantiating any task containers until after provision of an indication of cessation of the need for the provision of at least the first task container.

28. The computer-implemented method of claim 27 , comprising:

within the second performance container, in response to completion of all tasks of the set of tasks, providing, to the resource allocation routine, an indication of cessation of the need for provision of the first task container.

29. The computer-implemented method of claim 21 , wherein:

the job queue comprises a pair of queues;

a first queue of the pair of queues conveys job performance request messages from at least one portal container in which the at least one processor executes instructions of an instance of a portal routine that receives the request to perform a job flow from the requesting device, and to the first performance container and the second performance container; and

a second queue of the pair of queues conveys job in progress messages and job completion messages from the first performance container and the second performance container, and to at least the portal container.

30. The computer-implemented method of claim 21 , comprising:

randomly generating the job flow instance identifier for the requested performance of the job flow; and

randomly generating each task instance identifier of the multiple task instance identifiers for one of the tasks of the set of tasks.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2022
From: BEQUET, HENRY GABRIEL VICTOR; STOGNER, RONALD EARL; YANG, ERIC JIAN; GONG, QING
To: SAS INSTITUTE INC.
Reel/Frame 060469/0799 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2022
From: BEQUET, HENRY GABRIEL VICTOR; STOGNER, RONALD EARL; YANG, ERIC JIAN; GONG, QING
To: SAS INSTITUTE INC.
Reel/Frame 058562/0993 →
Continuity (46)
Continuation 17558237 · Dec 21, 2021
Continuation In Part 17308355 · May 5, 2021
Continuation 17225023 · Apr 7, 2021
Continuation In Part 17139364 · Dec 31, 2020
Continuation In Part 17064577 · Oct 6, 2020
Continuation In Part 16814481 · Mar 10, 2020
Continuation In Part 16708179 · Dec 9, 2019
Continuation In Part 16587965 · Sep 30, 2019
Continuation In Part 16556573 · Aug 30, 2019
Continuation In Part 16539222 · Aug 13, 2019
Continuation 16538734 · Aug 12, 2019
Continuation In Part 16236401 · Dec 29, 2018
Continuation In Part 16223518 · Dec 18, 2018
Continuation In Part 16205424 · Nov 30, 2018
Continuation In Part 16039745 · Jul 19, 2018
Continuation In Part 15897723 · Feb 15, 2018
Continuation In Part 15897723 · Feb 15, 2018
Continuation In Part 15896613 · Feb 14, 2018
Continuation In Part 15851869 · Dec 22, 2017
Continuation 15613516 · Jun 5, 2017
Continuation 15425886 · Feb 6, 2017
Continuation 15425749 · Feb 6, 2017
Provisional Application 63159428 · Mar 10, 2021
Provisional Application 63157419 · Mar 5, 2021
Provisional Application 63139703 · Jan 20, 2021
Provisional Application 63029989 · May 26, 2020
Provisional Application 63015274 · Apr 24, 2020
Provisional Application 63008830 · Apr 13, 2020
Provisional Application 63006516 · Apr 7, 2020
Provisional Application 62985455 · Mar 5, 2020
Provisional Application 62972240 · Feb 10, 2020
Provisional Application 62816160 · Mar 10, 2019
Provisional Application 62801173 · Feb 5, 2019
Provisional Application 62776691 · Dec 7, 2018
Provisional Application 62739314 · Sep 30, 2018
Provisional Application 62725186 · Aug 30, 2018
Provisional Application 62717873 · Aug 12, 2018
Provisional Application 62689040 · Jun 22, 2018
Provisional Application 62654643 · Apr 9, 2018
Provisional Application 62631462 · Feb 15, 2018
Provisional Application 62560506 · Sep 19, 2017
Provisional Application 62534678 · Jul 19, 2017
Provisional Application 62460000 · Feb 16, 2017
Provisional Application 62297454 · Feb 19, 2016
Provisional Application 62292078 · Feb 5, 2016
Related Publication 20220167469A1 · May 26, 2022
Cited By (1)
US 12,650,914