// divide the work into chunks
if ((chunkWorkList.size() >= this.chunkSize)
|| mapsToReduce.isEmpty()) {
// the work router is essentially a partitioner
Future<Map<String, Integer>> futureReduceResult = this.workRouter
.sendRequestReplyFuture(new ReduceMapSetWork(
chunkWorkList), 30000, this.owner);
reduceWorkList.add(futureReduceResult);
chunkWorkList = new LinkedList<Map<String, Integer>>();
}