package edu.washington.escience.myria.operator.network.distribute;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import edu.washington.escience.myria.util.MyriaArrayUtils;
/**
* Implementation of a DistributeFunction that maps a tuple to a worker as specified in an INT column (i.e. a --> a).
*/
public final class IdentityDistributeFunction extends DistributeFunction {
/** Required for Java serialization. */
private static final long serialVersionUID = 1L;
/**
* @param index the column index for distributing
*/
@JsonCreator
public IdentityDistributeFunction(@JsonProperty("index") final int index) {
super(new IdentityPartitionFunction(index));
}
@Override
public void setDestinations(int numWorker, int numOperatorId) {
partitionToDestination = MyriaArrayUtils.create2DVerticalIndexList(numWorker);
partitionFunction.setNumPartitions(numWorker);
}
}