IP Library Granted Patent US 12,225,092
Granted Patent B2
US 12,225,092 · App. 18/310,461 · Granted Feb 11, 2025

Dynamically routing code for executing

Inventors: George Steven McPherson (Seattle, WA); Mehul A. Shah (Saratoga, CA); Supratik Chakraborty (San Jose, CA); Prajakta Datta Damle (San Jose, CA); Gopinath Duddi (San Jose, CA); Anurag Windlass Gupta (Atherton, CA)
Assignee: Amazon Technologies, Inc.
H04L67/34G06F9/4411G06F9/5005G06F9/5072H04L67/01H04L67/10
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 12,225,092
App. No.
18/310,461
Granted
Feb 11, 2025
Kind
B2
Abstract

Code may be dynamically routed to computing resources for execution. Code may be received for execution on behalf of a client. Execution criteria for the code may be determined and computing resources that satisfy the execution criteria may be identified. The identified computing resources may then be procured for executing the code and then the code may be routed to the procured computing resources for execution. Permissions or authorization to execute the code may be shared to ensure that computing resources executing the code have the same permissions or authorization when executing the code.

Claims (53)

1. A system, comprising:

one or more processors; and

a memory, that stores program instructions that, when executed by the at least one processor, cause the one or more processors to:

receive, via an interface of a cloud computing environment, code to configure execution of an Extract Transform Load (ETL) job to transfer data from a data source to a location on behalf of a client;

evaluate the code to determine a criteria to execute the ETL job, wherein the evaluating comprises:

identify use of one or more Graphics Processing Unit (GPUs) that are utilized via one or more application programming interfaces (APIs) as part of executing the ETL job and identifying that a driver is used to interact with the one or more GPUs in order to execute the ETL job;

procure one or more computing resources with respective capabilities to execute the ETL job that satisfy the determined criteria, wherein the determined criteria includes the use of the one or more GPUs, wherein the procuring causes configuration of a software image for a software container that implements operating system virtualization at the one or more computing resources to use the driver to interact with the one or more GPUs via the one or more APIs to execute the code; and

initiate execution of the ETL job at the procured computing resources.

2. The system of claim 1 , wherein the memory stores further program instructions that when executed by the at least one processor further cause the at least one processor to:

determine that execution of the ETL job has failed; and

provide a failure notification for the ETL job to the client.

3. The system of claim 1 , wherein an additional criteria is determined to execute the ETL job that includes a network configuration.

4. The system of claim 1 , wherein the memory stores further program instructions that when executed by the at least one processor further cause the at least one processor to:

receive a request to cancel execution of the ETL job; and

cancel execution of the ETL job at the at the procured computing resources.

5. The system of claim 1 , wherein the identified computing resources are a cluster of computing resources, wherein at least one of the computing resources is a multi-tenant computing resource available for executing different source code, wherein procuring the identified computing resources to execute the source code comprises configuring a logically isolated network amongst the cluster of computing resources.

6. The system of claim 1 ,

wherein the memory stores further program instructions that when executed by the at least one processor further cause the at least one processor to receive an identity for the client associated with one or more operational permissions; and

wherein to initiate execution of the ETL job at the procured computing resources, the program instructions cause the at least one processor to provide the identity for the client to the procured computing resources.

7. The system of claim 1 , wherein the cloud computing environment is a network-based service and wherein the code for the ETL job is received at a network endpoint via a network-based interface for the network-based service.

8. A method, comprising:

receiving, via an interface of a cloud computing environment, code to configure execution of an Extract Transform Load (ETL) job to transfer data from a data source to a destination on behalf of a client;

evaluating the code to determine a criteria to execute the ETL job, wherein the evaluating comprises:

identifying use of one or more Graphics Processing Unit (GPUs) that are utilized via one or more application programming interfaces (APIs) as part of executing the ETL job and identifying that a driver is used to interact with the one or more GPUs in order to execute the ETL job;

procuring one or more computing resources with respective capabilities to execute the ETL job that satisfy the determined criteria, wherein the determined criteria includes the use of the one or more GPUs, wherein the procuring causes configuration of a software image for a software container that implements operating system virtualization at the one or more computing resources to use the driver to interact with the one or more GPUs via the one or more APIs to execute the code; and

initiating execution of the ETL job at the procured computing resources.

9. The method of claim 8 , further comprising:

determining that execution of the ETL job has failed; and

providing a failure notification for the ETL job to the client.

10. The method of claim 8 , further comprising:

receiving a request to cancel execution of the ETL job; and

canceling execution of the ETL job at the at the procured computing resources.

11. The method of claim 8 , wherein the identified computing resources are a cluster of computing resources, wherein at least one of the computing resources is a multi-tenant computing resource available for executing different source code, wherein procuring the identified computing resources to execute the source code comprises configuring a logically isolated network amongst the cluster of computing resources.

12. The method of claim 8 ,

