public void initDB(String[] args) { final String servers = Args.valueOf(args, "-servers", "localhost"); String propFile = Args.valueOf(args, "-props", "swiftsocial-test.props"); Properties properties = Props.parseFile("swiftsocial", propFile); configBloatedCounters(properties); SafeLog.configure(properties); System.err.println("Populating db with users..."); int numUsers = Props.intValue(properties, "swiftsocial.numUsers", 1000); final int NumUsers = Args.valueOf(args, "-users", numUsers); Workload.generateUsers(NumUsers); int threads = Args.valueOf(args, "-threads", 6); final int PARTITION_SIZE = 1000; int partitions = numUsers / PARTITION_SIZE + (numUsers % PARTITION_SIZE > 0 ? 1 : 0); ExecutorService pool = Executors.newFixedThreadPool(threads); final AtomicInteger counter = new AtomicInteger(0); for (int i = 0; i < partitions; i++) { int lo = i * PARTITION_SIZE, hi = (i + 1) * PARTITION_SIZE; final List<String> partition = Workload.getUserData().subList(lo, Math.min(hi, numUsers)); pool.execute( new Runnable() { public void run() { SwiftOptions options = new SwiftOptions(servers, DCConstants.SURROGATE_PORT); options.setCacheUpdateProtocol(CacheUpdateProtocol.NO_CACHE_OR_UNCOORDINATED); SwiftSocialBenchmark.super.initUsers(options, partition, counter, NumUsers); } }); } Threading.awaitTermination(pool, Integer.MAX_VALUE); Threading.sleep(5000); System.err.println("\nFinished populating db with users."); }