All Downloads are FREE. Search and download functionalities are using the official Maven repository.

alluxio.stress.cli.AbstractStressBench Maven / Gradle / Ivy

There is a newer version: 313
Show newest version
/*
 * The Alluxio Open Foundation licenses this work under the Apache License, version 2.0
 * (the "License"). You may not use this work except in compliance with the License, which is
 * available at www.apache.org/licenses/LICENSE-2.0
 *
 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 * either express or implied, as more fully set forth in the License.
 *
 * See the NOTICE file distributed with this work for information regarding copyright ownership.
 */

package alluxio.stress.cli;

import alluxio.stress.TaskResult;
import alluxio.stress.common.FileSystemParameters;

import com.beust.jcommander.ParametersDelegate;
import com.google.common.collect.ImmutableList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.List;

/**
 * An abstraction for stress tests which generates a specific workload
 * on a certain Alluxio component (master, worker, ClientIO).
 *
 * @param  the type of task result
 * @param 

the type of task parameter */ public abstract class AbstractStressBench extends Benchmark { private static final Logger LOG = LoggerFactory.getLogger(AbstractStressBench.class); @ParametersDelegate protected P mParameters; /** * Validates the parameters. */ public abstract void validateParams() throws Exception; @Override public String run(String[] args) throws Exception { parseParameters(args); validateParams(); // if the benchmark execute multiple tasks if (mParameters.mWriteType.equals("ALL")) { List writeTypes = ImmutableList.of("MUST_CACHE", "CACHE_THROUGH", "ASYNC_THROUGH", "THROUGH"); System.out.format("Now executing %s with all possible write " + "types %s %n", getClass().toString(), writeTypes); for (int i = 0; i < args.length; i++) { if (args[i].equals("--write-type")) { for (String type : writeTypes) { // change write type argument args[i + 1] = type; mParameters.mWriteType = type; System.out.println("-----------------------------------------------------"); System.out.format("Now executing write type %s... %n", type); try { String result = runSingleTask(args); System.out.println(result); } catch (Exception e) { System.out.format("Exception occurred when executing parameter" + " --write-type %s %n", type); System.out.println(e.getMessage()); } } System.out.println("-----------------------------------------------------"); return "All tasks finished. You can find the test results in the outputs above."; } } } // if this is a single task, just execute the task return runSingleTask(args); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy