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

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

        return null;
    }