Patents by Inventor Richard J. Coles

Richard J. Coles has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 11425194
    Abstract: Techniques are described for managing distributed execution of programs. In some situations, the techniques include dynamically modifying the distributed program execution in various manners, such as based on monitored status information. The dynamic modifying of the distributed program execution may include adding and/or removing computing nodes from a cluster that is executing the program, modifying the amount of computing resources that are available for the distributed program execution, terminating or temporarily suspending execution of the program (e.g., if an insufficient quantity of computing nodes of the cluster are available to perform execution), etc.
    Type: Grant
    Filed: December 21, 2020
    Date of Patent: August 23, 2022
    Assignee: Amazon Technologies, Inc.
    Inventors: Richendra Khanna, Peter Sirota, Ian P. Nowland, Richard J. Cole, Jai Vasanth, Andrew J. Hitchcock, Luis Felipe Cabrera
  • Patent number: 11263084
    Abstract: Techniques are described for managing distributed execution of programs. In at least some situations, the techniques include decomposing or otherwise separating the execution of a program into multiple distinct execution jobs that may each be executed on a distinct computing node, such as in a parallel manner with each execution job using a distinct subset of input data for the program. In addition, the techniques may include temporarily terminating and later resuming execution of at least some execution jobs, such as by persistently storing an intermediate state of the partial execution of an execution job, and later retrieving and using the stored intermediate state to resume execution of the execution job from the intermediate state. Furthermore, the techniques may be used in conjunction with a distributed program execution service that executes multiple programs on behalf of multiple customers or other users of the service.
    Type: Grant
    Filed: January 10, 2018
    Date of Patent: March 1, 2022
    Assignee: Amazon Technologies, Inc.
    Inventors: Peter Sirota, Ian P. Nowland, Richard J. Cole, Richendra Khanna, Luis Felipe Cabrera
  • Patent number: 10901791
    Abstract: Techniques are described for providing clients with access to functionality for creating, configuring and executing defined workflows that manipulate source data in defined manners, such as under the control of a configurable workflow service that is available to multiple remote clients over one or more public networks. A defined workflow for a client may, for example, include multiple interconnected workflow components that are specified by the client and that each are configured to perform one or more types of data manipulation operations on a specified type of input data. The configurable workflow service may further execute the defined workflow at one or more times and in one or more manners, such as in some situations by provisioning multiple computing nodes provided by the configurable workflow service to each implement at least one of the workflow components for the defined workflow.
    Type: Grant
    Filed: April 30, 2019
    Date of Patent: January 26, 2021
    Assignee: Amazon Technologies, Inc.
    Inventors: James P. Bartlett, Richard J. Cole, Adam D. Gray, Peter Sirota
  • Patent number: 10873623
    Abstract: Techniques are described for managing distributed execution of programs. In some situations, the techniques include dynamically modifying the distributed program execution in various manners, such as based on monitored status information. The dynamic modifying of the distributed program execution may include adding and/or removing computing nodes from a cluster that is executing the program, modifying the amount of computing resources that are available for the distributed program execution, terminating or temporarily suspending execution of the program (e.g., if an insufficient quantity of computing nodes of the cluster are available to perform execution), etc.
    Type: Grant
    Filed: April 19, 2016
    Date of Patent: December 22, 2020
    Assignee: Amazon Technologies, Inc.
    Inventors: Richendra Khanna, Peter Sirota, Ian P. Nowland, Richard J. Cole, Jai Vasanth, Andrew J. Hitchcock, Luis Felipe Cabrera
  • Publication number: 20190258524
    Abstract: Techniques are described for providing clients with access to functionality for creating, configuring and executing defined workflows that manipulate source data in defined manners, such as under the control of a configurable workflow service that is available to multiple remote clients over one or more public networks. A defined workflow for a client may, for example, include multiple interconnected workflow components that are specified by the client and that each are configured to perform one or more types of data manipulation operations on a specified type of input data. The configurable workflow service may further execute the defined workflow at one or more times and in one or more manners, such as in some situations by provisioning multiple computing nodes provided by the configurable workflow service to each implement at least one of the workflow components for the defined workflow.
    Type: Application
    Filed: April 30, 2019
    Publication date: August 22, 2019
    Inventors: James P. BARTLETT, Richard J. COLE, Adam D. GRAY, Peter SIROTA
  • Patent number: 10324761
    Abstract: Techniques are described for providing clients with access to functionality for creating, configuring and executing defined workflows that manipulate source data in defined manners, such as under the control of a configurable workflow service that is available to multiple remote clients over one or more public networks. A defined workflow for a client may, for example, include multiple interconnected workflow components that are specified by the client and that each are configured to perform one or more types of data manipulation operations on a specified type of input data. The configurable workflow service may further execute the defined workflow at one or more times and in one or more manners, such as in some situations by provisioning multiple computing nodes provided by the configurable workflow service to each implement at least one of the workflow components for the defined workflow.
    Type: Grant
    Filed: October 20, 2015
    Date of Patent: June 18, 2019
    Assignee: Amazon Technologies, Inc.
    Inventors: James P. Bartlett, Richard J. Cole, Adam D. Gray, Peter Sirota
  • Publication number: 20180165348
    Abstract: Techniques are described for managing aggregation of data in a distributed manner, such as for a particular client based on specified configuration information. The described techniques may include storing aggregated data values for an OLAP cube or other data structure in a distributed manner, such as in some situations in a distributed hash table. The aggregated data values to be stored may be generated in various manners, such as by performing multi-stage data manipulation operations—for example, a map-reduce architecture may be used, with a first stage involving the use of one or more specified map functions to be performed, and with at least a second stage involving the use of one or more specified reduce functions to be performed.
    Type: Application
    Filed: February 9, 2018
    Publication date: June 14, 2018
    Inventors: Richard J. Cole, Alan D. Mock
  • Publication number: 20180129570
    Abstract: Techniques are described for managing distributed execution of programs. In at least some situations, the techniques include decomposing or otherwise separating the execution of a program into multiple distinct execution jobs that may each be executed on a distinct computing node, such as in a parallel manner with each execution job using a distinct subset of input data for the program. In addition, the techniques may include temporarily terminating and later resuming execution of at least some execution jobs, such as by persistently storing an intermediate state of the partial execution of an execution job, and later retrieving and using the stored intermediate state to resume execution of the execution job from the intermediate state. Furthermore, the techniques may be used in conjunction with a distributed program execution service that executes multiple programs on behalf of multiple customers or other users of the service.
    Type: Application
    Filed: January 10, 2018
    Publication date: May 10, 2018
    Inventors: Peter Sirota, Ian P. Nowland, Richard J. Cole, Richendra Khanna, Luis Felipe Cabrera
  • Patent number: 9898522
    Abstract: Techniques are described for managing aggregation of data in a distributed manner, such as for a particular client based on specified configuration information. The described techniques may include storing aggregated data values for an OLAP cube or other data structure in a distributed manner, such as in some situations in a distributed hash table. The aggregated data values to be stored may be generated in various manners, such as by performing multi-stage data manipulation operations—for example, a map-reduce architecture may be used, with a first stage involving the use of one or more specified map functions to be performed, and with at least a second stage involving the use of one or more specified reduce functions to be performed.
    Type: Grant
    Filed: December 16, 2014
    Date of Patent: February 20, 2018
    Assignee: AMAZON TECHNOLOGIES, INC.
    Inventors: Richard J. Cole, Alan D. Mock
  • Patent number: 9826031
    Abstract: Techniques are described for managing distributed execution of programs. In some situations, the techniques include determining configuration information to be used for executing a particular program in a distributed manner on multiple computing nodes and/or include providing information and associated controls to a user regarding ongoing distributed execution of one or more programs to enable the user to modify the ongoing distributed execution in various manners. Determined configuration information may include, for example, configuration parameters such as a quantity of computing nodes and/or other measures of computing resources to be used for the executing, and may be determined in various manners, including by interactively gathering values for at least some types of configuration information from an associated user (e.g., via a GUI that is displayed to the user) and/or by automatically determining values for at least some types of configuration information (e.g., for use as recommendations to a user).
    Type: Grant
    Filed: October 16, 2015
    Date of Patent: November 21, 2017
    Assignee: AMAZON TECHNOLOGIES, INC.
    Inventors: Peter Sirota, Richendra Khanna, Ian P. Nowland, Richard J. Cole, Jai Vasanth, Andrew J. Hitchcock, Luis Felipe Cabrera
  • Publication number: 20160234300
    Abstract: Techniques are described for managing distributed execution of programs. In some situations, the techniques include dynamically modifying the distributed program execution in various manners, such as based on monitored status information. The dynamic modifying of the distributed program execution may include adding and/or removing computing nodes from a cluster that is executing the program, modifying the amount of computing resources that are available for the distributed program execution, terminating or temporarily suspending execution of the program (e.g., if an insufficient quantity of computing nodes of the cluster are available to perform execution), etc.
    Type: Application
    Filed: April 19, 2016
    Publication date: August 11, 2016
    Inventors: Richendra Khanna, Peter Sirota, Ian P. Nowland, Richard J. Cole, Jai Vasanth, Andrew J. Hitchcock, Luis Felipe Cabrera
  • Patent number: 9329909
    Abstract: Techniques are described for managing distributed execution of programs. In some situations, the techniques include dynamically modifying the distributed program execution in various manners, such as based on monitored status information. The dynamic modifying of the distributed program execution may include adding and/or removing computing nodes from a cluster that is executing the program, modifying the amount of computing resources that are available for the distributed program execution, terminating or temporarily suspending execution of the program (e.g., if an insufficient quantity of computing nodes of the cluster are available to perform execution), etc.
    Type: Grant
    Filed: September 15, 2012
    Date of Patent: May 3, 2016
    Assignee: Amazon Technologies, Inc.
    Inventors: Richendra Khanna, Peter Sirota, Ian P. Nowland, Richard J. Cole, Jai Vasanth, Andrew J. Hitchcock, Luis Felipe Cabrera
  • Publication number: 20160100001
    Abstract: Techniques are described for managing distributed execution of programs. In some situations, the techniques include determining configuration information to be used for executing a particular program in a distributed manner on multiple computing nodes and/or include providing information and associated controls to a user regarding ongoing distributed execution of one or more programs to enable the user to modify the ongoing distributed execution in various manners. Determined configuration information may include, for example, configuration parameters such as a quantity of computing nodes and/or other measures of computing resources to be used for the executing, and may be determined in various manners, including by interactively gathering values for at least some types of configuration information from an associated user (e.g., via a GUI that is displayed to the user) and/or by automatically determining values for at least some types of configuration information (e.g., for use as recommendations to a user).
    Type: Application
    Filed: October 16, 2015
    Publication date: April 7, 2016
    Inventors: Peter Sirota, Richendra Khanna, Ian P. Nowland, Richard J. Cole, Jai Vasanth, Andrew J. Hitchcock, Luis Felipe Cabrera
  • Patent number: 9280390
    Abstract: Techniques are described for managing distributed execution of programs, including by dynamically scaling a cluster of multiple computing nodes performing ongoing distributed execution of a program, such as to increase and/or decrease computing node quantity. An architecture may be used that has core nodes that each participate in a distributed storage system for the distributed program execution, and that has one or more other auxiliary nodes that do not participate in the distributed storage system. Furthermore, as part of performing the dynamic scaling of a cluster, computing nodes that are only temporarily available may be selected and used, such as computing nodes that might be removed from the cluster during the ongoing program execution to be put to other uses and that may also be available for a different fee (e.g., a lower fee) than other computing nodes that are available throughout the ongoing use of the cluster.
    Type: Grant
    Filed: January 15, 2015
    Date of Patent: March 8, 2016
    Assignee: Amazon Technologies, Inc.
    Inventors: Peter Sirota, Richard J. Cole, Vaibhav Aggarwal, Andrew J. Hitchcock, Jai Vasanth
  • Publication number: 20160041846
    Abstract: Techniques are described for providing clients with access to functionality for creating, configuring and executing defined workflows that manipulate source data in defined manners, such as under the control of a configurable workflow service that is available to multiple remote clients over one or more public networks. A defined workflow for a client may, for example, include multiple interconnected workflow components that are specified by the client and that each are configured to perform one or more types of data manipulation operations on a specified type of input data. The configurable workflow service may further execute the defined workflow at one or more times and in one or more manners, such as in some situations by provisioning multiple computing nodes provided by the configurable workflow service to each implement at least one of the workflow components for the defined workflow.
    Type: Application
    Filed: October 20, 2015
    Publication date: February 11, 2016
    Inventors: James P. Bartlett, Richard J. Cole, Adam D. Gray, Peter Sirota
  • Patent number: 9207975
    Abstract: Techniques are described for managing distributed execution of programs. In some situations, the techniques include determining configuration information to be used for executing a particular program in a distributed manner on multiple computing nodes and/or include providing information and associated controls to a user regarding ongoing distributed execution of one or more programs to enable the user to modify the ongoing distributed execution in various manners. Determined configuration information may include, for example, configuration parameters such as a quantity of computing nodes and/or other measures of computing resources to be used for the executing, and may be determined in various manners, including by interactively gathering values for at least some types of configuration information from an associated user (e.g., via a GUI that is displayed to the user) and/or by automatically determining values for at least some types of configuration information (e.g., for use as recommendations to a user).
    Type: Grant
    Filed: July 22, 2014
    Date of Patent: December 8, 2015
    Assignee: Amazon Technologies, Inc.
    Inventors: Peter Sirota, Richendra Khanna, Ian P. Nowland, Richard J. Cole, Jai Vasanth, Andrew J. Hitchcock, Luis Felipe Cabrera
  • Patent number: 9184988
    Abstract: Techniques are described for providing clients with access to functionality for creating, configuring and executing defined workflows that manipulate source data in defined manners, such as under the control of a configurable workflow service that is available to multiple remote clients over one or more public networks. A defined workflow for a client may, for example, include multiple interconnected workflow components that are specified by the client and that each are configured to perform one or more types of data manipulation operations on a specified type of input data. The configurable workflow service may further execute the defined workflow at one or more times and in one or more manners, such as in some situations by provisioning multiple computing nodes provided by the configurable workflow service to each implement at least one of the workflow components for the defined workflow.
    Type: Grant
    Filed: September 9, 2014
    Date of Patent: November 10, 2015
    Assignee: Amazon Technologies, Inc.
    Inventors: James P. Bartlett, Richard J. Cole, Adam D. Gray, Peter Sirota
  • Publication number: 20150169412
    Abstract: Techniques are described for managing distributed execution of programs. In at least some situations, the techniques include decomposing or otherwise separating the execution of a program into multiple distinct execution jobs that may each be executed on a distinct computing node, such as in a parallel manner with each execution job using a distinct subset of input data for the program. In addition, the techniques may include temporarily terminating and later resuming execution of at least some execution jobs, such as by persistently storing an intermediate state of the partial execution of an execution job, and later retrieving and using the stored intermediate state to resume execution of the execution job from the intermediate state. Furthermore, the techniques may be used in conjunction with a distributed program execution service that executes multiple programs on behalf of multiple customers or other users of the service.
    Type: Application
    Filed: December 15, 2014
    Publication date: June 18, 2015
    Inventors: Peter Sirota, Ian P. Nowland, Richard J. Cole, Richendra Khanna, Luis Felipe Cabrera
  • Publication number: 20150135185
    Abstract: Techniques are described for managing distributed execution of programs, including by dynamically scaling a cluster of multiple computing nodes performing ongoing distributed execution of a program, such as to increase and/or decrease computing node quantity. An architecture may be used that has core nodes that each participate in a distributed storage system for the distributed program execution, and that has one or more other auxiliary nodes that do not participate in the distributed storage system. Furthermore, as part of performing the dynamic scaling of a cluster, computing nodes that are only temporarily available may be selected and used, such as computing nodes that might be removed from the cluster during the ongoing program execution to be put to other uses and that may also be available for a different fee (e.g., a lower fee) than other computing nodes that are available throughout the ongoing use of the cluster.
    Type: Application
    Filed: January 15, 2015
    Publication date: May 14, 2015
    Inventors: Peter Sirota, Richard J. Cole, Vaibhav Aggarwal, Andrew J. Hitchcock, Jai Vasanth
  • Publication number: 20150106325
    Abstract: Techniques are described for managing aggregation of data in a distributed manner, such as for a particular client based on specified configuration information. The described techniques may include storing aggregated data values for an OLAP cube or other data structure in a distributed manner, such as in some situations in a distributed hash table. The aggregated data values to be stored may be generated in various manners, such as by performing multi-stage data manipulation operations—for example, a map-reduce architecture may be used, with a first stage involving the use of one or more specified map functions to be performed, and with at least a second stage involving the use of one or more specified reduce functions to be performed.
    Type: Application
    Filed: December 16, 2014
    Publication date: April 16, 2015
    Inventors: Richard J. Cole, Alan D. Mock