ListenableFuture<List<ResultSet>> insertsFuture = Futures.successfulAsList(rawFuture, indexFuture);
Futures.addCallback(insertsFuture, new FutureCallback<List<ResultSet>>() {
@Override
public void onSuccess(List<ResultSet> result) {
callback.onSuccess(data);
if (remainingInserts.decrementAndGet() == 0) {
stopwatch.stop();
if (log.isDebugEnabled()) {
log.debug("Finished inserting " + dataSet.size() + " raw metrics in " +
stopwatch.elapsed(TimeUnit.MILLISECONDS) + " ms");
}