public class MToOneTree extends java.lang.Object implements DataFlowOperation, ChannelReceiver
Modifier and Type | Field and Description |
---|---|
protected int |
destination
The target tast
|
protected java.util.Set<java.lang.Integer> |
sources
the source tasks
|
Constructor and Description |
---|
MToOneTree(TWSChannel channel,
java.util.Set<java.lang.Integer> sources,
int destination,
MessageReceiver finalRcvr,
MessageReceiver partialRcvr,
int indx,
int p,
boolean keyed,
MessageType kType,
MessageType dType,
MessageSchema messageSchema) |
MToOneTree(TWSChannel channel,
java.util.Set<java.lang.Integer> sources,
int destination,
MessageReceiver finalRcvr,
MessageReceiver partialRcvr,
int indx,
int p,
MessageSchema messageSchema) |
MToOneTree(TWSChannel channel,
java.util.Set<java.lang.Integer> sources,
int destination,
MessageReceiver finalRcvr,
MessageReceiver partialRcvr,
MessageSchema messageSchema) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Close the operation
|
void |
finish(int source)
If this is a larger transfer of dataflow style, we need to finish
|
MessageType |
getDataType()
returns the data type that is associated with the data flow operation
|
MessageType |
getKeyType()
returns the key type that is associated with the data flow operation
|
LogicalPlan |
getLogicalPlan()
Task plan associated with this operation
|
java.util.Set<java.lang.Integer> |
getSources()
Get the sources of the operation
|
java.util.Set<java.lang.Integer> |
getTargets()
Get targets of operation
|
java.lang.String |
getUniqueId()
Returns a unique id for this operation.
|
void |
init(Config cfg,
MessageType t,
LogicalPlan logicalPlan,
int edge)
Initialize
|
void |
init(Config cfg,
MessageType dType,
MessageType rcvDType,
MessageType kType,
MessageType rcvKType,
LogicalPlan logicalPlan,
int edge)
Initialize
|
boolean |
isComplete()
Weather the operation doesn't have any pending sends or receives
|
boolean |
isDelegateComplete() |
boolean |
progress()
Progress the pending dataflow operations
|
java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>> |
receiveExpectedTaskIds() |
boolean |
receiveMessage(MessageHeader header,
java.lang.Object object)
We can receive messages from internal tasks or an external task, we allways receive messages
to the main task of the workerId and we go from there
|
boolean |
receiveSendInternally(int source,
int target,
int path,
int flags,
java.lang.Object message)
For partial receives the path and
|
protected java.util.Set<java.lang.Integer> |
receivingExecutors() |
void |
reset()
Reset and get the operation to initial state
|
boolean |
send(int source,
java.lang.Object message,
int flags)
Send a send message, this call will work asynchronously
|
boolean |
send(int source,
java.lang.Object message,
int flags,
int target)
Send the message on a specific path
|
boolean |
sendPartial(int source,
java.lang.Object message,
int flags)
Use this to inject partial results in a distributed dataflow operation
|
boolean |
sendPartial(int source,
java.lang.Object message,
int flags,
int target)
Send partial message on a specific path
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getReceiveDataType, getReceiveKeyType
handleReceivedChannelMessage, sendCompleted
protected java.util.Set<java.lang.Integer> sources
protected int destination
public MToOneTree(TWSChannel channel, java.util.Set<java.lang.Integer> sources, int destination, MessageReceiver finalRcvr, MessageReceiver partialRcvr, int indx, int p, MessageSchema messageSchema)
public MToOneTree(TWSChannel channel, java.util.Set<java.lang.Integer> sources, int destination, MessageReceiver finalRcvr, MessageReceiver partialRcvr, int indx, int p, boolean keyed, MessageType kType, MessageType dType, MessageSchema messageSchema)
public MToOneTree(TWSChannel channel, java.util.Set<java.lang.Integer> sources, int destination, MessageReceiver finalRcvr, MessageReceiver partialRcvr, MessageSchema messageSchema)
public boolean receiveMessage(MessageHeader header, java.lang.Object object)
receiveMessage
in interface ChannelReceiver
header
- the headerobject
- the built messagepublic boolean receiveSendInternally(int source, int target, int path, int flags, java.lang.Object message)
ChannelReceiver
receiveSendInternally
in interface ChannelReceiver
source
- the sourcetarget
- target to be sentpath
- the path to be usedflags
- flagsmessage
- messagepublic boolean send(int source, java.lang.Object message, int flags)
DataFlowOperation
send
in interface DataFlowOperation
source
- source taskmessage
- message as a generic objectpublic boolean send(int source, java.lang.Object message, int flags, int target)
DataFlowOperation
send
in interface DataFlowOperation
source
- source taskmessage
- a generic java objecttarget
- target taskpublic boolean sendPartial(int source, java.lang.Object message, int flags, int target)
DataFlowOperation
sendPartial
in interface DataFlowOperation
source
- the sourcemessage
- message as a generic objecttarget
- the final targetpublic void init(Config cfg, MessageType dType, MessageType rcvDType, MessageType kType, MessageType rcvKType, LogicalPlan logicalPlan, int edge)
public void init(Config cfg, MessageType t, LogicalPlan logicalPlan, int edge)
public boolean sendPartial(int source, java.lang.Object message, int flags)
DataFlowOperation
sendPartial
in interface DataFlowOperation
message
- messageprotected java.util.Set<java.lang.Integer> receivingExecutors()
public java.util.Map<java.lang.Integer,java.util.List<java.lang.Integer>> receiveExpectedTaskIds()
public boolean isDelegateComplete()
isDelegateComplete
in interface DataFlowOperation
public boolean isComplete()
DataFlowOperation
isComplete
in interface DataFlowOperation
public boolean progress()
DataFlowOperation
progress
in interface DataFlowOperation
public void close()
DataFlowOperation
close
in interface DataFlowOperation
public void reset()
DataFlowOperation
reset
in interface DataFlowOperation
public void finish(int source)
DataFlowOperation
finish
in interface DataFlowOperation
public MessageType getKeyType()
DataFlowOperation
getKeyType
in interface DataFlowOperation
public MessageType getDataType()
DataFlowOperation
getDataType
in interface DataFlowOperation
public LogicalPlan getLogicalPlan()
DataFlowOperation
getLogicalPlan
in interface DataFlowOperation
public java.lang.String getUniqueId()
DataFlowOperation
getUniqueId
in interface DataFlowOperation
public java.util.Set<java.lang.Integer> getSources()
DataFlowOperation
getSources
in interface DataFlowOperation
public java.util.Set<java.lang.Integer> getTargets()
DataFlowOperation
getTargets
in interface DataFlowOperation