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 boolean runParallel() { final AtomicBoolean success = new AtomicBoolean(true); ThreadSpawner spawner = new ThreadSpawner("runParallel", true); for (final TestCaseRunner runner : runners) { spawner.spawn(new Runnable() { @Override public void run() { try { if (!runner.run()) { success.set(false); } } catch (Exception e) { throw rethrow(e); } } }); } spawner.awaitCompletion(); return success.get(); }
@Override public Object call() throws Exception { try { LOGGER.info(format("Spawning %d worker threads for running %s", totalThreadCount, testContext.getTestId())); if (totalThreadCount <= 0) { return null; } runners = createRunners(false); onRunStarted(); ThreadSpawner spawner = spawnThreads(runners, false); spawner.awaitCompletion(); return null; } finally { onRunCompleted(); } } };
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(); }
@Override public Object call() throws Exception { try { LOGGER.info(format("Spawning %d worker threads for warmup %s", totalThreadCount, testContext.getTestId())); if (totalThreadCount <= 0) { return null; } runners = createRunners(true); onRunStarted(); ThreadSpawner spawner = spawnThreads(runners, true); spawner.awaitCompletion(); return null; } finally { onRunCompleted(); } } };
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())); }
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())); }
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 i = 0; i < threadCount; i++) { spawner.spawn(new Worker()); } spawner.awaitCompletion(); }
@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(); }
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)); }
@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(); }
@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(); }
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 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); }
private void startCoordinatorConnector() { CoordinatorOperationProcessor processor = new CoordinatorOperationProcessor( this, failureCollector, testPhaseListeners, performanceStatsCollector); connector = new CoordinatorConnector(processor, simulatorProperties.getCoordinatorPort()); connector.start(); ThreadSpawner spawner = new ThreadSpawner("startCoordinatorConnector", true); for (final AgentData agentData : componentRegistry.getAgents()) { final int agentPort = simulatorProperties.getAgentPort(); spawner.spawn(new Runnable() { @Override public void run() { connector.addAgent(agentData.getAddressIndex(), agentData.getPublicAddress(), agentPort); } }); } spawner.awaitCompletion(); LOGGER.info("Remote client starting..."); int workerPingIntervalMillis = (int) SECONDS.toMillis(simulatorProperties.getWorkerPingIntervalSeconds()); client = new RemoteClient(connector, componentRegistry, workerPingIntervalMillis); client.invokeOnAllAgents(new InitSessionOperation(parameters.getSessionId())); LOGGER.info("Remote client started successfully!"); }
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); }