Patents by Inventor Ryan K. Cradick
Ryan K. Cradick 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: 20170249362Abstract: A stream of tuples to be processed by a plurality processing elements executing on two or more compute nodes is received. Each compute node stores one or more of the processing elements having one or more stream operators. It is determined whether an overhead parameter associated with a first streams service located at a first stream operator is outside of a first overhead criterion. The first streams service is ended at the first stream operator and a second streams service is instantiated at a second stream operator when the overhead parameter associated with the first streams service is outside of the first overhead criterion. The second stream operator is different from the first stream operator. The method may include determining whether the first streams service samples a first data attribute of tuples or measures performance.Type: ApplicationFiled: May 12, 2017Publication date: August 31, 2017Inventors: Ryan K. Cradick, Jason A. Nikolai
-
Publication number: 20170220631Abstract: A mechanism is provided to implement an action for an intended selection of content element due to dynamically shifting content. For a set of content elements displayed in a user interface, changes to locations of the set of content elements and a set of user interactions with the set of content elements are analyzed. A determination is made as to whether a loading of a dynamic content element will cause a user's intended selection of the content element within the set of content elements to be erroneously performed. Responsive to determining that the loading of the dynamic content element will cause the user's intended selection of the content element to be erroneously performed, the action for the intended selection of the content element that takes into account the loading of the dynamic content element is implemented.Type: ApplicationFiled: April 17, 2017Publication date: August 3, 2017Inventors: Ilse M. Breedvelt-Schouten, Ryan K. Cradick
-
Publication number: 20170212663Abstract: A mechanism is provided to implement an action for an intended selection of content element due to dynamically shifting content. For a set of content elements displayed in a user interface, changes to locations of the set of content elements and a set of user interactions with the set of content elements are analyzed. A determination is made as to whether a loading of a dynamic content element will cause a user's intended selection of the content element within the set of content elements to be erroneously performed. Responsive to determining that the loading of the dynamic content element will cause the user's intended selection of the content element to be erroneously performed, the action for the intended selection of the content element that takes into account the loading of the dynamic content element is implemented.Type: ApplicationFiled: January 22, 2016Publication date: July 27, 2017Inventors: Ilse M. Breedvelt-Schouten, Ryan K. Cradick
-
Publication number: 20170168748Abstract: Managing a streaming environment of an operator graph by performing corrective actions based on a threshold of changes in state being reached. An operator graph includes states of information stored within a memory of a first processing element configured to process a set of tuples. The memory of the first processing element is monitored. A change in the information from a first state to a second state is identified, based on the monitoring. The change from the first state to the second state is recorded. A determination is made if the change from the first state to the second state has caused a threshold of changes between the states of the information to be reached. A corrective action is performed that modifies a configuration of the operator graph in response to the threshold of changes between the states of the information being reached.Type: ApplicationFiled: December 15, 2015Publication date: June 15, 2017Inventors: Eric L. Barsness, Michael J. Branson, Ryan K. Cradick, John M. Santosuosso
-
Publication number: 20170123851Abstract: Techniques are described for eliminating backpressure in a distributed system by changing the rate data flows through a processing element. Backpressure occurs when data throughput in a processing element begins to decrease, for example, if new processing elements are added to the operating chart or if the distributed system is required to process more data. Indicators of backpressure (current or future) may be monitored. Once current backpressure or potential backpressure is identified, the operator graph or data rates may be altered to alleviate the backpressure. For example, a processing element may reduce the data rates it sends to processing elements that are downstream in the operator graph, or processing elements and/or data paths may be eliminated. In one embodiment, processing elements and associate data paths may be prioritized so that more important execution paths are maintained.Type: ApplicationFiled: January 12, 2017Publication date: May 4, 2017Inventors: Michael J. BRANSON, Ryan K. CRADICK, John M. SANTOSUOSSO
-
Patent number: 9588812Abstract: Techniques are described for eliminating backpressure in a distributed system by changing the rate data flows through a processing element. Backpressure occurs when data throughput in a processing element begins to decrease, for example, if new processing elements are added to the operating chart or if the distributed system is required to process more data. Indicators of backpressure (current or future) may be monitored. Once current backpressure or potential backpressure is identified, the operator graph or data rates may be altered to alleviate the backpressure. For example, a processing element may reduce the data rates it sends to processing elements that are downstream in the operator graph, or processing elements and/or data paths may be eliminated. In one embodiment, processing elements and associate data paths may be prioritized so that more important execution paths are maintained.Type: GrantFiled: March 8, 2016Date of Patent: March 7, 2017Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso
-
Publication number: 20170060959Abstract: A stream of tuples to be processed by a plurality processing elements executing on two or more compute nodes is received. Each compute node stores one or more of the processing elements having one or more stream operators. It is determined whether an overhead parameter associated with a first streams service located at a first stream operator is outside of a first overhead criterion. The first streams service is ended at the first stream operator and a second streams service is instantiated at a second stream operator when the overhead parameter associated with the first streams service is outside of the first overhead criterion. The second stream operator is different from the first stream operator. The method may include determining whether the first streams service samples a first data attribute of tuples or measures performance.Type: ApplicationFiled: September 1, 2015Publication date: March 2, 2017Inventors: Ryan K. Cradick, Jason A. Nikolai
-
Publication number: 20170033979Abstract: A streams manager intelligently restores multiple consistent regions of streaming applications in a streaming environment to increase performance and reduce overloading of other operators and resources. The streams manager detects a failure that affects multiple consistent regions and determines a preferred schedule to restore the multiple consistent regions by analyzing the relationships of the operators and resources associated with the multiple consistent regions. The streams manager may create a dependency graph that maps the interrelationships of the operators and resources associated with the consistent regions of the streaming application and then consult the dependency graph to determine the schedule to restore the multiple consistent regions affected by the failure.Type: ApplicationFiled: July 31, 2015Publication date: February 2, 2017Inventors: Ryan K. Cradick, Gabriela Jacques da Silva
-
Publication number: 20170031764Abstract: A streams manager intelligently restores multiple consistent regions of streaming applications in a streaming environment to increase performance and reduce overloading of other operators and resources. The streams manager detects a failure that affects multiple consistent regions and determines a preferred schedule to restore the multiple consistent regions by analyzing the relationships of the operators and resources associated with the multiple consistent regions. The streams manager may create a dependency graph that maps the interrelationships of the operators and resources associated with the consistent regions of the streaming application and then consult the dependency graph to determine the schedule to restore the multiple consistent regions affected by the failure.Type: ApplicationFiled: July 30, 2015Publication date: February 2, 2017Inventors: Ryan K. Cradick, Gabriela Jacques da Silva
-
Publication number: 20170004014Abstract: Stream applications may inefficiently use the hardware resources that execute the processing elements of the data stream. For example, a compute node may host four processing elements and execute each using a CPU. However, other CPUs on the compute node may sit idle. To take advantage of these available hardware resources, a stream programmer may identify one or more processing elements that may be cloned. The cloned processing elements may be used to generate a different execution path that is parallel to the execution path that includes the original processing elements. Because the cloned processing elements contain the same operators as the original processing elements, the data stream that was previously flowing through only the original processing element may be split and sent through both the original and cloned processing elements. In this manner, the parallel execution path may use underutilized hardware resources to increase the throughput of the data stream.Type: ApplicationFiled: September 8, 2016Publication date: January 5, 2017Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
-
Patent number: 9535707Abstract: Stream applications may inefficiently use the hardware resources that execute the processing elements of the data stream. For example, a compute node may host four processing elements and execute each using a CPU. However, other CPUs on the compute node may sit idle. To take advantage of these available hardware resources, a stream programmer may identify one or more processing elements that may be cloned. The cloned processing elements may be used to generate a different execution path that is parallel to the execution path that includes the original processing elements. Because the cloned processing elements contain the same operators as the original processing elements, the data stream that was previously flowing through only the original processing element may be split and sent through both the original and cloned processing elements. In this manner, the parallel execution path may use underutilized hardware resources to increase the throughput of the data stream.Type: GrantFiled: December 10, 2012Date of Patent: January 3, 2017Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
-
Publication number: 20160342710Abstract: A stream of tuples may be processed by receiving at a first stream operator a first tuple from a stream of tuples. In response to receiving the first tuple, port mutability conditions for a first stream operator and a second stream operator may be analyzed. In response to identifying the port mutability conditions for a first stream operator and a second stream operator, a first set of attribute mutability conditions for the first tuple received at the first stream operator may be identified. Based on the first set of attribute mutability conditions, a reference of an attribute from the first tuple may be generated where the reference is added to a second tuple passing from the first stream operator to the second stream operator.Type: ApplicationFiled: June 24, 2015Publication date: November 24, 2016Inventors: Ryan K. Cradick, Victor Dogaru, Peter A. Nicholls
-
Publication number: 20160344788Abstract: A stream of tuples may be processed by receiving at a first stream operator a first tuple from a stream of tuples. In response to receiving the first tuple, port mutability conditions for a first stream operator and a second stream operator may be analyzed. In response to identifying the port mutability conditions for a first stream operator and a second stream operator, a first set of attribute mutability conditions for the first tuple received at the first stream operator may be identified. Based on the first set of attribute mutability conditions, a reference of an attribute from the first tuple may be generated where the reference is added to a second tuple passing from the first stream operator to the second stream operator.Type: ApplicationFiled: May 21, 2015Publication date: November 24, 2016Inventors: Ryan K. Cradick, Victor Dogaru, Peter A. Nicholls
-
Patent number: 9405553Abstract: Stream applications may inefficiently use the hardware resources that execute the processing elements of the data stream. For example, a compute node may host four processing elements and execute each using a CPU. However, other CPUs on the compute node may sit idle. To take advantage of these available hardware resources, a stream programmer may identify one or more processing elements that may be cloned. The cloned processing elements may be used to generate a different execution path that is parallel to the execution path that includes the original processing elements. Because the cloned processing elements contain the same operators as the original processing elements, the data stream that was previously flowing through only the original processing element may be split and sent through both the original and cloned processing elements. In this manner, the parallel execution path may use underutilized hardware resources to increase the throughput of the data stream.Type: GrantFiled: January 30, 2012Date of Patent: August 2, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
-
Patent number: 9396157Abstract: Techniques are disclosed for calculating performance metrics associated with a data stream. A processing element configured to process data tuples flowing through a stream-based computing system receives data tuples via the data stream. Each of the one or more tuples is processed at the processing element, and each of the one or more tuples are associated with metadata that includes information related to the processing of the tuple by the processing element. Performance metrics are then calculated for the data stream based on the metadata associated with the one or more tuples.Type: GrantFiled: August 26, 2011Date of Patent: July 19, 2016Assignee: International Business Machines CorporationInventors: Ryan K. Cradick, Michael D. Pfeifer, John M. Santosuosso
-
Patent number: 9396158Abstract: Techniques are disclosed for calculating performance metrics associated with a data stream. A processing element configured to process data tuples flowing through a stream-based computing system receives data tuples via the data stream. Each of the one or more tuples is processed at the processing element, and each of the one or more tuples are associated with metadata that includes information related to the processing of the tuple by the processing element. Performance metrics are then calculated for the data stream based on the metadata associated with the one or more tuples.Type: GrantFiled: December 11, 2012Date of Patent: July 19, 2016Assignee: International Business Machines CorporationInventors: Ryan K. Cradick, Michael D. Pfeifer, John M. Santosuosso
-
Patent number: 9389911Abstract: Techniques are described for eliminating backpressure in a distributed system by changing the rate data flows through a processing element. Backpressure occurs when data throughput in a processing element begins to decrease, for example, if new processing elements are added to the operating chart or if the distributed system is required to process more data. Indicators of backpressure (current or future) may be monitored. Once current backpressure or potential backpressure is identified, the operator graph or data rates may be altered to alleviate the backpressure. For example, a processing element may reduce the data rates it sends to processing elements that are downstream in the operator graph, or processing elements and/or data paths may be eliminated. In one embodiment, processing elements and associate data paths may be prioritized so that more important execution paths are maintained.Type: GrantFiled: November 20, 2012Date of Patent: July 12, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso
-
Publication number: 20160188364Abstract: Techniques are described for eliminating backpressure in a distributed system by changing the rate data flows through a processing element. Backpressure occurs when data throughput in a processing element begins to decrease, for example, if new processing elements are added to the operating chart or if the distributed system is required to process more data. Indicators of backpressure (current or future) may be monitored. Once current backpressure or potential backpressure is identified, the operator graph or data rates may be altered to alleviate the backpressure. For example, a processing element may reduce the data rates it sends to processing elements that are downstream in the operator graph, or processing elements and/or data paths may be eliminated. In one embodiment, processing elements and associate data paths may be prioritized so that more important execution paths are maintained.Type: ApplicationFiled: March 8, 2016Publication date: June 30, 2016Inventors: Michael J. BRANSON, Ryan K. CRADICK, John M. SANTOSUOSSO
-
Patent number: 9148495Abstract: Techniques are described for assigning and changing communication protocols for a pair of processing elements. The communication protocol determines how the pair of processing elements transmits data in a stream application. The pair may be assigned a communication protocol (e.g., TCP/IP or a protocol that uses a relational database, shared file system, or shared memory) before the operator graph begins to stream data. This assignment may be based on a priority of the processing elements and/or a priority of the communication protocols. After the operator graph begins to stream data, the pair of processing elements may switch to a different communication protocol. The decision to switch the communication protocol may be based on whether the pair of processing elements or assigned communication protocol is meeting established performance standards for the stream application.Type: GrantFiled: July 26, 2011Date of Patent: September 29, 2015Assignee: International Business Machines CorporationInventors: Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
-
Patent number: 9146775Abstract: A stream computing application may permit one job to connect to a data stream of a different job. As more and more jobs dynamically connect to the data stream, the connections may have a negative impact on the performance of the job that generates the data stream. Accordingly, a variety of metrics and statistics (e.g., CPU utilization or tuple rate) may be monitored to determine if the dynamic connections are harming performance. If so, the stream computing system may be optimized to mitigate the effects of the dynamic connections. For example, particular operators may be unfused from a processing element and moved to a compute node that has available computing resources. Additionally, the stream computing application may clone the data stream in order to distribute the workload of transmitting the data stream to the connected jobs.Type: GrantFiled: April 26, 2012Date of Patent: September 29, 2015Assignee: International Business Machines CorporationInventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz