docs: private static int metaPurge(final TSDB tsdb) throws Exception {
      final long start_time = System.currentTimeMillis() / 1000;
      final long max_id = CliUtils.getMaxMetricID(tsdb);
      
      // now figure out how many IDs to divy up between the workers
      final int workers = Runtime.getRuntime().availableProcessors() * 2;
      final double quotient = (double)max_id / (double)workers;
      
      long index = 1;
      
      LOG.info("Max metric ID is [" + max_id + "]");
      LOG.info("Spooling up [" + workers + "] worker threads");
      final Thread[] threads = new Thread[workers];
      for (int i = 0; i < workers; i++) {
        threads[i] = new MetaPurge(tsdb, index, quotient, i);
        threads[i].setName("MetaSync # " + i);
        threads[i].start();
        index += quotient;
        if (index < max_id) {
          index++;
        }
      }
      
      // wait till we're all done
      for (int i = 0; i < workers; i++) {
        threads[i].join();
        LOG.info("[" + i + "] Finished");
      }
      
      // make sure buffered data is flushed to storage before exiting
      tsdb.flush().joinUninterruptibly();
      
      final long duration = (System.currentTimeMillis() / 1000) - start_time;
      LOG.info("Completed meta data synchronization in [" + 
          duration + "] seconds");
      return 0;
    }