About
I am the Founder and Managing Partner at MileBreaker Partners, a private investment fund…
Activity
-
What does fly fishing, golf, being outdoors and a beverage have to do with leadership, corporate development, pre-M&A and peer to peer advisory…
What does fly fishing, golf, being outdoors and a beverage have to do with leadership, corporate development, pre-M&A and peer to peer advisory…
Liked by Ben Cao
-
Come work with us at The Stanford d.school! We have not one but TWO full time positions open --to support learners from Stanford and…
Come work with us at The Stanford d.school! We have not one but TWO full time positions open --to support learners from Stanford and…
Liked by Ben Cao
-
I have exciting news!! I am joining the Developer Advocacy team at GitHub as a Senior Director! I've loved open source throughout my career…
I have exciting news!! I am joining the Developer Advocacy team at GitHub as a Senior Director! I've loved open source throughout my career…
Liked by Ben Cao
Experience
Education
-
Stanford University Graduate School of Business
• Admissions Ambassador
• Stanford GSB Show
• Private Equity Club
• Big Ideas Club
• High Tech Club
• Data Insights Club
• Consulting Club
• Greater China Club -
• Outstanding Graduating Senior (awarded to the top student in each engineering discipline)
• Graduated with Magna Cum Laude and Honors
• Eta Kappa Nu: National Electrical and Computer Engineering Honor Society (President)
• IEEE: Institute of Electrical and Electronics Engineers (President)
• ISU Campus Connector for IBM Corporation
• Teaching assistant for ISU Honors Program
• Student Advisory Committee representative for ISU Electrical and Computer Engineering…• Outstanding Graduating Senior (awarded to the top student in each engineering discipline)
• Graduated with Magna Cum Laude and Honors
• Eta Kappa Nu: National Electrical and Computer Engineering Honor Society (President)
• IEEE: Institute of Electrical and Electronics Engineers (President)
• ISU Campus Connector for IBM Corporation
• Teaching assistant for ISU Honors Program
• Student Advisory Committee representative for ISU Electrical and Computer Engineering Department
• IASG: Information Assurance Student Group (Vice President)
• Tau Beta Pi (Treasurer)
• ISU SOFE: Soccer or Frisbee for Everyone
• ISU Fencing Club
Patents
-
Pre-deployment of Particular Virtual Machines Based on Performance and Due to Service Popularity and Resource Cost Scores in a Cloud Environment
Issued US 10,387,181
A computer-implemented method includes: monitoring, by a computing device, performance of currently deployed virtual machines (VMs) that implement particular services; determining, by the computing device, optimal configuration options for deployment of new VMs that implement one or more of the particular services based on the monitoring the performance of the currently deployed VMs; and outputting, by the computing device, information regarding the optimal configuration options to a user…
A computer-implemented method includes: monitoring, by a computing device, performance of currently deployed virtual machines (VMs) that implement particular services; determining, by the computing device, optimal configuration options for deployment of new VMs that implement one or more of the particular services based on the monitoring the performance of the currently deployed VMs; and outputting, by the computing device, information regarding the optimal configuration options to a user requesting the deployment of a new VM implementing one or more of the particular services.
-
Managing Virtual Machine Patterns
Issued US 10,324,754
Managing virtual machine patterns, including: identifying resource utilization of each virtual machine within a first virtual machine pattern having a first group of resources; determining resource requirements of one or more applications executing on one or more virtual machines within the first virtual machine pattern; based on the resource utilization and the determined resource requirements, identifying a second virtual machine pattern having a second group of resources; and deploying at…
Managing virtual machine patterns, including: identifying resource utilization of each virtual machine within a first virtual machine pattern having a first group of resources; determining resource requirements of one or more applications executing on one or more virtual machines within the first virtual machine pattern; based on the resource utilization and the determined resource requirements, identifying a second virtual machine pattern having a second group of resources; and deploying at least one of the one or more applications executing on the one or more virtual machines within the first virtual machine pattern onto one or more virtual machines of the second virtual machine pattern.
-
Smart Tuple Stream Alteration
Issued US 10,296,620
A stream application receives a stream of tuples to be processed by a plurality of processing elements that are operating on one or more compute nodes. Each processing element has one or more stream operators. The stream application assigns one or more processing cycles to software code embedded in a tuple of the stream of tuples. The tuple obtains a first status of one or more first tuples of a set of targeted tuples to be modified by a tuple modification of a stream operator. The tuple…
A stream application receives a stream of tuples to be processed by a plurality of processing elements that are operating on one or more compute nodes. Each processing element has one or more stream operators. The stream application assigns one or more processing cycles to software code embedded in a tuple of the stream of tuples. The tuple obtains a first status of one or more first tuples of a set of targeted tuples to be modified by a tuple modification of a stream operator. The tuple obtains a second status of one or more second tuples of the set of targeted tuples after the stream operator performs the tuple modification. The tuple determines a potential degradation based on the first status and the second status. The tuple alters the one or more first tuples to prevent the tuple modification in response to the determined potential degradation.
-
Streams: Intelligent Operator Subset for Debug
Issued US 10,282,277
Techniques are disclosed for identifying a minimal operator subsets in a distributed streams application for debugging purposes. A debugging tool receives a selection of operators from a plurality of operators included in a distributed application. The distributed application executes the plurality of operators in a runtime environment. The debugging tool identifies, based on the selected operators, a subset of the plurality of operators to execute in a debugging environment. The subset…
Techniques are disclosed for identifying a minimal operator subsets in a distributed streams application for debugging purposes. A debugging tool receives a selection of operators from a plurality of operators included in a distributed application. The distributed application executes the plurality of operators in a runtime environment. The debugging tool identifies, based on the selected operators, a subset of the plurality of operators to execute in a debugging environment. The subset includes at least the selected operators. The debugging tool executes the subset of the plurality of operators in the debugging environment.
Other inventorsSee patent -
Smart Tuple Dynamic Grouping of Tuples
Issued US 10,255,347
A stream application receives a stream of tuples to be processed by a plurality of processing elements. The plurality of processing elements operating on one or more compute nodes. Each processing element has one or more stream operators. The stream application assigns one or more processing cycles to one or more segments of software code. The segments of software code are embedded in a tuple of the stream of tuples. The software-embedded tuple identifies a set of target tuples based upon…
A stream application receives a stream of tuples to be processed by a plurality of processing elements. The plurality of processing elements operating on one or more compute nodes. Each processing element has one or more stream operators. The stream application assigns one or more processing cycles to one or more segments of software code. The segments of software code are embedded in a tuple of the stream of tuples. The software-embedded tuple identifies a set of target tuples based upon operation criteria. The set of target tuples are a part of the stream of tuples. The software-embedded tuple performs an operation based on the set of identified target tuples.
-
Allocating Operators of a Streaming Application to Virtual Machines Based on Monitored Performance
Issued US 10,250,467
Performance thresholds are defined for operators in a flow graph for a streaming application. A streams manager deploys the flow graph to one or more virtual machines (VMs). The performance of each portion of the flow graph on each VM is monitored. A VM is selected. When the performance of the portion of the flow graph in the selected VM does not satisfy the defined performance threshold(s), a determination is made regarding whether the portion of the flow graph is underperforming or…
Performance thresholds are defined for operators in a flow graph for a streaming application. A streams manager deploys the flow graph to one or more virtual machines (VMs). The performance of each portion of the flow graph on each VM is monitored. A VM is selected. When the performance of the portion of the flow graph in the selected VM does not satisfy the defined performance threshold(s), a determination is made regarding whether the portion of the flow graph is underperforming or overperforming. When the portion of the flow graph is underperforming, the portion of the flow graph is split into multiple portions that are implemented on multiple VMs. When the portion of the flow graph is overperforming, a determination is made of whether a neighbor VM is also overperforming. When a neighbor VM is also overperforming, the two VMs may be coalesced into a single VM.
-
Managing a Set of Assets for a User in a Shared Pool of Configurable Computing Resources
Issued US 10,210,021
Disclosed aspects include managing a set of assets for a user in a shared pool of configurable computing resources. The shared pool of configurable computing resources has a set of virtual machines. A set of usage data for the user is established. The set of usage data corresponds to usage of an asset by the user. Based on the set of usage data for the user, an asset action for the asset for the user on a virtual machine is determined. In response to determining the asset action for the asset…
Disclosed aspects include managing a set of assets for a user in a shared pool of configurable computing resources. The shared pool of configurable computing resources has a set of virtual machines. A set of usage data for the user is established. The set of usage data corresponds to usage of an asset by the user. Based on the set of usage data for the user, an asset action for the asset for the user on a virtual machine is determined. In response to determining the asset action for the asset, the asset action for the asset for the user on the virtual machine is selected.
-
Distributing Subscriber Data in a Mobile Data Network
Issued US 10,171,554
A mobile data network supports making subscriber data addressable as devices in a mobile data network. Each data chunk is assigned a device address in the mobile data network. The data chunk can then be addressed as a device in the mobile data network. Data chunks corresponding to a subscriber are distributed across multiple devices in the mobile data network. The location of the subscriber's data chunks is tracked by the subscriber's mobile device and also by a tracking table in the mobile…
A mobile data network supports making subscriber data addressable as devices in a mobile data network. Each data chunk is assigned a device address in the mobile data network. The data chunk can then be addressed as a device in the mobile data network. Data chunks corresponding to a subscriber are distributed across multiple devices in the mobile data network. The location of the subscriber's data chunks is tracked by the subscriber's mobile device and also by a tracking table in the mobile data network.
-
Making Subscriber Data Addressable as a Device in a Mobile Data Network
Issued US 10,171,991
A mobile data network supports making subscriber data addressable as devices in a mobile data network. Each data chunk is assigned a device address in the mobile data network. The data chunk can then be addresses as a device in the mobile data network. A first implementation allows accessing data in existing mobile data networks by sending a text message to the device address of the data chunk. When the data chunk receives a text message, it responds with one or more text messages that deliver…
A mobile data network supports making subscriber data addressable as devices in a mobile data network. Each data chunk is assigned a device address in the mobile data network. The data chunk can then be addresses as a device in the mobile data network. A first implementation allows accessing data in existing mobile data networks by sending a text message to the device address of the data chunk. When the data chunk receives a text message, it responds with one or more text messages that deliver the data in the data chunk to the sender who sent the text message. A second implementation includes a subscriber data mechanism in the mobile data network that supports tracking, transfer and management of subscriber data in the mobile data network. Making subscriber data addressable as a device simplifies data-centric communication in a mobile data network.
-
Querying Data From Devices in an Ad-hoc Network
Issued US 10,136,308
A mobile data network supports making subscriber data addressable as devices in a mobile data network. Each data chunk is assigned a device address in the mobile data network. The data chunk can then be addressed as a device in the mobile data network. Data chunks corresponding to a subscriber are distributed across multiple devices in the mobile data network, which may include subscriber devices, network components in the mobile data network, and specialized devices provided by storage…
A mobile data network supports making subscriber data addressable as devices in a mobile data network. Each data chunk is assigned a device address in the mobile data network. The data chunk can then be addressed as a device in the mobile data network. Data chunks corresponding to a subscriber are distributed across multiple devices in the mobile data network, which may include subscriber devices, network components in the mobile data network, and specialized devices provided by storage providers. The mobile data network is queried to determine related devices. An ad-hoc network of the related devices is formed. A data query by one of the related devices is sent to the related devices in the ad-hoc network to determine whether the data query can be satisfied by one of the related devices. If not, the data query is sent via normal channels in the mobile data network.
-
Automated Split of Work in a Cloud Environment
Issued US 10,135,751
Techniques disclose managing cloud computing resources provisioned to processing elements of a distributed application (e.g., for a streams processing environment). A cloud manager determines changes in availability of cloud resources. The cloud manager notifies a runtime manager of a distributed application of the change in availability. The runtime manager in turn requests that the cloud manager adjust the provisions based on the notification. The cloud manager provisions the cloud resources…
Techniques disclose managing cloud computing resources provisioned to processing elements of a distributed application (e.g., for a streams processing environment). A cloud manager determines changes in availability of cloud resources. The cloud manager notifies a runtime manager of a distributed application of the change in availability. The runtime manager in turn requests that the cloud manager adjust the provisions based on the notification. The cloud manager provisions the cloud resources based on the request.
-
Smart Tuple Class Generation for Split Smart Tuples
Issued US 10,083,011
A smart tuple manager includes a mechanism for splitting a smart tuple, and for automatically generating one or more classes from existing classes when a smart tuple is split. When a first smart tuple is split into second and third new smart tuples, classes for the second and third smart tuples are automatically generated from the class for the first smart tuple. The classes for the second and third smart tuples are subsets of the data elements and code segments in the first class. After a…
A smart tuple manager includes a mechanism for splitting a smart tuple, and for automatically generating one or more classes from existing classes when a smart tuple is split. When a first smart tuple is split into second and third new smart tuples, classes for the second and third smart tuples are automatically generated from the class for the first smart tuple. The classes for the second and third smart tuples are subsets of the data elements and code segments in the first class. After a class is automatically generated, new code segments may be added to the class as needed.
-
Replicating a Virtual Machine Implementing Parallel Operators in a Streaming Application Based on Performance
Issued US US20180267824
Performance of parallel portions of a streaming application implemented in multiple virtual machines (VMs) is monitored and logged. When there is a need to replicate operators in an existing virtual machine to a new virtual machine, the logged performance data is used to determine a desired configuration for the new virtual machine based on a past implementation of the existing virtual machine.
-
Tearing Down Virtual Machines Implementing Parallel Operators in a Streaming Application Based on Performance
Issued US 10,078,530
A streams manager monitors performance of parallel portions of a streaming application implemented in multiple virtual machines (VMs). When the performance provided by the multiple VMs is no longer needed, one or more of the VMs can be torn down. The performance of the VMs is monitored. When the least performing VM can be torn down, it is torn down. When the least performing VM cannot be torn down, information regarding a better performing VM is gathered, and it is determined whether the least…
A streams manager monitors performance of parallel portions of a streaming application implemented in multiple virtual machines (VMs). When the performance provided by the multiple VMs is no longer needed, one or more of the VMs can be torn down. The performance of the VMs is monitored. When the least performing VM can be torn down, it is torn down. When the least performing VM cannot be torn down, information regarding a better performing VM is gathered, and it is determined whether the least performing VM can be made more similar to the better performing VM. When the least performing VM can be made more similar to the better performing VM, the least performing VM is changed to improve its performance, and the better performing VM is torn down.
-
Preventing Interoperability Conflicts In A Shared Computing Environment
Issued US 9,928,096
A hypervisor can handle requests from applications in a processing environment, where the processing environment consists of shared computing resources. A system can receive a request from an application, and the hypervisor can determine that the request is one that may result in poor interoperability between the application and the processing environment. The hypervisor can identify a processing solution that is more compatible, and it can fulfill the request using the more compatible option…
A hypervisor can handle requests from applications in a processing environment, where the processing environment consists of shared computing resources. A system can receive a request from an application, and the hypervisor can determine that the request is one that may result in poor interoperability between the application and the processing environment. The hypervisor can identify a processing solution that is more compatible, and it can fulfill the request using the more compatible option. However, the hypervisor need not alert the application of the modified execution; rather, the hypervisor can communicate to the application that the request has been fulfilled.
-
Deploying Operators of a Streaming Application Based on Physical Location Attributes of a Virtual Machine
Issued US 10,075,515
A streams manager monitors operator performance of a streaming application to determine when the performance of an operator needs to be improved or optimized. The streams manager in conjunction with a cloud manager automatically determines one or more preferred virtual machines in a cloud with a specified streams infrastructure that best meet the needs of the underperforming operator or application component based on physical location attributes of the preferred virtual machines. The cloud…
A streams manager monitors operator performance of a streaming application to determine when the performance of an operator needs to be improved or optimized. The streams manager in conjunction with a cloud manager automatically determines one or more preferred virtual machines in a cloud with a specified streams infrastructure that best meet the needs of the underperforming operator or application component based on physical location attributes of the preferred virtual machines. The cloud manager determines the physical location attributes of the candidate virtual machines. The streams manager or the cloud manager can then determine a preferred virtual machine of the candidates to deploy the operator based on the physical location attributes. The streams manager then modifies the flow graph so one or more operators of the streaming application are deployed to a preferred virtual machine determined according to the physical location attributes of the preferred virtual machine.
-
Filter Optimizer for Data Streams
Issued US 10,061,811
Embodiments of the preset disclosure include a method, a system, and a computer program product for rearranging a set of filters within a data streams environment. The method includes setting a first filter ordering of two or more filter processing elements. The method includes determining a filtering efficiency of the first filter ordering. The determining of the filtering efficiency includes monitoring a runtime, one or more tuples, and an amount of tuples retained after filtering of the…
Embodiments of the preset disclosure include a method, a system, and a computer program product for rearranging a set of filters within a data streams environment. The method includes setting a first filter ordering of two or more filter processing elements. The method includes determining a filtering efficiency of the first filter ordering. The determining of the filtering efficiency includes monitoring a runtime, one or more tuples, and an amount of tuples retained after filtering of the first filter ordering. The method includes creating a second filter ordering of the two or more filter processing elements. The method includes comparing the filtering efficiency of the second filter ordering to the first filter ordering. The method includes selecting the second filter ordering in response to comparing the filtering efficiency of the second filter ordering to the filtering efficiency of the first filter ordering.
-
Pluggable Cloud Enablement Boot Device and Method
Issued US 10,031,761
A pluggable cloud enablement boot device (PCEBD) is a bootable device that includes all information needed to automatically provision hardware and software to create a computing solution that meets customer requirements. This allows for quickly deploying a computing solution in a manner that eliminates many manual steps that are typically performed today. The PCEBD uses firmware to verify a given platform has sufficient resources to deploy the PCEBD. The computing solution, once provisioned and…
A pluggable cloud enablement boot device (PCEBD) is a bootable device that includes all information needed to automatically provision hardware and software to create a computing solution that meets customer requirements. This allows for quickly deploying a computing solution in a manner that eliminates many manual steps that are typically performed today. The PCEBD uses firmware to verify a given platform has sufficient resources to deploy the PCEBD. The computing solution, once provisioned and running, can be modified, and these modifications may be reflected in the definition of the PCEBD. In addition, a computing solution may include multiple resources provisioned from multiple PCEBDs, which can be packaged into a PCEBD that will include other PCEBDs. The result is a way to deploy computing solutions that is much more efficient than the manual methods used in the prior art.
-
Rerouting Data of a Streaming Application
Issued US 9,967,160
A streams manager monitors performance of a streaming application and determines if operators are underperforming according to a threshold. When the performance needs to be improved, the streams manager automatically modifies the flow graph to offload or reroute a stream of data, or part of a stream of data, to a similar operator to more efficiently utilize streaming resources. Operators are provided with multiple ports to allow the streams manager to send additional streams to the operator.
-
Smart Tuple Class Generation for Merged Smart Tuples
Issued US 9,904,520
A smart tuple manager includes a mechanism for merging a smart tuple, and for automatically generating one or more classes from existing classes when a smart tuple is merged. When a first smart tuple and a second smart tuple are merged into a new third smart tuple, a class for the third smart tuple is automatically generated from the classes for the first and second smart tuples. The class for the third smart tuple is a superset of the classes for the first and second smart tuples. After a…
A smart tuple manager includes a mechanism for merging a smart tuple, and for automatically generating one or more classes from existing classes when a smart tuple is merged. When a first smart tuple and a second smart tuple are merged into a new third smart tuple, a class for the third smart tuple is automatically generated from the classes for the first and second smart tuples. The class for the third smart tuple is a superset of the classes for the first and second smart tuples. After a class is automatically generated, new code segments may be added to the class as needed.
-
Managed Services Coordinator
Issued US 9,846,595
A method is provided for applying tasks. The method can include receiving a plurality of tasks for a plurality of applications, an application of the plurality of applications is hosted by a computing environment utilizing a monitoring agent, and a task is performed for an operation of the application during a first period of time. The method can also include determining a first resource type and a first resource amount from the computing environment for performing the task. The method can also…
A method is provided for applying tasks. The method can include receiving a plurality of tasks for a plurality of applications, an application of the plurality of applications is hosted by a computing environment utilizing a monitoring agent, and a task is performed for an operation of the application during a first period of time. The method can also include determining a first resource type and a first resource amount from the computing environment for performing the task. The method can also include grouping the plurality of tasks into a set of tasks based on the first resource type, at least two tasks from the set of tasks being performable in parallel during the first period of time. The method can also include determining whether the first resource amount of the first resource type is present in the computing environment during the first period of time.
-
System and Method for Optimizing Provisioning Time by Dynamically Customizing a Shared Virtual Machine
Issued US 9,798,571
Technology for generating, building, maintaining and sharing a pool of virtual environments. The virtual environments (for example, virtual machines) are instantiated and active prior to a request from a user to use a virtual environments. Delta maps are used to help match the request to the best-suited active virtual environment. The delta map is a data set that indicates differences between specification values of a given active virtual environment and specification values needed to reliably…
Technology for generating, building, maintaining and sharing a pool of virtual environments. The virtual environments (for example, virtual machines) are instantiated and active prior to a request from a user to use a virtual environments. Delta maps are used to help match the request to the best-suited active virtual environment. The delta map is a data set that indicates differences between specification values of a given active virtual environment and specification values needed to reliably fulfill the user's request.
-
Deferred Joining of a Stream of Tuples
Issued US US20170293654A1
Disclosed aspects relate to deferred joining of a stream of tuples. The stream of tuples which is to be processed by a plurality of stream operators is received. The stream of tuples may include both a first set of tuples from a first source and a second set of tuples from a second source. For future utilization with respect to a join operation which indicates to join the first and second sets of tuples, a determination is made to establish a group of tuples. A first stream operator of the…
Disclosed aspects relate to deferred joining of a stream of tuples. The stream of tuples which is to be processed by a plurality of stream operators is received. The stream of tuples may include both a first set of tuples from a first source and a second set of tuples from a second source. For future utilization with respect to a join operation which indicates to join the first and second sets of tuples, a determination is made to establish a group of tuples. A first stream operator of the plurality of stream operators establishes the group of tuples. The group of tuples has both a first subgroup and a second subgroup. A set of stream operators of the plurality of stream operators processes the group of tuples. In response to processing the group of tuples, the join operation is performed.
-
Deploying a Portion of a Streaming Application to One or More Virtual Machines According to Hardware Type
Issued US 9,736,232
A streams manager monitors performance of a streaming application, and when the performance needs to be improved, the streams manager requests a cloud manager provision one or more VMs on a server that has a specified hardware type, and optionally has specified available hardware capacity. In response, the cloud manager determines which available servers have the specified hardware type, and when available hardware capacity is specified, further determines which of the available servers with…
A streams manager monitors performance of a streaming application, and when the performance needs to be improved, the streams manager requests a cloud manager provision one or more VMs on a server that has a specified hardware type, and optionally has specified available hardware capacity. In response, the cloud manager determines which available servers have the specified hardware type, and when available hardware capacity is specified, further determines which of the available servers with the specified hardware type have the specified available capacity. When there are multiple servers that satisfy the request from the streams manager, the cloud manager determines from historical performance logs for the servers which is preferred. The cloud manager then provisions the requested VM(s) on the specified hardware type and returns the requested VM(s) to the streams manager. The streams manager then deploys a portion of the streaming application to the VM(s).
-
Smart Migration of Overperforming Operators of a Streaming Application to Virtual Machines in a Cloud
Issued US 9,729,419
A streams manager monitors performance of a streaming application on a physical machine, and determines operators that are underperforming and operators that are overperforming. When the performance needs to be improved, the streams manager automatically modifies the flow graph to deploy one or more operators of the streaming application that are overperforming to a virtual machine in a cloud. Moving the overperforming operators off of the physical machine to a VM leaves additional resources…
A streams manager monitors performance of a streaming application on a physical machine, and determines operators that are underperforming and operators that are overperforming. When the performance needs to be improved, the streams manager automatically modifies the flow graph to deploy one or more operators of the streaming application that are overperforming to a virtual machine in a cloud. Moving the overperforming operators off of the physical machine to a VM leaves additional resources for the underperforming operators that are left on the physical machine to improve performance of the streaming application.
-
Deploying a Portion of a Streaming Application to One or More Virtual Machines According to Cost
Issued US 9,716,738
A streams manager monitors cost of one or more VMs hosting a streaming application, determines when cost can be reduced, and requests a cloud manager provision one or more VMs that have a lower cost. In response, the cloud manager provisions the VM(s) that have the lower cost. The streams manager then deploys a portion of the streaming application to the VM(s), thereby reducing the cost of running the streaming application.
-
Mission Tuples in a Streaming Application Environment
Issued US 9,635,084
Tuple communication and decision determination is provided in a streaming environment. A processor: generates mission tuples, places the mission tuples in a computing stream of a stream application, accesses computing time upon, obtains the computing time of the mission tuples, determines: a current position in the computing stream for the mission tuples and a class and one or more sub-classes that each of the mission tuples belongs to, and communicates data: between the mission tuples and…
Tuple communication and decision determination is provided in a streaming environment. A processor: generates mission tuples, places the mission tuples in a computing stream of a stream application, accesses computing time upon, obtains the computing time of the mission tuples, determines: a current position in the computing stream for the mission tuples and a class and one or more sub-classes that each of the mission tuples belongs to, and communicates data: between the mission tuples and between the mission tuples and one or more runtime processes associated with the computing stream or one or more external processes associated with the computing stream. The mission tuples are configured to modify operations of the computing operators in the computing stream.
-
Managing Stream Components Based on Virtual Machine Performance Adjustments
Issued US 9,626,208
Embodiments of the disclosure include a method, a system, and a computer program product for modifying a stream operator based on the virtual resources. The method includes receiving a first resource allocation and a second resource allocation of a virtual resource for a virtual machine supporting a stream computing application. The method also includes determining whether the second resource allocation changed within a tolerance relative to the first resource allocation. The method also…
Embodiments of the disclosure include a method, a system, and a computer program product for modifying a stream operator based on the virtual resources. The method includes receiving a first resource allocation and a second resource allocation of a virtual resource for a virtual machine supporting a stream computing application. The method also includes determining whether the second resource allocation changed within a tolerance relative to the first resource allocation. The method also includes identifying a stream operator in the stream computing application using the virtual resource of the virtual machine. The method also includes modifying the stream operator to accommodate the second resource allocation in response to the second resource allocation changing relative to the first resource allocation.
-
Host Swap Hypervisor that Provides High Availability for a Host of Virtual Machines
Issued US 9,612,926
A host swap hypervisor provides a high availability hypervisor for virtual machines on a physical host computer during a failure of a primary hypervisor on the physical host computer. The host swap hypervisor resides on the physical host computer that runs the primary hypervisor, and monitors failure indicators of the primary hypervisor. When the failure indicators exceed a threshold, the host swap hypervisor is then autonomically swapped to become the primary hypervisor on the physical host…
A host swap hypervisor provides a high availability hypervisor for virtual machines on a physical host computer during a failure of a primary hypervisor on the physical host computer. The host swap hypervisor resides on the physical host computer that runs the primary hypervisor, and monitors failure indicators of the primary hypervisor. When the failure indicators exceed a threshold, the host swap hypervisor is then autonomically swapped to become the primary hypervisor on the physical host computer. The original primary hypervisor may then be re-initialized as the new host swap hypervisor.
Other inventorsSee patent -
Managing Cooling Operations in a Parallel Computer Comprising a Plurality of Compute Nodes
Issued US 9,588,555
Managing cooling operations in a parallel computer comprising a plurality of compute nodes, including: receiving, by a target compute node from an origin compute node, a message; identifying, by the target compute node, one or more characteristics of the message; and controlling, by the target compute node, cooling operations in dependence upon the one or more characteristics of the message.
Other inventorsSee patent -
Managing a Set of Assets of a Shared Pool of Configurable Computing Resources
Issued US 9,582,333
Disclosed aspects manage a set of assets of a shared pool of configurable computing resources. A set of usage data is established by the shared pool of configurable computing resources. The set of usage data corresponds to usage of the set of assets by a set of users. The shared pool of configurable computing resources determines an asset load-order based on the set of usage data. An operation associated with the set of assets is performed by the shared pool of configurable computing resources.…
Disclosed aspects manage a set of assets of a shared pool of configurable computing resources. A set of usage data is established by the shared pool of configurable computing resources. The set of usage data corresponds to usage of the set of assets by a set of users. The shared pool of configurable computing resources determines an asset load-order based on the set of usage data. An operation associated with the set of assets is performed by the shared pool of configurable computing resources. In response to performing the operation associated with the set of assets, the set of assets is loaded based on the asset load-order by the shared pool of configurable computing resources.
-
Managing Resources of a Shared Pool of Configurable Computing Resources
Issued US 9,558,039
Disclosed aspects include managing resources of a shared pool of configurable computing resources having a particular shared pool resource. An application program is run for processing on the shared pool of configurable computing resources. A set of resource data for the application program is collected by the application program. An offer of the particular shared pool resource for use by the application program is detected by the application program. The set of resource data associated with…
Disclosed aspects include managing resources of a shared pool of configurable computing resources having a particular shared pool resource. An application program is run for processing on the shared pool of configurable computing resources. A set of resource data for the application program is collected by the application program. An offer of the particular shared pool resource for use by the application program is detected by the application program. The set of resource data associated with the particular shared pool resource is analyzed by the application program. Based on the set of resource data and in response to analyzing the set of resource data associated with the particular shared pool resource, the application program determines to refuse the offer. In response to determining to refuse the offer, the application program selects to refuse the offer.
Other inventorsSee patent -
Visually Depicting Cloud Resource Utilization During Execution of an Application
Issued US 9,544,399
Visually depicting cloud resource utilization during execution of an application, the application using multiple cloud resources deployed on multiple cloud hosts, including: displaying, by a resource monitoring module in a graphical user interface, a visual depiction of resource utilization of the multiple cloud resources during execution of the application; receiving, from a user through the graphical user interface displaying the visual depiction of resource utilization of the multiple cloud…
Visually depicting cloud resource utilization during execution of an application, the application using multiple cloud resources deployed on multiple cloud hosts, including: displaying, by a resource monitoring module in a graphical user interface, a visual depiction of resource utilization of the multiple cloud resources during execution of the application; receiving, from a user through the graphical user interface displaying the visual depiction of resource utilization of the multiple cloud resources, a resource utilization threshold for each of the multiple cloud resources; determining, by the resource monitoring module, whether one or more of the resource utilization thresholds have been reached; and responsive to determining that one or more of the resource utilization thresholds have been reached, executing a predetermined action.
Other inventorsSee patent -
Buffered Cloned Operators in a Streaming Application
Issued US 9,471,431
A streams manager clones a portion of a primary flow graph to a virtual machine with a buffer to assure no data is lost if the corresponding portion of the primary flow graph fails. The buffer can be on the input of the cloned portion or on the output of the cloned portion. Cloning a portion of a primary flow graph with a buffer assures no data is lost when the corresponding portion of the primary flow graph fails. When the primary flow graph recovers from the failure, the processing may be…
A streams manager clones a portion of a primary flow graph to a virtual machine with a buffer to assure no data is lost if the corresponding portion of the primary flow graph fails. The buffer can be on the input of the cloned portion or on the output of the cloned portion. Cloning a portion of a primary flow graph with a buffer assures no data is lost when the corresponding portion of the primary flow graph fails. When the primary flow graph recovers from the failure, the processing may be switched back to the primary flow graph, which causes the buffer to begin buffering once again.
-
Visually Depicting Resource Utilization in a Cloud Computing Environment
Issued US 9,461,932
Visually depicting resource utilization in a cloud computing environment, including: identifying a plurality of resources available to a user in the cloud computing environment; identifying resource utilization values for each of the identified resources; assigning each resource to one or more axes of a coordinate system; mapping the resource utilization values for each of the identified resources on the coordinate system; and displaying the resource utilization values for each of the…
Visually depicting resource utilization in a cloud computing environment, including: identifying a plurality of resources available to a user in the cloud computing environment; identifying resource utilization values for each of the identified resources; assigning each resource to one or more axes of a coordinate system; mapping the resource utilization values for each of the identified resources on the coordinate system; and displaying the resource utilization values for each of the identified resources on the coordinate system.
-
Communication of Configuration Using an Encoded Visual Representation
Issued US 9,454,749
Aspects of the present disclosure relate to a method, system, and computer program product for generating an encoded visual representation describing a computing node. The method includes identifying one or more first parameters for a first virtual machine hosted by the computing node. The method also includes encoding the one or more first parameters based on a coding reference. The method also includes generating a first dynamically generated encoded visual representation from one or more…
Aspects of the present disclosure relate to a method, system, and computer program product for generating an encoded visual representation describing a computing node. The method includes identifying one or more first parameters for a first virtual machine hosted by the computing node. The method also includes encoding the one or more first parameters based on a coding reference. The method also includes generating a first dynamically generated encoded visual representation from one or more encoded first parameters.
-
Increasing Performance of a Streaming Application by Running Experimental Permutations
Issued US 9,407,523
A streams manager monitors performance of a streaming application, and when the performance needs to be improved, the streams manager automatically requests virtual machines from a cloud manager. In response, the cloud manager provisions one or more virtual machines in a cloud. The streams manager builds a permutation of a flow graph for the streaming application using the virtual machine(s), runs the permutation in parallel with the corresponding portion of the flow graph, and compares the…
A streams manager monitors performance of a streaming application, and when the performance needs to be improved, the streams manager automatically requests virtual machines from a cloud manager. In response, the cloud manager provisions one or more virtual machines in a cloud. The streams manager builds a permutation of a flow graph for the streaming application using the virtual machine(s), runs the permutation in parallel with the corresponding portion of the flow graph, and compares the performance of the original portion of the flow graph to the performance of the permutation. When the performance of the permutation exceeds the performance of the original part of the flow graph, the streams manager modifies the flow graph so the permutation replaces the original part of the flow graph. In this manner a streaming application can dynamically evolve to increase its performance as needed.
-
Apparatus and Methods for Automatically Reflecting Changes to a Computing Solution in an Image for the Computing Solution
Issued US 9,389,874
A pluggable cloud enablement boot device (PCEBD) is a bootable device that includes all information needed to automatically provision hardware and software to create a computing solution that meets customer requirements. This allows for quickly deploying a computing solution in a manner that eliminates many manual steps that are typically performed today. The PCEBD uses firmware to verify a given platform has sufficient resources to deploy the PCEBD. The computing solution, once provisioned and…
A pluggable cloud enablement boot device (PCEBD) is a bootable device that includes all information needed to automatically provision hardware and software to create a computing solution that meets customer requirements. This allows for quickly deploying a computing solution in a manner that eliminates many manual steps that are typically performed today. The PCEBD uses firmware to verify a given platform has sufficient resources to deploy the PCEBD. The computing solution, once provisioned and running, can be modified, and these modifications may be reflected in the definition of the PCEBD. In addition, a computing solution may include multiple resources provisioned from multiple PCEBDs, which can be packaged into a PCEBD that will include other PCEBDs. The result is a way to deploy computing solutions that is much more efficient than the manual methods used in the prior art.
-
Pluggable Cloud Enablement Boot Device and Method that Determines Hardware Resources via Firmware
Issued US 9,361,120
A pluggable cloud enablement boot device (PCEBD) is a bootable device that includes all information needed to automatically provision hardware and software to create a computing solution that meets customer requirements. This allows for quickly deploying a computing solution in a manner that eliminates many manual steps that are typically performed today. The PCEBD uses firmware to verify a given platform has sufficient resources to deploy the PCEBD. The computing solution, once provisioned and…
A pluggable cloud enablement boot device (PCEBD) is a bootable device that includes all information needed to automatically provision hardware and software to create a computing solution that meets customer requirements. This allows for quickly deploying a computing solution in a manner that eliminates many manual steps that are typically performed today. The PCEBD uses firmware to verify a given platform has sufficient resources to deploy the PCEBD. The computing solution, once provisioned and running, can be modified, and these modifications may be reflected in the definition of the PCEBD. In addition, a computing solution may include multiple resources provisioned from multiple PCEBDs, which can be packaged into a PCEBD that will include other PCEBDs. The result is a way to deploy computing solutions that is much more efficient than the manual methods used in the prior art.
Other inventorsSee patent -
Managing Virtual Machine Images in a Distributed Computing Environment
Issued US 9,298,486
Methods, apparatuses, and computer program products for managing virtual machine images in a distributed computing environment are provided. Embodiments includes a management system recording dependencies between the virtual machine images in the image service repository and dependencies between the deployed virtual machines in the compute service and the virtual machine images in the image service repository. Based on the recorded dependencies between the virtual machine images and the…
Methods, apparatuses, and computer program products for managing virtual machine images in a distributed computing environment are provided. Embodiments includes a management system recording dependencies between the virtual machine images in the image service repository and dependencies between the deployed virtual machines in the compute service and the virtual machine images in the image service repository. Based on the recorded dependencies between the virtual machine images and the dependencies between the deployed virtual machines and the virtual machine images, the management system identifies a virtual machine image that has no deployed virtual machine dependent upon it. Embodiments also include the management system deleting, by the management system, the identified virtual machine image from the image service repository.
Other inventorsSee patent -
Resizing Resource Allocation in a Computing Environment
Issued US 9,331,911
Resizing resource allocation in a computing environment, including: displaying, within a graphical user interface, a graphical element representing allocation parameters, the allocation parameters indicating a user's current allocation of one or more resources of the computing environment; displaying, within the graphical user interface, a graphical element representing utilization parameters, the utilization parameters indicating the user's current utilization of the one or more resources of…
Resizing resource allocation in a computing environment, including: displaying, within a graphical user interface, a graphical element representing allocation parameters, the allocation parameters indicating a user's current allocation of one or more resources of the computing environment; displaying, within the graphical user interface, a graphical element representing utilization parameters, the utilization parameters indicating the user's current utilization of the one or more resources of the computing environment; receiving, within the graphical user interface, user input to manipulate the graphical element representing the allocation parameters; and changing, based on the user input received within the graphical user interface, the allocation parameters.
Other inventorsSee patent -
Deploying a Portion of a Streaming Application to One or More Virtual Machines
Issued US 9,325,766
Profile data for streaming operators is collected and classified according to the function and relationship of operators, and split rules are constructed for the operators. A streams manager monitors performance of a streaming application, and when the performance needs to be improved, the streams manager determines from the split rules how to split the flow graph for the streaming application. The streams manager requests virtual machines from a cloud manager. In response, the cloud manager…
Profile data for streaming operators is collected and classified according to the function and relationship of operators, and split rules are constructed for the operators. A streams manager monitors performance of a streaming application, and when the performance needs to be improved, the streams manager determines from the split rules how to split the flow graph for the streaming application. The streams manager requests virtual machines from a cloud manager. In response, the cloud manager provisions one or more virtual machines in a cloud. The streams manager then modifies the flow graph so a portion of the flow graph is deployed to the one or more virtual machines in the cloud. In this manner a streaming application can dynamically evolve to increase its performance as needed.
Other inventorsSee patent -
Monitoring and dynamically reconfiguring virtual machine patterns
Issued US 9,311,131
A cloud manager monitors running VM patterns, determines potential VM patterns that have a different configuration than the running VM patterns, and performs estimates of a plurality of metrics for the potential VM patterns. When the estimates for the potential VM patterns exceed the monitored VM patterns currently running by some threshold amount, the potential VM patterns may be automatically deployed to one or more clouds. The result is a cloud-based system that is automatically and…
A cloud manager monitors running VM patterns, determines potential VM patterns that have a different configuration than the running VM patterns, and performs estimates of a plurality of metrics for the potential VM patterns. When the estimates for the potential VM patterns exceed the monitored VM patterns currently running by some threshold amount, the potential VM patterns may be automatically deployed to one or more clouds. The result is a cloud-based system that is automatically and dynamically tuned to changing conditions.
Other inventorsSee patent -
Managing a Template in an Operator Graph
Issued US 9,298,848
Embodiments of the disclosure provide a method, system, and computer program product for managing a template on an operator graph. The method for managing a template on an operator graph can include receiving the template for processing a stream of tuples. The template can have a plurality of template elements operating on one or more computer processors. The method can include calculating a resource requirement of a template element from the template. The method can include calculating a…
Embodiments of the disclosure provide a method, system, and computer program product for managing a template on an operator graph. The method for managing a template on an operator graph can include receiving the template for processing a stream of tuples. The template can have a plurality of template elements operating on one or more computer processors. The method can include calculating a resource requirement of a template element from the template. The method can include calculating a resource availability of a virtual machine. The method can include allocating the template onto the operator graph. The operator graph can have a plurality of processing elements operating on one or more computer processors. The method can also include mapping the template element from the template onto the virtual machine as a function of the resource requirement of the template element and the resource availability of the virtual machine.
Other inventorsSee patent -
Maintaining Virtual Machines For Cloud-based Operations In A Streaming Application In A Ready State
Issued US 9,298,485
A streams manager monitors performance of a streaming application, and when the performance needs to be improved, the streams manager automatically requests virtual machines from a cloud manager. The cloud manager provisions one or more virtual machines in a cloud with the specified streams infrastructure and streams application components. The streams manager then modifies the flow graph so one or more portions of the streaming application are hosted by the virtual machines in the cloud. When…
A streams manager monitors performance of a streaming application, and when the performance needs to be improved, the streams manager automatically requests virtual machines from a cloud manager. The cloud manager provisions one or more virtual machines in a cloud with the specified streams infrastructure and streams application components. The streams manager then modifies the flow graph so one or more portions of the streaming application are hosted by the virtual machines in the cloud. When performance of the streaming application indicates a virtual machine is no longer needed, the virtual machine is maintained and placed in a ready state so it can be quickly used as needed in the future without the overhead of deploying a new virtual machine.
Other inventorsSee patent -
Verification of Configuration Using an Encoded Visual Representation
Issued US 9,300,651
Disclosed aspects manage a set of assets of a shared pool of configurable computing resources. A set of usage data is established by the shared pool of configurable computing resources. The set of usage data corresponds to usage of the set of assets by a set of users. The shared pool of configurable computing resources determines an asset load-order based on the set of usage data. An operation associated with the set of assets is performed by the shared pool of configurable computing resources.…
Disclosed aspects manage a set of assets of a shared pool of configurable computing resources. A set of usage data is established by the shared pool of configurable computing resources. The set of usage data corresponds to usage of the set of assets by a set of users. The shared pool of configurable computing resources determines an asset load-order based on the set of usage data. An operation associated with the set of assets is performed by the shared pool of configurable computing resources. In response to performing the operation associated with the set of assets, the set of assets is loaded based on the asset load-order by the shared pool of configurable computing resources.
Other inventorsSee patent -
Scaling Storage Capability for Subscriber Data Across Multiple Devices and Device Types in a Mobile Data Network
Issued US 9,264,886
A mobile data network supports making subscriber data addressable as devices in a mobile data network. Each data chunk is assigned a device address in the mobile data network. The data chunk can then be addressed as a device in the mobile data network. Data chunks corresponding to a subscriber are distributed across multiple devices in the mobile data network, which may include subscriber devices, network components in the mobile data network, and specialized devices provided by storage…
A mobile data network supports making subscriber data addressable as devices in a mobile data network. Each data chunk is assigned a device address in the mobile data network. The data chunk can then be addressed as a device in the mobile data network. Data chunks corresponding to a subscriber are distributed across multiple devices in the mobile data network, which may include subscriber devices, network components in the mobile data network, and specialized devices provided by storage providers. A subscriber's historical data usage is monitored and logged, and may be used to predictively move the subscriber's data when needed to improve the subscriber's access to the data.
-
Increasing Performance of a Streaming Application by Running Experimental Permutations
Issued US 9,237,079
A streams manager monitors performance of a streaming application, and when the performance needs to be improved, the streams manager automatically requests virtual machines from a cloud manager. In response, the cloud manager provisions one or more virtual machines in a cloud. The streams manager builds a permutation of a flow graph for the streaming application using the virtual machine(s), runs the permutation in parallel with the corresponding portion of the flow graph, and compares the…
A streams manager monitors performance of a streaming application, and when the performance needs to be improved, the streams manager automatically requests virtual machines from a cloud manager. In response, the cloud manager provisions one or more virtual machines in a cloud. The streams manager builds a permutation of a flow graph for the streaming application using the virtual machine(s), runs the permutation in parallel with the corresponding portion of the flow graph, and compares the performance of the original portion of the flow graph to the performance of the permutation. When the performance of the permutation exceeds the performance of the original part of the flow graph, the streams manager modifies the flow graph so the permutation replaces the original part of the flow graph. In this manner a streaming application can dynamically evolve to increase its performance as needed.
Other inventorsSee patent -
Optimizing The Deployment Of Virtual Resources And Automating Post-Deployment Actions In A Cloud Environment
Filed US US20170199752A1
A computer-implemented method includes: monitoring, by a computing device, performance of currently deployed virtual machines (VMs) that implement particular services; determining, by the computing device, optimal configuration options for deployment of new VMs that implement one or more of the particular services based on the monitoring the performance of the currently deployed VMs; and outputting, by the computing device, information regarding the optimal configuration options to a user…
A computer-implemented method includes: monitoring, by a computing device, performance of currently deployed virtual machines (VMs) that implement particular services; determining, by the computing device, optimal configuration options for deployment of new VMs that implement one or more of the particular services based on the monitoring the performance of the currently deployed VMs; and outputting, by the computing device, information regarding the optimal configuration options to a user requesting the deployment of a new VM implementing one or more of the particular services.
-
Managing Incident Tickets In A Cloud Managed Service Environment
Filed US US20170140315A1
An approach for managing incident tickets in a cloud managed service environment is provided. In an embodiment, in response to receipt of an incident ticket, it is determined whether a threshold number of incident tickets similar to the received incident ticket have been answered within a specified time period. This determination may include determining frequencies with which a plurality of previous resolutions applied to the similar incident tickets have been successful. Further, in response…
An approach for managing incident tickets in a cloud managed service environment is provided. In an embodiment, in response to receipt of an incident ticket, it is determined whether a threshold number of incident tickets similar to the received incident ticket have been answered within a specified time period. This determination may include determining frequencies with which a plurality of previous resolutions applied to the similar incident tickets have been successful. Further, in response to determining that the threshold number of similar incident tickets have been answered, an automated response is provided to the received incident ticket and to subsequently received similar incident tickets, where similar incident tickets are defined as having a same error code or category type. The automated response may comprise a series of one or more previous resolutions to the similar incident tickets in order of the highest frequency of success.
-
Optimization of Cloud Compliance Services Based on Events and Trends
Filed US US20170142157A1
A computer-implemented method includes: monitoring, by a computing device, compliance-related event information by periodically or intermittently receiving the compliance-related event information via an application programming interface (API) of the computing device; detecting, by the computing device, an event trigger or multiple event triggers based on monitoring the compliance-related event information; performing, by the computing device, a compliance check, in accordance with a compliance…
A computer-implemented method includes: monitoring, by a computing device, compliance-related event information by periodically or intermittently receiving the compliance-related event information via an application programming interface (API) of the computing device; detecting, by the computing device, an event trigger or multiple event triggers based on monitoring the compliance-related event information; performing, by the computing device, a compliance check, in accordance with a compliance checklist, on an endpoint associated with a cloud network based on detecting the event trigger; receiving, by the computing device, results to the compliance check; and updating, by the computing device, the compliance checklist based on the results of the compliance check.
-
Location Based Authentication Of Users To A Virtual Machine In A Computer System
Issued US 9,160,754
An apparatus and method uses location based authentication of a user accessing a virtual machine (VM) by using the physical location of the virtual machine as a criteria for the authentication. When a user requires a logical partition to run in a known, specified physical location, the user specifies the physical location when the VM is created. The specified physical location is then incorporated into the user authentication process. Users are challenged and must know the physical location in…
An apparatus and method uses location based authentication of a user accessing a virtual machine (VM) by using the physical location of the virtual machine as a criteria for the authentication. When a user requires a logical partition to run in a known, specified physical location, the user specifies the physical location when the VM is created. The specified physical location is then incorporated into the user authentication process. Users are challenged and must know the physical location in order to be authenticated to the system. When a "disruptive event" in the cloud environment occurs that necessitates moving the VM to another location, the original physical location is stored so the virtualization manager later can automatically relocate the VM back to its original physical location.
Other inventorsSee patent -
Smart Tuple Resource Estimation
Filed US US20170091284A1
A stream application receives a stream of tuples to be processed by a plurality of processing elements. The plurality of processing elements operate on one or more compute nodes. Each processing element has one or more stream operators. Segments of software code are embedded in a tuple of the stream of tuples. The tuple retrieves one or more compute node metrics. The compute node metrics describe one or more resources of a first compute node. The tuple obtains tuple information of one or more…
A stream application receives a stream of tuples to be processed by a plurality of processing elements. The plurality of processing elements operate on one or more compute nodes. Each processing element has one or more stream operators. Segments of software code are embedded in a tuple of the stream of tuples. The tuple retrieves one or more compute node metrics. The compute node metrics describe one or more resources of a first compute node. The tuple obtains tuple information of one or more tuples of the stream of tuples to be processed by a first stream operator that operates on the one or more resources. The tuple determines a prospective resource disparity related to the first stream operator based on the obtained tuple information and the compute node metrics. The tuple transmits a resource request to the stream application based on the determined prospective resource disparity.
-
Smart Tuple Condition-based Operation Performance
Filed US US20170091283A1
A stream application receives a stream of tuples to be processed by a plurality of processing elements operating on one or more compute nodes. Each processing element has one or more stream operators. The stream application assigns one or more processing cycles to one or more segments of software code. The segments of software code are embedded in one or more tuples of the stream of tuples. The stream application determines that a condition is met based on the processing cycles. The stream…
A stream application receives a stream of tuples to be processed by a plurality of processing elements operating on one or more compute nodes. Each processing element has one or more stream operators. The stream application assigns one or more processing cycles to one or more segments of software code. The segments of software code are embedded in one or more tuples of the stream of tuples. The stream application determines that a condition is met based on the processing cycles. The stream application performs an operation based on the processing cycles.
-
Streaming State Data For Cloud Management
Issued US 9,130,831
A cloud manager uses streams to monitor state of the cloud. A cloud state streaming policy specifies state data to stream, along with one or more initial operators for processing the streams. An archive mechanism allows archiving the streamed data when specified data in the streams exceeds one or more defined thresholds. A user interface allows adjusting the streaming of cloud state data to focus on data of interest to a user. The cloud manager thus allows a user to determine state of a cloud…
A cloud manager uses streams to monitor state of the cloud. A cloud state streaming policy specifies state data to stream, along with one or more initial operators for processing the streams. An archive mechanism allows archiving the streamed data when specified data in the streams exceeds one or more defined thresholds. A user interface allows adjusting the streaming of cloud state data to focus on data of interest to a user. The cloud manager thus allows a user to determine state of a cloud via the streamed state data.
Other inventorsSee patent -
Asset Arrangement Management for a Shared Pool of Configurable Computing Resources Associated With a Streaming Application
Filed US US20170063723A1
Disclosed aspects include managing a set of assets of a shared pool of configurable computing resources associated with a streaming application. A stream of tuples to be processed is received by a plurality of processing elements operating on the shared pool of configurable computing resources having the set of assets. A triggering event which corresponds to a data flow of the stream of tuples is detected. Based on the data flow of the stream of tuples, an asset arrangement with respect to the…
Disclosed aspects include managing a set of assets of a shared pool of configurable computing resources associated with a streaming application. A stream of tuples to be processed is received by a plurality of processing elements operating on the shared pool of configurable computing resources having the set of assets. A triggering event which corresponds to a data flow of the stream of tuples is detected. Based on the data flow of the stream of tuples, an asset arrangement with respect to the set of assets is determined and established. In embodiments, the stream of tuples may be processed by the plurality of processing elements operating on the shared pool of configurable computing resources having the set of assets.
-
Distributed debugging of an application in a distributed computing environment
Issued US 9,104,800
Methods, apparatuses, and computer program product for distributed debugging of an application in a distributed computing environment are provided. Embodiments include a first debug module on a first host receiving a set breakpoint message from a management debug module of a management system. In response to receiving the set breakpoint message, the first debug module sets a breakpoint for executing a first service on the first host, for the application. Upon hitting the breakpoint while…
Methods, apparatuses, and computer program product for distributed debugging of an application in a distributed computing environment are provided. Embodiments include a first debug module on a first host receiving a set breakpoint message from a management debug module of a management system. In response to receiving the set breakpoint message, the first debug module sets a breakpoint for executing a first service on the first host, for the application. Upon hitting the breakpoint while executing the first service for the application, the first debug module sends a breakpoint condition of the first service to the management debug module. In response to receiving the breakpoint condition, the management debug module sends to a second debug module of a second host, an instruction to pause execution of the second service of the second host.
Other inventorsSee patent -
Hybrid Simulation in a Cloud Computing Environment
Filed US US20160357584A1
A simulation mechanism manages deployment of a simplified computing solution (SCS) and a corresponding simulation model that simulates a scaled multiple of the SCS to allow a deployment configuration for a large scale computing solution to be determined and tested before actually deploying the large scale computing solution.
-
On-demand Helper Operator for a Streaming Application
Filed US US20150373078A1
A streams manager creates one or more helper operators when a streaming application is initially deployed. As the streaming application runs, the streams manager monitors performance of the streaming application. When a bottleneck is detected, the streams manager automatically adjusts a helper operator to help the operator experiencing the bottleneck, thereby dynamically improving performance of the streaming application. Helper operators can be dynamically created and destroyed by the streams…
A streams manager creates one or more helper operators when a streaming application is initially deployed. As the streaming application runs, the streams manager monitors performance of the streaming application. When a bottleneck is detected, the streams manager automatically adjusts a helper operator to help the operator experiencing the bottleneck, thereby dynamically improving performance of the streaming application. Helper operators can be dynamically created and destroyed by the streams manager as needed, and can be deployed to virtual machines in a cloud.
-
Optimized Migration of Virtual Objects Across Environments in a Cloud Computing Environment
Filed US 20160191326
An appliance migration mechanism (AMM) optimizes migration of a live virtual appliance with virtual objects between cloud environments to minimize temporary connections that use significant cloud resources during the migration. The AMM determines a cost of connections of each virtual object in the virtual appliance and produces an order of migration for the virtual objects. The cost of connections of the virtual objects may be determined by the total number of connections and the maximum number…
An appliance migration mechanism (AMM) optimizes migration of a live virtual appliance with virtual objects between cloud environments to minimize temporary connections that use significant cloud resources during the migration. The AMM determines a cost of connections of each virtual object in the virtual appliance and produces an order of migration for the virtual objects. The cost of connections of the virtual objects may be determined by the total number of connections and the maximum number of connections. Alternatively the cost of the connections of the virtual objects for migration could be determined by a weighting the costs of the connections where the weighting may consider loading or other factors on the connection.
Other inventorsSee patent -
Managing Resources In A Distributed Computing Environment
Filed US 20150163111
Methods, apparatuses, and computer program products for managing resources in a distributed computing environment that includes a plurality of resources and a resource recycling unit for storing discarded resources are provided. Embodiments include a management system maintaining within a resource recycling unit, a plurality of discarded resources of the distributed computing environment. Embodiments also include the management system receiving from a user, a request for a resource of the…
Methods, apparatuses, and computer program products for managing resources in a distributed computing environment that includes a plurality of resources and a resource recycling unit for storing discarded resources are provided. Embodiments include a management system maintaining within a resource recycling unit, a plurality of discarded resources of the distributed computing environment. Embodiments also include the management system receiving from a user, a request for a resource of the distributed computing environment and in response to receiving the request, selecting a first discarded resource from the plurality of discarded resources of the resource recycling unit. Embodiments also include the management system providing the selected first discarded resource to the user.
Other inventorsSee patent -
Streaming Operator With Trigger
Filed US 20150205627
One or more operators in a flow graph of a streaming application may include one or more triggers that indicate when action needs to be taken for the operator. A streams manager monitors performance of a streaming application and receives a notification when a trigger in an operator fires. In response to a trigger firing, the streams manager determines an appropriate action corresponding to the trigger. When the trigger indicates an adjustment of cloud resources are needed, the streams manager…
One or more operators in a flow graph of a streaming application may include one or more triggers that indicate when action needs to be taken for the operator. A streams manager monitors performance of a streaming application and receives a notification when a trigger in an operator fires. In response to a trigger firing, the streams manager determines an appropriate action corresponding to the trigger. When the trigger indicates an adjustment of cloud resources are needed, the streams manager formulates a cloud resource request to a cloud manager. In response, the cloud manager adjusts the cloud resources for the operator to improve performance of the streaming application. A trigger may specify a trigger action for an operator, and may additionally specify a trigger action for one or more other affected operators. The firing of a trigger in one operator can therefore result in adjusting resources to multiple operators.
Other inventorsSee patent -
Discovering Resources Of A Distributed Computing Environment
Filed US 20150195121
Methods, apparatuses, and computer program products for discovering resources of a distributed computing environment are provided. Embodiments include a management system transmitting an application program interface (API) message to the distributed computing environment. Embodiments also include the management system receiving from the distributed computing environment, a response to the API message and based on the response, identifying a resource of the distributed computing environment.
Other inventorsSee patent -
Visualizing Migration Of A Resource Of A Distributed Computing Environment
Filed US 20150160795
Methods, apparatuses, and computer program products for visualizing migration of a resource of a distributed computing environment are provided. Embodiments include displaying, within a graphical user interface (GUI), one or more graphical resource representations. Each graphical resource representation represents a resource of a distributed computing environment. Each graphical resource representation is displayed in a particular location within the GUI according to a location of the resource…
Methods, apparatuses, and computer program products for visualizing migration of a resource of a distributed computing environment are provided. Embodiments include displaying, within a graphical user interface (GUI), one or more graphical resource representations. Each graphical resource representation represents a resource of a distributed computing environment. Each graphical resource representation is displayed in a particular location within the GUI according to a location of the resource within the distributed computing environment. Embodiments also include displaying, within the GUI, a first graphical migration representation. The first graphical migration representation represents a first transfer operation of a first resource of the distributed computing environment. Embodiments also include updating based on a progress of the first transfer operation, within the GUI at least one of: the first graphical migration representation and a location of at least one of the one or more graphical resource representations.
Other inventorsSee patent -
Using Cloud Resources To Improve Performance Of A Streaming Application
Filed US 20150127777
A streams manager monitors performance of a streaming application, and when the performance needs to be improved, the streams manager automatically requests virtual machines from a cloud manager. The streams manager specifies to the cloud manager streams infrastructure and one or more streams application components for the virtual machines. The cloud manager provisions one or more virtual machines in a cloud with the specified streams infrastructure and streams application components. The…
A streams manager monitors performance of a streaming application, and when the performance needs to be improved, the streams manager automatically requests virtual machines from a cloud manager. The streams manager specifies to the cloud manager streams infrastructure and one or more streams application components for the virtual machines. The cloud manager provisions one or more virtual machines in a cloud with the specified streams infrastructure and streams application components. The streams manager then modifies the flow graph so one or more portions of the streaming application are hosted by the virtual machines in the cloud.
Other inventorsSee patent -
Automatically reflecting changes to a computing solution into an image for the computing solution
Filed US 20150106607
A pluggable cloud enablement boot device (PCEBD) is a bootable device that includes all information needed to automatically provision hardware and software to create a computing solution that meets customer requirements. This allows for quickly deploying a computing solution in a manner that eliminates many manual steps that are typically performed today. The PCEBD uses firmware to verify a given platform has sufficient resources to deploy the PCEBD. The computing solution, once provisioned and…
A pluggable cloud enablement boot device (PCEBD) is a bootable device that includes all information needed to automatically provision hardware and software to create a computing solution that meets customer requirements. This allows for quickly deploying a computing solution in a manner that eliminates many manual steps that are typically performed today. The PCEBD uses firmware to verify a given platform has sufficient resources to deploy the PCEBD. The computing solution, once provisioned and running, can be modified, and these modifications may be reflected in the definition of the PCEBD. In addition, a computing solution may include multiple resources provisioned from multiple PCEBDs, which can be packaged into a PCEBD that will include other PCEBDs. The result is a way to deploy computing solutions that is much more efficient than the manual methods used in the prior art.
Other inventorsSee patent -
Shared Page Access Control Among Cloud Objects In A Distributed Cloud Environment
Filed US 20150058926
A management system in a distributed cloud environment that includes a plurality of cloud object, may administer shared page access control among cloud objects. Such shared access control includes: receiving, by the management system from a requesting cloud object, a request to access a shared page; discovering, by the management system, one or more page attributes of the shared page, where the one or more page attributes of the shared page include attributes specified by one or more cloud…
A management system in a distributed cloud environment that includes a plurality of cloud object, may administer shared page access control among cloud objects. Such shared access control includes: receiving, by the management system from a requesting cloud object, a request to access a shared page; discovering, by the management system, one or more page attributes of the shared page, where the one or more page attributes of the shared page include attributes specified by one or more cloud objects of the distributed cloud environment; identifying, by the management system in dependence upon the page attributes, one more access control measures to perform; performing, by the management system in dependence upon the page attributes, the access control measures; and determining, by the management system, whether to grant the requesting cloud object access to the shared page.
Other inventorsSee patent -
Visually Depicting Cloud Resource Utilization During Execution Of An Application
Filed US 20150033134
Visually depicting cloud resource utilization during execution of an application, the application using multiple cloud resources deployed on multiple cloud hosts, including: displaying, by a resource monitoring module in a graphical user interface, a visual depiction of resource utilization of the multiple cloud resources during execution of the application; receiving, from a user through the graphical user interface displaying the visual depiction of resource utilization of the multiple cloud…
Visually depicting cloud resource utilization during execution of an application, the application using multiple cloud resources deployed on multiple cloud hosts, including: displaying, by a resource monitoring module in a graphical user interface, a visual depiction of resource utilization of the multiple cloud resources during execution of the application; receiving, from a user through the graphical user interface displaying the visual depiction of resource utilization of the multiple cloud resources, a resource utilization threshold for each of the multiple cloud resources; determining, by the resource monitoring module, whether one or more of the resource utilization thresholds have been reached; and responsive to determining that one or more of the resource utilization thresholds have been reached, executing a predetermined action.
Other inventorsSee patent
Projects
-
IBM ToolsCenter - IBM Advanced Settings Utility (ASU) & Firmware Updates
-
Created C++ based command line tools for the configuration and updating of IBM and OEM based Blade Systems. These applications targeted a variety of Microsoft Windows based and Linux based operating systems, pre-boot environments and virtualized images (ESXi,VMWare).
Implemented solutions using Intel KCS and LAN IPMI, CIM, XML, SLP, TFTP, FTP, SSH, WMI, WBEM, and other TCP/IP based protocols.Other creatorsSee project
Honors & Awards
-
Manager’s Choice Award
IBM
Award given by managers to direct reports who demonstrate IBM values and practices.
-
Pisces Award
IBM
Recognition for significant contributions to IBM's inventing community.
Languages
-
English
Native or bilingual proficiency
-
Chinese
Native or bilingual proficiency
-
French
Elementary proficiency
Organizations
-
Future Blue
Head Coordinator
- -
Eta Kappa Nu: National Electrical and Computer Engineering Honor Society
President, VP
-Received the 2010-2011 IEEE-HKN Outstanding Chapter Award
-
IEEE: Institute of Electrical and Electronics Engineers
President, VP, PR, Project Chair
-Received 2010-2011 Outstanding IEEE Member of the Year.
-
Asian Network Group
Communications Officer
-
Diversity Council
Core Committee
-
Intern Co-op Mentor Program
Coordinator
-
New Hire Network Group
President
-
Toastmasters International
VP of Public Relations
More activity by Ben
-
We're hiring 🚀 If you’re interested, reach out and apply! And please pass along any referrals if you know someone who’d be a great fit. Exciting…
We're hiring 🚀 If you’re interested, reach out and apply! And please pass along any referrals if you know someone who’d be a great fit. Exciting…
Liked by Ben Cao
-
A record-breaking Games: Stanford’s haul of 39 medals (12 gold, 14 silver, 13 bronze) is the most by any school at one Olympics. 🏅 📸: Getty Images
A record-breaking Games: Stanford’s haul of 39 medals (12 gold, 14 silver, 13 bronze) is the most by any school at one Olympics. 🏅 📸: Getty Images
Liked by Ben Cao
-
The first of several major announcements from the DIBS Beauty team!
The first of several major announcements from the DIBS Beauty team!
Liked by Ben Cao
-
Retire on a high! Experts say... ... ... no one is retiring :) ... Well, except the hundreds of legacy EHRs we are retiring as we speak. But as an…
Retire on a high! Experts say... ... ... no one is retiring :) ... Well, except the hundreds of legacy EHRs we are retiring as we speak. But as an…
Liked by Ben Cao
-
Jason Jackson and Dave Dodson had a great day developing new material for our early CEO training program, which we hope to bring out any…
Jason Jackson and Dave Dodson had a great day developing new material for our early CEO training program, which we hope to bring out any…
Liked by Ben Cao
-
Jolloff rice in our London office today. We have people from over 30 countries at NALA and every Friday a different country has to present their…
Jolloff rice in our London office today. We have people from over 30 countries at NALA and every Friday a different country has to present their…
Liked by Ben Cao
-
This is me after hearing I was accepted to Y Combinator's S24 batch. Only a month since this photo, my cofounder Alex R. and I have moved to SF and…
This is me after hearing I was accepted to Y Combinator's S24 batch. Only a month since this photo, my cofounder Alex R. and I have moved to SF and…
Liked by Ben Cao
-
It's an honor to be featured in Poets&Quants alongside some incredible classmates at Saïd Business School, University of Oxford. When we were…
It's an honor to be featured in Poets&Quants alongside some incredible classmates at Saïd Business School, University of Oxford. When we were…
Liked by Ben Cao
-
I'm very excited to announce that Traini Secured $1.5M , Unveils Pet Empathic AI To Serve Pets Well-being. Traini is dedicate to establish a…
I'm very excited to announce that Traini Secured $1.5M , Unveils Pet Empathic AI To Serve Pets Well-being. Traini is dedicate to establish a…
Liked by Ben Cao
Other similar profiles
Explore collaborative articles
We’re unlocking community knowledge in a new way. Experts add insights directly into each article, started with the help of AI.
Explore MoreOthers named Ben Cao in United States
-
Ben Cao
-
Ben Cao
QA Lead at HP
-
Ben Cao
Software Engineer
-
Ben Cao
Project Manager at Interface Engineering
30 others named Ben Cao in United States are on LinkedIn
See others named Ben Cao