@Override
    public Void call() throws Exception {
        int rows = 0;
        rangeSlicesQuery.setColumnFamily(commandArgs.workingColumnFamily);
        log.debug("Starting SliceCommand");
        try {
            while (rows < commandArgs.getKeysPerThread()) {
                rows+=commandArgs.batchSize;
                rangeSlicesQuery.setKeys(String.format("%010d", startKey + rows), "");
                rangeSlicesQuery.setRange(null, null, false, commandArgs.columnCount);
                QueryResult<OrderedRows<String,String,String>> result = rangeSlicesQuery.execute();
                LatencyTracker readCount = commandRunner.latencies.get(result.getHostUsed());
                readCount.addMicro(result.getExecutionTimeMicro());
                rows++;

                log.info("executed batch of {}. {} of {} complete", new Object[]{commandArgs.batchSize, rows, commandArgs.getKeysPerThread()});
            }
        } catch (Exception e) {
            log.error("Problem: ", e);
        }
        commandRunner.doneSignal.countDown();
        log.debug("SliceCommand complete");
        return null;
    }