IP Library Granted Patent US 11,614,966
Granted Patent B2
US 11,614,966 · App. 17/733,196 · Granted Mar 28, 2023

Automated job flow generation to provide object views in container-supported many task computing

Inventors: Henry Gabriel Victor Bequet (Cary, NC); Ronald Earl Stogner (Cary, NC); Eric Jian Yang (Morrisville, NC); Chaowang “Ricky” Zhang (Morrisville, NC)
Assignee: SAS INSTITUTE INC.
G06F9/4881G06F9/485
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,614,966
App. No.
17/733,196
Granted
Mar 28, 2023
Kind
B2
Abstract

An apparatus includes a processor to receive a request to provide a view of an object associated with a job flow, and in response to determining that the object is associated with a task type requiring access to a particular resource not accessible to a first interpretation routine: store, within a job queue, a job flow generation request message to cause generation of a job flow definition the defines another job flow for generating the requested view; within a task container in which a second interpretation routine that does have access to the particular resource is executed, generate the job flow definition; store, within a task queue, a job flow generation completion message that includes a copy of the job flow definition; use the job flow definition to perform the other job flow to generate the requested view; and transmit the requested view to the requesting device.

Claims (162)

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 provide a view of an object associated with 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 within a set of node devices during a performance of the job flow;

analyze the object to determine whether the object is associated with a task type that, during a performance of the job flow, requires access to a particular resource that is not accessible to a first interpretation routine that is executable by the at least one processor to cause generation of views of objects;

in response to a determination that the object is associated with the task type, perform operations comprising:

store, within a job queue, a first job flow generation request message comprising a request to generate another job flow that causes generation of the requested view of the object when the other job flow is performed, and an indication of the task type;

within a first task container, in response to the request to generate the other job flow, the at least one processor is caused to perform operations comprising:

analyze the task type to determine whether an instance of a second interpretation routine, that is executable by the at least one processor within the first task container, does have access to the particular resource; and

in response to a determination that the instance of the second interpretation routine does have access to the particular resource, perform operations comprising:

execute instructions of the instance of the second interpretation routine to generate another job flow definition for the other job flow that specifies another set of tasks to be performed via execution of corresponding other set of task routines to generate the requested view of the object during a performance of the other job flow; and

store, within a task queue, a first job flow generation completion message comprising an indication of completion of the generation of the other job flow definition; and

after completion of the performance of the other job flow to generate the requested view of the object, transmit a copy of the requested view of the object to the requesting device via the network; and

in response to a determination that the object is not associated with the task type, perform operations comprising:

execute instructions of the instance of the first interpretation routine to generate the requested view of the object.

2. The apparatus of claim 1 , wherein, in response to a determination that the object is not associated with the task type, the at least one processor is caused to perform operations comprising:

before commencement of execution of instructions of the first interpretation routine to generate the requested view of the object, store, within the job queue, an object view generation message comprising an indication of the generation of the requested view of the object as underway, and an identifier of the instance of the first interpretation routine to provide an indication to another instance of the first interpretation routine of which instance of the first interpretation routine is currently involved in generating the requested view of the object; and

after completion of the generation of the requested view of the object, remove the object view generation message.

3. The apparatus of claim 1 , wherein, in response to the determination that the object is associated with the task type, the at least one processor is caused to perform operations comprising:

within a performance container, in response to the storage of the first job flow generation request message within the job queue, store a second job flow generation request message within a task queue;

within the first task container, perform operations comprising:

retrieve an indication of the task type from the second job flow generation request message stored within the task queue to enable the analysis of the task type; and

after completion of the generation of the other job flow definition, include a copy of the other job flow definition in the first job flow generation completion message stored within the task queue;

within the performance container, in response to the storage of the first job flow generation completion message within the task queue, store a second job flow generation completion message within the job queue; and

in response to the storage of the second job flow generation completion message within the job queue, store, within the job queue, a job performance request message comprising a request to perform the other job flow to generate the requested view of the object.

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

within a second task container, in response to the request to generate the other job flow, the at least one processor is caused to perform operations comprising:

analyze the task type to determine whether an instance of a second interpretation routine, that is executable by the at least one processor within the second task container, does have access to the particular resource; and

in response to a determination that the instance of the second interpretation routine does not have access to the particular resource, refrain from performing operations to generate the other job flow definition.

5. The apparatus of claim 4 , wherein:

the first task container is instantiated within a first node device of the set of node devices;

the first node device provides access to the particular resource;

