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: 20130290966
    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: Application
    Filed: April 26, 2012
    Publication date: October 31, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
  • Publication number: 20130290489
    Abstract: Method, system and computer program product for performing an operation, including providing a plurality of processing elements comprising one or more operators, the operators configured to process streaming data tuples, establishing an operator graph of multiple operators, the operator graph defining at least one execution path in which a first operator is configured to receive data tuples from at least one upstream operator and transmit data tuples to at least one downstream operator, providing each operator a buffer configured to hold data tuples requiring processing by the respective operator, wherein the buffer is a first-in-first-out buffer, receiving a plurality of data tuples in a buffer associated with an operator, the data tuples comprising at least one attribute, selecting at least one data tuple from the first buffer, examining an attribute of the selected data tuples to identify a candidate tuple, and performing a second operation on the candidate tuple.
    Type: Application
    Filed: December 11, 2012
    Publication date: October 31, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
  • Publication number: 20130290969
    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: Application
    Filed: February 28, 2013
    Publication date: October 31, 2013
    Applicant: International Business Machines Corporation
    Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso
  • Publication number: 20130290394
    Abstract: Method, system and computer program product for performing an operation, including providing a plurality of processing elements comprising one or more operators, the operators configured to process streaming data tuples, establishing an operator graph of multiple operators, the operator graph defining at least one execution path in which a first operator is configured to receive data tuples from at least one upstream operator and transmit data tuples to at least one downstream operator, providing each operator a buffer configured to hold data tuples requiring processing by the respective operator, wherein the buffer is a first-in-first-out buffer, receiving a plurality of data tuples in a buffer associated with an operator, the data tuples comprising at least one attribute, selecting at least one data tuple from the first buffer, examining an attribute of the selected data tuples to identify a candidate tuple, and performing a second operation on the candidate tuple.
    Type: Application
    Filed: April 25, 2012
    Publication date: October 31, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
  • Patent number: 8516396
    Abstract: Embodiments of the invention provide techniques for arranging virtual objects within an immersive virtual environment. In one embodiment, avatar characteristics, viewport/display characteristics, and object/location characteristics may be analyzed to determine a degree of visibility of various locations within a virtual space to a user. Further, past user interactions within the immersive virtual environment may be analyzed to determine which portions of the user's viewport, when including virtual objects that are offered for sale, are most likely to result in a sale to the user. A set of virtual objects may then be assigned to locations within the virtual space based on the determined visibility to the user, past purchases by the user, and characteristics of the virtual objects.
    Type: Grant
    Filed: January 30, 2009
    Date of Patent: August 20, 2013
    Assignee: International Business Machines Corporation
    Inventors: Derek L. Bromenshenkel, Ryan K. Cradick, Zachary A. Garbow, Daniel L. Hiebert
  • Publication number: 20130198318
    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: January 30, 2012
    Publication date: August 1, 2013
    Applicant: International Business Machines Corporation
    Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
  • Publication number: 20130054538
    Abstract: Techniques are disclosed for invalidating, at one or more processing elements, data streams containing data tuples. A plurality of tuples is received via a data stream, whereupon the data stream is determined to be invalid based on at least one tuple in the plurality of tuples. The data stream is then invalidated, and a message is issued that causes one or more data streams included in the stream-based computing system and related to the invalidated data stream to also be invalidated.
    Type: Application
    Filed: August 26, 2011
    Publication date: February 28, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Ryan K. Cradick, Michael D. Pfeifer, John M. Santosuosso
  • Publication number: 20130054779
    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: Application
    Filed: August 26, 2011
    Publication date: February 28, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: RYAN K. CRADICK, MICHAEL D. PFEIFER, JOHN M. SANTOSUOSSO
  • Publication number: 20130031263
    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: Application
    Filed: July 26, 2011
    Publication date: January 31, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Ryan K. Cradick, John M. Santosuosso, Brandon W. Schulz
  • Publication number: 20130031556
    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: July 26, 2011
    Publication date: January 31, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael J. Branson, Ryan K. Cradick, John M. Santosuosso
  • Patent number: 8327337
    Abstract: Techniques are described for debugging a processing element (or elements) in a stream based database application in a manner that reduces the impact of debugging the processing element (or elements) on the overall running environment by selectively fusing (or un-fusing) processing elements running on a group of compute nodes. In addition to fusing and un-fusing processing elements or otherwise modifying a state of the stream application, a debugging application and stream manager may modify data flows within the application stream in a variety of ways to minimize any disruption resulting from a debugging session.
    Type: Grant
    Filed: November 30, 2010
    Date of Patent: December 4, 2012
    Assignee: International Business Machines Corporation
    Inventors: Eric L. Barsness, Ryan K. Cradick, Michael D. Pfeifer, John M. Santosuosso
  • Publication number: 20120179809
    Abstract: Methods and systems for monitoring a stream application are disclosed. The stream application is composed from a plurality of processing elements executing on one or more compute nodes. A graphical user interface display presents a user with at least a portion of an operator graph in a running stream application. The operator graph represents the plurality of processing elements, and links between processing elements, corresponding to a flow of data tuples through the stream application. A monitoring application then monitors user interactions with the presentation of the portion of the operator graph on the graphical user interface display and identifies at least a first modification to the stream application based on a processing state of the stream application and the monitored user interactions.
    Type: Application
    Filed: January 10, 2011
    Publication date: July 12, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: ERIC L. BARSNESS, RYAN K. CRADICK, MICHAEL D. PFEIFER, JOHN M. SANTOSUOSSO
  • Publication number: 20120137178
    Abstract: Techniques are described for debugging a processing element (or elements) in a stream based database application in a manner that reduces the impact of debugging the processing element (or elements) on the overall running environment by selectively fusing (or un-fusing) processing elements running on a group of compute nodes. In addition to fusing and un-fusing processing elements or otherwise modifying a state of the stream application, a debugging application and stream manager may modify data flows within the application stream in a variety of ways to minimize any disruption resulting from a debugging session.
    Type: Application
    Filed: November 30, 2010
    Publication date: May 31, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: ERIC L. BARSNESS, RYAN K. CRADICK, MICHAEL D. PFEIFER, JOHN M. SANTOSUOSSO
  • Patent number: 8026913
    Abstract: A technique is disclosed for detecting photo opportunities within a virtual environment. In response to detecting a photo opportunity, images of the virtual environment may be captured from perspectives not limited to the user's viewport. A variety of physiological and virtual world parameters are measured to determine when to capture an image of a user interacting with the virtual environment. To improve the quality of images, these parameters may be individually weighted by factors specified by the user. Captured images may be stored in a temporary buffer space, possibly replacing older images. The user may view the buffer contents and select ideal images to move to a permanent gallery. The user's image selections can in turn be used to further improve the quality of future images.
    Type: Grant
    Filed: July 29, 2008
    Date of Patent: September 27, 2011
    Assignee: International Business Machines Corporation
    Inventors: Zachary A. Garbow, Jim C. Chen, Ryan K. Cradick
  • Patent number: 8022948
    Abstract: A technique is disclosed for detecting photo opportunities within a virtual environment. In response to detecting a photo opportunity, images of the virtual environment may be captured from perspectives not limited to the user's viewport. A variety of physiological and virtual world parameters are measured to determine when to capture an image of a user interacting with the virtual environment. To improve the quality of images, these parameters may be individually weighted by factors specified by the user. Captured images may be stored in a temporary buffer space, possibly replacing older images. The user may view the buffer contents and select ideal images to move to a permanent gallery. The user's image selections can in turn be used to further improve the quality of future images.
    Type: Grant
    Filed: July 29, 2008
    Date of Patent: September 20, 2011
    Assignee: International Business Machines Corporation
    Inventors: Zachary A. Garbow, Jim C. Chen, Ryan K. Cradick
  • Patent number: 7836513
    Abstract: Exemplary embodiments include a system for secure input for a mobile device including: a input device for receiving an input from a user; a sensor for determining the status of the mobile device; and a processor in operable communication with the input device and the sensor, wherein the processor alters the input received from the user responsive to the status of the mobile device.
    Type: Grant
    Filed: February 22, 2006
    Date of Patent: November 16, 2010
    Assignee: International Business Machines Corporation
    Inventors: Ryan K. Cradick, Zachary A. Garbow, Kevin G. Paterson
  • Patent number: 7805675
    Abstract: A method, system, and computer program product for re-creating events occurring within a Web application is provided. The method includes receiving a request to perform an action from a client system accessing the Web application over a network. The method also includes generating a log file for the client system and recording the request and a timestamp of the request in the log file. The method further includes collecting client system information, executing the request, and recording the client system information and request execution details in the log file. Upon the occurrence of a triggering event, the method includes generating scripts to re-create the request and the request execution details, executing the scripts within the Web application and the operating environment of the client system that is re-produced using the client system information, and recording and evaluating results of execution of the scripts to identify any issues or evaluate client system experiences with the Web application.
    Type: Grant
    Filed: May 19, 2006
    Date of Patent: September 28, 2010
    Assignee: International Business Machines Corporation
    Inventors: Ryan K. Cradick, R. Eric Morter, John S. Warren, Timothy D. Zosel
  • Publication number: 20100198653
    Abstract: Embodiments of the invention provide techniques for arranging virtual objects within an immersive virtual environment. In one embodiment, avatar characteristics, viewport/display characteristics, and object/location characteristics may be analyzed to determine a degree of visibility of various locations within a virtual space to a user. Further, past user interactions within the immersive virtual environment may be analyzed to determine which portions of the user's viewport, when including virtual objects that are offered for sale, are most likely to result in a sale to the user. A set of virtual objects may then be assigned to locations within the virtual space based on the determined visibility to the user, past purchases by the user, and characteristics of the virtual objects.
    Type: Application
    Filed: January 30, 2009
    Publication date: August 5, 2010
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: DEREK L. BROMENSHENKEL, RYAN K. CRADICK, ZACHARY A. GARBOW, DANIEL L. HIEBERT
  • Patent number: 7697962
    Abstract: A cellular communication device including a housing having a front section and a rear section complementary to the front section such that the front and rear section align and mate together. A cavity is formed by mating of the front and rear section of the housing. An electronic circuit board having a microprocessor is located within the cavity. At least one of an accelerometer, a tilt sensor and a thermal sensor is operably connected to the microprocessor for detecting displacement of the cellular communication device from the ear of the user during communication.
    Type: Grant
    Filed: June 9, 2006
    Date of Patent: April 13, 2010
    Assignee: International Business Machines Corporation
    Inventors: Ryan K. Cradick, Zachary A. Garbow, Kevin G. Paterson
  • Publication number: 20100070884
    Abstract: Embodiments of the invention provide techniques for linking user profiles within an immersive virtual environment. In one embodiment, a group is dynamically formed based on one or more criteria, including interactions, movements, history, viewports, friends lists, and the like. Once the group is formed, a group profile may be generated by, e.g., aggregating the individual user profiles of the group members. The group profile may control the interaction of the group members with the virtual world, thus providing a uniform and consistent experience for all group members.
    Type: Application
    Filed: September 17, 2008
    Publication date: March 18, 2010
    Applicant: International Business Machines Corporation
    Inventors: Derek L. Bromenshenkel, Ryan K. Cradick, Zachary A. Garbow, Daniel L. Hiebert