Dynamic runtime choosing of processing communication methods
First Claim
1. A computer-implemented method for processing data, comprising:
- establishing an operator graph of a plurality of processing elements, the operator graph defining at least one execution path, wherein a first processing element of the plurality of processing elements is located on a first compute node and configured to transmit data to at least one downstream processing element, and wherein the first processing element is capable of transmitting data to the at least one downstream processing element by selecting either or both of a first and a second communication protocol, whereby the first processing element is capable of dynamically switching from the first communication protocol to the second communication protocol, and vice versa;
transmitting, by one or more computer processors, data from the first processing element to the at least one downstream processing element using a selected_one of the first and the second communication protocols;
determining, while the selected one of the first and second communication protocols is selected, whether to switch to the other of the first and second communication protocols; and
upon determining to switch, determining whether to move the first processing element from the first compute node onto a second compute node before transmitting data from the first processing element to the at least one downstream processing element using the other of the communication protocols.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for assigning and changing communication protocols for a pair of processing elements. The communication protocol determines how the pair of processing elements transmits data in a stream application. The pair may be assigned a communication protocol (e.g., TCP/IP or a protocol that uses a relational database, shared file system, or shared memory) before the operator graph begins to stream data. This assignment may be based on a priority of the processing elements and/or a priority of the communication protocols. After the operator graph begins to stream data, the pair of processing elements may switch to a different communication protocol. The decision to switch the communication protocol may be based on whether the pair of processing elements or assigned communication protocol is meeting established performance standards for the stream application.
74 Citations
20 Claims
-
1. A computer-implemented method for processing data, comprising:
-
establishing an operator graph of a plurality of processing elements, the operator graph defining at least one execution path, wherein a first processing element of the plurality of processing elements is located on a first compute node and configured to transmit data to at least one downstream processing element, and wherein the first processing element is capable of transmitting data to the at least one downstream processing element by selecting either or both of a first and a second communication protocol, whereby the first processing element is capable of dynamically switching from the first communication protocol to the second communication protocol, and vice versa; transmitting, by one or more computer processors, data from the first processing element to the at least one downstream processing element using a selected_one of the first and the second communication protocols; determining, while the selected one of the first and second communication protocols is selected, whether to switch to the other of the first and second communication protocols; and upon determining to switch, determining whether to move the first processing element from the first compute node onto a second compute node before transmitting data from the first processing element to the at least one downstream processing element using the other of the communication protocols. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 20)
-
-
12. A computer-implemented method for processing data, comprising:
-
establishing an operator graph of a plurality of processing elements, the operator graph defining at least one execution path, wherein a first processing element of the plurality of processing elements is located on a first compute node and_configured to transmit data to at least a first downstream processing element, and wherein the first processing element is capable of transmitting data to at least the first downstream processing element by selectively choosing either or both of a first communication protocol and a second communication protocol, whereby the first processing element is capable of dynamically switching from the first communication protocol to the second communication protocol, and vice versa; prioritizing at least one of the plurality of processing elements and the first and second communication protocol based on at least one of a predicted amount of data to be transmitted by each of the plurality of processing elements, a job the plurality of processing elements are associated with, the cost of the first and second communication protocol, a data transfer rate of the first and second communication protocol, and an energy cost of the first and second communication protocol; before transmitting data using the one of the first and the second communication protocols, assigning the first processing element to use the one of the first and the second communication protocols based on the prioritization; transmitting, by one or more computer processors, data from the first processing element to the at least one downstream processing element using one of the first and the second communication protocols; after transmitting data from the first processing element has begun, adding one or more new processing elements to the plurality of processing elements; prioritizing a second processing element of the one or more new processing elements and assigning the second processing element to use one or more of the first, the second, and a third communication protocol based on the prioritization; transmitting, by one or more computer processors, data from the second processing element to at least a second downstream processing element using the assigned communication protocols; determining, while transmitting data using the assigned communication protocols, based on one or more of the priority and assigned communication protocol of the second processing element, whether to switch the first processing element to the other of the first and second communication protocols; and upon determining to switch, determining whether to move the first processing element from the first compute node onto a second compute node before_transmitting data from the first processing element to the at least one downstream processing element using the other of the communication protocols. - View Dependent Claims (13)
-
-
14. A computer-implemented method for processing data, comprising:
-
establishing an operator graph of a plurality of processing elements, the operator graph defining at least one execution path, wherein a first processing element of the plurality of processing elements is located on a first compute node and configured to transmit data to at least one downstream processing element, and wherein the first processing element is capable of transmitting data to the at least one downstream processing element by selectively choosing either or both of a first communication protocol and a second communication protocol; transmitting, by one or more computer processors, data from the first processing element to the at least one downstream processing element using the first communication protocol; determining, based on one or more measures of performance for transmitting data using the first communication protocol, whether to switch from the first communication protocol to the second communication protocol; and upon determining to switch, determining whether to move the first processing element from the first compute node onto a second compute node before transmitting data from the first processing element to the at least one downstream processing element using the second communication protocol. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification