Address address = e.getKey();
List<KIn> keys = e.getValue();
if (address.equals(rpc.getAddress())) {
selfCmd = factory.buildMapReduceCommand(clone(mapper), clone(reducer), rpc.getAddress(), keys);
} else {
cmd = factory.buildMapReduceCommand(mapper, reducer, rpc.getAddress(), keys);
try {
log.debugf("Invoking %s on %s", cmd, address);
MapReduceFuture future = new MapReduceFuture();
futures.add(future);
rpc.invokeRemotelyInFuture(Collections.singleton(address), cmd, future);