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: 20170249362
    Abstract: 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: Application
    Filed: May 12, 2017
    Publication date: August 31, 2017
    Inventors: Ryan K. Cradick, Jason A. Nikolai
  • Publication number: 20170220631
    Abstract: 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: Application
    Filed: April 17, 2017
    Publication date: August 3, 2017
    Inventors: Ilse M. Breedvelt-Schouten, Ryan K. Cradick
  • Publication number: 20170212663
    Abstract: 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: Application
    Filed: January 22, 2016
    Publication date: July 27, 2017
    Inventors: Ilse M. Breedvelt-Schouten, Ryan K. Cradick
  • Publication number: 20170168748
    Abstract: 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: Application
    Filed: December 15, 2015
    Publication date: June 15, 2017
    Inventors: Eric L. Barsness, Michael J. Branson, Ryan K. Cradick, John M. Santosuosso
  • Publication number: 20170123851
    Abstract: 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: Application
    Filed: January 12, 2017
    Publication date: May 4, 2017
    Inventors: Michael J. BRANSON, Ryan K. CRADICK, John M. SANTOSUOSSO
  • Patent number: 9588812
    Abstract: 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: Grant
    Filed: March 8, 2016
    Date of Patent: March 7, 2017
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso
  • Publication number: 20170060959
    Abstract: 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: Application
    Filed: September 1, 2015
    Publication date: March 2, 2017
    Inventors: Ryan K. Cradick, Jason A. Nikolai
  • Publication number: 20170033979
    Abstract: 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: Application
    Filed: July 31, 2015
    Publication date: February 2, 2017
    Inventors: Ryan K. Cradick, Gabriela Jacques da Silva
  • Publication number: 20170031764
    Abstract: 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: Application
    Filed: July 30, 2015
    Publication date: February 2, 2017
    Inventors: Ryan K. Cradick, Gabriela Jacques da Silva
  • Publication number: 20170004014
    Abstract: 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: Application
    Filed: September 8, 2016
    Publication date: January 5, 2017
    Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
  • Patent number: 9535707
    Abstract: 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: Grant
    Filed: December 10, 2012
    Date of Patent: January 3, 2017
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
  • Publication number: 20160342710
    Abstract: 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: Application
    Filed: June 24, 2015
    Publication date: November 24, 2016
    Inventors: Ryan K. Cradick, Victor Dogaru, Peter A. Nicholls
  • Publication number: 20160344788
    Abstract: 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: Application
    Filed: May 21, 2015
    Publication date: November 24, 2016
    Inventors: Ryan K. Cradick, Victor Dogaru, Peter A. Nicholls
  • Patent number: 9405553
    Abstract: 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: Grant
    Filed: January 30, 2012
    Date of Patent: August 2, 2016
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
  • Patent number: 9396157
    Abstract: 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: Grant
    Filed: August 26, 2011
    Date of Patent: July 19, 2016
    Assignee: International Business Machines Corporation
    Inventors: Ryan K. Cradick, Michael D. Pfeifer, John M. Santosuosso
  • Patent number: 9396158
    Abstract: 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: Grant
    Filed: December 11, 2012
    Date of Patent: July 19, 2016
    Assignee: International Business Machines Corporation
    Inventors: Ryan K. Cradick, Michael D. Pfeifer, John M. Santosuosso
  • Patent number: 9389911
    Abstract: 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: Grant
    Filed: November 20, 2012
    Date of Patent: July 12, 2016
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso
  • Publication number: 20160188364
    Abstract: 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: Application
    Filed: March 8, 2016
    Publication date: June 30, 2016
    Inventors: Michael J. BRANSON, Ryan K. CRADICK, John M. SANTOSUOSSO
  • Patent number: 9148495
    Abstract: 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: Grant
    Filed: July 26, 2011
    Date of Patent: September 29, 2015
    Assignee: International Business Machines Corporation
    Inventors: Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
  • Patent number: 9146775
    Abstract: 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: Grant
    Filed: April 26, 2012
    Date of Patent: September 29, 2015
    Assignee: International Business Machines Corporation
    Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz