/** * Spawns a new thread for the given {@link Runnable}. * * @param runnable the {@link Runnable} to execute * @return the created thread */ public Thread spawn(Runnable runnable) { return spawn(testId + "-Thread", runnable); }
/** * Spawns a new thread for the given {@link Runnable}. * * @param runnable the {@link Runnable} to execute * @return the created thread */ public Thread spawn(Runnable runnable) { return spawn(identifier + "-Thread", runnable); }
public void shutdown() { ThreadSpawner spawner = new ThreadSpawner("workerJvmManagerShutdown", true); for (final WorkerProcess workerProcess : new ArrayList<WorkerProcess>(workerProcesses.values())) { spawner.spawn(new Runnable() { @Override public void run() { shutdown(workerProcess); } }); } spawner.awaitCompletion(); }
private ThreadSpawner spawnThreads(TimeStepRunner[] runners, boolean warmup) { ThreadSpawner spawner = new ThreadSpawner(testContext.getTestId()); for (TimeStepRunner runner : runners) { String executionGroup = runner.executionGroup; String name = testContext.getTestId(); if (!executionGroup.equals("")) { name += "-" + executionGroup; } name += warmup ? "-warmup" : "-run"; name += "Thread"; spawner.spawn(name, runner); } return spawner; }
@Run public void run() { ThreadSpawner spawner = new ThreadSpawner(name); for (int i = 0; i < mapIntegrityThreadCount; i++) { integrityThreads[i] = new MapIntegrityThread(); spawner.spawn(integrityThreads[i]); } for (int i = 0; i < stressThreadCount; i++) { spawner.spawn(new StressThread()); } spawner.awaitCompletion(); }
private void startWorkers(boolean isMember, Map<SimulatorAddress, List<WorkerProcessSettings>> deploymentPlan) { ThreadSpawner spawner = new ThreadSpawner("createWorkers", true); int workerIndex = 0; String workerType = isMember ? "member" : "client"; for (Map.Entry<SimulatorAddress, List<WorkerProcessSettings>> entry : deploymentPlan.entrySet()) { SimulatorAddress agentAddress = entry.getKey(); AgentData agent = componentRegistry.getAgent(agentAddress); List<WorkerProcessSettings> workersSettings = entry.getValue(); spawner.spawn(new StartWorkersOnAgentTask(workersSettings, startupDelayMs * workerIndex, agent, workerType)); if (isMember) { workerIndex++; } } spawner.awaitCompletion(); }
private void downloadRemote() { long started = System.nanoTime(); LOGGER.info(format("Download artifacts of %s machines...", componentRegistry.agentCount())); ThreadSpawner spawner = new ThreadSpawner("download", true); for (AgentData agentData : componentRegistry.getAgents()) { spawner.spawn(new DownloadWorkerLogs(agentData.getPublicAddress())); } spawner.spawn(new DownloadAgentLogs()); spawner.awaitCompletion(); long elapsed = getElapsedSeconds(started); LOGGER.info(format("Finished downloading artifacts of %s machines (%s seconds)", componentRegistry.agentCount(), elapsed)); }
public static void startAgents(Logger logger, Bash bash, SimulatorProperties properties, ComponentRegistry registry) { logger.info(format("Starting %d Agents...", registry.agentCount())); ThreadSpawner spawner = new ThreadSpawner("startAgents", true); int agentPort = properties.getAgentPort(); for (AgentData agentData : registry.getAgents()) { spawner.spawn(new StartAgentTask(logger, bash, properties, agentData, agentPort)); } spawner.awaitCompletion(); logger.info(format("Successfully started %d Agents", registry.agentCount())); }
public static void stopAgents(Logger logger, Bash bash, SimulatorProperties properties, ComponentRegistry registry) { String startHarakiriMonitorCommand = getStartHarakiriMonitorCommandOrNull(properties); logger.info(format("Stopping %d Agents...", registry.agentCount())); ThreadSpawner spawner = new ThreadSpawner("stopAgents", true); for (AgentData agentData : registry.getAgents()) { spawner.spawn(new StopAgentTask(logger, bash, properties, agentData, startHarakiriMonitorCommand)); } spawner.awaitCompletion(); logger.info(format("Successfully stopped %d Agents", registry.agentCount())); }
private ThreadSpawner spawnThreads(IWorker[] workers) throws Exception { ThreadSpawner spawner = new ThreadSpawner(testContext.getTestId()); for (IWorker worker : workers) { spawner.spawn(new WorkerTask(worker)); } return spawner; }
private void cleanRemote() { long started = System.nanoTime(); LOGGER.info(format("Cleaning Worker homes of %s machines...", componentRegistry.agentCount())); final String cleanCommand = format("rm -fr hazelcast-simulator-%s/workers/*", getSimulatorVersion()); ThreadSpawner spawner = new ThreadSpawner("clean", true); for (final AgentData agentData : componentRegistry.getAgents()) { spawner.spawn(new Runnable() { @Override public void run() { LOGGER.info(format("Cleaning %s", agentData.getPublicAddress())); bash.ssh(agentData.getPublicAddress(), cleanCommand); } }); } spawner.awaitCompletion(); long elapsed = getElapsedSeconds(started); LOGGER.info(format("Finished cleaning Worker homes of %s machines (%s seconds)", componentRegistry.agentCount(), elapsed)); } }
@Run public void run() { ThreadSpawner spawner = new ThreadSpawner(name); for (int queueIndex = 0; queueIndex < queueLength; queueIndex++) { for (int i = 0; i < threadsPerQueue; i++) { spawner.spawn(new Worker(queueIndex)); } } spawner.awaitCompletion(); }
@Run public void run() { ThreadSpawner spawner = new ThreadSpawner(name); for (int i = 0; i < threadCount; i++) { spawner.spawn(new Worker()); } spawner.awaitCompletion(); }
@Run public void run() { ThreadSpawner spawner = new ThreadSpawner(name); for (int i = 0; i < threadCount; i++) { spawner.spawn(new Worker()); } spawner.awaitCompletion(); }
@Run public void run() { ThreadSpawner spawner = new ThreadSpawner(name); for (int i = 0; i < threadCount; i++) { spawner.spawn(new Worker()); } spawner.awaitCompletion(); }
@Prepare public void prepare() { if (isClient(targetInstance)) { return; } // fill the cluster as fast as possible with data long startKey = 0; boolean isLogger = true; ThreadSpawner threadSpawner = new ThreadSpawner(name); for (int i = 0; i < threadCount; i++) { threadSpawner.spawn(new FillMapWorker(isLogger, startKey)); isLogger = false; startKey += maxEntriesPerThread; } threadSpawner.awaitCompletion(); StringBuilder sb = new StringBuilder(name).append(": After prepare phase the map size is ").append(map.size()); addMemoryStatistics(sb); logger.info(sb.toString()); }
public static void checkInstallation(Bash bash, SimulatorProperties properties, ComponentRegistry registry) { if (runMode(properties) != RunMode.Remote) { return; } ThreadSpawner spawner = new ThreadSpawner("checkInstallation", true); for (AgentData agentData : registry.getAgents()) { spawner.spawn(new CheckAgentInstallationTask(agentData, bash)); } spawner.awaitCompletion(); }
void installSimulator() { ensureIsRemoteSetup(properties, "install"); long started = System.nanoTime(); echoImportant("Installing Simulator on %d machines...", componentRegistry.agentCount()); ThreadSpawner spawner = new ThreadSpawner("installSimulator", true); for (final AgentData agentData : componentRegistry.getAgents()) { spawner.spawn(new Runnable() { @Override public void run() { echo("Installing Simulator on %s", agentData.getPublicAddress()); uploadJARs(agentData.getPublicAddress()); } }); } spawner.awaitCompletion(); long elapsed = getElapsedSeconds(started); echoImportant("Finished installing Simulator on %d machines (%s seconds)", componentRegistry.agentCount(), elapsed); }
void killJavaProcesses() { ensureIsRemoteSetup(properties, "kill"); long started = System.nanoTime(); echoImportant("Killing %s Java processes...", componentRegistry.agentCount()); ThreadSpawner spawner = new ThreadSpawner("killJavaProcesses", true); for (final AgentData agentData : componentRegistry.getAgents()) { spawner.spawn(new Runnable() { @Override public void run() { echo("Killing Java processes on %s", agentData.getPublicAddress()); bash.killAllJavaProcesses(agentData.getPublicAddress()); } }); } spawner.awaitCompletion(); long elapsed = getElapsedSeconds(started); echoImportant("Successfully killed %s Java processes (%s seconds)", componentRegistry.agentCount(), elapsed); }
void installJava() { ensureIsRemoteSetup(properties, "installJava"); long started = System.nanoTime(); echoImportant("Installing JAVA on %d machines...", componentRegistry.agentCount()); ThreadSpawner spawner = new ThreadSpawner("installJava", true); for (final AgentData agentData : componentRegistry.getAgents()) { spawner.spawn(new Runnable() { @Override public void run() { echo("Installing JAVA on %s", agentData.getPublicAddress()); uploadJava(agentData.getPublicAddress()); } }); } spawner.awaitCompletion(); long elapsed = getElapsedSeconds(started); echoImportant("Finished installing JAVA on %d machines (%s seconds)", componentRegistry.agentCount(), elapsed); }