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).
-
Publication number: 20150169412Abstract: 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: ApplicationFiled: December 15, 2014Publication date: June 18, 2015Inventors: Peter Sirota, Ian P. Nowland, Richard J. Cole, Richendra Khanna, Luis Felipe Cabrera
-
Publication number: 20150135185Abstract: 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: ApplicationFiled: January 15, 2015Publication date: May 14, 2015Inventors: Peter Sirota, Richard J. Cole, Vaibhav Aggarwal, Andrew J. Hitchcock, Jai Vasanth
-
Publication number: 20150106325Abstract: 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: ApplicationFiled: December 16, 2014Publication date: April 16, 2015Inventors: Richard J. Cole, Alan D. Mock
-
Patent number: 8966030Abstract: 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: GrantFiled: March 31, 2014Date of Patent: February 24, 2015Assignee: Amazon Technologies, Inc.Inventors: Peter Sirota, Richard J. Cole, Vaibhav Aggarwal, Andrew J. Hitchcock, Jai Vasanth
-
Patent number: 8938416Abstract: 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: GrantFiled: January 13, 2012Date of Patent: January 20, 2015Assignee: Amazon Technologies, Inc.Inventors: Richard J. Cole, Alan D. Mock
-
Patent number: 8935404Abstract: 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: GrantFiled: January 9, 2013Date of Patent: January 13, 2015Assignee: Amazon Technologies, Inc.Inventors: Peter Sirota, Ian P. Nowland, Richard J. Cole, Richendra Khanna, Luis Felipe Cabrera
-
Publication number: 20140379879Abstract: 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: ApplicationFiled: September 9, 2014Publication date: December 25, 2014Inventors: James P. Bartlett, Richard J. Cole, Adam D. Gray, Peter Sirota
-
Publication number: 20140330981Abstract: 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: ApplicationFiled: July 22, 2014Publication date: November 6, 2014Inventors: Peter Sirota, Richendra Khanna, Ian P. Nowland, Richard J. Cole, Jai Vasanth, Andrew J. Hitchcock, Luis Felipe Cabrera
-
Patent number: 8856291Abstract: 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: GrantFiled: February 14, 2012Date of Patent: October 7, 2014Assignee: Amazon Technologies, Inc.Inventors: James P. Bartlett, Richard J. Cole, Adam D. Gray, Peter Sirota
-
Patent number: 8819106Abstract: 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: GrantFiled: March 31, 2009Date of Patent: August 26, 2014Assignee: Amazon Technologies, Inc.Inventors: Peter Sirota, Richendra Khanna, Ian P. Nowland, Richard J. Cole, Jai Vasanth, Andrew J. Hitchcock, Luis Felipe Cabrera
-
Patent number: 8732118Abstract: 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 receiving information about multi-stage data manipulation operations that are to be performed as part of the data aggregation, with each stage able to be performed in a distributed manner using multiple computing nodes—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. In some situations, a particular set of input data may be used to generate the data for a multi-dimensional OLAP (“online analytical processing”) cube, such as for input data corresponding to a large quantity of transactions of one or more types.Type: GrantFiled: January 13, 2012Date of Patent: May 20, 2014Assignee: Amazon Technologies, Inc.Inventors: Richard J. Cole, Alan D. Mock
-
Patent number: 8719415Abstract: 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: GrantFiled: June 28, 2010Date of Patent: May 6, 2014Assignee: Amazon Technologies, Inc.Inventors: Peter Sirota, Richard J. Cole, Vaibhav Aggarwal, Andrew J. Hitchcock, Jai Vasanth
-
Publication number: 20130212234Abstract: 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: ApplicationFiled: February 14, 2012Publication date: August 15, 2013Inventors: James P. Bartlett, Richard J. Cole, Adam D. Gray, Peter Sirota
-
Patent number: 8370493Abstract: 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: GrantFiled: December 12, 2008Date of Patent: February 5, 2013Assignee: Amazon Technologies, Inc.Inventors: Peter Sirota, Ian P. Nowland, Richard J. Cole, Richendra Khanna, Luis Felipe Cabrera
-
Patent number: 8321558Abstract: Techniques are described for managing distributed execution of programs. In some situations, the techniques include dynamically monitoring the ongoing distributed execution of a program on a cluster of multiple computing nodes, and may include automatically determining the status of execution of the program on each of the multiple computing nodes and/or automatically determining the aggregate usage of one or more types of computing resources across the cluster of multiple computing nodes by the distributed program execution. The information obtained from the dynamic monitoring may be used in various manners, including to facilitate dynamically modifying the ongoing distributed program execution in various manners, such as to temporarily throttle usage of computing resources by the distributed program execution (e.g., to remove or reduce one or more bottlenecks).Type: GrantFiled: March 31, 2009Date of Patent: November 27, 2012Assignee: Amazon Technologies, Inc.Inventors: Peter Sirota, Richendra Khanna, Ian P. Nowland, Richard J. Cole, Jai Vasanth, Andrew J. Hitchcock, Luis Felipe Cabrera
-
Patent number: 8296419Abstract: 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: GrantFiled: March 31, 2009Date of Patent: October 23, 2012Assignee: Amazon Technologies, Inc.Inventors: Richendra Khanna, Peter Sirota, Ian P. Nowland, Richard J. Cole, Jai Vasanth, Andrew J. Hitchcock, Luis Felipe Cabrera
-
Patent number: 8260840Abstract: Techniques are described for managing distributed execution of programs, including by dynamically scaling a cluster of multiple computing nodes used to perform ongoing distributed execution of a program, such as to increase and/or decrease the quantity of computing nodes in the cluster at various times and for various reasons. An architecture may be used that facilitates the dynamic scaling of a cluster, including by having at least some of the computing nodes act as core nodes that each participate in a distributed storage system for the distributed program execution, and having one or more other computing nodes that act as auxiliary nodes that do not participate in the distributed storage system. If computing nodes are selected to be removed from the cluster during ongoing distributed execution of a program, one or more nodes of the auxiliary computing node type may be selected for the removal.Type: GrantFiled: June 28, 2010Date of Patent: September 4, 2012Assignee: Amazon Technologies, Inc.Inventors: Peter Sirota, Richard J. Cole, Vaibhav Aggarwal, Andrew J. Hitchcock, Jai Vasanth
-
Patent number: 8260522Abstract: An aircraft electric power supply system (10) for supplying electric power to onboard electric devices (20) during flight. To reduce the devices' power draw, the electric power is supplied via modulation at an increment-percentage that is determined by present conditions. An optimum portfolio can be established for the electrical devices (20) collectively, this portfolio being selected in accordance with an energy-management criterion or other aircraft objectives.Type: GrantFiled: February 9, 2010Date of Patent: September 4, 2012Assignee: Goodrich CorporationInventors: Galdemir C. Botura, Richard J. Cole, James M. Roman
-
Patent number: 7882046Abstract: An ad system is described for providing ad selections in response to an ad presentation opportunity. The ad system can use multiple content providers to generate multiple sets of ad candidates. The content providers can apply different ad selection paradigms in generating their sets of ad candidates. The paradigms may act on different aspects of a context pertaining to the ad presentation opportunity. A chooser module and filtering module can cull the set of ad selections from among the plural sets of ad candidates. At least one content provider uses machine learning functionality in generating ad candidates, such as a Naïve Bayesian approach, an affiliate similarity approach, etc. Various content providers also find application in a stand-alone mode.Type: GrantFiled: March 30, 2007Date of Patent: February 1, 2011Assignee: Amazon Technologies, Inc.Inventors: Raj K. Kizhakkekalathil, Karen R. Haberkorn, Llewllyn J. Mason, Brian J. Schuster, Richard J. Cole, Mike Perkowitz, Mark Jacobson, Andrew B. Dickinson
-
Patent number: 7882045Abstract: An ad system is described for providing ad selections in response to an ad presentation opportunity. The ad system can use multiple content providers to generate multiple sets of ad candidates. The content providers can apply different ad selection paradigms in generating their sets of ad candidates. The paradigms may act on different aspects of a context pertaining to the ad presentation opportunity. A chooser module and filtering module can cull the set of ad selections from among the plural sets of ad candidates. At least one content provider uses machine learning functionality in generating ad candidates, such as a Naïve Bayesian approach, an affiliate similarity approach, etc. Various content providers also find application in a stand-alone mode.Type: GrantFiled: March 30, 2007Date of Patent: February 1, 2011Assignee: Amazon Technologies, Inc.Inventors: Richard J. Cole, Raj K. Kizhakkekalathil, Brian J. Schuster, Shashank Senapaty