You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by im...@apache.org on 2017/11/30 04:55:58 UTC

[13/14] asterixdb git commit: [NO ISSUE] Delete asterix-experiments

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/action/derived/TimedAction.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/action/derived/TimedAction.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/action/derived/TimedAction.java
deleted file mode 100644
index f0e7ad7..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/action/derived/TimedAction.java
+++ /dev/null
@@ -1,61 +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.asterix.experiment.action.derived;
-
-import java.io.OutputStream;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.apache.asterix.experiment.action.base.AbstractAction;
-import org.apache.asterix.experiment.action.base.IAction;
-
-public class TimedAction extends AbstractAction {
-
-    private final Logger LOGGER = Logger.getLogger(TimedAction.class.getName());
-
-    private final IAction action;
-    private final OutputStream os;
-
-    public TimedAction(IAction action) {
-        this.action = action;
-        os = null;
-    }
-
-    public TimedAction(IAction action, OutputStream os) {
-        this.action = action;
-        this.os = os;
-    }
-
-    @Override
-    protected void doPerform() throws Exception {
-        long start = System.currentTimeMillis();
-        action.perform();
-        long end = System.currentTimeMillis();
-        if (LOGGER.isLoggable(Level.SEVERE)) {
-            if (os == null) {
-                System.out.println("Elapsed time = " + (end - start) + " for action " + action);
-                System.out.flush();
-            } else {
-                os.write(("Elapsed time = " + (end - start) + " for action " + action).getBytes());
-                os.flush();
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment1Builder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment1Builder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment1Builder.java
deleted file mode 100644
index 4461fd7..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment1Builder.java
+++ /dev/null
@@ -1,40 +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.asterix.experiment.builder;
-
-import org.apache.asterix.experiment.action.base.SequentialActionList;
-import org.apache.asterix.experiment.action.derived.RunAQLFileAction;
-import org.apache.asterix.experiment.client.LSMExperimentConstants;
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-
-public abstract class AbstractExperiment1Builder extends AbstractLSMBaseExperimentBuilder {
-
-    public AbstractExperiment1Builder(String name, LSMExperimentSetRunnerConfig config, String clusterConfigFileName,
-            String ingestFileName, String dgenFileName) {
-        super(name, config, clusterConfigFileName, ingestFileName, dgenFileName, "count.aql");
-    }
-
-    @Override
-    protected void doBuildDDL(SequentialActionList seq) {
-        seq.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                LSMExperimentConstants.AQL_DIR).resolve("1.aql")));
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2ABuilder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2ABuilder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2ABuilder.java
deleted file mode 100644
index 4dce1af..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2ABuilder.java
+++ /dev/null
@@ -1,39 +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.asterix.experiment.builder;
-
-import org.apache.asterix.experiment.action.base.SequentialActionList;
-import org.apache.asterix.experiment.action.derived.RunAQLFileAction;
-import org.apache.asterix.experiment.client.LSMExperimentConstants;
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-
-public abstract class AbstractExperiment2ABuilder extends AbstractLSMBaseExperimentBuilder {
-
-    public AbstractExperiment2ABuilder(String name, LSMExperimentSetRunnerConfig config, String clusterConfigFileName,
-            String ingestFileName, String dgenFileName) {
-        super(name, config, clusterConfigFileName, ingestFileName, dgenFileName, "count.aql");
-    }
-
-    @Override
-    protected void doBuildDDL(SequentialActionList seq) {
-        seq.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                LSMExperimentConstants.AQL_DIR).resolve("2_a.aql")));
-    }
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2BBuilder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2BBuilder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2BBuilder.java
deleted file mode 100644
index 2aeb6f8..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2BBuilder.java
+++ /dev/null
@@ -1,39 +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.asterix.experiment.builder;
-
-import org.apache.asterix.experiment.action.base.SequentialActionList;
-import org.apache.asterix.experiment.action.derived.RunAQLFileAction;
-import org.apache.asterix.experiment.client.LSMExperimentConstants;
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-
-public abstract class AbstractExperiment2BBuilder extends AbstractLSMBaseExperimentBuilder {
-
-    public AbstractExperiment2BBuilder(String name, LSMExperimentSetRunnerConfig config, String clusterConfigFileName,
-            String ingestFileName, String dgenFileName) {
-        super(name, config, clusterConfigFileName, ingestFileName, dgenFileName, "count.aql");
-    }
-
-    @Override
-    protected void doBuildDDL(SequentialActionList seq) {
-        seq.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                LSMExperimentConstants.AQL_DIR).resolve("2_b.aql")));
-    }
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2CBuilder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2CBuilder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2CBuilder.java
deleted file mode 100644
index f54c78a..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2CBuilder.java
+++ /dev/null
@@ -1,45 +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.asterix.experiment.builder;
-
-import org.apache.asterix.experiment.action.base.SequentialActionList;
-import org.apache.asterix.experiment.action.derived.RunAQLFileAction;
-import org.apache.asterix.experiment.client.LSMExperimentConstants;
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-
-public abstract class AbstractExperiment2CBuilder extends AbstractLSMBaseExperimentBuilder {
-
-    public AbstractExperiment2CBuilder(String name, LSMExperimentSetRunnerConfig config, String clusterConfigFileName,
-            String ingestFileName, String dgenFileName) {
-        super(name, config, clusterConfigFileName, ingestFileName, dgenFileName, "count.aql");
-    }
-
-    @Override
-    protected void doBuildDDL(SequentialActionList seq) {
-        seq.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                LSMExperimentConstants.AQL_DIR).resolve("2_c.aql")));
-    }
-
-    @Override
-    protected void doPost(SequentialActionList seq) {
-        seq.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                LSMExperimentConstants.AQL_DIR).resolve("avg_gram_tokens.aql")));
-    }
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2DBuilder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2DBuilder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2DBuilder.java
deleted file mode 100644
index f54b523..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment2DBuilder.java
+++ /dev/null
@@ -1,45 +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.asterix.experiment.builder;
-
-import org.apache.asterix.experiment.action.base.SequentialActionList;
-import org.apache.asterix.experiment.action.derived.RunAQLFileAction;
-import org.apache.asterix.experiment.client.LSMExperimentConstants;
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-
-public abstract class AbstractExperiment2DBuilder extends AbstractLSMBaseExperimentBuilder {
-
-    public AbstractExperiment2DBuilder(String name, LSMExperimentSetRunnerConfig config, String clusterConfigFileName,
-            String ingestFileName, String dgenFileName) {
-        super(name, config, clusterConfigFileName, ingestFileName, dgenFileName, "count.aql");
-    }
-
-    @Override
-    protected void doBuildDDL(SequentialActionList seq) {
-        seq.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                LSMExperimentConstants.AQL_DIR).resolve("2_d.aql")));
-    }
-
-    @Override
-    protected void doPost(SequentialActionList seq) {
-        seq.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                LSMExperimentConstants.AQL_DIR).resolve("avg_keyword_tokens.aql")));
-    }
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment3Builder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment3Builder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment3Builder.java
deleted file mode 100644
index f5fb4a4..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment3Builder.java
+++ /dev/null
@@ -1,39 +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.asterix.experiment.builder;
-
-import org.apache.asterix.experiment.action.base.SequentialActionList;
-import org.apache.asterix.experiment.action.derived.RunAQLFileAction;
-import org.apache.asterix.experiment.client.LSMExperimentConstants;
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-
-public abstract class AbstractExperiment3Builder extends AbstractLSMBaseExperimentBuilder {
-
-    public AbstractExperiment3Builder(String name, LSMExperimentSetRunnerConfig config, String clusterConfigFileName,
-            String ingestFileName, String dgenFileName) {
-        super(name, config, clusterConfigFileName, ingestFileName, dgenFileName, "count.aql");
-    }
-
-    @Override
-    protected void doBuildDDL(SequentialActionList seq) {
-        seq.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                LSMExperimentConstants.AQL_DIR).resolve("3.aql")));
-    }
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment4Builder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment4Builder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment4Builder.java
deleted file mode 100644
index e18975c..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment4Builder.java
+++ /dev/null
@@ -1,29 +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.asterix.experiment.builder;
-
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-
-public abstract class AbstractExperiment4Builder extends AbstractLSMBaseExperimentBuilder {
-
-    public AbstractExperiment4Builder(String name, LSMExperimentSetRunnerConfig config) {
-        super(name, config, "8node.xml", "base_8_ingest.aql", "8.dgen", "count.aql");
-    }
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment6Builder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment6Builder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment6Builder.java
deleted file mode 100644
index a34e089..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment6Builder.java
+++ /dev/null
@@ -1,29 +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.asterix.experiment.builder;
-
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-
-public abstract class AbstractExperiment6Builder extends AbstractLSMBaseExperimentBuilder {
-
-    public AbstractExperiment6Builder(String name, LSMExperimentSetRunnerConfig config) {
-        super(name, config, "8node.xml", "base_8_ingest.aql", "8.dgen", "count.aql");
-    }
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment7Builder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment7Builder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment7Builder.java
deleted file mode 100644
index 4f35ff0..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment7Builder.java
+++ /dev/null
@@ -1,183 +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.asterix.experiment.builder;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-
-import org.apache.asterix.experiment.action.base.AbstractAction;
-import org.apache.asterix.experiment.action.base.IAction;
-import org.apache.asterix.experiment.action.base.ParallelActionSet;
-import org.apache.asterix.experiment.action.base.SequentialActionList;
-import org.apache.asterix.experiment.action.derived.AbstractRemoteExecutableAction;
-import org.apache.asterix.experiment.action.derived.RunAQLFileAction;
-import org.apache.asterix.experiment.action.derived.RunAQLStringAction;
-import org.apache.asterix.experiment.action.derived.RunRESTIOWaitAction;
-import org.apache.asterix.experiment.action.derived.SleepAction;
-import org.apache.asterix.experiment.action.derived.TimedAction;
-import org.apache.asterix.experiment.client.LSMExperimentConstants;
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-import org.apache.asterix.experiment.client.OrchestratorServer7;
-import org.apache.asterix.experiment.client.OrchestratorServer7.IProtocolActionBuilder;
-import org.apache.commons.lang3.StringUtils;
-
-public abstract class AbstractExperiment7Builder extends AbstractLSMBaseExperimentBuilder {
-
-    private static final long DOMAIN_SIZE = (1L << 32);
-
-    public static final long QUERY_BEGIN_ROUND = 6;
-
-    private static int N_PARTITIONS = 16;
-
-    private final int nIntervals;
-
-    private final String orchHost;
-
-    private final int orchPort;
-
-    protected final long dataInterval;
-
-    protected final int nQueryRuns;
-
-    protected final Random randGen;
-
-    public AbstractExperiment7Builder(String name, LSMExperimentSetRunnerConfig config, String clusterConfigFileName,
-            String ingestFileName, String dgenFileName) {
-        super(name, config, clusterConfigFileName, ingestFileName, dgenFileName, null);
-        nIntervals = config.getNIntervals();
-        orchHost = config.getOrchestratorHost();
-        orchPort = config.getOrchestratorPort();
-        dataInterval = config.getDataInterval();
-        this.nQueryRuns = config.getNQueryRuns();
-        this.randGen = new Random();
-    }
-
-    @Override
-    protected void doBuildDataGen(SequentialActionList seq, Map<String, List<String>> dgenPairs) throws Exception {
-        int nDgens = 0;
-        for (List<String> v : dgenPairs.values()) {
-            nDgens += v.size();
-        }
-        final OrchestratorServer7 oServer = new OrchestratorServer7(orchPort, nDgens, nIntervals,
-                new ProtocolActionBuilder(), this.lsAction);
-
-        seq.add(new AbstractAction() {
-
-            @Override
-            protected void doPerform() throws Exception {
-                oServer.start();
-            }
-        });
-
-        ParallelActionSet dgenActions = new ParallelActionSet();
-        int partition = 0;
-
-        // run dgen
-        for (String dgenHost : dgenPairs.keySet()) {
-            final List<String> rcvrs = dgenPairs.get(dgenHost);
-            final int p = partition;
-            dgenActions.add(new AbstractRemoteExecutableAction(dgenHost, username, sshKeyLocation) {
-
-                @Override
-                protected String getCommand() {
-                    String ipPortPairs = StringUtils.join(rcvrs.iterator(), " ");
-                    String binary = "JAVA_HOME=" + javaHomePath + " "
-                            + localExperimentRoot.resolve("bin").resolve("datagenrunner").toString();
-                    return StringUtils.join(new String[] { binary, "-si", "" + locationSampleInterval, "-of",
-                            openStreetMapFilePath, "-p", "" + p, "-di", "" + dataInterval, "-ni", "" + nIntervals,
-                            "-oh", orchHost, "-op", "" + orchPort, ipPortPairs }, " ");
-                }
-            });
-            partition += rcvrs.size();
-        }
-        seq.add(dgenActions);
-
-        // wait until all dgen / queries are done
-        seq.add(new AbstractAction() {
-
-            @Override
-            protected void doPerform() throws Exception {
-                oServer.awaitFinished();
-            }
-        });
-    }
-
-    public class ProtocolActionBuilder implements IProtocolActionBuilder {
-
-        private final String rangeQueryTemplate;
-
-        public ProtocolActionBuilder() throws IOException {
-            this.rangeQueryTemplate = getRangeQueryTemplate();
-        }
-
-        private String getRangeQueryTemplate() throws IOException {
-            Path aqlTemplateFilePath = localExperimentRoot.resolve(LSMExperimentConstants.AQL_DIR).resolve("8_q2.aql");
-            return StandardCharsets.UTF_8.decode(ByteBuffer.wrap(Files.readAllBytes(aqlTemplateFilePath))).toString();
-        }
-
-        @Override
-        public IAction buildQueryAction(long cardinality, boolean finalRound) throws IOException {
-            SequentialActionList protoAction = new SequentialActionList();
-            IAction rangeQueryAction = new TimedAction(
-                    new RunAQLStringAction(httpClient, restHost, restPort, getRangeAQL(cardinality, finalRound)));
-            protoAction.add(rangeQueryAction);
-            return protoAction;
-        }
-
-        private String getRangeAQL(long cardinaliry, boolean finalRound) throws IOException {
-            long round = QUERY_BEGIN_ROUND;
-            if (finalRound) {
-                ++round;
-            }
-            long numKeys = ((round * dataInterval) / 1000) * N_PARTITIONS;
-            long rangeSize = (long) ((cardinaliry / (double) numKeys) * DOMAIN_SIZE);
-            int lowKey = randGen.nextInt();
-            long maxLowKey = Integer.MAX_VALUE - rangeSize;
-            if (lowKey > maxLowKey) {
-                lowKey = (int) maxLowKey;
-            }
-            int highKey = (int) (lowKey + rangeSize);
-            return rangeQueryTemplate.replaceAll("\\$LKEY\\$", Long.toString(lowKey)).replaceAll("\\$HKEY\\$",
-                    Long.toString(highKey));
-        }
-
-        @Override
-        public IAction buildIOWaitAction() throws IOException {
-            SequentialActionList ioAction = new SequentialActionList();
-            ioAction.add(new SleepAction(10000));
-            ioAction.add(new RunRESTIOWaitAction(httpClient, restHost, restPort));
-            ioAction.add(new SleepAction(10000));
-            return ioAction;
-        }
-
-        @Override
-        public IAction buildCompactAction() throws IOException {
-            return new RunAQLFileAction(httpClient, restHost, restPort,
-                    localExperimentRoot.resolve(LSMExperimentConstants.AQL_DIR).resolve("8_compact.aql"));
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment8Builder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment8Builder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment8Builder.java
deleted file mode 100644
index 8d4c5ed..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment8Builder.java
+++ /dev/null
@@ -1,181 +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.asterix.experiment.builder;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-
-import org.apache.asterix.experiment.action.base.AbstractAction;
-import org.apache.asterix.experiment.action.base.ParallelActionSet;
-import org.apache.asterix.experiment.action.base.SequentialActionList;
-import org.apache.asterix.experiment.action.derived.AbstractRemoteExecutableAction;
-import org.apache.asterix.experiment.action.derived.RunAQLStringAction;
-import org.apache.asterix.experiment.action.derived.RunRESTIOWaitAction;
-import org.apache.asterix.experiment.action.derived.SleepAction;
-import org.apache.asterix.experiment.action.derived.TimedAction;
-import org.apache.asterix.experiment.client.LSMExperimentConstants;
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-import org.apache.asterix.experiment.client.OrchestratorServer;
-import org.apache.commons.lang3.StringUtils;
-
-public abstract class AbstractExperiment8Builder extends AbstractLSMBaseExperimentBuilder {
-
-    private static final long DOMAIN_SIZE = (1L << 32);
-
-    private static final long EXPECTED_RANGE_CARDINALITY = 50000;
-
-    private static int N_PARTITIONS = 16;
-
-    private final int nIntervals;
-
-    private final String orchHost;
-
-    private final int orchPort;
-
-    protected final long dataInterval;
-
-    protected final int nQueryRuns;
-
-    protected final Random randGen;
-
-    private final String pointQueryTemplate;
-    private final String rangeQueryTemplate;
-
-    public AbstractExperiment8Builder(String name, LSMExperimentSetRunnerConfig config, String clusterConfigFileName,
-            String ingestFileName, String dgenFileName) throws IOException {
-        super(name, config, clusterConfigFileName, ingestFileName, dgenFileName, null);
-        nIntervals = config.getNIntervals();
-        orchHost = config.getOrchestratorHost();
-        orchPort = config.getOrchestratorPort();
-        dataInterval = config.getDataInterval();
-        this.nQueryRuns = config.getNQueryRuns();
-        this.randGen = new Random();
-        this.pointQueryTemplate = getPointQueryTemplate();
-        this.rangeQueryTemplate = getRangeQueryTemplate();
-    }
-
-    protected void doBuildProtocolAction(SequentialActionList seq, int round) throws Exception {
-        for (int i = 0; i < nQueryRuns; ++i) {
-            //            String aql = getPointLookUpAQL(round);
-            //            seq.add(new TimedAction(new RunAQLStringAction(httpClient, restHost, restPort, aql)));
-            String aql = getRangeAQL(round);
-            seq.add(new TimedAction(new RunAQLStringAction(httpClient, restHost, restPort, aql)));
-        }
-    }
-
-    @Override
-    protected void doBuildDataGen(SequentialActionList seq, Map<String, List<String>> dgenPairs) throws Exception {
-        //start datagen
-        SequentialActionList[] protocolActions = new SequentialActionList[nIntervals];
-        for (int i = 0; i < nIntervals; i++) {
-            protocolActions[i] = new SequentialActionList();
-            protocolActions[i].add(new SleepAction(10000));
-            protocolActions[i].add(new RunRESTIOWaitAction(httpClient, restHost, restPort));
-            protocolActions[i].add(new SleepAction(10000));
-            doBuildProtocolAction(protocolActions[i], i);
-        }
-
-        int nDgens = 0;
-        for (List<String> v : dgenPairs.values()) {
-            nDgens += v.size();
-        }
-        final OrchestratorServer oServer = new OrchestratorServer(orchPort, nDgens, nIntervals, protocolActions);
-
-        seq.add(new AbstractAction() {
-
-            @Override
-            protected void doPerform() throws Exception {
-                oServer.start();
-            }
-        });
-
-        ParallelActionSet dgenActions = new ParallelActionSet();
-        int partition = 0;
-
-        // run dgen
-        for (String dgenHost : dgenPairs.keySet()) {
-            final List<String> rcvrs = dgenPairs.get(dgenHost);
-            final int p = partition;
-            dgenActions.add(new AbstractRemoteExecutableAction(dgenHost, username, sshKeyLocation) {
-
-                @Override
-                protected String getCommand() {
-                    String ipPortPairs = StringUtils.join(rcvrs.iterator(), " ");
-                    String binary = "JAVA_HOME=" + javaHomePath + " "
-                            + localExperimentRoot.resolve("bin").resolve("datagenrunner").toString();
-                    return StringUtils.join(new String[] { binary, "-si", "" + locationSampleInterval, "-of",
-                            openStreetMapFilePath, "-p", "" + p, "-di", "" + dataInterval, "-ni", "" + nIntervals,
-                            "-oh", orchHost, "-op", "" + orchPort, ipPortPairs }, " ");
-                }
-            });
-            partition += rcvrs.size();
-        }
-        seq.add(dgenActions);
-
-        // wait until all dgen / queries are done
-        seq.add(new AbstractAction() {
-
-            @Override
-            protected void doPerform() throws Exception {
-                oServer.awaitFinished();
-            }
-        });
-    }
-
-    private String getRangeQueryTemplate() throws IOException {
-        Path aqlTemplateFilePath = localExperimentRoot.resolve(LSMExperimentConstants.AQL_DIR).resolve("8_q2.aql");
-        return StandardCharsets.UTF_8.decode(ByteBuffer.wrap(Files.readAllBytes(aqlTemplateFilePath))).toString();
-    }
-
-    private String getPointQueryTemplate() throws IOException {
-        Path aqlTemplateFilePath = localExperimentRoot.resolve(LSMExperimentConstants.AQL_DIR).resolve("8_q1.aql");
-        return StandardCharsets.UTF_8.decode(ByteBuffer.wrap(Files.readAllBytes(aqlTemplateFilePath))).toString();
-    }
-
-    protected String getPointLookUpAQL(int round) {
-        ByteBuffer bb = ByteBuffer.allocate(8);
-        bb.put((byte) 0);
-        bb.put((byte) randGen.nextInt(N_PARTITIONS));
-        bb.putShort((short) 0);
-        bb.putInt(randGen.nextInt((int) (((1 + round) * dataInterval) / 1000)));
-        bb.flip();
-        long key = bb.getLong();
-        return pointQueryTemplate.replaceAll("\\$KEY\\$", Long.toString(key));
-    }
-
-    protected String getRangeAQL(int round) {
-        long numKeys = (((1 + round) * dataInterval) / 1000) * N_PARTITIONS;
-        long rangeSize = (long) ((EXPECTED_RANGE_CARDINALITY / (double) numKeys) * DOMAIN_SIZE);
-        int lowKey = randGen.nextInt();
-        long maxLowKey = Integer.MAX_VALUE - rangeSize;
-        if (lowKey > maxLowKey) {
-            lowKey = (int) maxLowKey;
-        }
-        int highKey = (int) (lowKey + rangeSize);
-        return rangeQueryTemplate.replaceAll("\\$LKEY\\$", Long.toString(lowKey)).replaceAll("\\$HKEY\\$",
-                Long.toString(highKey));
-    }
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment9Builder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment9Builder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment9Builder.java
deleted file mode 100644
index bd3067d..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperiment9Builder.java
+++ /dev/null
@@ -1,184 +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.asterix.experiment.builder;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-
-import org.apache.asterix.experiment.action.base.AbstractAction;
-import org.apache.asterix.experiment.action.base.IAction;
-import org.apache.asterix.experiment.action.base.ParallelActionSet;
-import org.apache.asterix.experiment.action.base.SequentialActionList;
-import org.apache.asterix.experiment.action.derived.AbstractRemoteExecutableAction;
-import org.apache.asterix.experiment.action.derived.RunAQLStringAction;
-import org.apache.asterix.experiment.action.derived.TimedAction;
-import org.apache.asterix.experiment.client.LSMExperimentConstants;
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-import org.apache.asterix.experiment.client.OrchestratorServer9;
-import org.apache.asterix.experiment.client.OrchestratorServer9.IProtocolActionBuilder;
-import org.apache.commons.lang3.StringUtils;
-
-public abstract class AbstractExperiment9Builder extends AbstractLSMBaseExperimentBuilder {
-
-    private static final long DOMAIN_SIZE = (1L << 32);
-
-    private static final long EXPECTED_RANGE_CARDINALITY = 1000;
-
-    private static int N_PARTITIONS = 16;
-
-    private final int nIntervals;
-
-    private final String orchHost;
-
-    private final int orchPort;
-
-    protected final long dataInterval;
-
-    protected final int nQueryRuns;
-
-    protected final Random randGen;
-
-    public AbstractExperiment9Builder(String name, LSMExperimentSetRunnerConfig config, String clusterConfigFileName,
-            String ingestFileName, String dgenFileName) {
-        super(name, config, clusterConfigFileName, ingestFileName, dgenFileName, null);
-        nIntervals = config.getNIntervals();
-        orchHost = config.getOrchestratorHost();
-        orchPort = config.getOrchestratorPort();
-        dataInterval = config.getDataInterval();
-        this.nQueryRuns = config.getNQueryRuns();
-        this.randGen = new Random();
-    }
-
-    @Override
-    protected void doBuildDataGen(SequentialActionList seq, Map<String, List<String>> dgenPairs) throws IOException {
-        int nDgens = 0;
-        for (List<String> v : dgenPairs.values()) {
-            nDgens += v.size();
-        }
-        final OrchestratorServer9 oServer = new OrchestratorServer9(orchPort, nDgens, nIntervals,
-                new ProtocolActionBuilder());
-
-        seq.add(new AbstractAction() {
-
-            @Override
-            protected void doPerform() throws Exception {
-                oServer.start();
-            }
-        });
-
-        ParallelActionSet dgenActions = new ParallelActionSet();
-        int partition = 0;
-
-        // run dgen
-        for (String dgenHost : dgenPairs.keySet()) {
-            final List<String> rcvrs = dgenPairs.get(dgenHost);
-            final int p = partition;
-            dgenActions.add(new AbstractRemoteExecutableAction(dgenHost, username, sshKeyLocation) {
-
-                @Override
-                protected String getCommand() {
-                    String ipPortPairs = StringUtils.join(rcvrs.iterator(), " ");
-                    String binary = "JAVA_HOME=" + javaHomePath + " "
-                            + localExperimentRoot.resolve("bin").resolve("datagenrunner").toString();
-                    return StringUtils.join(new String[] { binary, "-si", "" + locationSampleInterval, "-of",
-                            openStreetMapFilePath, "-p", "" + p, "-di", "" + dataInterval, "-ni", "" + nIntervals,
-                            "-oh", orchHost, "-op", "" + orchPort, ipPortPairs }, " ");
-                }
-            });
-            partition += rcvrs.size();
-        }
-        seq.add(dgenActions);
-
-        // wait until all dgen / queries are done
-        seq.add(new AbstractAction() {
-
-            @Override
-            protected void doPerform() throws Exception {
-                oServer.awaitFinished();
-            }
-        });
-    }
-
-    public class ProtocolActionBuilder implements IProtocolActionBuilder {
-
-        private final String pointQueryTemplate;
-
-        private final String rangeQueryTemplate;
-
-        public ProtocolActionBuilder() throws IOException {
-            this.pointQueryTemplate = getPointQueryTemplate();
-            this.rangeQueryTemplate = getRangeQueryTemplate();
-        }
-
-        private String getRangeQueryTemplate() throws IOException {
-            Path aqlTemplateFilePath = localExperimentRoot.resolve(LSMExperimentConstants.AQL_DIR).resolve("8_q2.aql");
-            return StandardCharsets.UTF_8.decode(ByteBuffer.wrap(Files.readAllBytes(aqlTemplateFilePath))).toString();
-        }
-
-        private String getPointQueryTemplate() throws IOException {
-            Path aqlTemplateFilePath = localExperimentRoot.resolve(LSMExperimentConstants.AQL_DIR).resolve("8_q1.aql");
-            return StandardCharsets.UTF_8.decode(ByteBuffer.wrap(Files.readAllBytes(aqlTemplateFilePath))).toString();
-        }
-
-        @Override
-        public IAction buildAction(int round) throws Exception {
-            SequentialActionList protoAction = new SequentialActionList();
-            IAction pointQueryAction = new TimedAction(
-                    new RunAQLStringAction(httpClient, restHost, restPort, getPointLookUpAQL(round)));
-            IAction rangeQueryAction = new TimedAction(
-                    new RunAQLStringAction(httpClient, restHost, restPort, getRangeAQL(round)));
-            protoAction.add(pointQueryAction);
-            protoAction.add(rangeQueryAction);
-            return protoAction;
-        }
-
-        private String getPointLookUpAQL(int round) throws Exception {
-            ByteBuffer bb = ByteBuffer.allocate(8);
-            bb.put((byte) 0);
-            bb.put((byte) randGen.nextInt(N_PARTITIONS));
-            bb.putShort((short) 0);
-            bb.putInt(randGen.nextInt((int) (((1 + round) * dataInterval) / 1000)));
-            bb.flip();
-            long key = bb.getLong();
-            return pointQueryTemplate.replaceAll("\\$KEY\\$", Long.toString(key));
-        }
-
-        private String getRangeAQL(int round) throws Exception {
-            long numKeys = (((1 + round) * dataInterval) / 1000) * N_PARTITIONS;
-            long rangeSize = (long) ((EXPECTED_RANGE_CARDINALITY / (double) numKeys) * DOMAIN_SIZE);
-            int lowKey = randGen.nextInt();
-            long maxLowKey = Integer.MAX_VALUE - rangeSize;
-            if (lowKey > maxLowKey) {
-                lowKey = (int) maxLowKey;
-            }
-            int highKey = (int) (lowKey + rangeSize);
-            return rangeQueryTemplate.replaceAll("\\$LKEY\\$", Long.toString(lowKey)).replaceAll("\\$HKEY\\$",
-                    Long.toString(highKey));
-        }
-
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperimentBuilder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperimentBuilder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperimentBuilder.java
deleted file mode 100644
index 1717652..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractExperimentBuilder.java
+++ /dev/null
@@ -1,40 +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.asterix.experiment.builder;
-
-public abstract class AbstractExperimentBuilder {
-    private final String name;
-
-    protected AbstractExperimentBuilder(String name) {
-        this.name = name;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public final Experiment build() throws Exception {
-        Experiment e = new Experiment(name);
-        doBuild(e);
-        return e;
-    }
-
-    protected abstract void doBuild(Experiment e) throws Exception;
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractLSMBaseExperimentBuilder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractLSMBaseExperimentBuilder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractLSMBaseExperimentBuilder.java
deleted file mode 100644
index 1a57480..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractLSMBaseExperimentBuilder.java
+++ /dev/null
@@ -1,357 +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.asterix.experiment.builder;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Scanner;
-import java.util.Set;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.experiment.action.base.ParallelActionSet;
-import org.apache.asterix.experiment.action.base.SequentialActionList;
-import org.apache.asterix.experiment.action.derived.AbstractRemoteExecutableAction;
-import org.apache.asterix.experiment.action.derived.ManagixActions.CreateAsterixManagixAction;
-import org.apache.asterix.experiment.action.derived.ManagixActions.DeleteAsterixManagixAction;
-import org.apache.asterix.experiment.action.derived.ManagixActions.LogAsterixManagixAction;
-import org.apache.asterix.experiment.action.derived.ManagixActions.StopAsterixManagixAction;
-import org.apache.asterix.experiment.action.derived.RemoteAsterixDriverKill;
-import org.apache.asterix.experiment.action.derived.RunAQLFileAction;
-import org.apache.asterix.experiment.action.derived.SleepAction;
-import org.apache.asterix.experiment.client.LSMExperimentConstants;
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.http.client.HttpClient;
-import org.apache.http.impl.client.DefaultHttpClient;
-
-public abstract class AbstractLSMBaseExperimentBuilder extends AbstractExperimentBuilder {
-
-    private static final String ASTERIX_INSTANCE_NAME = "a1";
-
-    private final String logDirSuffix;
-
-    protected final HttpClient httpClient;
-
-    protected final String restHost;
-
-    protected final int restPort;
-
-    private final String managixHomePath;
-
-    protected final String javaHomePath;
-
-    protected final Path localExperimentRoot;
-
-    protected final String username;
-
-    protected final String sshKeyLocation;
-
-    private final int duration;
-
-    private final String clusterConfigFileName;
-
-    private final String ingestFileName;
-
-    protected final String dgenFileName;
-
-    private final String countFileName;
-
-    private final String statFile;
-
-    protected final SequentialActionList lsAction;
-
-    protected final String openStreetMapFilePath;
-    protected final int locationSampleInterval;
-
-    protected final int recordCountPerBatchDuringIngestionOnly;
-    protected final int recordCountPerBatchDuringQuery;
-    protected final long dataGenSleepTimeDuringIngestionOnly;
-    protected final long dataGenSleepTimeDuringQuery;
-
-    public AbstractLSMBaseExperimentBuilder(String name, LSMExperimentSetRunnerConfig config,
-            String clusterConfigFileName, String ingestFileName, String dgenFileName, String countFileName) {
-        super(name);
-        this.logDirSuffix = config.getLogDirSuffix();
-        this.httpClient = new DefaultHttpClient();
-        this.restHost = config.getRESTHost();
-        this.restPort = config.getRESTPort();
-        this.managixHomePath = config.getManagixHome();
-        this.javaHomePath = config.getJavaHome();
-        this.localExperimentRoot = Paths.get(config.getLocalExperimentRoot());
-        this.username = config.getUsername();
-        this.sshKeyLocation = config.getSSHKeyLocation();
-        this.duration = config.getDuration();
-        this.clusterConfigFileName = clusterConfigFileName;
-        this.ingestFileName = ingestFileName;
-        this.dgenFileName = dgenFileName;
-        this.countFileName = countFileName;
-        this.statFile = config.getStatFile();
-        this.lsAction = new SequentialActionList();
-        this.openStreetMapFilePath = config.getOpenStreetMapFilePath();
-        this.locationSampleInterval = config.getLocationSampleInterval();
-        recordCountPerBatchDuringIngestionOnly = config.getRecordCountPerBatchDuringIngestionOnly();
-        recordCountPerBatchDuringQuery = config.getRecordCountPerBatchDuringQuery();
-        dataGenSleepTimeDuringIngestionOnly = config.getDataGenSleepTimeDuringIngestionOnly();
-        dataGenSleepTimeDuringQuery = config.getDataGenSleepTimeDuringQuery();
-    }
-
-    protected abstract void doBuildDDL(SequentialActionList seq);
-
-    protected void doPost(SequentialActionList seq) {
-    }
-
-    protected void doBuildDataGen(SequentialActionList seq, final Map<String, List<String>> dgenPairs) throws Exception {
-
-        //start datagen
-        ParallelActionSet dgenActions = new ParallelActionSet();
-        int partition = 0;
-        for (String dgenHost : dgenPairs.keySet()) {
-            final List<String> rcvrs = dgenPairs.get(dgenHost);
-            final int p = partition;
-            dgenActions.add(new AbstractRemoteExecutableAction(dgenHost, username, sshKeyLocation) {
-
-                @Override
-                protected String getCommand() {
-                    String ipPortPairs = StringUtils.join(rcvrs.iterator(), " ");
-                    String binary = "JAVA_HOME=" + javaHomePath + " "
-                            + localExperimentRoot.resolve("bin").resolve("datagenrunner").toString();
-                    if (openStreetMapFilePath == null) {
-                        return StringUtils.join(new String[] { binary, "-rcbi",
-                                "" + recordCountPerBatchDuringIngestionOnly, "-rcbq",
-                                "" + recordCountPerBatchDuringQuery, "-dsti", "" + dataGenSleepTimeDuringIngestionOnly,
-                                "-dstq", "" + dataGenSleepTimeDuringQuery, "-si", "" + locationSampleInterval, "-p",
-                                "" + p, "-d", "" + duration, ipPortPairs }, " ");
-                    } else {
-                        return StringUtils.join(new String[] { binary, "-rcbi",
-                                "" + recordCountPerBatchDuringIngestionOnly, "-rcbq",
-                                "" + recordCountPerBatchDuringQuery, "-dsti", "" + dataGenSleepTimeDuringIngestionOnly,
-                                "-dstq", "" + dataGenSleepTimeDuringQuery, "-si", "" + locationSampleInterval, "-of",
-                                openStreetMapFilePath, "-p", "" + p, "-d", "" + duration, ipPortPairs }, " ");
-                    }
-                }
-            });
-            partition += rcvrs.size();
-        }
-        seq.add(dgenActions);
-    }
-
-    @Override
-    protected void doBuild(Experiment e) throws Exception {
-        SequentialActionList execs = new SequentialActionList();
-
-        String clusterConfigPath = localExperimentRoot.resolve(LSMExperimentConstants.CONFIG_DIR)
-                .resolve(clusterConfigFileName).toString();
-        String asterixConfigPath = localExperimentRoot.resolve(LSMExperimentConstants.CONFIG_DIR)
-                .resolve(LSMExperimentConstants.ASTERIX_CONFIGURATION).toString();
-
-        //create instance
-        execs.add(new StopAsterixManagixAction(managixHomePath, ASTERIX_INSTANCE_NAME));
-        execs.add(new DeleteAsterixManagixAction(managixHomePath, ASTERIX_INSTANCE_NAME));
-        execs.add(new SleepAction(30000));
-        execs.add(new CreateAsterixManagixAction(managixHomePath, ASTERIX_INSTANCE_NAME, clusterConfigPath,
-                asterixConfigPath));
-
-        //run ddl statements
-        execs.add(new SleepAction(15000));
-        // TODO: implement retry handler
-        execs.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                LSMExperimentConstants.AQL_DIR).resolve(LSMExperimentConstants.BASE_TYPES)));
-        doBuildDDL(execs);
-        execs.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot
-                .resolve(LSMExperimentConstants.AQL_DIR).resolve(LSMExperimentConstants.BASE_DIR)
-                .resolve(ingestFileName)));
-
-        Map<String, List<String>> dgenPairs = readDatagenPairs(localExperimentRoot.resolve(
-                LSMExperimentConstants.DGEN_DIR).resolve(dgenFileName));
-        final Set<String> ncHosts = new HashSet<>();
-        for (List<String> ncHostList : dgenPairs.values()) {
-            for (String ncHost : ncHostList) {
-                ncHosts.add(ncHost.split(":")[0]);
-            }
-        }
-
-        if (statFile != null) {
-            ParallelActionSet ioCountActions = new ParallelActionSet();
-            for (String ncHost : ncHosts) {
-                ioCountActions.add(new AbstractRemoteExecutableAction(ncHost, username, sshKeyLocation) {
-
-                    @Override
-                    protected String getCommand() {
-                        String cmd = "screen -d -m sh -c \"sar -b -u 1 > " + statFile + "\"";
-                        return cmd;
-                    }
-                });
-            }
-            execs.add(ioCountActions);
-        }
-
-        SequentialActionList postLSAction = new SequentialActionList();
-        File file = new File(clusterConfigPath);
-        JAXBContext ctx = JAXBContext.newInstance(Cluster.class);
-        Unmarshaller unmarshaller = ctx.createUnmarshaller();
-        final Cluster cluster = (Cluster) unmarshaller.unmarshal(file);
-        String[] storageRoots = cluster.getIodevices().split(",");
-        for (String ncHost : ncHosts) {
-            for (final String sRoot : storageRoots) {
-                lsAction.add(new AbstractRemoteExecutableAction(ncHost, username, sshKeyLocation) {
-                    @Override
-                    protected String getCommand() {
-                        return "ls -Rl " + sRoot;
-                    }
-                });
-                postLSAction.add(new AbstractRemoteExecutableAction(ncHost, username, sshKeyLocation) {
-                    @Override
-                    protected String getCommand() {
-                        return "ls -Rl " + sRoot;
-                    }
-                });
-
-            }
-        }
-
-        // main exp
-        doBuildDataGen(execs, dgenPairs);
-
-        //        if (statFile != null) {
-        //            ParallelActionSet ioCountKillActions = new ParallelActionSet();
-        //            for (String ncHost : ncHosts) {
-        //                ioCountKillActions.add(new AbstractRemoteExecutableAction(ncHost, username, sshKeyLocation) {
-        //
-        //                    @Override
-        //                    protected String getCommand() {
-        //                        String cmd = "screen -X -S `screen -list | grep Detached | awk '{print $1}'` quit";
-        //                        return cmd;
-        //                    }
-        //                });
-        //            }
-        //            execs.add(ioCountKillActions);
-        //        }
-
-        execs.add(new SleepAction(10000));
-        if (countFileName != null) {
-            execs.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                    LSMExperimentConstants.AQL_DIR).resolve(countFileName)));
-        }
-
-        execs.add(postLSAction);
-        doPost(execs);
-        ParallelActionSet killCmds = new ParallelActionSet();
-        for (String ncHost : ncHosts) {
-            killCmds.add(new RemoteAsterixDriverKill(ncHost, username, sshKeyLocation));
-        }
-        //killCmds.add(new RemoteAsterixDriverKill(restHost, username, sshKeyLocation));
-        execs.add(killCmds);
-        execs.add(new StopAsterixManagixAction(managixHomePath, ASTERIX_INSTANCE_NAME));
-        if (statFile != null) {
-            ParallelActionSet collectIOActions = new ParallelActionSet();
-            for (String ncHost : ncHosts) {
-                collectIOActions.add(new AbstractRemoteExecutableAction(ncHost, username, sshKeyLocation) {
-
-                    @Override
-                    protected String getCommand() {
-                        String cmd = "cp " + statFile + " " + cluster.getLogDir();
-                        return cmd;
-                    }
-                });
-            }
-            execs.add(collectIOActions);
-        }
-
-        //collect profile information
-        //        if (ExperimentProfiler.PROFILE_MODE) {
-        //            if (!SpatialIndexProfiler.PROFILE_HOME_DIR.contentEquals(cluster.getLogDir())) {
-        //                ParallelActionSet collectProfileInfo = new ParallelActionSet();
-        //                for (String ncHost : ncHosts) {
-        //                    collectProfileInfo.add(new AbstractRemoteExecutableAction(ncHost, username, sshKeyLocation) {
-        //                        @Override
-        //                        protected String getCommand() {
-        //                            String cmd = "mv " + SpatialIndexProfiler.PROFILE_HOME_DIR + "*.txt " + cluster.getLogDir();
-        //                            return cmd;
-        //                        }
-        //                    });
-        //                }
-        //                execs.add(collectProfileInfo);
-        //            }
-        //        }
-
-        execs.add(new LogAsterixManagixAction(managixHomePath, ASTERIX_INSTANCE_NAME, localExperimentRoot
-                .resolve(LSMExperimentConstants.LOG_DIR + "-" + logDirSuffix).resolve(getName()).toString()));
-
-        if (getName().contains("SpatialIndexExperiment2") || getName().contains("SpatialIndexExperiment5")) {
-            //get query result file
-            SequentialActionList getQueryResultFileActions = new SequentialActionList();
-            final String queryResultFilePath = openStreetMapFilePath.substring(0,
-                    openStreetMapFilePath.lastIndexOf(File.separator))
-                    + File.separator + "QueryGenResult-*.txt";
-            for (final String qgenHost : dgenPairs.keySet()) {
-                getQueryResultFileActions.add(new AbstractRemoteExecutableAction(restHost, username, sshKeyLocation) {
-
-                    @Override
-                    protected String getCommand() {
-                        String cmd = "scp "
-                                + username
-                                + "@"
-                                + qgenHost
-                                + ":"
-                                + queryResultFilePath
-                                + " "
-                                + localExperimentRoot.resolve(LSMExperimentConstants.LOG_DIR + "-" + logDirSuffix)
-                                        .resolve(getName()).toString();
-                        return cmd;
-                    }
-                });
-            }
-            execs.add(getQueryResultFileActions);
-        }
-
-        e.addBody(execs);
-    }
-
-    protected Map<String, List<String>> readDatagenPairs(Path p) throws IOException {
-        Map<String, List<String>> dgenPairs = new HashMap<>();
-        Scanner s = new Scanner(p, StandardCharsets.UTF_8.name());
-        try {
-            while (s.hasNextLine()) {
-                String line = s.nextLine();
-                String[] pair = line.split("\\s+");
-                List<String> vals = dgenPairs.get(pair[0]);
-                if (vals == null) {
-                    vals = new ArrayList<>();
-                    dgenPairs.put(pair[0], vals);
-                }
-                vals.add(pair[1]);
-            }
-        } finally {
-            s.close();
-        }
-        return dgenPairs;
-    }
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractLocalExperimentBuilder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractLocalExperimentBuilder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractLocalExperimentBuilder.java
deleted file mode 100644
index 315ad9c..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractLocalExperimentBuilder.java
+++ /dev/null
@@ -1,37 +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.asterix.experiment.builder;
-
-import org.apache.asterix.experiment.action.base.SequentialActionList;
-
-public abstract class AbstractLocalExperimentBuilder extends AbstractExperimentBuilder {
-
-    private final int nNodeControllers;
-
-    protected AbstractLocalExperimentBuilder(String name, int nNodeControllers) {
-        super(name);
-        this.nNodeControllers = nNodeControllers;
-    }
-
-    protected abstract void addPre(SequentialActionList pre);
-
-    protected abstract void addPost(SequentialActionList post);
-
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/0e21afa7/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractPerfLoadBuilder.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractPerfLoadBuilder.java b/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractPerfLoadBuilder.java
deleted file mode 100644
index 472d610..0000000
--- a/asterixdb/asterix-experiments/src/main/java/org/apache/asterix/experiment/builder/AbstractPerfLoadBuilder.java
+++ /dev/null
@@ -1,251 +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.asterix.experiment.builder;
-
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.experiment.action.base.ParallelActionSet;
-import org.apache.asterix.experiment.action.base.SequentialActionList;
-import org.apache.asterix.experiment.action.derived.*;
-import org.apache.asterix.experiment.action.derived.ManagixActions.CreateAsterixManagixAction;
-import org.apache.asterix.experiment.action.derived.ManagixActions.DeleteAsterixManagixAction;
-import org.apache.asterix.experiment.action.derived.ManagixActions.LogAsterixManagixAction;
-import org.apache.asterix.experiment.action.derived.ManagixActions.StopAsterixManagixAction;
-import org.apache.asterix.experiment.client.LSMExperimentConstants;
-import org.apache.asterix.experiment.client.LSMExperimentSetRunner.LSMExperimentSetRunnerConfig;
-import org.apache.asterix.experiment.client.LSMPerfConstants;
-import org.apache.http.client.HttpClient;
-import org.apache.http.impl.client.DefaultHttpClient;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.*;
-
-/**
- * This class is used to create experiments for spatial index static data evaluation, that is, no ingestion is involved.
- * Also, there is no orchestration server involved in this experiment builder.
- */
-public abstract class AbstractPerfLoadBuilder extends AbstractExperimentBuilder {
-
-    private static final String ASTERIX_INSTANCE_NAME = "a1";
-
-    private final String logDirSuffix;
-
-    protected final HttpClient httpClient;
-
-    protected final String restHost;
-
-    protected final int restPort;
-
-    private final String managixHomePath;
-
-    protected final String javaHomePath;
-
-    protected final Path localExperimentRoot;
-
-    protected final String username;
-
-    protected final String sshKeyLocation;
-
-    private final String clusterConfigFileName;
-
-    protected final String dgenFileName;
-
-    private final String countFileName;
-
-    private final String statFile;
-
-    protected final SequentialActionList lsAction;
-
-    protected final String openStreetMapFilePath;
-
-    protected final int locationSampleInterval;
-
-    protected final String loadAQLFilePath;
-
-    protected final String querySQLPPFileName;
-
-    public AbstractPerfLoadBuilder(String name, LSMExperimentSetRunnerConfig config,
-                                   String clusterConfigFileName, String dgenFileName,
-                                   String countFileName, String loadAQLFileName, String querySQLPPFileName) {
-        super(name);
-        this.logDirSuffix = config.getLogDirSuffix();
-        this.httpClient = new DefaultHttpClient();
-        this.restHost = config.getRESTHost();
-        this.restPort = config.getRESTPort();
-        this.managixHomePath = config.getManagixHome();
-        this.javaHomePath = config.getJavaHome();
-        this.localExperimentRoot = Paths.get(config.getLocalExperimentRoot());
-        this.username = config.getUsername();
-        this.sshKeyLocation = config.getSSHKeyLocation();
-        this.clusterConfigFileName = clusterConfigFileName;
-        this.dgenFileName = dgenFileName;
-        this.countFileName = countFileName;
-        this.statFile = config.getStatFile();
-        this.lsAction = new SequentialActionList();
-        this.openStreetMapFilePath = config.getOpenStreetMapFilePath();
-        this.locationSampleInterval = config.getLocationSampleInterval();
-        this.loadAQLFilePath = loadAQLFileName;
-        this.querySQLPPFileName = querySQLPPFileName;
-    }
-
-    protected abstract void doBuildDDL(SequentialActionList seq);
-
-    @Override
-    protected void doBuild(Experiment e) throws IOException, JAXBException {
-        SequentialActionList execs = new SequentialActionList();
-
-        String clusterConfigPath = localExperimentRoot.resolve(LSMExperimentConstants.CONFIG_DIR)
-                .resolve(clusterConfigFileName).toString();
-        String asterixConfigPath = localExperimentRoot.resolve(LSMExperimentConstants.CONFIG_DIR)
-                .resolve(LSMExperimentConstants.ASTERIX_CONFIGURATION).toString();
-
-        //stop/delete/create instance
-        execs.add(new StopAsterixManagixAction(managixHomePath, ASTERIX_INSTANCE_NAME));
-        execs.add(new DeleteAsterixManagixAction(managixHomePath, ASTERIX_INSTANCE_NAME));
-        execs.add(new SleepAction(30000));
-        execs.add(new CreateAsterixManagixAction(managixHomePath, ASTERIX_INSTANCE_NAME, clusterConfigPath,
-                asterixConfigPath));
-
-        //ddl statements
-        execs.add(new SleepAction(15000));
-        // TODO: implement retry handler
-        execs.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                LSMExperimentConstants.AQL_DIR).resolve(LSMPerfConstants.BASE_TYPES)));
-        doBuildDDL(execs);
-
-        //prepare io state action in NC node(s)
-        Map<String, List<String>> dgenPairs = readDatagenPairs(localExperimentRoot.resolve(
-                LSMExperimentConstants.DGEN_DIR).resolve(dgenFileName));
-        final Set<String> ncHosts = new HashSet<>();
-        for (List<String> ncHostList : dgenPairs.values()) {
-            for (String ncHost : ncHostList) {
-                ncHosts.add(ncHost.split(":")[0]);
-            }
-        }
-        if (statFile != null) {
-            ParallelActionSet ioCountActions = new ParallelActionSet();
-            for (String ncHost : ncHosts) {
-                ioCountActions.add(new AbstractRemoteExecutableAction(ncHost, username, sshKeyLocation) {
-
-                    @Override
-                    protected String getCommand() {
-                        String cmd = "screen -d -m sh -c \"sar -b -u 1 > " + statFile + "\"";
-                        return cmd;
-                    }
-                });
-            }
-            execs.add(ioCountActions);
-        }
-
-        //prepare post ls action
-        File file = new File(clusterConfigPath);
-        JAXBContext ctx = JAXBContext.newInstance(Cluster.class);
-        Unmarshaller unmarshaller = ctx.createUnmarshaller();
-        final Cluster cluster = (Cluster) unmarshaller.unmarshal(file);
-        String[] storageRoots = cluster.getIodevices().split(",");
-
-        //---------- main experiment body begins -----------
-
-        //run DDL + Load
-        execs.add(new TimedAction(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                LSMExperimentConstants.AQL_DIR).resolve(loadAQLFilePath))));
-
-        //execute SQL++ Queries
-        execs.add(new TimedAction(new RunSQLPPFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                LSMExperimentConstants.AQL_DIR).resolve(querySQLPPFileName),
-                localExperimentRoot.resolve(LSMPerfConstants.RESULT_FILE))));
-
-        //---------- main experiment body ends -----------
-
-        //kill io state action
-        if (statFile != null) {
-            ParallelActionSet ioCountKillActions = new ParallelActionSet();
-            for (String ncHost : ncHosts) {
-                ioCountKillActions.add(new AbstractRemoteExecutableAction(ncHost, username, sshKeyLocation) {
-
-                    @Override
-                    protected String getCommand() {
-                        String cmd = "screen -X -S `screen -list | grep Detached | awk '{print $1}'` quit";
-                        return cmd;
-                    }
-                });
-            }
-            execs.add(ioCountKillActions);
-        }
-
-        //total record count
-        execs.add(new SleepAction(10000));
-        if (countFileName != null) {
-            execs.add(new RunAQLFileAction(httpClient, restHost, restPort, localExperimentRoot.resolve(
-                    LSMExperimentConstants.AQL_DIR).resolve(countFileName)));
-        }
-
-
-        execs.add(new StopAsterixManagixAction(managixHomePath, ASTERIX_INSTANCE_NAME));
-
-        //prepare to collect io state by putting the state file into asterix log dir
-        if (statFile != null) {
-            ParallelActionSet collectIOActions = new ParallelActionSet();
-            for (String ncHost : ncHosts) {
-                collectIOActions.add(new AbstractRemoteExecutableAction(ncHost, username, sshKeyLocation) {
-
-                    @Override
-                    protected String getCommand() {
-                        String cmd = "cp " + statFile + " " + cluster.getLogDir();
-                        return cmd;
-                    }
-                });
-            }
-            execs.add(collectIOActions);
-        }
-
-        //collect cc and nc logs
-        execs.add(new LogAsterixManagixAction(managixHomePath, ASTERIX_INSTANCE_NAME, localExperimentRoot
-                .resolve(LSMExperimentConstants.LOG_DIR + "-" + logDirSuffix).resolve(getName()).toString()));
-
-        e.addBody(execs);
-    }
-
-    protected Map<String, List<String>> readDatagenPairs(Path p) throws IOException {
-        Map<String, List<String>> dgenPairs = new HashMap<>();
-        Scanner s = new Scanner(p, StandardCharsets.UTF_8.name());
-        try {
-            while (s.hasNextLine()) {
-                String line = s.nextLine();
-                String[] pair = line.split("\\s+");
-                List<String> vals = dgenPairs.get(pair[0]);
-                if (vals == null) {
-                    vals = new ArrayList<>();
-                    dgenPairs.put(pair[0], vals);
-                }
-                vals.add(pair[1]);
-            }
-        } finally {
-            s.close();
-        }
-        return dgenPairs;
-    }
-}