public ServerCache call() throws Exception {
QueryPlan hashPlan = hashPlans[index];
ServerCache cache = hashClient.addHashCache(ranges, hashPlan.iterator(),
clientProjectors[index], hashPlan.getEstimatedSize(), hashExpressions[index], plan.getTableRef());
long endTime = System.currentTimeMillis();
boolean isSet = firstJobEndTime.compareAndSet(0, endTime);
if (!isSet && (endTime - firstJobEndTime.get()) > maxServerCacheTimeToLive) {
LOG.warn("Hash plan [" + index + "] execution seems too slow. Earlier hash cache(s) might have expired on servers.");
}
return cache;
}