@Override
  public <T> CompletableFuture<T> readAsync(int opId, Object... args) {
    incCounter(metrics.numReads);
    long startNs = clock.nanoTime();
    return table.readAsync(opId, args).handle((result, e) -> {
      if (e != null) {
        throw new SamzaException("Failed to read, opId=" + opId, e);
      }
      updateTimer(metrics.readNs, clock.nanoTime() - startNs);
      return (T) result;
    });
  }
Lookup the cache and return the keys that are missed in cache
@param keys keys to be looked up
@param records result map
@return list of keys missed in the cache
samza-core/src/main/java/org/apache/samza/table/caching/CachingTable.java