the second task container is instantiated within a second node device of the set of node devices; and

the second node device does not provide access to the particular resource.

6. The apparatus of claim 5 , wherein:

the first task container is instantiated within a first virtual machine (VM) that is instantiated within the first node device;

the first VM provides the first task container with access to the particular resource; and

the second task container is instantiated within a second VM that is instantiated within the second node device.

7. The apparatus of claim 1 , wherein:

the particular resource comprises an alternate processor incorporated into a particular node device of the set of node devices;

the object comprises a data set in which data values are organized in a manner that requires use of the alternate processor to perform at least one operation on the data values;

analyzing the object to determine whether the object is associated with the task type comprises at least one of analyzing metadata associated with the object or analyzing a portion of an identifier of the object; and

at least one task of the other set of tasks specified in the other job flow definition comprises using the alternate processor to perform the at least one operation on the data values.

8. The apparatus of claim 1 , wherein:

the particular resource comprises a set of restricted data objects to which access is restricted to being provided by a particular node device of the set of node devices;

the object comprises a data object of the set of restricted data objects;

analyzing the object to determine whether the object is associated with the task type comprises at least one of analyzing metadata associated with the object or analyzing a portion of an identifier of the object; and

at least one task of the other set of tasks specified in the other job flow definition comprises retrieving the object from among the set of restricted objects from within a task container instantiated within the particular node device.

9. The apparatus of claim 1 , wherein:

the particular resource comprises the second interpretation routine;

the second interpretation routine is executable by the at least one processor to interpret instructions written in a particular programming language;

the first interpretation routine is not able to be executed by the at least one processor to interpret instructions written in the particular programming language;

the object comprises a task routine that comprises instructions written in the particular programming language;

analyzing the object to determine whether the object is associated with the task type comprises analyzing at least one of executable instructions or comments within the object, or analyzing a portion of an identifier of the object; and

at least one task of the other set of tasks specified in the other job flow definition comprises interpreting the instructions within the task routine that are written in the particular programming language.

10. 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 provide a view of an object associated with 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 within a set of node devices during a performance of the job flow;

analyze the object to determine whether the object is associated with a task type that, during a performance of the job flow, requires access to a particular resource that is not accessible to a first interpretation routine that is executable by the at least one processor to cause generation of views of objects;

in response to a determination that the object is associated with the task type, perform operations comprising:

store, within a job queue, a first job flow generation request message comprising a request to generate another job flow that causes generation of the requested view of the object when the other job flow is performed, and an indication of the task type;

within a first task container, in response to the request to generate the other job flow, the at least one processor is caused to perform operations comprising:

analyze the task type to determine whether an instance of a second interpretation routine, that is executable by the at least one processor within the first task container, does have access to the particular resource; and

in response to a determination that the instance of the second interpretation routine does have access to the particular resource, perform operations comprising:

execute instructions of the instance of the second interpretation routine to generate another job flow definition for the other job flow that specifies another set of tasks to be performed via execution of corresponding other set of task routines to generate the requested view of the object during a performance of the other job flow; and

store, within a task queue, a first job flow generation completion message comprising an indication of completion of the generation of the other job flow definition; and

after completion of the performance of the other job flow to generate the requested view of the object, transmit a copy of the requested view of the object to the requesting device via the network; and

in response to a determination that the object is not associated with the task type, perform operations comprising:

execute instructions of the instance of the first interpretation routine to generate the requested view of the object.

11. The computer-program product of claim 10 , wherein, in response to a determination that the object is not associated with the task type, the at least one processor is caused to perform operations comprising:

before commencement of execution of instructions of the first interpretation routine to generate the requested view of the object, store, within the job queue, an object view generation message comprising an indication of the generation of the requested view of the object as underway, and an identifier of the instance of the first interpretation routine to provide an indication to another instance of the first interpretation routine of which instance of the first interpretation routine is currently involved in generating the requested view of the object; and

after completion of the generation of the requested view of the object, remove the object view generation message.

12. The computer-program product of claim 10 , wherein, in response to the determination that the object is associated with the task type, the at least one processor is caused to perform operations comprising:

within a performance container, in response to the storage of the first job flow generation request message within the job queue, store a second job flow generation request message within a task queue;

within the first task container, perform operations comprising:

retrieve an indication of the task type from the second job flow generation request message stored within the task queue to enable the analysis of the task type; and

after completion of the generation of the other job flow definition, include a copy of the other job flow definition in the first job flow generation completion message stored within the task queue;

