# Deleted IGFS load tests as they are no longer used.

Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/59f008dc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/59f008dc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/59f008dc

Branch: refs/heads/ignite-383
Commit: 59f008dca7ec41de9b5997837f365b75207224a0
Parents: ffcf04c
Author: vozerov-gridgain <voze...@gridgain.com>
Authored: Tue Mar 10 11:52:57 2015 +0300
Committer: vozerov-gridgain <voze...@gridgain.com>
Committed: Tue Mar 10 11:52:57 2015 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/igfs/IgfsLoad.java   | 549 -------------------
 1 file changed, 549 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/59f008dc/modules/hadoop/src/test/java/org/apache/ignite/igfs/IgfsLoad.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/igfs/IgfsLoad.java 
b/modules/hadoop/src/test/java/org/apache/ignite/igfs/IgfsLoad.java
deleted file mode 100644
index 6a85bd0..0000000
--- a/modules/hadoop/src/test/java/org/apache/ignite/igfs/IgfsLoad.java
+++ /dev/null
@@ -1,549 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.igfs;
-
-import org.apache.hadoop.conf.*;
-import org.apache.hadoop.fs.*;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.permission.*;
-import org.apache.ignite.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-/**
- * Hadoop file system load application.
- * <p>
- * Command line arguments:
- * <ul>
- * <li>-u {url} file system URL</li>
- * <li>-hadoopCfg {cfg} Hadoop configuration</li>
- * <li>-f {num} files number</li>
- * <li>-r {num} reads number</li>
- * <li>-w {num} writes number</li>
- * <li>-d {num} deletes number</li>
- * <li>-delay {delay} delay between operations in milliseconds</li>
- * <li>-t {num} threads number</li>
- * <li>-minSize {min size} min file size in bytes</li>
- * <li>-maxSize {max size} max file size in bytes</li>
- * <li>-startNode {true|false} if 'true' then starts node before execution</li>
- * <li>-nodeCfg {cfg} configuration for started node</li>
- * <li>-primaryOnly {true|false} if 'true' then creates files only in 
directory named 'primary' </li>
- * </ul>
- * Note: IGFS logging is disabled by default, to enable logging it is 
necessary to set flag
- * 'fs.igfs.<name>.log.enabled' in Hadoop configuration file. By default log 
files are created in the
- * directory 'work/igfs/log', this path can be changed in Hadoop configuration 
file using property
- * 'fs.igfs.<name>.log.dir'.
- */
-public class IgfsLoad {
-    /** */
-    private static final String DFLT_URL = "igfs:///";
-
-    /** */
-    private static final int DFLT_MIN_FILE_SIZE = 100 * 1024;
-
-    /** */
-    private static final int DFLT_MAX_FILE_SIZE = 1024 * 1024;
-
-    /** */
-    private static final int DFLT_FILES_NUMBER = 1000;
-
-    /** */
-    private static final int DFLT_READS_NUMBER = 2000;
-
-    /** */
-    private static final int DFLT_WRITES_NUMBER = 2000;
-
-    /** */
-    private static final int DFLT_DELETES_NUMBER = 100;
-
-    /** */
-    private static final int DFLT_THREADS_NUMBER = 2;
-
-    /** */
-    private static final boolean DFLT_START_NODE = true;
-
-    /** */
-    private static final boolean DFLT_PRIMARY_ONLY = false;
-
-    /** */
-    private static final String DFLT_NODE_CFG = 
"config/hadoop/default-config.xml";
-
-    /** */
-    private static final long DFLT_DELAY = 5;
-
-    /** */
-    private static final String DFLT_HADOOP_CFG = 
"examples/config/filesystem/core-site.xml";
-
-    /** */
-    private static final int CREATE_BUF_SIZE = 100 * 1024;
-
-    /** */
-    private static final String DIR_PRIMARY_MODE = "primary";
-
-    /** */
-    private static final String DIR_PROXY_MODE = "proxy";
-
-    /** */
-    private static final String DIR_DUAL_SYNC_MODE = "dual_sync";
-
-    /** */
-    private static final String DIR_DUAL_ASYNC_MODE = "dual_async";
-
-    /**
-     * Main method.
-     *
-     * @param args Command line arguments.
-     * @throws Exception If error occurs.
-     */
-    public static void main(String[] args) throws Exception {
-        String url = DFLT_URL;
-
-        int filesNum = DFLT_FILES_NUMBER;
-
-        int minFileSize = DFLT_MIN_FILE_SIZE;
-
-        int maxFileSize = DFLT_MAX_FILE_SIZE;
-
-        int readsNum = DFLT_READS_NUMBER;
-
-        int writesNum = DFLT_WRITES_NUMBER;
-
-        int deletesNum = DFLT_DELETES_NUMBER;
-
-        int threadsNum = DFLT_THREADS_NUMBER;
-
-        long delay = DFLT_DELAY;
-
-        String nodeCfg = DFLT_NODE_CFG;
-
-        String hadoopCfg = DFLT_HADOOP_CFG;
-
-        boolean startNode = DFLT_START_NODE;
-
-        boolean primaryOnly = DFLT_PRIMARY_ONLY;
-
-        for (int i = 0; i < args.length; i++) {
-            String arg = args[i];
-
-            switch (arg) {
-                case "-u":
-                    url = args[++i];
-
-                    break;
-
-                case "-hadoopCfg":
-                    hadoopCfg= args[++i];
-
-                    break;
-
-                case "-f":
-                    filesNum = Integer.parseInt(args[++i]);
-
-                    break;
-
-                case "-r":
-                    readsNum = Integer.parseInt(args[++i]);
-
-                    break;
-
-                case "-w":
-                    writesNum = Integer.parseInt(args[++i]);
-
-                    break;
-
-                case "-minSize":
-                    minFileSize = Integer.parseInt(args[++i]);
-
-                    break;
-
-                case "-maxSize":
-                    maxFileSize = Integer.parseInt(args[++i]);
-
-                    break;
-
-                case "-d":
-                    deletesNum = Integer.parseInt(args[++i]);
-
-                    break;
-
-                case "-t":
-                    threadsNum = Integer.parseInt(args[++i]);
-
-                    break;
-
-                case "-delay":
-                    delay = Long.parseLong(args[++i]);
-
-                    break;
-
-                case "-startNode":
-                    startNode = Boolean.parseBoolean(args[++i]);
-
-                    break;
-
-                case "-nodeCfg":
-                    nodeCfg= args[++i];
-
-                    break;
-
-                case "-primaryOnly":
-                    primaryOnly = Boolean.parseBoolean(args[++i]);
-
-                    break;
-            }
-        }
-
-        X.println("File system URL: " + url);
-        X.println("Hadoop configuration: " + hadoopCfg);
-        X.println("Primary mode only: " + primaryOnly);
-        X.println("Files number: " + filesNum);
-        X.println("Reads number: " + readsNum);
-        X.println("Writes number: " + writesNum);
-        X.println("Deletes number: " + deletesNum);
-        X.println("Min file size: " + minFileSize);
-        X.println("Max file size: " + maxFileSize);
-        X.println("Threads number: " + threadsNum);
-        X.println("Delay: " + delay);
-
-        if (minFileSize > maxFileSize)
-            throw new IllegalArgumentException();
-
-        Ignite ignite = null;
-
-        if (startNode) {
-            X.println("Starting node using configuration: " + nodeCfg);
-
-            ignite = G.start(U.resolveIgniteUrl(nodeCfg));
-        }
-
-        try {
-            new IgfsLoad().runLoad(url, hadoopCfg, primaryOnly, threadsNum, 
filesNum, readsNum, writesNum,
-                deletesNum, minFileSize, maxFileSize, delay);
-        }
-        finally {
-            if (ignite != null)
-                G.stop(true);
-        }
-    }
-
-    /**
-     * Executes read/write/delete operations.
-     *
-     * @param url File system url.
-     * @param hadoopCfg Hadoop configuration.
-     * @param primaryOnly If {@code true} then creates files only on directory 
named 'primary'.
-     * @param threads Threads number.
-     * @param files Files number.
-     * @param reads Reads number.
-     * @param writes Writes number.
-     * @param deletes Deletes number.
-     * @param minSize Min file size.
-     * @param maxSize Max file size.
-     * @param delay Delay between operations.
-     * @throws Exception If some file system operation failed.
-     */
-    @SuppressWarnings("IfMayBeConditional")
-    public void runLoad(String url, String hadoopCfg, final boolean 
primaryOnly, int threads, int files,
-        final int reads, final int writes, final int deletes, final int 
minSize, final int maxSize, final long delay)
-        throws Exception {
-        Path fsPath = new Path(url);
-
-        Configuration cfg = new Configuration(true);
-
-        cfg.addResource(U.resolveIgniteUrl(hadoopCfg));
-
-        final FileSystem fs = FileSystem.get(fsPath.toUri(), cfg);
-
-        Path workDir = new Path(fsPath, "/fsload");
-
-        fs.delete(workDir, true);
-
-        fs.mkdirs(workDir, FsPermission.getDefault());
-
-        final Path[] dirs;
-
-        if (primaryOnly)
-            dirs = new Path[]{mkdir(fs, workDir, DIR_PRIMARY_MODE)};
-        else
-            dirs = new Path[]{mkdir(fs, workDir, DIR_PRIMARY_MODE), mkdir(fs, 
workDir, DIR_PROXY_MODE),
-                mkdir(fs, workDir, DIR_DUAL_SYNC_MODE), mkdir(fs, workDir, 
DIR_DUAL_ASYNC_MODE)};
-
-        try {
-            ExecutorService exec = Executors.newFixedThreadPool(threads);
-
-            Collection<Future<?>> futs = new ArrayList<>(threads);
-
-            for (int i = 0; i < threads; i++) {
-                final int filesPerThread;
-
-                if (i == 0 && files % threads != 0)
-                    filesPerThread = files / threads + files % threads;
-                else
-                    filesPerThread = files / threads;
-
-                futs.add(exec.submit(new Callable<Void>() {
-                    @Override public Void call() throws Exception {
-                        runLoad(fs, dirs, filesPerThread, reads, writes, 
deletes, minSize, maxSize, delay);
-
-                        return null;
-                    }
-                }));
-            }
-
-            exec.shutdown();
-
-            for (Future<?> fut : futs) {
-                try {
-                    fut.get();
-                }
-                catch (ExecutionException e) {
-                    X.error("Error during execution: " + e);
-
-                    e.getCause().printStackTrace();
-                }
-            }
-        }
-        finally {
-            try {
-                fs.delete(workDir, true);
-            }
-            catch (IOException ignored) {
-                // Ignore.
-            }
-        }
-    }
-
-    /**
-     * Executes read/write/delete operations.
-     *
-     * @param fs File system.
-     * @param dirs Directories where files should be created.
-     * @param filesNum Files number.
-     * @param reads Reads number.
-     * @param writes Writes number.
-     * @param deletes Deletes number.
-     * @param minSize Min file size.
-     * @param maxSize Max file size.
-     * @param delay Delay between operations.
-     * @throws Exception If some file system operation failed.
-     */
-    private void runLoad(FileSystem fs, Path[] dirs, int filesNum, int reads, 
int writes, int deletes,
-        int minSize, int maxSize, long delay) throws Exception {
-        Random random = random();
-
-        List<T2<Path, Integer>> files = new ArrayList<>(filesNum);
-
-        for (int i = 0; i < filesNum; i++) {
-            int size = maxSize == minSize ? minSize : minSize + 
random.nextInt(maxSize - minSize);
-
-            Path file = new Path(dirs[i % dirs.length], "file-" + 
UUID.randomUUID());
-
-            createFile(fs, file, size, CREATE_BUF_SIZE);
-
-            files.add(new T2<>(file, size));
-        }
-
-        List<Path> toDel = new ArrayList<>(deletes);
-
-        for (int i = 0; i < deletes; i++) {
-            int size = maxSize == minSize ? minSize : minSize + 
random.nextInt(maxSize - minSize);
-
-            Path file = new Path(dirs[i % dirs.length], "file-to-delete-" + 
UUID.randomUUID());
-
-            createFile(fs, file, size, CREATE_BUF_SIZE);
-
-            toDel.add(file);
-        }
-
-        while (reads > 0 || writes > 0 || deletes > 0) {
-            if (reads > 0) {
-                reads--;
-
-                T2<Path, Integer> file = files.get(reads % files.size());
-
-                readFull(fs, file.get1(), CREATE_BUF_SIZE);
-
-                int fileSize = file.get2();
-
-                readRandom(fs, file.get1(), fileSize, random.nextInt(fileSize) 
+ 1);
-            }
-
-            if (writes > 0) {
-                writes--;
-
-                T2<Path, Integer> file = files.get(writes % files.size());
-
-                overwriteFile(fs, file.get1(), file.get2(), CREATE_BUF_SIZE);
-
-                appendToFile(fs, file.get1(), random.nextInt(CREATE_BUF_SIZE) 
+ 1);
-            }
-
-            if (deletes > 0) {
-                deletes--;
-
-                deleteFile(fs, toDel.get(deletes));
-            }
-
-            U.sleep(delay);
-        }
-    }
-
-    /**
-     * Creates file.
-     *
-     * @param fs File system.
-     * @param file File path.
-     * @param fileSize File size.
-     * @param bufSize Write buffer size.
-     * @throws IOException If operation failed.
-     */
-    private static void createFile(FileSystem fs, Path file, int fileSize, int 
bufSize) throws IOException {
-        create(fs, file, fileSize, bufSize, false);
-    }
-
-    /**
-     * Overwrites file.
-     *
-     * @param fs File system.
-     * @param file File path.
-     * @param fileSize File size.
-     * @param bufSize Write buffer size.
-     * @throws IOException If operation failed.
-     */
-    private static void overwriteFile(FileSystem fs, Path file, int fileSize, 
int bufSize) throws IOException {
-        create(fs, file, fileSize, bufSize, true);
-    }
-
-    /**
-     * Appends to file.
-     *
-     * @param fs File system.
-     * @param file File path.
-     * @param appendSize Append size.
-     * @throws IOException If operation failed.
-     */
-    private static void appendToFile(FileSystem fs, Path file, int appendSize) 
throws IOException {
-        try (FSDataOutputStream out = fs.append(file)) {
-            out.write(new byte[appendSize]);
-        }
-    }
-
-    /**
-     * Reads whole file.
-     *
-     * @param fs File system.
-     * @param file File path.
-     * @param bufSize Read buffer size.
-     * @throws IOException If operation failed.
-     */
-    @SuppressWarnings("StatementWithEmptyBody")
-    private static void readFull(FileSystem fs, Path file, int bufSize) throws 
IOException {
-        try (FSDataInputStream in = fs.open(file)) {
-            byte[] readBuf = new byte[bufSize];
-
-            while (in.read(readBuf) > 0) {
-                // No-op.
-            }
-        }
-    }
-
-    /**
-     * Deletes file.
-     *
-     * @param fs File system.
-     * @param path File path.
-     * @throws IOException If operation failed.
-     */
-    private static void deleteFile(FileSystem fs, Path path) throws 
IOException {
-        fs.delete(path, false);
-    }
-
-    /**
-     * Reads from random position.
-     *
-     * @param fs File system.
-     * @param path File path.
-     * @param fileSize File size.
-     * @param readSize Read size.
-     * @throws IOException If operation failed.
-     */
-    private static void readRandom(FileSystem fs, Path path, int fileSize, int 
readSize) throws IOException {
-        byte[] readBuf = new byte[readSize];
-
-        try (FSDataInputStream in = fs.open(path)) {
-            in.seek(random().nextInt(fileSize));
-
-            in.read(readBuf);
-        }
-    }
-
-    /**
-     * Creates file.
-     *
-     * @param fs File system.
-     * @param file File path.
-     * @param fileSize File size.
-     * @param bufSize Buffer size.
-     * @param overwrite Overwrite flag.
-     * @throws IOException If operation failed.
-     */
-    private static void create(FileSystem fs, Path file, int fileSize, int 
bufSize, boolean overwrite)
-        throws IOException {
-        try (FSDataOutputStream out = fs.create(file, overwrite)) {
-            int size = 0;
-
-            byte[] buf = new byte[bufSize];
-
-            while (size < fileSize) {
-                int len = Math.min(fileSize - size, bufSize);
-
-                out.write(buf, 0, len);
-
-                size += len;
-            }
-        }
-    }
-
-    /**
-     * Creates directory in the given parent directory.
-     *
-     * @param fs File system.
-     * @param parentDir Parent directory.
-     * @param dirName Directory name.
-     * @return Path for created directory.
-     * @throws IOException If operation failed.
-     */
-    private static Path mkdir(FileSystem fs, Path parentDir, String dirName) 
throws IOException {
-        Path path = new Path(parentDir, dirName);
-
-        fs.mkdirs(path, FsPermission.getDefault());
-
-        return path;
-    }
-
-    /**
-     * @return Thread local random.
-     */
-    private static Random random() {
-        return ThreadLocalRandom.current();
-    }
-}

Reply via email to