docs: public void runFullTable() throws Exception {
      LOG.info("Starting full table scan");
      final long start_time = System.currentTimeMillis() / 1000;
      final int workers = options.threads() > 0 ? options.threads() :
        Runtime.getRuntime().availableProcessors() * 2;
  
      final List<Scanner> scanners = CliUtils.getDataTableScanners(tsdb, workers);
      LOG.info("Spooling up [" + scanners.size() + "] worker threads");
      final List<Thread> threads = new ArrayList<Thread>(scanners.size());
      int i = 0;
      for (final Scanner scanner : scanners) {
        final FsckWorker worker = new FsckWorker(scanner, i++, this.options);
        worker.setName("Fsck #" + i);
        worker.start();
        threads.add(worker);
      }
  
      final Thread reporter = new ProgressReporter();
      reporter.start();
      for (final Thread thread : threads) {
        thread.join();
        LOG.info("Thread [" + thread + "] Finished");
      }
      reporter.interrupt();
  
      logResults();
      final long duration = (System.currentTimeMillis() / 1000) - start_time;
      LOG.info("Completed fsck in [" + duration + "] seconds");
    }