within the performance container, in response to the storage of the first job flow generation completion message within the task queue, store a second job flow generation completion message within the job queue; and

in response to the storage of the second job flow generation completion message within the job queue, store, within the job queue, a job performance request message comprising a request to perform the other job flow to generate the requested view of the object.

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

within a second task container, in response to the request to generate the other job flow, the at least one processor is caused to perform operations comprising:

analyze the task type to determine whether an instance of a second interpretation routine, that is executable by the at least one processor within the second task container, does have access to the particular resource; and

in response to a determination that the instance of the second interpretation routine does not have access to the particular resource, refrain from performing operations to generate the other job flow definition.

14. The computer-program product of claim 13 , wherein:

the first task container is instantiated within a first node device of the set of node devices;

the first node device provides access to the particular resource;

the second task container is instantiated within a second node device of the set of node devices; and

the second node device does not provide access to the particular resource.

15. The computer-program product of claim 14 , wherein:

the first task container is instantiated within a first virtual machine (VM) that is instantiated within the first node device;

the first VM provides the first task container with access to the particular resource; and

the second task container is instantiated within a second VM that is instantiated within the second node device.

16. The computer-program product of claim 10 , wherein:

the particular resource comprises an alternate processor incorporated into a particular node device of the set of node devices;

the object comprises a data set in which data values are organized in a manner that requires use of the alternate processor to perform at least one operation on the data values;

analyzing the object to determine whether the object is associated with the task type comprises at least one of analyzing metadata associated with the object or analyzing a portion of an identifier of the object; and

at least one task of the other set of tasks specified in the other job flow definition comprises using the alternate processor to perform the at least one operation on the data values.

17. The computer-program product of claim 10 , wherein:

the particular resource comprises a set of restricted data objects to which access is restricted to being provided by a particular node device of the set of node devices;

the object comprises a data object of the set of restricted data objects;

analyzing the object to determine whether the object is associated with the task type comprises at least one of analyzing metadata associated with the object or analyzing a portion of an identifier of the object; and

at least one task of the other set of tasks specified in the other job flow definition comprises retrieving the object from among the set of restricted objects from within a task container instantiated within the particular node device.

18. The computer-program product of claim 10 , wherein:

the particular resource comprises the second interpretation routine;

the second interpretation routine is executable by the at least one processor to interpret instructions written in a particular programming language;

the first interpretation routine is not able to be executed by the at least one processor to interpret instructions written in the particular programming language;

the object comprises a task routine that comprises instructions written in the particular programming language;

analyzing the object to determine whether the object is associated with the task type comprises analyzing at least one of executable instructions or comments within the object, or analyzing a portion of an identifier of the object; and

at least one task of the other set of tasks specified in the other job flow definition comprises interpreting the instructions within the task routine that are written in the particular programming language.

19. A computer-implemented method comprising:

receiving, by at the at least one processor, and from a requesting device via a network, a request to provide a view of an object associated with 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 within a set of node devices during a performance of the job flow;

analyzing, by the at least one processor, the object to determine whether the object is associated with a task type that, during a performance of the job flow, requires access to a particular resource that is not accessible to a first interpretation routine that is executable by the at least one processor to cause generation of views of objects;

in response to a determination that the object is associated with the task type, performing operations comprising:

storing, within a job queue, a first job flow generation request message comprising a request to generate another job flow that causes generation of the requested view of the object when the other job flow is performed, and an indication of the task type;

within a first task container, in response to the request to generate the other job flow, performing operations comprising:

analyzing, by the at least one processor, the task type to determine whether an instance of a second interpretation routine, that is executable by the at least one processor within the first task container, does have access to the particular resource; and

in response to a determination that the instance of the second interpretation routine does have access to the particular resource, performing operations comprising:

executing, by the at least one processor, instructions of the instance of the second interpretation routine to generate another job flow definition for the other job flow that specifies another set of tasks to be performed via execution of corresponding other set of task routines to generate the requested view of the object during a performance of the other job flow; and

storing, within a task queue, a first job flow generation completion message comprising an indication of completion of the generation of the other job flow definition; and

after completion of the performance of the other job flow to generate the requested view of the object, transmitting, from the at least one processor, a copy of the requested view of the object to the requesting device via the network; or

in response to a determination that the object is not associated with the task type, perform operations comprising:

executing, by the at least one processor, instructions of the instance of the first interpretation routine to generate the requested view of the object.

20. The computer-implemented method of claim 19 , comprising, in response to a determination that the object is not associated with the task type, performing operations comprising:

