SystemParameters.ThetaDataReshufflerToJoiner, tplSend);
}
}
protected void advise() {
Action advisorcurrentAction = null;
final Maybe<Action> isAction = _mAdvisor.advise();
if (!isAction.isNone())// there is no pending Assignment
if (_currentAdvisorState != state.DATAMIGRATING
&& _currentAdvisorState != state.FLUSHING) {
advisorcurrentAction = isAction.get();
_currentAdvisorState = state.FLUSHING;
LOG.info(_componentName + ":" + _taskIDLogicalIndex + " MAIN: sending new mapping:"
+ advisorcurrentAction.toString() + " Relation sizes "
+ _currentFirstRelationCount + "," + _currentSecondRelationCount);
for (int i = 1; i < _resufflerIndex.size(); i++)
_collector.emitDirect(
_resufflerIndex.get(i),
SystemParameters.ThetaSynchronizerSignal,
new Values(SystemParameters.ThetaSignalStop, advisorcurrentAction
.toString()));
// emit the stop signal with mapping
_mAdvisor.updateMapping(advisorcurrentAction);
// **************************Local changes
_currentState = state.FLUSHING;
_currentEpochNumber++;
_currentAction = advisorcurrentAction;
_currentDimExcDis = getNewMapping(_currentAction);
LOG.info(_ID + ":" + _taskPhysicalID
+ " :Reshuffler (sending STOP) & current mapping changing to :("
+ _currentAction.toString() + ") with epoch number:" + _currentEpochNumber
+ " (" + _mAdvisor.totalRowTuples + "," + _mAdvisor.totalColumnTuples + ")");
updateLogicalMappings();
_collector.emit(SystemParameters.ThetaReshufflerSignal, new Values(
SystemParameters.ThetaSignalStop, advisorcurrentAction.toString()));
// ///*****************************
}
}