Moving a portion of a streaming application to a public cloud based on sensitive data
First Claim
Patent Images
1. An apparatus comprising:
- at least one processor;
a memory coupled to the at least one processor;
a streaming application residing in the memory and executed by the at least one processor, the streaming application comprising a flow graph that includes a plurality of processing elements that process a plurality of data tuples;
a performance monitor residing in the memory and executed by the at least one processor, the performance monitor monitoring performance of the plurality of processing elements in the flow graph;
a sensitive data monitor that identifies which of the plurality of processing elements in the flow graph process sensitive data;
at least one sensitive data split criterion that specifies how to split the flow graph based on sensitive data so at least a portion of the flow graph can be moved to a public cloud in a manner that assures the sensitive data is not in the public cloud, wherein the at least one sensitive data split criterion specifies to unfuse one of the plurality of processing elements into a plurality of operators that process at least some of the plurality of data tuples so at least one of the plurality of operators that does not process sensitive data is moved to the public cloud while at least one of the plurality of operators that process sensitive data is not moved to the public cloud; and
a streams manager residing in the memory and executed by the at least one processor, the streams manager managing the streaming application, the streams manager selecting based on the at least one sensitive data split criterion at least one portion of the flow graph to move to the public cloud when the performance monitor determines performance of the streaming application needs to be improved, and in response, the streams manager moving the selected at least one portion of the flow graph to the public cloud, wherein the streams manager moves the selected at least one portion of the flow graph to the public cloud by requesting a public cloud manager to provision at least one virtual machine with logic to implement the selected at least one portion of the flow graph.
1 Assignment
0 Petitions
Accused Products
Abstract
A streams manager determines which portions of a streaming application process sensitive data, and when performance of the streaming application needs to be increased, selects based on the sensitive data which portion(s) of the streaming application can be moved to a public cloud. The streams manager then interacts with the public cloud manager to move the selected portion(s) of the streaming application to the public cloud. By taking sensitive data into account, the streams manager protects the integrity of sensitive data while still taking advantage of the additional resources available in a public cloud.
35 Citations
14 Claims
-
1. An apparatus comprising:
-
at least one processor; a memory coupled to the at least one processor; a streaming application residing in the memory and executed by the at least one processor, the streaming application comprising a flow graph that includes a plurality of processing elements that process a plurality of data tuples; a performance monitor residing in the memory and executed by the at least one processor, the performance monitor monitoring performance of the plurality of processing elements in the flow graph; a sensitive data monitor that identifies which of the plurality of processing elements in the flow graph process sensitive data; at least one sensitive data split criterion that specifies how to split the flow graph based on sensitive data so at least a portion of the flow graph can be moved to a public cloud in a manner that assures the sensitive data is not in the public cloud, wherein the at least one sensitive data split criterion specifies to unfuse one of the plurality of processing elements into a plurality of operators that process at least some of the plurality of data tuples so at least one of the plurality of operators that does not process sensitive data is moved to the public cloud while at least one of the plurality of operators that process sensitive data is not moved to the public cloud; and a streams manager residing in the memory and executed by the at least one processor, the streams manager managing the streaming application, the streams manager selecting based on the at least one sensitive data split criterion at least one portion of the flow graph to move to the public cloud when the performance monitor determines performance of the streaming application needs to be improved, and in response, the streams manager moving the selected at least one portion of the flow graph to the public cloud, wherein the streams manager moves the selected at least one portion of the flow graph to the public cloud by requesting a public cloud manager to provision at least one virtual machine with logic to implement the selected at least one portion of the flow graph. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus comprising:
-
at least one processor; a memory coupled to the at least one processor; a streaming application residing in the memory and executed by the at least one processor, the streaming application comprising a flow graph that includes a plurality of processing elements that process a plurality of data tuples; a performance monitor residing in the memory and executed by the at least one processor, the performance monitor monitoring performance of the plurality of processing elements in the flow graph; a sensitive data monitor that identifies which of the plurality of processing elements in the flow graph process sensitive data; at least one sensitive data split criterion that specifies how to split the flow graph based on sensitive data so at least a portion of the flow graph can be moved to a public cloud in a manner that assures the sensitive data is not in the public cloud, wherein the at least one sensitive data split criterion specifies to unfuse one of the plurality of processing elements into a plurality of operators that process at least some of the plurality of data tuples so at least one of the plurality of operators that does not process sensitive data is moved to the public cloud while at least one of the plurality of operators that process sensitive data is not moved to the public cloud; and a streams manager residing in the memory and executed by the at least one processor, the streams manager managing the streaming application, the streams manager selecting based on the at least one sensitive data split criterion at least one portion of the flow graph to move to the public cloud when the performance monitor determines performance of the streaming application needs to be improved, and in response, the streams manager moving the selected at least one portion of the flow graph to the public cloud, wherein the streams manager moves the selected at least one portion of the flow graph to the public cloud by requesting a public cloud manager to provision at least one virtual machine with logic to implement the selected at least one portion of the flow graph, and when the public cloud manager provisions the at least one virtual machine, the streams manager modifies the flow graph to include the at least one virtual machine in the flow graph of the streaming application. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. An apparatus comprising:
-
at least one processor; a memory coupled to the at least one processor; a streaming application residing in the memory and executed by the at least one processor, the streaming application comprising a flow graph that includes a plurality of processing elements that process a plurality of data tuples; a performance monitor residing in the memory and executed by the at least one processor, the performance monitor monitoring performance of the plurality of processing elements in the flow graph; a sensitive data monitor that identifies which of the plurality of processing elements in the flow graph process sensitive data; at least one sensitive data split criterion that specifies how to split the flow graph based on sensitive data so at least a portion of the flow graph can be moved to a public cloud in a manner that assures the sensitive data is not in the public cloud, wherein the at least one sensitive data split criterion specifies to unfuse one of the plurality of processing elements into a plurality of operators that process at least some of the plurality of data tuples so at least one of the plurality of operators that does not process sensitive data is moved to the public cloud while at least one of the plurality of operators that process sensitive data is not moved to the public cloud; and a streams manager residing in the memory and executed by the at least one processor, the streams manager managing the streaming application, the streams manager selecting based on the at least one sensitive data split criterion at least one portion of the flow graph to move to the public cloud when the performance monitor determines performance of the streaming application needs to be improved by comparing current performance of the streaming application to historical performance of the streaming application, and in response, the streams manager moving the selected at least one portion of the flow graph to the public cloud, wherein the streams manager moves the selected at least one portion of the flow graph to the public cloud by requesting a public cloud manager to provision at least one virtual machine with logic to implement the selected at least one portion of the flow graph, and when the public cloud manager provisions the at least one virtual machine, the streams manager modifies the flow graph to include the at least one virtual machine in the flow graph of the streaming application.
-
Specification