before commencement of execution of instructions of the first interpretation routine to generate the requested view of the object, storing, within the job queue, an object view generation message comprising an indication of the generation of the requested view of the object as underway, and an identifier of the instance of the first interpretation routine to provide an indication to another instance of the first interpretation routine of which instance of the first interpretation routine is currently involved in generating the requested view of the object; and

after completion of the generation of the requested view of the object, removing the object view generation message.

21. The computer-implemented method of claim 19 , comprising, in response to the determination that the object is associated with the task type, performing operations comprising:

within a performance container, in response to the storage of the first job flow generation request message within the job queue, storing a second job flow generation request message within a task queue;

within the first task container, performing operations comprising:

retrieving, by the at least one processor, an indication of the task type from the second job flow generation request message stored within the task queue to enable the analysis of the task type; and

after completion of the generation of the other job flow definition, including, by the at least one processor, a copy of the other job flow definition in the first job flow generation completion message stored within the task queue;

within the performance container, in response to the storage of the first job flow generation completion message within the task queue, storing a second job flow generation completion message within the job queue; and

in response to the storage of the second job flow generation completion message within the job queue, storing, within the job queue, a job performance request message comprising a request to perform the other job flow to generate the requested view of the object.

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

within a second task container, in response to the request to generate the other job flow, performing operations comprising:

analyzing, by the at least one processor, the task type to determine whether an instance of a second interpretation routine, that is executable by the at least one processor within the second task container, does have access to the particular resource; and

in response to a determination that the instance of the second interpretation routine does not have access to the particular resource, refraining from performing operations to generate the other job flow definition.

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

the first task container is instantiated within a first node device of the set of node devices;

the first node device provides access to the particular resource;

the second task container is instantiated within a second node device of the set of node devices; and

the second node device does not provide access to the particular resource.

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

the first task container is instantiated within a first virtual machine (VM) that is instantiated within the first node device;

the first VM provides the first task container with access to the particular resource; and

the second task container is instantiated within a second VM that is instantiated within the second node device.

25. The computer-implemented method of claim 19 , wherein:

the particular resource comprises an alternate processor incorporated into a particular node device of the set of node devices;

the object comprises a data set in which data values are organized in a manner that requires use of the alternate processor to perform at least one operation on the data values;

analyzing the object to determine whether the object is associated with the task type comprises at least one of analyzing metadata associated with the object or analyzing a portion of an identifier of the object; and

at least one task of the other set of tasks specified in the other job flow definition comprises using the alternate processor to perform the at least one operation on the data values.

26. The computer-implemented method of claim 19 , wherein:

the particular resource comprises a set of restricted data objects to which access is restricted to being provided by a particular node device of the set of node devices;

the object comprises a data object of the set of restricted data objects;

analyzing the object to determine whether the object is associated with the task type comprises at least one of analyzing metadata associated with the object or analyzing a portion of an identifier of the object; and

at least one task of the other set of tasks specified in the other job flow definition comprises retrieving the object from among the set of restricted objects from within a task container instantiated within the particular node device.

27. The computer-implemented method of claim 19 , wherein:

the particular resource comprises the second interpretation routine;

the second interpretation routine is executable by the at least one processor to interpret instructions written in a particular programming language;

the first interpretation routine is not able to be executed by the at least one processor to interpret instructions written in the particular programming language;

the object comprises a task routine that comprises instructions written in the particular programming language;

analyzing the object to determine whether the object is associated with the task type comprises analyzing at least one of executable instructions or comments within the object, or analyzing a portion of an identifier of the object; and

at least one task of the other set of tasks specified in the other job flow definition comprises interpreting the instructions within the task routine that are written in the particular programming language.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2022
From: BEQUET, HENRY GABRIEL VICTOR; STOGNER, RONAL EARL; YANG, ERIC JIAN; ZHANG, CHAOWANG "RICKY"
To: SAS INSTITUTE INC.
Reel/Frame 059710/0815 →
Continuity (16)
Continuation 17733090 · Apr 29, 2022
Continuation In Part 17682783 · Feb 28, 2022
Continuation In Part 17563697 · Dec 28, 2021
Continuation 17558237 · Dec 21, 2021
Continuation In Part 17308355 · May 5, 2021
Continuation 17225023 · Dec 22, 2020
Provisional Application 63252070 · Oct 4, 2021
Provisional Application 63185570 · May 7, 2021
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
Related Publication 20220261281A1 · Aug 18, 2022