wherein the method further comprises receiving an identity for the client associated with one or more operational permissions; and

wherein initiating execution of the ETL job at the procured computing resources comprises providing the identity for the client to the procured computing resources.

13. The method of claim 8 , wherein an additional criteria is determined to execute the ETL job that includes a network configuration.

14. The method of claim 8 , wherein the cloud computing environment is a network-based service and wherein the code for the ETL job is received at a network endpoint via a network-based interface for the network-based service.

15. One or more non-transitory computer-readable storage media storing program instructions that, when executed on or across one or more computing devices, cause the one or more computing devices to implement:

receiving, via an interface of a cloud computing environment, code to configure execution of an Extract Transform Load (ETL) job to transfer data from a data source to a destination on behalf of a client;

evaluating the code to determine a criteria to execute the ETL job, wherein the evaluating comprises:

identifying use of one or more Graphics Processing Unit (GPUs) that are utilized via one or more application programming interfaces (APIs) as part of executing the ETL job and identifying that a driver is used to interact with the one or more GPUs in order to execute the ETL job;

procuring one or more computing resources with respective capabilities to execute the ETL job that satisfy the determined criteria, wherein the determined criteria includes the use of the one or more GPUs, wherein the procuring causes configuration of a software image for a software container that implements operating system virtualization at the one or more computing resources to use the driver to interact with the one or more GPUs via the one or more APIs to execute the code; and

initiating execution of the ETL job at the procured computing resources.

16. The one or more non-transitory computer-readable storage media of claim 15 , storing further program instructions that when executed on or across the one or more computing devices, cause the one or more computing devices to further implement: determining that execution of the ETL job has failed; and providing a failure notification for the ETL job to the client.

17. The one or more non-transitory computer-readable storage media of claim 16 , storing further program instructions that when executed on or across the one or more computing devices, cause the one or more computing devices to further implement:

receiving a request to cancel execution of the ETL job; and

canceling execution of the ETL job at the at the procured computing resources.

18. The one or more non-transitory computer-readable storage media of claim 16 , wherein the identified computing resources are a cluster of computing resources, wherein at least one of the computing resources is a multi-tenant computing resource available for executing different source code, wherein procuring the identified computing resources to execute the source code comprises configuring a logically isolated network amongst the cluster of computing resources.

19. The one or more non-transitory computer-readable storage media of claim 16 ,

wherein the one or more non-transitory computer-readable storage media store further program instructions that when executed on or across the one or more computing devices, cause the one or more computing devices to further implement receiving an identity for the client associated with one or more operational permissions; and

wherein, in initiating execution of the ETL job at the procured computing resources, the program instructions cause the one or more computing devices to implement providing the identity for the client to the procured computing resources.

20. The one or more non-transitory computer-readable storage media of claim 16 , wherein the cloud computing environment is a network-based service and wherein the code for the ETL job is received at a network endpoint via a network-based interface for the network-based service.

