blob: 90c6ad1ee3ce528c0a05c742f2bbd6e9df70a779 [file] [log] [blame]
package edu.uci.ics.hyracks.control.cc.partitions;
import edu.uci.ics.hyracks.api.comm.NetworkAddress;
import edu.uci.ics.hyracks.api.partitions.PartitionId;
import edu.uci.ics.hyracks.api.util.Pair;
import edu.uci.ics.hyracks.control.cc.ClusterControllerService;
import edu.uci.ics.hyracks.control.cc.NodeControllerState;
import edu.uci.ics.hyracks.control.common.base.INodeController;
import edu.uci.ics.hyracks.control.common.job.PartitionDescriptor;
import edu.uci.ics.hyracks.control.common.job.PartitionRequest;
public class PartitionUtils {
public static void reportPartitionMatch(ClusterControllerService ccs, final PartitionId pid,
Pair<PartitionDescriptor, PartitionRequest> match) {
PartitionDescriptor desc = match.first;
PartitionRequest req = match.second;
NodeControllerState producerNCS = ccs.getNodeMap().get(desc.getNodeId());
NodeControllerState requestorNCS = ccs.getNodeMap().get(req.getNodeId());
final NetworkAddress dataport = producerNCS.getDataPort();
final INodeController requestorNC = requestorNCS.getNodeController();
ccs.getExecutor().execute(new Runnable() {
@Override
public void run() {
try {
requestorNC.reportPartitionAvailability(pid, dataport);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}