Continuity (4)
Continuation 17694585 · Mar 14, 2022
Continuation 15385784 · Dec 20, 2016
Provisional Application 62426584 · Nov 27, 2016
Related Publication 20230362265A1 · Nov 9, 2023
References Cited (77)
US 8136158B1 · Sehr et al. · 2012 [cited by applicant]
US 8458691B2 · Fellenstein et al. · 2013 [cited by applicant]
US 8752047B2 · Banga et al. · 2014 [cited by applicant]
US 9361145B1 · Wilson et al. · 2016 [cited by applicant]
US 9471775B1 · Wagner et al. · 2016 [cited by applicant]
US 9632836B2 · Michel et al. · 2017 [cited by applicant]
US 9684785B2 · Walsh · 2017 [cited by applicant]
US 9760376B1 · Bequet et al. · 2017 [cited by applicant]
US 9800517B1 · Anderson · 2017 [cited by applicant]
US 10545979B2 · McPherson et al. · 2020 [cited by applicant]
US 10621210B2 · Shah et al. · 2020 [cited by applicant]
US 10963479B1 · Shah et al. · 2021 [cited by applicant]
US 11036560B1 · McPherson et al. · 2021 [cited by applicant]
US 11138220B2 · Shah et al. · 2021 [cited by applicant]
US 11277494B1 · McPherson et al. · 2022 [cited by applicant]
US 11423041B2 · McPherson et al. · 2022 [cited by applicant]
US 11481408B2 · McPherson et al. · 2022 [cited by applicant]
US 20030196193A1 · Kuzmin · 2003 [cited by applicant]
US 20050283622A1 · Hall et al. · 2005 [cited by applicant]
US 20060152756A1 · Fellenstein et al. · 2006 [cited by applicant]
US 20070203719A1 · Kenagy et al. · 2007 [cited by applicant]
US 20070240161A1 · Prabhakar et al. · 2007 [cited by applicant]
US 20070266426A1 · Iyengar et al. · 2007 [cited by applicant]
US 20080052534A1 · Harada et al. · 2008 [cited by applicant]
US 20080098375A1 · Isard · 2008 [cited by applicant]
US 20080104014A1 · Burger et al. · 2008 [cited by applicant]
US 20080147673A1 · Candea · 2008 [cited by applicant]
US 20090177671A1 · Pellegrini et al. · 2009 [cited by applicant]
US 20090192979A1 · Lunde · 2009 [cited by applicant]
US 20100058291A1 · Hahn et al. · 2010 [cited by applicant]
US 20100274750A1 · Oltean et al. · 2010 [cited by applicant]
US 20100280990A1 · Castellanos · 2010 [cited by applicant]
US 20110023028A1 · Nandagopal et al. · 2011 [cited by applicant]
US 20110107383A1 · Barton et al. · 2011 [cited by applicant]
US 20110145392A1 · Dawson et al. · 2011 [cited by applicant]
US 20110154431A1 · Walsh · 2011 [cited by applicant]
US 20110265069A1 · Fee et al. · 2011 [cited by applicant]
US 20120042162A1 · Anglin et al. · 2012 [cited by applicant]
US 20120054744A1 · Singh et al. · 2012 [cited by applicant]
US 20120096468A1 · Chakravorty et al. · 2012 [cited by applicant]
US 20120102007A1 · Ramasubramanian · 2012 [cited by applicant]
US 20120203877A1 · Bartholomay et al. · 2012 [cited by applicant]
US 20130167222A1 · Lewis · 2013 [cited by applicant]
US 20130290928A1 · Johnson · 2013 [cited by applicant]
US 20130346993A1 · Chen et al. · 2013 [cited by applicant]
US 20140181006A1 · Greenwood · 2014 [cited by applicant]
US 20150081618A1 · Schuster · 2015 [cited by applicant]
US 20150100542A1 · Li et al. · 2015 [cited by applicant]
US 20150113009A1 · Zhou et al. · 2015 [cited by applicant]
US 20150163162A1 · DeCusatis et al. · 2015 [cited by applicant]
US 20150286701A1 · Wideman · 2015 [cited by applicant]
US 20150347541A1 · Holmes et al. · 2015 [cited by applicant]
US 20150356293A1 · Biswas · 2015 [cited by applicant]
US 20160180084A1 · Spurlock et al. · 2016 [cited by applicant]
US 20160224360A1 · Wagner et al. · 2016 [cited by applicant]
US 20160224785A1 · Wagner et al. · 2016 [cited by applicant]
US 20160259628A1 · Schuchman et al. · 2016 [cited by applicant]
US 20160314020A1 · Miller et al. · 2016 [cited by applicant]
US 20160360009A1 · Borley et al. · 2016 [cited by applicant]
US 20170126795A1 · Kumar et al. · 2017 [cited by applicant]
US 20170213037A1 · Toledano et al. · 2017 [cited by applicant]
US 20170223115A1 · Childs et al. · 2017 [cited by applicant]
US 20170293980A1 · Phillips · 2017 [cited by examiner]
US 20170308412A1 · Prakash · 2017 [cited by applicant]
US 20170310557A1 · Prakash · 2017 [cited by applicant]
US 20180129497A1 · Biddle et al. · 2018 [cited by applicant]
US 20180157703A1 · Wang et al. · 2018 [cited by applicant]
US 20180157842A1 · Holz et al. · 2018 [cited by applicant]
US 20180189350A1 · Imaki · 2018 [cited by applicant]
US 20180189510A1 · Seko · 2018 [cited by applicant]
US 20180276781A1 · Oliveria et al. · 2018 [cited by applicant]
US 20220100774A1 · Shah et al. · 2022 [cited by applicant]
Oracle: “Triggers-Oracle Database Concepts”, Retrieved from URL: https://Web.archive.org/web/20150918220843/https://docs.oracle.com/cd/B19306_01/server.102/b14220/triggers.htm, retrieved on Jan. 11, 2018, pp. 1-17. [cited by applicant]
Bratko, A. et al., “Exploiting Structural Information for semi-structured document categorization”, Information Processing & Management, Dated May 1, 2006, vol. 42, No. 3, pp. 679-694. [cited by applicant]
Juan Trujillo et al., “A UML Based Approach for Modeling ETL Processes in data warehouses”, In: Network and parallel computing, dated Oct. 16, 2003, pp. 1-14. [cited by applicant]
Anonymous, “Start informatica job when a row is updated”, retrieved from URL: https://network.informatica.com/thread/13920. on Jan. 10, 2018. pp. 1-5. [cited by applicant]
Anonymous, “File based job trigger for deploying talend open studio jobs—Talend Community forum”, Retrieved from URL: https//www.talendforge.org/forum/viewtopic.php?id=45580, retrieved on Jan. 10, 2018, pp. 1-3. [cited by applicant]