diff --git a/asterixdb/asterix-app/pom.xml b/asterixdb/asterix-app/pom.xml
index 2d47b62..c250a2a 100644
--- a/asterixdb/asterix-app/pom.xml
+++ b/asterixdb/asterix-app/pom.xml
@@ -177,10 +177,12 @@
                 <exclude>src/test/resources/**/results/**</exclude>
                 <exclude>src/test/resources/fuzzyjoin/pub/fuzzy-join-aql*.dot</exclude>
                 <exclude>src/test/resources/fuzzyjoin/pub/fuzzy-join-aql*.json</exclude>
-                <exclude>data/**</exclude>
+                <exclude>**/data/**</exclude>
+                <exclude>src/test//resources/**/data/**</exclude>
                 <exclude>src/main/resources/queryui/**</exclude>
                 <exclude>src/main/resources/webui/**</exclude>
                 <exclude>src/test/resources/**/only*.xml</exclude>
+                <exclude>src/main/resources/sdk/**</exclude>
               </excludes>
             </configuration>
           </execution>
@@ -407,11 +409,6 @@
       <artifactId>hyracks-storage-am-lsm-btree</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-events</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
     </dependency>
@@ -574,9 +571,14 @@
       <scope>test</scope>
     </dependency>
     <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-compress</artifactId>
+      <version>1.4.1</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.hyracks</groupId>
       <artifactId>hyracks-comm</artifactId>
       <version>${hyracks.version}</version>
     </dependency>
   </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
index 98dabc9..ea32e94 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
@@ -40,10 +40,12 @@
 import org.apache.asterix.hyracks.bootstrap.CCApplication;
 import org.apache.asterix.hyracks.bootstrap.NCApplication;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.hyracks.api.application.ICCApplication;
 import org.apache.hyracks.api.application.INCApplication;
 import org.apache.hyracks.api.client.HyracksConnection;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
+import org.apache.hyracks.api.config.IOption;
 import org.apache.hyracks.control.cc.ClusterControllerService;
 import org.apache.hyracks.control.common.config.ConfigManager;
 import org.apache.hyracks.control.common.controllers.CCConfig;
@@ -52,30 +54,55 @@
 import org.apache.hyracks.control.nc.NodeControllerService;
 import org.kohsuke.args4j.CmdLineException;
 
+@SuppressWarnings({"squid:ClassVariableVisibilityCheck","squid:S00112"})
 public class AsterixHyracksIntegrationUtil {
-    static class LoggerHolder {
-        static final Logger LOGGER = Logger.getLogger(AsterixHyracksIntegrationUtil.class.getName());
-
-        private LoggerHolder() {
-        }
-    }
-
     public static final int DEFAULT_HYRACKS_CC_CLIENT_PORT = 1098;
     public static final int DEFAULT_HYRACKS_CC_CLUSTER_PORT = 1099;
-
-    public ClusterControllerService cc;
-    public NodeControllerService[] ncs = new NodeControllerService[0];
-    public IHyracksClientConnection hcc;
-    protected boolean gracefulShutdown = true;
-
+    public static final String DEFAULT_CONF_FILE = joinPath("asterixdb", "asterix-app", "src", "test", "resources",
+            "cc.conf");
     private static final String DEFAULT_STORAGE_PATH = joinPath("target", "io", "dir");
     private static String storagePath = DEFAULT_STORAGE_PATH;
+    public ClusterControllerService cc;
+    public NodeControllerService[] ncs = new NodeControllerService[2];
+    public IHyracksClientConnection hcc;
+    protected boolean gracefulShutdown = true;
+    List<Pair<IOption, Object>> opts = new ArrayList<>();
     private ConfigManager configManager;
     private List<String> nodeNames;
 
-    public void init(boolean deleteOldInstanceData) throws Exception {
+    public static void setStoragePath(String path) {
+        storagePath = path;
+    }
+
+    public static void restoreDefaultStoragePath() {
+        storagePath = DEFAULT_STORAGE_PATH;
+    }
+
+    /**
+     * main method to run a simple 2 node cluster in-process
+     * suggested VM arguments: <code>-enableassertions -Xmx2048m -Dfile.encoding=UTF-8</code>
+     *
+     * @param args
+     *            unused
+     */
+    public static void main(String[] args) throws Exception {
+        AsterixHyracksIntegrationUtil integrationUtil = new AsterixHyracksIntegrationUtil();
+        try {
+            integrationUtil.run(Boolean.getBoolean("cleanup.start"), Boolean.getBoolean("cleanup.shutdown"),
+                    System.getProperty("external.lib", ""), System.getProperty("conf.path", DEFAULT_CONF_FILE));
+        } catch (Exception e) {
+            LOGGER.log(Level.WARNING, "Unexpected exception", e);
+            System.exit(1);
+        }
+    }
+
+    public void init(boolean deleteOldInstanceData, String confFile) throws Exception { //NOSONAR
         final ICCApplication ccApplication = createCCApplication();
-        configManager = new ConfigManager();
+        if (confFile == null) {
+            configManager = new ConfigManager();
+        } else {
+            configManager = new ConfigManager(new String[] { "-config-file", confFile });
+        }
         ccApplication.registerConfig(configManager);
         final CCConfig ccConfig = createCCConfig(configManager);
         cc = new ClusterControllerService(ccConfig, ccApplication);
@@ -90,12 +117,18 @@
             // mark this NC as virtual in the CC's config manager, so he doesn't try to contact NCService...
             configManager.set(nodeId, NCConfig.Option.NCSERVICE_PORT, NCConfig.NCSERVICE_PORT_DISABLED);
             final INCApplication ncApplication = createNCApplication();
-            ConfigManager ncConfigManager = new ConfigManager();
+            ConfigManager ncConfigManager;
+            if (confFile == null) {
+                ncConfigManager = new ConfigManager();
+            } else {
+                ncConfigManager = new ConfigManager(new String[] { "-config-file", confFile });
+            }
             ncApplication.registerConfig(ncConfigManager);
             nodeControllers.add(
                     new NodeControllerService(fixupIODevices(createNCConfig(nodeId, ncConfigManager)), ncApplication));
-        }
+        } ;
 
+        opts.stream().forEach(opt -> configManager.set(opt.getLeft(), opt.getRight()));
         cc.start();
 
         // Starts ncs.
@@ -125,11 +158,11 @@
         this.ncs = nodeControllers.toArray(new NodeControllerService[nodeControllers.size()]);
     }
 
-    public void init(boolean deleteOldInstanceData, String externalLibPath) throws Exception {
+    public void init(boolean deleteOldInstanceData, String externalLibPath, String confDir) throws Exception {
         List<ILibraryManager> libraryManagers = new ArrayList<>();
         ExternalUDFLibrarian librarian = new ExternalUDFLibrarian(libraryManagers);
         librarian.cleanup();
-        init(deleteOldInstanceData);
+        init(deleteOldInstanceData, confDir);
         if (externalLibPath != null && externalLibPath.length() != 0) {
             libraryManagers.add(((ICcApplicationContext) cc.getApplicationContext()).getLibraryManager());
             for (NodeControllerService nc : ncs) {
@@ -246,18 +279,10 @@
         }
     }
 
-    public static void setStoragePath(String path) {
-        storagePath = path;
-    }
-
     public void setGracefulShutdown(boolean gracefulShutdown) {
         this.gracefulShutdown = gracefulShutdown;
     }
 
-    public static void restoreDefaultStoragePath() {
-        storagePath = DEFAULT_STORAGE_PATH;
-    }
-
     protected String getDefaultStoragePath() {
         return storagePath;
     }
@@ -280,21 +305,22 @@
         }
     }
 
-    /**
-     * main method to run a simple 2 node cluster in-process
-     * suggested VM arguments: <code>-enableassertions -Xmx2048m -Dfile.encoding=UTF-8</code>
-     *
-     * @param args
-     *            unused
-     */
-    public static void main(String[] args) throws Exception {
-        AsterixHyracksIntegrationUtil integrationUtil = new AsterixHyracksIntegrationUtil();
-        try {
-            integrationUtil.run(Boolean.getBoolean("cleanup.start"), Boolean.getBoolean("cleanup.shutdown"),
-                    System.getProperty("external.lib", ""));
-        } catch (Exception e) {
-            LOGGER.log(Level.WARNING, "Unexpected exception", e);
-            System.exit(1);
+    protected void run(boolean cleanupOnStart, boolean cleanupOnShutdown, String loadExternalLibs, String confFile)
+            throws Exception {
+        Runtime.getRuntime().addShutdownHook(new Thread() {
+            @Override
+            public void run() {
+                try {
+                    deinit(cleanupOnShutdown);
+                } catch (Exception e) {
+                    LOGGER.log(Level.WARNING, "Unexpected exception on shutdown", e);
+                }
+            }
+        });
+
+        init(cleanupOnStart, loadExternalLibs, confFile);
+        while (true) {
+            Thread.sleep(10000);
         }
     }
 
@@ -309,7 +335,6 @@
                 }
             }
         });
-        System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, "asterix-build-configuration.xml");
 
         init(cleanupOnStart, loadExternalLibs);
         while (true) {
@@ -317,6 +342,17 @@
         }
     }
 
+    public void addOption(IOption name, Object value) {
+        opts.add(Pair.of(name, value));
+    }
+
+    static class LoggerHolder {
+        static final Logger LOGGER = Logger.getLogger(AsterixHyracksIntegrationUtil.class.getName());
+
+        private LoggerHolder() {
+        }
+    }
+
     private class UngracefulShutdownNCApplication extends NCApplication {
         @Override
         public void stop() throws Exception {
@@ -324,4 +360,5 @@
             webManager.stop();
         }
     }
+
 }
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/ExternalUDFLibrarian.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/ExternalUDFLibrarian.java
index b1d2159..75207e8 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/ExternalUDFLibrarian.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/external/ExternalUDFLibrarian.java
@@ -19,18 +19,25 @@
 package org.apache.asterix.app.external;
 
 import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.rmi.RemoteException;
+import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
 
 import org.apache.asterix.common.exceptions.ACIDException;
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.library.ILibraryManager;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.commons.compress.utils.IOUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.hyracks.algebricks.common.utils.Pair;
 
+@SuppressWarnings("squid:S134")
 public class ExternalUDFLibrarian implements IExternalUDFLibrarian {
 
     // The following list includes a library manager for the CC
@@ -41,6 +48,38 @@
         this.libraryManagers = libraryManagers;
     }
 
+    public static void removeLibraryDir() throws IOException {
+        File installLibDir = ExternalLibraryUtils.getLibraryInstallDir();
+        FileUtils.deleteQuietly(installLibDir);
+    }
+
+    public static void unzip(String sourceFile, String outputDir) throws IOException {
+        if (System.getProperty("os.name").toLowerCase().startsWith("win")) {
+            try (ZipFile zipFile = new ZipFile(sourceFile)) {
+                Enumeration<? extends ZipEntry> entries = zipFile.entries();
+                while (entries.hasMoreElements()) {
+                    ZipEntry entry = entries.nextElement();
+                    File entryDestination = new File(outputDir, entry.getName());
+                    if (!entry.isDirectory()) {
+                        entryDestination.getParentFile().mkdirs();
+                        try (InputStream in = zipFile.getInputStream(entry);
+                                OutputStream out = new FileOutputStream(entryDestination)) {
+                            IOUtils.copy(in, out);
+                        }
+                    }
+                }
+            }
+        } else {
+            Process process = new ProcessBuilder("unzip", "-d", outputDir, sourceFile).start();
+            try {
+                process.waitFor();
+            } catch (InterruptedException e) {
+                Thread.currentThread().interrupt();
+                throw new IOException(e);
+            }
+        }
+    }
+
     @Override
     public void install(String dvName, String libName, String libPath) throws Exception {
         // get the directory of the to be installed libraries
@@ -55,7 +94,7 @@
         FileUtils.deleteQuietly(destinationDir);
         destinationDir.mkdirs();
         try {
-            AsterixEventServiceUtil.unzip(libPath, destinationDir.getAbsolutePath());
+            unzip(libPath, destinationDir.getAbsolutePath());
         } catch (Exception e) {
 
             throw new Exception("Couldn't unzip the file: " + libPath, e);
@@ -78,11 +117,6 @@
         }
     }
 
-    public static void removeLibraryDir() throws IOException {
-        File installLibDir = ExternalLibraryUtils.getLibraryInstallDir();
-        FileUtils.deleteQuietly(installLibDir);
-    }
-
     public void cleanup() throws AsterixException, RemoteException, ACIDException {
         for (ILibraryManager libraryManager : libraryManagers) {
             List<Pair<String, String>> libs = libraryManager.getAllLibraries();
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
index 81b232a..df3ca64 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
@@ -41,7 +41,6 @@
 import org.apache.asterix.common.config.AsterixExtension;
 import org.apache.asterix.common.config.BuildProperties;
 import org.apache.asterix.common.config.CompilerProperties;
-import org.apache.asterix.common.config.ExtensionProperties;
 import org.apache.asterix.common.config.ExternalProperties;
 import org.apache.asterix.common.config.MessagingProperties;
 import org.apache.asterix.common.config.MetadataProperties;
@@ -60,6 +59,7 @@
 import org.apache.asterix.common.replication.IReplicaResourcesManager;
 import org.apache.asterix.common.replication.IReplicationChannel;
 import org.apache.asterix.common.replication.IReplicationManager;
+import org.apache.asterix.common.replication.Replica;
 import org.apache.asterix.common.storage.IIndexCheckpointManagerProvider;
 import org.apache.asterix.common.storage.IReplicaManager;
 import org.apache.asterix.common.transactions.IAppRuntimeContextProvider;
@@ -165,7 +165,7 @@
         if (extensions != null) {
             allExtensions.addAll(extensions);
         }
-        allExtensions.addAll(new ExtensionProperties(propertiesAccessor).getExtensions());
+        allExtensions.addAll(propertiesAccessor.getExtensions());
         ncExtensionManager = new NCExtensionManager(allExtensions);
         componentProvider = new StorageComponentProvider();
         resourceIdFactory = new GlobalResourceIdFactoryProvider(ncServiceContext).createResourceIdFactory();
@@ -189,6 +189,7 @@
         ILocalResourceRepositoryFactory persistentLocalResourceRepositoryFactory =
                 new PersistentLocalResourceRepositoryFactory(ioManager, getServiceContext().getNodeId(),
                         metadataProperties, indexCheckpointManagerProvider);
+
         localResourceRepository =
                 (PersistentLocalResourceRepository) persistentLocalResourceRepositoryFactory.createRepository();
 
@@ -219,43 +220,48 @@
                 activeProperties.getMemoryComponentGlobalBudget(), compilerProperties.getFrameSize(),
                 this.ncServiceContext);
 
-        if (replicationProperties.isParticipant(getServiceContext().getNodeId())) {
+        if (replicationProperties.isReplicationEnabled()) {
 
             replicaResourcesManager = new ReplicaResourcesManager(localResourceRepository, metadataProperties,
                     indexCheckpointManagerProvider);
 
             replicationManager = new ReplicationManager(nodeId, replicationProperties, replicaResourcesManager,
-                    txnSubsystem.getLogManager(), asterixAppRuntimeContextProvider);
+                    txnSubsystem.getLogManager(), asterixAppRuntimeContextProvider, ncServiceContext);
 
-            //pass replication manager to replication required object
-            //LogManager to replicate logs
-            txnSubsystem.getLogManager().setReplicationManager(replicationManager);
+            if (replicationManager.getReplicationStrategy().isParticipant(getServiceContext().getNodeId())) {
 
-            //PersistentLocalResourceRepository to replicated metadata files and delete backups on drop index
-            localResourceRepository.setReplicationManager(replicationManager);
+                //pass replication manager to replication required object
+                //LogManager to replicate logs
+                txnSubsystem.getLogManager().setReplicationManager(replicationManager);
 
-            /*
-             * add the partitions that will be replicated in this node as inactive partitions
-             */
-            //get nodes which replicated to this node
-            Set<String> remotePrimaryReplicas = replicationProperties.getRemotePrimaryReplicasIds(nodeId);
-            for (String clientId : remotePrimaryReplicas) {
-                //get the partitions of each client
-                ClusterPartition[] clientPartitions = metadataProperties.getNodePartitions().get(clientId);
-                for (ClusterPartition partition : clientPartitions) {
-                    localResourceRepository.addInactivePartition(partition.getPartitionId());
+                //PersistentLocalResourceRepository to replicate metadata files and delete backups on drop index
+                localResourceRepository.setReplicationManager(replicationManager);
+
+                /*
+                 * add the partitions that will be replicated in this node as inactive partitions
+                 */
+                //get nodes which replicate to this node
+                Set<String> remotePrimaryReplicas = replicationManager.getReplicationStrategy()
+                        .getRemotePrimaryReplicas(nodeId).stream().map(Replica::getId).collect(Collectors.toSet());
+                for (String clientId : remotePrimaryReplicas) {
+                    //get the partitions of each client
+                    ClusterPartition[] clientPartitions = metadataProperties.getNodePartitions().get(clientId);
+                    for (ClusterPartition partition : clientPartitions) {
+                        localResourceRepository.addInactivePartition(partition.getPartitionId());
+                    }
                 }
+
+                //initialize replication channel
+                replicationChannel = new ReplicationChannel(nodeId, replicationProperties, txnSubsystem.getLogManager(),
+                        replicaResourcesManager, replicationManager, getServiceContext(),
+                        asterixAppRuntimeContextProvider, replicationManager.getReplicationStrategy());
+
+                remoteRecoveryManager = new RemoteRecoveryManager(replicationManager, this, replicationProperties);
+
+                bufferCache = new BufferCache(ioManager, prs, pcp, new FileMapManager(),
+                        storageProperties.getBufferCacheMaxOpenFiles(), getServiceContext().getThreadFactory(),
+                        replicationManager);
             }
-
-            //initialize replication channel
-            replicationChannel = new ReplicationChannel(nodeId, replicationProperties, txnSubsystem.getLogManager(),
-                    replicaResourcesManager, replicationManager, getServiceContext(), asterixAppRuntimeContextProvider);
-
-            remoteRecoveryManager = new RemoteRecoveryManager(replicationManager, this, replicationProperties);
-
-            bufferCache = new BufferCache(ioManager, prs, pcp, new FileMapManager(),
-                    storageProperties.getBufferCacheMaxOpenFiles(), getServiceContext().getThreadFactory(),
-                    replicationManager);
         } else {
             bufferCache = new BufferCache(ioManager, prs, pcp, new FileMapManager(),
                     storageProperties.getBufferCacheMaxOpenFiles(), getServiceContext().getThreadFactory());
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/RecoveryManager.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/RecoveryManager.java
index 22fa459..dc22342 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/RecoveryManager.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/RecoveryManager.java
@@ -101,9 +101,9 @@
         this.serviceCtx = serviceCtx;
         this.txnSubsystem = txnSubsystem;
         logMgr = (LogManager) txnSubsystem.getLogManager();
-        ReplicationProperties repProperties =
-                txnSubsystem.getAsterixAppRuntimeContextProvider().getAppContext().getReplicationProperties();
-        replicationEnabled = repProperties.isParticipant(txnSubsystem.getId());
+        ReplicationProperties repProperties = txnSubsystem.getAsterixAppRuntimeContextProvider().getAppContext()
+                .getReplicationProperties();
+        replicationEnabled = repProperties.isReplicationEnabled();
         localResourceRepository = (PersistentLocalResourceRepository) txnSubsystem.getAsterixAppRuntimeContextProvider()
                 .getLocalResourceRepository();
         cachedEntityCommitsPerJobSize = txnSubsystem.getTransactionProperties().getJobRecoveryMemorySize();
@@ -426,16 +426,16 @@
 
     @Override
     public long getLocalMinFirstLSN() throws HyracksDataException {
-        IDatasetLifecycleManager datasetLifecycleManager =
-                txnSubsystem.getAsterixAppRuntimeContextProvider().getDatasetLifecycleManager();
+        IDatasetLifecycleManager datasetLifecycleManager = txnSubsystem.getAsterixAppRuntimeContextProvider()
+                .getDatasetLifecycleManager();
         List<IIndex> openIndexList = datasetLifecycleManager.getOpenResources();
         long firstLSN;
         //the min first lsn can only be the current append or smaller
         long minFirstLSN = logMgr.getAppendLSN();
         if (!openIndexList.isEmpty()) {
             for (IIndex index : openIndexList) {
-                AbstractLSMIOOperationCallback ioCallback =
-                        (AbstractLSMIOOperationCallback) ((ILSMIndex) index).getIOOperationCallback();
+                AbstractLSMIOOperationCallback ioCallback = (AbstractLSMIOOperationCallback) ((ILSMIndex) index)
+                        .getIOOperationCallback();
                 if (!((AbstractLSMIndex) index).isCurrentMutableComponentEmpty() || ioCallback.hasPendingFlush()) {
                     firstLSN = ioCallback.getFirstLSN();
                     minFirstLSN = Math.min(minFirstLSN, firstLSN);
@@ -446,8 +446,8 @@
     }
 
     private long getRemoteMinFirstLSN() throws HyracksDataException {
-        IReplicaResourcesManager remoteResourcesManager =
-                txnSubsystem.getAsterixAppRuntimeContextProvider().getAppContext().getReplicaResourcesManager();
+        IReplicaResourcesManager remoteResourcesManager = txnSubsystem.getAsterixAppRuntimeContextProvider()
+                .getAppContext().getReplicaResourcesManager();
         return remoteResourcesManager.getPartitionsMinLSN(localResourceRepository.getInactivePartitions());
     }
 
@@ -566,9 +566,9 @@
                         if (activePartitions.contains(logRecord.getResourcePartition())) {
                             undoLSNSet = jobLoserEntity2LSNsMap.get(tempKeyTxnEntityId);
                             if (undoLSNSet == null) {
-                                loserEntity =
-                                        new TxnEntityId(logTxnId, logRecord.getDatasetId(), logRecord.getPKHashValue(),
-                                                logRecord.getPKValue(), logRecord.getPKValueSize(), true);
+                                loserEntity = new TxnEntityId(logTxnId, logRecord.getDatasetId(),
+                                        logRecord.getPKHashValue(), logRecord.getPKValue(), logRecord.getPKValueSize(),
+                                        true);
                                 undoLSNSet = new LinkedList<>();
                                 jobLoserEntity2LSNsMap.put(loserEntity, undoLSNSet);
                             }
@@ -611,8 +611,8 @@
             //undo loserTxn's effect
             LOGGER.log(Level.INFO, "undoing loser transaction's effect");
 
-            IDatasetLifecycleManager datasetLifecycleManager =
-                    txnSubsystem.getAsterixAppRuntimeContextProvider().getDatasetLifecycleManager();
+            IDatasetLifecycleManager datasetLifecycleManager = txnSubsystem.getAsterixAppRuntimeContextProvider()
+                    .getDatasetLifecycleManager();
             //TODO sort loser entities by smallest LSN to undo in one pass.
             Iterator<Entry<TxnEntityId, List<Long>>> iter = jobLoserEntity2LSNsMap.entrySet().iterator();
             int undoCount = 0;
@@ -664,8 +664,8 @@
 
     private static void undo(ILogRecord logRecord, IDatasetLifecycleManager datasetLifecycleManager) {
         try {
-            ILSMIndex index =
-                    (ILSMIndex) datasetLifecycleManager.getIndex(logRecord.getDatasetId(), logRecord.getResourceId());
+            ILSMIndex index = (ILSMIndex) datasetLifecycleManager.getIndex(logRecord.getDatasetId(),
+                    logRecord.getResourceId());
             ILSMIndexAccessor indexAccessor = index.createAccessor(NoOpIndexAccessParameters.INSTANCE);
             if (logRecord.getNewOp() == AbstractIndexModificationOperationCallback.INSERT_BYTE) {
                 indexAccessor.forceDelete(logRecord.getNewValue());
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/TransactionSubsystem.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/TransactionSubsystem.java
index 47f9315..41a0c3b 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/TransactionSubsystem.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/TransactionSubsystem.java
@@ -25,7 +25,6 @@
 import org.apache.asterix.common.config.ReplicationProperties;
 import org.apache.asterix.common.config.TransactionProperties;
 import org.apache.asterix.common.exceptions.ACIDException;
-import org.apache.asterix.common.replication.IReplicationStrategy;
 import org.apache.asterix.common.transactions.Checkpoint;
 import org.apache.asterix.common.transactions.CheckpointProperties;
 import org.apache.asterix.common.transactions.IAppRuntimeContextProvider;
@@ -72,8 +71,8 @@
         this.lockManager = new ConcurrentLockManager(txnProperties.getLockManagerShrinkTimer());
         ReplicationProperties repProperties =
                 asterixAppRuntimeContextProvider.getAppContext().getReplicationProperties();
-        IReplicationStrategy replicationStrategy = repProperties.getReplicationStrategy();
-        final boolean replicationEnabled = repProperties.isParticipant(id);
+        final boolean replicationEnabled = repProperties.isReplicationEnabled();
+
         final CheckpointProperties checkpointProperties = new CheckpointProperties(txnProperties, id);
         if (LOGGER.isLoggable(Level.INFO)) {
             LOGGER.log(Level.INFO, "Checkpoint Properties: " + checkpointProperties);
@@ -84,11 +83,7 @@
             transactionManager.ensureMaxTxnId(latestCheckpoint.getMaxTxnId());
         }
 
-        if (replicationEnabled) {
-            this.logManager = new LogManagerWithReplication(this, replicationStrategy);
-        } else {
-            this.logManager = new LogManager(this);
-        }
+        this.logManager = replicationEnabled ? new LogManagerWithReplication(this) : new LogManager(this);
         this.recoveryManager = new RecoveryManager(this, serviceCtx);
         if (this.txnProperties.isCommitProfilerEnabled()) {
             ecp = new EntityCommitProfiler(this, this.txnProperties.getCommitProfilerReportInterval());
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/AutoFaultToleranceStrategy.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/AutoFaultToleranceStrategy.java
index e4a6f4b..c00b1b6 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/AutoFaultToleranceStrategy.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/AutoFaultToleranceStrategy.java
@@ -28,6 +28,7 @@
 import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+import java.util.stream.Collectors;
 
 import org.apache.asterix.app.nc.task.BindMetadataNodeTask;
 import org.apache.asterix.app.nc.task.CheckpointTask;
@@ -61,9 +62,11 @@
 import org.apache.asterix.common.replication.IFaultToleranceStrategy;
 import org.apache.asterix.common.replication.INCLifecycleMessage;
 import org.apache.asterix.common.replication.IReplicationStrategy;
+import org.apache.asterix.common.replication.Replica;
 import org.apache.asterix.common.transactions.IRecoveryManager.SystemState;
 import org.apache.asterix.metadata.MetadataManager;
 import org.apache.asterix.util.FaultToleranceUtil;
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.hyracks.api.application.ICCServiceContext;
 import org.apache.hyracks.api.application.IClusterLifecycleListener.ClusterEventType;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -84,9 +87,11 @@
     private IReplicationStrategy replicationStrategy;
     private ICCServiceContext serviceCtx;
     private Set<String> pendingStartupCompletionNodes = new HashSet<>();
+    private List<String> nodeIds;
+    private Map<String, SystemState> startupQueue = new HashMap<>();
 
     @Override
-    public void notifyNodeJoin(String nodeId) throws HyracksDataException {
+    public void notifyNodeJoin(String nodeId) {
         pendingStartupCompletionNodes.add(nodeId);
     }
 
@@ -135,14 +140,13 @@
     private synchronized void requestPartitionsTakeover(String failedNodeId) {
         //replica -> list of partitions to takeover
         Map<String, List<Integer>> partitionRecoveryPlan = new HashMap<>();
-        ICcApplicationContext appCtx = (ICcApplicationContext) serviceCtx.getApplicationContext();
-        ReplicationProperties replicationProperties = appCtx.getReplicationProperties();
         //collect the partitions of the failed NC
         List<ClusterPartition> lostPartitions = getNodeAssignedPartitions(failedNodeId);
         if (!lostPartitions.isEmpty()) {
             for (ClusterPartition partition : lostPartitions) {
                 //find replicas for this partitions
-                Set<String> partitionReplicas = replicationProperties.getNodeReplicasIds(partition.getNodeId());
+                Set<String> partitionReplicas = replicationStrategy.getRemoteReplicas(partition.getNodeId()).stream()
+                        .map(Replica::getId).collect(Collectors.toSet());
                 //find a replica that is still active
                 for (String replica : partitionReplicas) {
                     //TODO (mhubail) currently this assigns the partition to the first found active replica.
@@ -203,9 +207,8 @@
         planId2FailbackPlanMap.put(plan.getPlanId(), plan);
 
         //get all partitions this node requires to resync
-        ICcApplicationContext appCtx = (ICcApplicationContext) serviceCtx.getApplicationContext();
-        ReplicationProperties replicationProperties = appCtx.getReplicationProperties();
-        Set<String> nodeReplicas = replicationProperties.getNodeReplicasIds(failingBackNodeId);
+        Set<String> nodeReplicas = replicationStrategy.getRemoteReplicas(failingBackNodeId).stream().map(Replica::getId)
+                .collect(Collectors.toSet());
         clusterManager.getClusterPartitons();
         for (String replicaId : nodeReplicas) {
             ClusterPartition[] nodePartitions = clusterManager.getNodePartitions(replicaId);
@@ -425,6 +428,7 @@
         ft.messageBroker = (ICCMessageBroker) serviceCtx.getMessageBroker();
         ft.replicationStrategy = replicationStrategy;
         ft.serviceCtx = serviceCtx;
+        ft.nodeIds = serviceCtx.getAppConfig().getNCNames();
         return ft;
     }
 
@@ -486,18 +490,29 @@
     private synchronized void process(RegistrationTasksRequestMessage msg) throws HyracksDataException {
         final String nodeId = msg.getNodeId();
         final SystemState state = msg.getState();
-        List<INCLifecycleTask> tasks;
-        if (state == SystemState.BOOTSTRAPPING || state == SystemState.HEALTHY) {
-            tasks = buildStartupSequence(nodeId);
+        //last node needed to start
+        if (startupQueue.keySet().size() == nodeIds.size() - 1) {
+            startupQueue.put(nodeId, state);
+            for (Map.Entry<String, SystemState> nodeState : startupQueue.entrySet()) {
+                List<INCLifecycleTask> tasks = buildStartupSequence(nodeState.getKey());
+                RegistrationTasksResponseMessage response = new RegistrationTasksResponseMessage(nodeState.getKey(),
+                        tasks);
+                try {
+                    messageBroker.sendApplicationMessageToNC(response, nodeState.getKey());
+                } catch (Exception e) {
+                    throw HyracksDataException.create(e);
+                }
+            }
+        } else if (!failedNodes.isEmpty()) {
+            List<INCLifecycleTask> tasks = buildFailbackStartupSequence();
+            RegistrationTasksResponseMessage response = new RegistrationTasksResponseMessage(nodeId, tasks);
+            try {
+                messageBroker.sendApplicationMessageToNC(response, msg.getNodeId());
+            } catch (Exception e) {
+                throw HyracksDataException.create(e);
+            }
         } else {
-            // failed node returned. Need to start failback process
-            tasks = buildFailbackStartupSequence();
-        }
-        RegistrationTasksResponseMessage response = new RegistrationTasksResponseMessage(nodeId, tasks);
-        try {
-            messageBroker.sendApplicationMessageToNC(response, msg.getNodeId());
-        } catch (Exception e) {
-            throw HyracksDataException.create(e);
+            startupQueue.put(nodeId, state);
         }
     }
 
@@ -525,4 +540,4 @@
         }
         return tasks;
     }
-}
\ No newline at end of file
+}
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/FaultToleranceStrategyFactory.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/FaultToleranceStrategyFactory.java
index 4e8ecd9..fe24fca 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/FaultToleranceStrategyFactory.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/FaultToleranceStrategyFactory.java
@@ -18,47 +18,31 @@
  */
 package org.apache.asterix.app.replication;
 
-import java.util.HashMap;
-import java.util.Map;
-
+import org.apache.asterix.common.config.ReplicationProperties;
 import org.apache.asterix.common.replication.IFaultToleranceStrategy;
 import org.apache.asterix.common.replication.IReplicationStrategy;
-import org.apache.asterix.event.schema.cluster.Cluster;
 import org.apache.hyracks.api.application.ICCServiceContext;
 
 public class FaultToleranceStrategyFactory {
 
-    private static final Map<String, Class<? extends IFaultToleranceStrategy>> BUILT_IN_FAULT_TOLERANCE_STRATEGY =
-            new HashMap<>();
-
-    static {
-        BUILT_IN_FAULT_TOLERANCE_STRATEGY.put("no_fault_tolerance", NoFaultToleranceStrategy.class);
-        BUILT_IN_FAULT_TOLERANCE_STRATEGY.put("metadata_node", MetadataNodeFaultToleranceStrategy.class);
-        BUILT_IN_FAULT_TOLERANCE_STRATEGY.put("auto", AutoFaultToleranceStrategy.class);
-    }
-
     private FaultToleranceStrategyFactory() {
         throw new AssertionError();
     }
 
-    public static IFaultToleranceStrategy create(Cluster cluster, IReplicationStrategy repStrategy,
-            ICCServiceContext serviceCtx) {
-        boolean highAvailabilityEnabled =
-                cluster.getHighAvailability() != null && cluster.getHighAvailability().getEnabled() != null
-                        && Boolean.valueOf(cluster.getHighAvailability().getEnabled());
+    public static final String STRATEGY_NAME = "metadata_only";
 
-        if (!highAvailabilityEnabled || cluster.getHighAvailability().getFaultTolerance() == null
-                || cluster.getHighAvailability().getFaultTolerance().getStrategy() == null) {
-            return new NoFaultToleranceStrategy().from(serviceCtx, repStrategy);
+    public static IFaultToleranceStrategy create(ICCServiceContext serviceCtx, ReplicationProperties repProp,
+            IReplicationStrategy strategy) {
+        Class<? extends IFaultToleranceStrategy> clazz;
+        if (!repProp.isReplicationEnabled()) {
+            clazz = NoFaultToleranceStrategy.class;
+        } else if (STRATEGY_NAME.equals(repProp.getReplicationStrategy())) {
+            clazz = MetadataNodeFaultToleranceStrategy.class;
+        } else {
+            clazz = AutoFaultToleranceStrategy.class;
         }
-        String strategyName = cluster.getHighAvailability().getFaultTolerance().getStrategy().toLowerCase();
-        if (!BUILT_IN_FAULT_TOLERANCE_STRATEGY.containsKey(strategyName)) {
-            throw new IllegalArgumentException(String.format("Unsupported Replication Strategy. Available types: %s",
-                    BUILT_IN_FAULT_TOLERANCE_STRATEGY.keySet().toString()));
-        }
-        Class<? extends IFaultToleranceStrategy> clazz = BUILT_IN_FAULT_TOLERANCE_STRATEGY.get(strategyName);
         try {
-            return clazz.newInstance().from(serviceCtx, repStrategy);
+            return clazz.newInstance().from(serviceCtx, strategy);
         } catch (InstantiationException | IllegalAccessException e) {
             throw new IllegalStateException(e);
         }
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/MetadataNodeFaultToleranceStrategy.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/MetadataNodeFaultToleranceStrategy.java
index 3470d7b..0080bbd 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/MetadataNodeFaultToleranceStrategy.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/MetadataNodeFaultToleranceStrategy.java
@@ -234,6 +234,9 @@
         final List<INCLifecycleTask> tasks = new ArrayList<>();
         switch (state) {
             case PERMANENT_DATA_LOSS:
+                if (failedNodes.isEmpty()) { //bootstrap
+                    break;
+                }
                 // If the metadata node (or replica) failed and lost its data
                 // => Metadata Remote Recovery from standby replica
                 tasks.add(getMetadataPartitionRecoveryPlan());
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index 6976507..5609605 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -59,7 +59,6 @@
 import org.apache.asterix.app.result.ResultReader;
 import org.apache.asterix.common.api.IMetadataLockManager;
 import org.apache.asterix.common.cluster.IClusterStateManager;
-import org.apache.asterix.common.config.ClusterProperties;
 import org.apache.asterix.common.config.DatasetConfig.DatasetType;
 import org.apache.asterix.common.config.DatasetConfig.ExternalFilePendingOp;
 import org.apache.asterix.common.config.DatasetConfig.IndexType;
@@ -496,8 +495,8 @@
             throw new CompilationException("Unknown compaction policy: " + compactionPolicy);
         }
         String compactionPolicyFactoryClassName = compactionPolicyEntity.getClassName();
-        ILSMMergePolicyFactory mergePolicyFactory =
-                (ILSMMergePolicyFactory) Class.forName(compactionPolicyFactoryClassName).newInstance();
+        ILSMMergePolicyFactory mergePolicyFactory = (ILSMMergePolicyFactory) Class
+                .forName(compactionPolicyFactoryClassName).newInstance();
         if (isExternalDataset && mergePolicyFactory.getName().compareTo("correlated-prefix") == 0) {
             throw new CompilationException("The correlated-prefix merge policy cannot be used with external dataset.");
         }
@@ -584,10 +583,10 @@
                     }
                     ARecordType metaRecType = (ARecordType) metaItemType;
 
-                    List<List<String>> partitioningExprs =
-                            ((InternalDetailsDecl) dd.getDatasetDetailsDecl()).getPartitioningExprs();
-                    List<Integer> keySourceIndicators =
-                            ((InternalDetailsDecl) dd.getDatasetDetailsDecl()).getKeySourceIndicators();
+                    List<List<String>> partitioningExprs = ((InternalDetailsDecl) dd.getDatasetDetailsDecl())
+                            .getPartitioningExprs();
+                    List<Integer> keySourceIndicators = ((InternalDetailsDecl) dd.getDatasetDetailsDecl())
+                            .getKeySourceIndicators();
                     boolean autogenerated = ((InternalDetailsDecl) dd.getDatasetDetailsDecl()).isAutogenerated();
                     ARecordType aRecordType = (ARecordType) itemType;
                     List<IAType> partitioningTypes = ValidateUtil.validatePartitioningExpressions(aRecordType,
@@ -612,8 +611,8 @@
                     String adapter = ((ExternalDetailsDecl) dd.getDatasetDetailsDecl()).getAdapter();
                     Map<String, String> properties = ((ExternalDetailsDecl) dd.getDatasetDetailsDecl()).getProperties();
 
-                    datasetDetails =
-                            new ExternalDatasetDetails(adapter, properties, new Date(), TransactionState.COMMIT);
+                    datasetDetails = new ExternalDatasetDetails(adapter, properties, new Date(),
+                            TransactionState.COMMIT);
                     break;
                 default:
                     throw new CompilationException("Unknown datatype " + dd.getDatasetType());
@@ -704,8 +703,8 @@
     protected static void validateIfResourceIsActiveInFeed(ICcApplicationContext appCtx, Dataset dataset)
             throws CompilationException {
         StringBuilder builder = null;
-        ActiveNotificationHandler activeEventHandler =
-                (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();
+        ActiveNotificationHandler activeEventHandler = (ActiveNotificationHandler) appCtx
+                .getActiveNotificationHandler();
         IActiveEntityEventsListener[] listeners = activeEventHandler.getEventListeners();
         for (IActiveEntityEventsListener listener : listeners) {
             if (listener.isEntityUsingDataset(dataset) && listener.isActive()) {
@@ -808,8 +807,8 @@
 
             for (Pair<List<String>, IndexedTypeExpression> fieldExpr : stmtCreateIndex.getFieldExprs()) {
                 IAType fieldType = null;
-                ARecordType subType =
-                        KeyFieldTypeUtil.chooseSource(keySourceIndicators, keyIndex, aRecordType, metaRecordType);
+                ARecordType subType = KeyFieldTypeUtil.chooseSource(keySourceIndicators, keyIndex, aRecordType,
+                        metaRecordType);
                 boolean isOpen = subType.isOpen();
                 int i = 0;
                 if (fieldExpr.first.size() > 1 && !isOpen) {
@@ -845,8 +844,8 @@
                     if (stmtCreateIndex.hasMetaField()) {
                         throw new AlgebricksException("Typed open index can only be created on the record part");
                     }
-                    Map<TypeSignature, IAType> typeMap =
-                            TypeTranslator.computeTypes(mdTxnCtx, fieldExpr.second.getType(), indexName, dataverseName);
+                    Map<TypeSignature, IAType> typeMap = TypeTranslator.computeTypes(mdTxnCtx,
+                            fieldExpr.second.getType(), indexName, dataverseName);
                     TypeSignature typeSignature = new TypeSignature(dataverseName, indexName);
                     fieldType = typeMap.get(typeSignature);
                     overridesFieldTypes = true;
@@ -1061,8 +1060,8 @@
                 mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
                 bActiveTxn = true;
                 try {
-                    JobSpecification jobSpec =
-                            ExternalIndexingOperations.buildDropFilesIndexJobSpec(metadataProvider, ds);
+                    JobSpecification jobSpec = ExternalIndexingOperations.buildDropFilesIndexJobSpec(metadataProvider,
+                            ds);
                     MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
                     bActiveTxn = false;
                     runJob(hcc, jobSpec, jobFlags);
@@ -1218,8 +1217,8 @@
                 }
             }
             // # check whether any function in current dataverse is being used by others
-            List<Function> functionsInDataverse =
-                    MetadataManager.INSTANCE.getDataverseFunctions(mdTxnCtx, dataverseName);
+            List<Function> functionsInDataverse = MetadataManager.INSTANCE.getDataverseFunctions(mdTxnCtx,
+                    dataverseName);
             for (Function function : functionsInDataverse) {
                 if (checkWhetherFunctionIsBeingUsed(mdTxnCtx, function.getDataverseName(), function.getName(),
                         function.getArity(), dataverseName)) {
@@ -1230,8 +1229,8 @@
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
             bActiveTxn = false;
             // # disconnect all feeds from any datasets in the dataverse.
-            ActiveNotificationHandler activeEventHandler =
-                    (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();
+            ActiveNotificationHandler activeEventHandler = (ActiveNotificationHandler) appCtx
+                    .getActiveNotificationHandler();
             IActiveEntityEventsListener[] activeListeners = activeEventHandler.getEventListeners();
             for (IActiveEntityEventsListener listener : activeListeners) {
                 EntityId activeEntityId = listener.getEntityId();
@@ -1259,15 +1258,15 @@
                 String datasetName = dataset.getDatasetName();
                 DatasetType dsType = dataset.getDatasetType();
                 if (dsType == DatasetType.INTERNAL) {
-                    List<Index> indexes =
-                            MetadataManager.INSTANCE.getDatasetIndexes(mdTxnCtx, dataverseName, datasetName);
+                    List<Index> indexes = MetadataManager.INSTANCE.getDatasetIndexes(mdTxnCtx, dataverseName,
+                            datasetName);
                     for (Index index : indexes) {
                         jobsToExecute.add(IndexUtil.buildDropIndexJobSpec(index, metadataProvider, dataset));
                     }
                 } else {
                     // External dataset
-                    List<Index> indexes =
-                            MetadataManager.INSTANCE.getDatasetIndexes(mdTxnCtx, dataverseName, datasetName);
+                    List<Index> indexes = MetadataManager.INSTANCE.getDatasetIndexes(mdTxnCtx, dataverseName,
+                            datasetName);
                     for (int k = 0; k < indexes.size(); k++) {
                         if (ExternalIndexingOperations.isFileIndex(indexes.get(k))) {
                             jobsToExecute.add(
@@ -1375,8 +1374,8 @@
     public static void doDropDataset(String dataverseName, String datasetName, MetadataProvider metadataProvider,
             boolean ifExists, IHyracksClientConnection hcc, boolean dropCorrespondingNodeGroup) throws Exception {
         MutableObject<ProgressState> progress = new MutableObject<>(ProgressState.NO_PROGRESS);
-        MutableObject<MetadataTransactionContext> mdTxnCtx =
-                new MutableObject<>(MetadataManager.INSTANCE.beginTransaction());
+        MutableObject<MetadataTransactionContext> mdTxnCtx = new MutableObject<>(
+                MetadataManager.INSTANCE.beginTransaction());
         MutableBoolean bActiveTxn = new MutableBoolean(true);
         metadataProvider.setMetadataTxnContext(mdTxnCtx.getValue());
         List<JobSpecification> jobsToExecute = new ArrayList<>();
@@ -1451,8 +1450,8 @@
                 throw new AlgebricksException(
                         "There is no dataset with this name " + datasetName + " in dataverse " + dataverseName);
             }
-            ActiveNotificationHandler activeEventHandler =
-                    (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();
+            ActiveNotificationHandler activeEventHandler = (ActiveNotificationHandler) appCtx
+                    .getActiveNotificationHandler();
             IActiveEntityEventsListener[] listeners = activeEventHandler.getEventListeners();
             StringBuilder builder = null;
             for (IActiveEntityEventsListener listener : listeners) {
@@ -1521,8 +1520,8 @@
                 }
                 // #. prepare a job to drop the index in NC.
                 jobsToExecute.add(IndexUtil.buildDropIndexJobSpec(index, metadataProvider, ds));
-                List<Index> datasetIndexes =
-                        MetadataManager.INSTANCE.getDatasetIndexes(mdTxnCtx, dataverseName, datasetName);
+                List<Index> datasetIndexes = MetadataManager.INSTANCE.getDatasetIndexes(mdTxnCtx, dataverseName,
+                        datasetName);
                 if (datasetIndexes.size() == 2) {
                     dropFilesIndex = true;
                     // only one index + the files index, we need to delete both of the indexes
@@ -1763,9 +1762,9 @@
         MetadataLockUtil.modifyDatasetBegin(lockManager, metadataProvider.getLocks(), dataverseName,
                 dataverseName + "." + datasetName);
         try {
-            CompiledLoadFromFileStatement cls =
-                    new CompiledLoadFromFileStatement(dataverseName, loadStmt.getDatasetName().getValue(),
-                            loadStmt.getAdapter(), loadStmt.getProperties(), loadStmt.dataIsAlreadySorted());
+            CompiledLoadFromFileStatement cls = new CompiledLoadFromFileStatement(dataverseName,
+                    loadStmt.getDatasetName().getValue(), loadStmt.getAdapter(), loadStmt.getProperties(),
+                    loadStmt.dataIsAlreadySorted());
             JobSpecification spec = apiFramework.compileQuery(hcc, metadataProvider, null, 0, null, sessionOutput, cls);
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
             bActiveTxn = false;
@@ -1882,8 +1881,8 @@
             throws RemoteException, AlgebricksException, ACIDException {
 
         // Query Rewriting (happens under the same ongoing metadata transaction)
-        Pair<IReturningStatement, Integer> rewrittenResult =
-                apiFramework.reWriteQuery(declaredFunctions, metadataProvider, query, sessionOutput);
+        Pair<IReturningStatement, Integer> rewrittenResult = apiFramework.reWriteQuery(declaredFunctions,
+                metadataProvider, query, sessionOutput);
 
         // Query Compilation (happens under the same ongoing metadata transaction)
         return apiFramework.compileQuery(clusterInfoCollector, metadataProvider, (Query) rewrittenResult.first,
@@ -1896,8 +1895,8 @@
 
         // Insert/upsert statement rewriting (happens under the same ongoing metadata
         // transaction)
-        Pair<IReturningStatement, Integer> rewrittenResult =
-                apiFramework.reWriteQuery(declaredFunctions, metadataProvider, insertUpsert, sessionOutput);
+        Pair<IReturningStatement, Integer> rewrittenResult = apiFramework.reWriteQuery(declaredFunctions,
+                metadataProvider, insertUpsert, sessionOutput);
 
         InsertStatement rewrittenInsertUpsert = (InsertStatement) rewrittenResult.first;
         String dataverseName = getActiveDataverse(rewrittenInsertUpsert.getDataverseName());
@@ -1969,8 +1968,8 @@
         try {
             mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
             metadataProvider.setMetadataTxnContext(mdTxnCtx);
-            FeedPolicyEntity feedPolicy =
-                    MetadataManager.INSTANCE.getFeedPolicy(metadataProvider.getMetadataTxnContext(), dataverse, policy);
+            FeedPolicyEntity feedPolicy = MetadataManager.INSTANCE
+                    .getFeedPolicy(metadataProvider.getMetadataTxnContext(), dataverse, policy);
             if (feedPolicy != null) {
                 if (cfps.getIfNotExists()) {
                     MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
@@ -2048,10 +2047,10 @@
             throws Exception {
         MetadataTransactionContext mdTxnCtx = metadataProvider.getMetadataTxnContext();
         EntityId feedId = feed.getFeedId();
-        ActiveNotificationHandler activeNotificationHandler =
-                (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();
-        ActiveEntityEventsListener listener =
-                (ActiveEntityEventsListener) activeNotificationHandler.getListener(feedId);
+        ActiveNotificationHandler activeNotificationHandler = (ActiveNotificationHandler) appCtx
+                .getActiveNotificationHandler();
+        ActiveEntityEventsListener listener = (ActiveEntityEventsListener) activeNotificationHandler
+                .getListener(feedId);
         if (listener != null && listener.getState() != ActivityState.STOPPED) {
             throw new AlgebricksException("Feed " + feedId
                     + " is currently active and connected to the following dataset(s) \n" + listener.toString());
@@ -2120,15 +2119,15 @@
                 String fqName = feedConnection.getDataverseName() + "." + feedConnection.getDatasetName();
                 lockManager.acquireDatasetReadLock(metadataProvider.getLocks(), fqName);
             }
-            ActiveNotificationHandler activeEventHandler =
-                    (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();
+            ActiveNotificationHandler activeEventHandler = (ActiveNotificationHandler) appCtx
+                    .getActiveNotificationHandler();
             ActiveEntityEventsListener listener = (ActiveEntityEventsListener) activeEventHandler.getListener(entityId);
             if (listener == null) {
                 // Prepare policy
                 List<Dataset> datasets = new ArrayList<>();
                 for (FeedConnection connection : feedConnections) {
-                    Dataset ds =
-                            metadataProvider.findDataset(connection.getDataverseName(), connection.getDatasetName());
+                    Dataset ds = metadataProvider.findDataset(connection.getDataverseName(),
+                            connection.getDatasetName());
                     datasets.add(ds);
                 }
                 listener = new FeedEventsListener(this, metadataProvider.getApplicationContext(), hcc, entityId,
@@ -2153,8 +2152,8 @@
         String dataverseName = getActiveDataverse(sfst.getDataverseName());
         String feedName = sfst.getFeedName().getValue();
         EntityId entityId = new EntityId(Feed.EXTENSION_NAME, dataverseName, feedName);
-        ActiveNotificationHandler activeEventHandler =
-                (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();
+        ActiveNotificationHandler activeEventHandler = (ActiveNotificationHandler) appCtx
+                .getActiveNotificationHandler();
         // Obtain runtime info from ActiveListener
         ActiveEntityEventsListener listener = (ActiveEntityEventsListener) activeEventHandler.getListener(entityId);
         if (listener == null) {
@@ -2180,8 +2179,8 @@
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
         // TODO: Check whether we are connecting a change feed to a non-meta dataset
         // Check whether feed is alive
-        ActiveNotificationHandler activeEventHandler =
-                (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();
+        ActiveNotificationHandler activeEventHandler = (ActiveNotificationHandler) appCtx
+                .getActiveNotificationHandler();
         // Transaction handling
         MetadataLockUtil.connectFeedBegin(lockManager, metadataProvider.getLocks(), dataverseName,
                 dataverseName + "." + datasetName, dataverseName + "." + feedName);
@@ -2234,8 +2233,8 @@
         MetadataLockUtil.disconnectFeedBegin(lockManager, metadataProvider.getLocks(), dataverseName,
                 dataverseName + "." + datasetName, dataverseName + "." + cfs.getFeedName());
         try {
-            ActiveNotificationHandler activeEventHandler =
-                    (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();
+            ActiveNotificationHandler activeEventHandler = (ActiveNotificationHandler) appCtx
+                    .getActiveNotificationHandler();
             // Check whether feed is alive
             ActiveEntityEventsListener listener = (ActiveEntityEventsListener) activeEventHandler
                     .getListener(new EntityId(Feed.EXTENSION_NAME, dataverseName, feedName));
@@ -2290,8 +2289,8 @@
                 throw new AlgebricksException(
                         "Cannot compact the extrenal dataset " + datasetName + " because it has no indexes");
             }
-            Dataverse dataverse =
-                    MetadataManager.INSTANCE.getDataverse(metadataProvider.getMetadataTxnContext(), dataverseName);
+            Dataverse dataverse = MetadataManager.INSTANCE.getDataverse(metadataProvider.getMetadataTxnContext(),
+                    dataverseName);
             jobsToExecute.add(DatasetUtil.compactDatasetJobSpec(dataverse, datasetName, metadataProvider));
 
             if (ds.getDatasetType() == DatasetType.INTERNAL) {
@@ -2421,8 +2420,8 @@
     }
 
     private void updateJobStats(JobId jobId, Stats stats) {
-        final IJobManager jobManager =
-                ((ClusterControllerService) appCtx.getServiceContext().getControllerService()).getJobManager();
+        final IJobManager jobManager = ((ClusterControllerService) appCtx.getServiceContext().getControllerService())
+                .getJobManager();
         final JobRun run = jobManager.get(jobId);
         if (run == null || run.getStatus() != JobStatus.TERMINATED) {
             return;
@@ -2790,8 +2789,8 @@
         String dataverseNameTo = getActiveDataverse(pregelixStmt.getDataverseNameTo());
         String datasetNameFrom = pregelixStmt.getDatasetNameFrom().getValue();
         String datasetNameTo = pregelixStmt.getDatasetNameTo().getValue();
-        String fullyQualifiedDatasetNameTo =
-                DatasetUtil.isFullyQualifiedName(datasetNameTo) ? datasetNameTo : dataverseNameTo + '.' + datasetNameTo;
+        String fullyQualifiedDatasetNameTo = DatasetUtil.isFullyQualifiedName(datasetNameTo) ? datasetNameTo
+                : dataverseNameTo + '.' + datasetNameTo;
         MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
         MetadataLockUtil.insertDeleteUpsertBegin(lockManager, metadataProvider.getLocks(), fullyQualifiedDatasetNameTo);
@@ -2874,8 +2873,8 @@
                 throw new AlgebricksException("Tried to access non-existing dataset: " + datasetNameTo);
             }
             // Cleans up the sink dataset -- Drop and then Create.
-            DropDatasetStatement dropStmt =
-                    new DropDatasetStatement(new Identifier(dataverseNameTo), pregelixStmt.getDatasetNameTo(), true);
+            DropDatasetStatement dropStmt = new DropDatasetStatement(new Identifier(dataverseNameTo),
+                    pregelixStmt.getDatasetNameTo(), true);
             this.handleDatasetDropStatement(metadataProvider, dropStmt, hcc, null);
             IDatasetDetailsDecl idd = new InternalDetailsDecl(toIndex.getKeyFieldNames(),
                     toIndex.getKeyFieldSourceIndicators(), false, null);
@@ -2969,7 +2968,7 @@
             String fromDatasetName, String toDataverseName, String toDatasetName) {
         // Constructs AsterixDB parameters, e.g., URL, source dataset and sink dataset.
         ExternalProperties externalProperties = appCtx.getExternalProperties();
-        String clientIP = ClusterProperties.INSTANCE.getCluster().getMasterNode().getClientIp();
+        String clientIP = appCtx.getServiceContext().getCCContext().getClusterControllerInfo().getClientNetAddress();
         StringBuilder asterixdbParameterBuilder = new StringBuilder();
         asterixdbParameterBuilder.append(
                 "pregelix.asterixdb.url=" + "http://" + clientIP + ":" + externalProperties.getAPIServerPort() + ",");
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/drivers/AsterixCLI.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/drivers/AsterixCLI.java
deleted file mode 100644
index c9b3565..0000000
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/drivers/AsterixCLI.java
+++ /dev/null
@@ -1,98 +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.drivers;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.Reader;
-import java.util.List;
-
-import org.apache.asterix.api.common.AsterixHyracksIntegrationUtil;
-import org.apache.asterix.api.java.AsterixJavaClient;
-import org.apache.asterix.app.translator.DefaultStatementExecutorFactory;
-import org.apache.asterix.common.config.GlobalConfig;
-import org.apache.asterix.common.dataflow.ICcApplicationContext;
-import org.apache.asterix.compiler.provider.AqlCompilationProvider;
-import org.apache.asterix.compiler.provider.ILangCompilationProvider;
-import org.apache.asterix.file.StorageComponentProvider;
-import org.apache.commons.io.FileUtils;
-import org.kohsuke.args4j.Argument;
-import org.kohsuke.args4j.CmdLineParser;
-import org.kohsuke.args4j.Option;
-
-public class AsterixCLI {
-    private static class Options {
-        @Option(name = "-properties", usage = "Name of properties file", required = true)
-        public String properties;
-
-        @Option(name = "-output", usage = "Output folder to place results", required = true)
-        public String outputFolder;
-
-        @Argument(usage = "AQL Files to run", multiValued = true, required = true)
-        public List<String> args;
-    }
-
-    private static AsterixHyracksIntegrationUtil integrationUtil = new AsterixHyracksIntegrationUtil();
-
-    public static void main(String args[]) throws Exception {
-        Options options = new Options();
-        CmdLineParser parser = new CmdLineParser(options);
-        parser.parseArgument(args);
-        ILangCompilationProvider compilationProvider = new AqlCompilationProvider();
-        setUp(options);
-        try {
-            for (String queryFile : options.args) {
-                Reader in = new FileReader(queryFile);
-                AsterixJavaClient ajc =
-                        new AsterixJavaClient((ICcApplicationContext) integrationUtil.cc.getApplicationContext(),
-                        integrationUtil.getHyracksClientConnection(), in,
-                        compilationProvider, new DefaultStatementExecutorFactory(), new StorageComponentProvider());
-                try {
-                    ajc.compile(true, false, false, false, false, true, false);
-                } finally {
-                    in.close();
-                }
-                ajc.execute();
-            }
-        } finally {
-            tearDown();
-        }
-        System.exit(0);
-    }
-
-    public static void setUp(Options options) throws Exception {
-        System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, options.properties);
-        File outdir = new File(options.outputFolder);
-        outdir.mkdirs();
-
-        File log = new File("asterix_logs");
-        if (log.exists()) {
-            FileUtils.deleteDirectory(log);
-        }
-        File lsn = new File("last_checkpoint_lsn");
-        lsn.deleteOnExit();
-
-        integrationUtil.init(false);
-    }
-
-    public static void tearDown() throws Exception {
-        integrationUtil.deinit(false);
-    }
-
-}
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
index 8283257..40d8996 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
@@ -26,6 +26,7 @@
 import static org.apache.asterix.common.api.IClusterManagementWork.ClusterState.SHUTTING_DOWN;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.concurrent.ConcurrentMap;
@@ -58,17 +59,19 @@
 import org.apache.asterix.app.external.ExternalLibraryUtils;
 import org.apache.asterix.app.replication.FaultToleranceStrategyFactory;
 import org.apache.asterix.common.api.AsterixThreadFactory;
-import org.apache.asterix.common.api.IClusterManagementWork.ClusterState;
+import org.apache.asterix.common.api.IClusterManagementWork;
 import org.apache.asterix.common.api.INodeJobTracker;
 import org.apache.asterix.common.config.AsterixExtension;
-import org.apache.asterix.common.config.ClusterProperties;
 import org.apache.asterix.common.config.ExternalProperties;
 import org.apache.asterix.common.config.MetadataProperties;
+import org.apache.asterix.common.config.PropertiesAccessor;
+import org.apache.asterix.common.config.ReplicationProperties;
 import org.apache.asterix.common.context.IStorageComponentProvider;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.library.ILibraryManager;
 import org.apache.asterix.common.replication.IFaultToleranceStrategy;
 import org.apache.asterix.common.replication.IReplicationStrategy;
+import org.apache.asterix.common.replication.ReplicationStrategyFactory;
 import org.apache.asterix.common.utils.Servlets;
 import org.apache.asterix.external.library.ExternalLibraryManager;
 import org.apache.asterix.file.StorageComponentProvider;
@@ -76,7 +79,6 @@
 import org.apache.asterix.metadata.MetadataManager;
 import org.apache.asterix.metadata.api.IAsterixStateProxy;
 import org.apache.asterix.metadata.bootstrap.AsterixStateProxy;
-import org.apache.asterix.metadata.cluster.ClusterManagerProvider;
 import org.apache.asterix.metadata.lock.MetadataLockManager;
 import org.apache.asterix.runtime.job.resource.JobCapacityController;
 import org.apache.asterix.runtime.utils.CcApplicationContext;
@@ -122,8 +124,8 @@
         if (args.length > 0) {
             throw new IllegalArgumentException("Unrecognized argument(s): " + Arrays.toString(args));
         }
-        final ClusterControllerService controllerService =
-                (ClusterControllerService) ccServiceCtx.getControllerService();
+        final ClusterControllerService controllerService = (ClusterControllerService) ccServiceCtx
+                .getControllerService();
         ccServiceCtx.setMessageBroker(new CCMessageBroker(controllerService));
 
         configureLoggingLevel(ccServiceCtx.getAppConfig().getLoggingLevel(ExternalProperties.Option.LOG_LEVEL));
@@ -136,16 +138,19 @@
         int port = ccServiceCtx.getCCContext().getClusterControllerInfo().getClientNetPort();
         hcc = new HyracksConnection(strIP, port);
         ILibraryManager libraryManager = new ExternalLibraryManager();
-
-        IReplicationStrategy repStrategy = ClusterProperties.INSTANCE.getReplicationStrategy();
-        IFaultToleranceStrategy ftStrategy = FaultToleranceStrategyFactory
-                .create(ClusterProperties.INSTANCE.getCluster(), repStrategy, ccServiceCtx);
+        ReplicationProperties repProp = new ReplicationProperties(
+                PropertiesAccessor.getInstance(ccServiceCtx.getAppConfig()));
+        IReplicationStrategy repStrategy = ReplicationStrategyFactory.create(repProp.getReplicationStrategy(), repProp,
+                getConfigManager());
+        IFaultToleranceStrategy ftStrategy = FaultToleranceStrategyFactory.create(ccServiceCtx, repProp, repStrategy);
         ExternalLibraryUtils.setUpExternaLibraries(libraryManager, false);
         componentProvider = new StorageComponentProvider();
         GlobalRecoveryManager globalRecoveryManager = createGlobalRecoveryManager();
         statementExecutorCtx = new StatementExecutorContext();
         appCtx = createApplicationContext(libraryManager, globalRecoveryManager, ftStrategy);
-        ccExtensionManager = new CCExtensionManager(getExtensions());
+        List<AsterixExtension> extensions = new ArrayList<>();
+        extensions.addAll(this.getExtensions());
+        ccExtensionManager = new CCExtensionManager(extensions);
         appCtx.setExtensionManager(ccExtensionManager);
         final CCConfig ccConfig = controllerService.getCCConfig();
         if (System.getProperty("java.rmi.server.hostname") == null) {
@@ -162,7 +167,6 @@
         webManager = new WebManager();
         configureServers();
         webManager.start();
-        ClusterManagerProvider.getClusterManager().registerSubscriber(globalRecoveryManager);
         ccServiceCtx.addClusterLifecycleListener(new ClusterLifecycleListener(appCtx));
         final INodeJobTracker nodeJobTracker = appCtx.getNodeJobTracker();
         ccServiceCtx.addJobLifecycleListener(nodeJobTracker);
@@ -222,8 +226,8 @@
     }
 
     protected HttpServer setupJSONAPIServer(ExternalProperties externalProperties) throws Exception {
-        HttpServer jsonAPIServer =
-                new HttpServer(webManager.getBosses(), webManager.getWorkers(), externalProperties.getAPIServerPort());
+        HttpServer jsonAPIServer = new HttpServer(webManager.getBosses(), webManager.getWorkers(),
+                externalProperties.getAPIServerPort());
         jsonAPIServer.setAttribute(HYRACKS_CONNECTION_ATTR, hcc);
         jsonAPIServer.setAttribute(ASTERIX_APP_CONTEXT_INFO_ATTR, appCtx);
         jsonAPIServer.setAttribute(ServletConstants.EXECUTOR_SERVICE_ATTR,
@@ -346,8 +350,7 @@
     @Override
     public void startupCompleted() throws Exception {
         ccServiceCtx.getControllerService().getExecutor().submit(() -> {
-            appCtx.getClusterStateManager().waitForState(ClusterState.ACTIVE);
-            ClusterManagerProvider.getClusterManager().notifyStartupCompleted();
+            appCtx.getClusterStateManager().waitForState(IClusterManagementWork.ClusterState.ACTIVE);
             return null;
         });
     }
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterLifecycleListener.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterLifecycleListener.java
index 8f479eb..217d6e2 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterLifecycleListener.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterLifecycleListener.java
@@ -28,18 +28,14 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.apache.asterix.common.api.IClusterEventsSubscriber;
 import org.apache.asterix.common.api.IClusterManagementWork;
 import org.apache.asterix.common.api.IClusterManagementWorkResponse;
 import org.apache.asterix.common.api.IClusterManagementWorkResponse.Status;
 import org.apache.asterix.common.cluster.IClusterStateManager;
-import org.apache.asterix.common.config.ClusterProperties;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
-import org.apache.asterix.event.schema.cluster.Node;
 import org.apache.asterix.metadata.MetadataManager;
 import org.apache.asterix.metadata.cluster.AddNodeWork;
 import org.apache.asterix.metadata.cluster.AddNodeWorkResponse;
-import org.apache.asterix.metadata.cluster.ClusterManagerProvider;
 import org.apache.asterix.metadata.cluster.RemoveNodeWork;
 import org.apache.asterix.metadata.cluster.RemoveNodeWorkResponse;
 import org.apache.hyracks.api.application.IClusterLifecycleListener;
@@ -56,7 +52,7 @@
 
     public ClusterLifecycleListener(ICcApplicationContext appCtx) {
         this.appCtx = appCtx;
-        eventHandler = new ClusterWorkExecutor(appCtx, workRequestQueue);
+        eventHandler = new ClusterWorkExecutor(workRequestQueue);
         Thread t = new Thread(eventHandler);
         if (LOGGER.isLoggable(Level.INFO)) {
             LOGGER.info("Starting cluster event handler");
@@ -80,17 +76,6 @@
         Set<String> nodeAddition = new HashSet<>();
         nodeAddition.add(nodeId);
         updateProgress(ClusterEventType.NODE_JOIN, nodeAddition);
-        Set<IClusterEventsSubscriber> subscribers =
-                ClusterManagerProvider.getClusterManager().getRegisteredClusterEventSubscribers();
-        Set<IClusterManagementWork> work = new HashSet<>();
-        for (IClusterEventsSubscriber sub : subscribers) {
-            Set<IClusterManagementWork> workRequest = sub.notifyNodeJoin(nodeId);
-            work.addAll(workRequest);
-        }
-        if (!work.isEmpty()) {
-            executeWorkSet(work);
-        }
-
     }
 
     @Override
@@ -108,13 +93,7 @@
             }
         }
         updateProgress(ClusterEventType.NODE_FAILURE, deadNodeIds);
-        Set<IClusterEventsSubscriber> subscribers =
-                ClusterManagerProvider.getClusterManager().getRegisteredClusterEventSubscribers();
         Set<IClusterManagementWork> work = new HashSet<>();
-        for (IClusterEventsSubscriber sub : subscribers) {
-            Set<IClusterManagementWork> workRequest = sub.notifyNodeFailure(deadNodeIds);
-            work.addAll(workRequest);
-        }
         if (!work.isEmpty()) {
             executeWorkSet(work);
         }
@@ -163,38 +142,14 @@
                 case REMOVE_NODE:
                     nodesToRemove.addAll(((RemoveNodeWork) w).getNodesToBeRemoved());
                     nodeRemovalRequests.add(w);
-                    RemoveNodeWorkResponse response =
-                            new RemoveNodeWorkResponse((RemoveNodeWork) w, Status.IN_PROGRESS);
+                    RemoveNodeWorkResponse response = new RemoveNodeWorkResponse((RemoveNodeWork) w,
+                            Status.IN_PROGRESS);
                     pendingWorkResponses.add(response);
                     break;
             }
         }
 
         List<String> addedNodes = new ArrayList<>();
-        String asterixInstanceName = ClusterProperties.INSTANCE.getCluster().getInstanceName();
-        IClusterStateManager csm = appCtx.getClusterStateManager();
-        for (int i = 0; i < nodesToAdd; i++) {
-            Node node = csm.getAvailableSubstitutionNode();
-            if (node != null) {
-                try {
-                    ClusterManagerProvider.getClusterManager().addNode(appCtx, node);
-                    addedNodes.add(asterixInstanceName + "_" + node.getId());
-                    if (LOGGER.isLoggable(Level.INFO)) {
-                        LOGGER.info("Added NC at:" + node.getId());
-                    }
-                } catch (Exception e) {
-                    if (LOGGER.isLoggable(Level.WARNING)) {
-                        LOGGER.warning("Unable to add NC at:" + node.getId());
-                    }
-                    e.printStackTrace();
-                }
-            } else {
-                if (LOGGER.isLoggable(Level.WARNING)) {
-                    LOGGER.warning("Unable to add NC: no more available nodes");
-                }
-
-            }
-        }
 
         for (AddNodeWork w : nodeAdditionRequests) {
             int n = w.getNumberOfNodesRequested();
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterWorkExecutor.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterWorkExecutor.java
index 2977a58..bcc1c60 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterWorkExecutor.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterWorkExecutor.java
@@ -25,23 +25,16 @@
 import java.util.logging.Logger;
 
 import org.apache.asterix.common.api.IClusterManagementWork;
-import org.apache.asterix.common.cluster.IClusterStateManager;
-import org.apache.asterix.common.dataflow.ICcApplicationContext;
-import org.apache.asterix.common.exceptions.AsterixException;
-import org.apache.asterix.event.schema.cluster.Node;
 import org.apache.asterix.metadata.cluster.AddNodeWork;
-import org.apache.asterix.metadata.cluster.ClusterManagerProvider;
 import org.apache.asterix.metadata.cluster.RemoveNodeWork;
 
 public class ClusterWorkExecutor implements Runnable {
 
     private static final Logger LOGGER = Logger.getLogger(ClusterWorkExecutor.class.getName());
 
-    private final ICcApplicationContext appCtx;
     private final LinkedBlockingQueue<Set<IClusterManagementWork>> inbox;
 
-    public ClusterWorkExecutor(ICcApplicationContext appCtx, LinkedBlockingQueue<Set<IClusterManagementWork>> inbox) {
-        this.appCtx = appCtx;
+    public ClusterWorkExecutor(LinkedBlockingQueue<Set<IClusterManagementWork>> inbox) {
         this.inbox = inbox;
     }
 
@@ -69,30 +62,6 @@
                     }
                 }
 
-                IClusterStateManager csm = appCtx.getClusterStateManager();
-                Set<Node> addedNodes = new HashSet<>();
-                for (int i = 0; i < nodesToAdd; i++) {
-                    Node node = csm.getAvailableSubstitutionNode();
-                    if (node != null) {
-                        try {
-                            ClusterManagerProvider.getClusterManager().addNode(appCtx, node);
-                            addedNodes.add(node);
-                            if (LOGGER.isLoggable(Level.INFO)) {
-                                LOGGER.info("Added NC at:" + node.getId());
-                            }
-                        } catch (AsterixException e) {
-                            if (LOGGER.isLoggable(Level.WARNING)) {
-                                LOGGER.warning("Unable to add NC at:" + node.getId());
-                            }
-                            e.printStackTrace();
-                        }
-                    } else {
-                        if (LOGGER.isLoggable(Level.WARNING)) {
-                            LOGGER.warning("Unable to add NC: no more available nodes");
-                        }
-                    }
-                }
-
             } catch (InterruptedException e) {
                 if (LOGGER.isLoggable(Level.SEVERE)) {
                     LOGGER.severe("interruped" + e.getMessage());
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
index 36ed35d..63178e1 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
@@ -32,7 +32,6 @@
 import org.apache.asterix.common.api.AsterixThreadFactory;
 import org.apache.asterix.common.api.INcApplicationContext;
 import org.apache.asterix.common.config.AsterixExtension;
-import org.apache.asterix.common.config.ClusterProperties;
 import org.apache.asterix.common.config.ExternalProperties;
 import org.apache.asterix.common.config.MessagingProperties;
 import org.apache.asterix.common.config.MetadataProperties;
@@ -46,8 +45,6 @@
 import org.apache.asterix.common.utils.Servlets;
 import org.apache.asterix.common.utils.StorageConstants;
 import org.apache.asterix.common.utils.StoragePathUtil;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
 import org.apache.asterix.messaging.MessagingChannelInterfaceFactory;
 import org.apache.asterix.messaging.NCMessageBroker;
 import org.apache.asterix.utils.CompatibilityUtil;
@@ -117,8 +114,8 @@
         MessagingProperties messagingProperties = runtimeContext.getMessagingProperties();
         IMessageBroker messageBroker = new NCMessageBroker(controllerService, messagingProperties);
         this.ncServiceCtx.setMessageBroker(messageBroker);
-        MessagingChannelInterfaceFactory interfaceFactory =
-                new MessagingChannelInterfaceFactory((NCMessageBroker) messageBroker, messagingProperties);
+        MessagingChannelInterfaceFactory interfaceFactory = new MessagingChannelInterfaceFactory(
+                (NCMessageBroker) messageBroker, messagingProperties);
         this.ncServiceCtx.setMessagingChannelInterfaceFactory(interfaceFactory);
         final Checkpoint latestCheckpoint = runtimeContext.getTransactionSubsystem().getCheckpointManager().getLatest();
         if (latestCheckpoint != null) {
@@ -191,8 +188,8 @@
         final NodeProperties nodeProperties = runtimeContext.getNodeProperties();
         IRecoveryManager recoveryMgr = runtimeContext.getTransactionSubsystem().getRecoveryManager();
         SystemState state = recoveryMgr.getSystemState();
-        if (state == SystemState.PERMANENT_DATA_LOSS && (nodeProperties.isInitialRun() || nodeProperties
-                .isVirtualNc())) {
+        if (state == SystemState.PERMANENT_DATA_LOSS
+                && (nodeProperties.isInitialRun() || nodeProperties.isVirtualNc())) {
             state = SystemState.BOOTSTRAPPING;
         }
         // Request registration tasks from CC
@@ -218,8 +215,8 @@
         StorageProperties storageProperties = runtimeContext.getStorageProperties();
         // Deducts the reserved buffer cache size and memory component size from the maxium heap size,
         // and deducts one core for processing heartbeats.
-        long memorySize = Runtime.getRuntime().maxMemory() - storageProperties.getBufferCacheSize() - storageProperties
-                .getMemoryComponentGlobalBudget();
+        long memorySize = Runtime.getRuntime().maxMemory() - storageProperties.getBufferCacheSize()
+                - storageProperties.getMemoryComponentGlobalBudget();
         int allCores = Runtime.getRuntime().availableProcessors();
         int maximumCoresForComputation = allCores > 1 ? allCores - 1 : allCores;
         return new NodeCapacity(memorySize, maximumCoresForComputation);
@@ -237,54 +234,8 @@
     private void updateOnNodeJoin() {
         MetadataProperties metadataProperties = runtimeContext.getMetadataProperties();
         if (!metadataProperties.getNodeNames().contains(nodeId)) {
-            Cluster cluster = ClusterProperties.INSTANCE.getCluster();
-            if (cluster == null) {
-                throw new IllegalStateException("No cluster configuration found for this instance");
-            }
             NCConfig ncConfig = ((NodeControllerService) ncServiceCtx.getControllerService()).getConfiguration();
             ncConfig.getConfigManager().ensureNode(nodeId);
-            String asterixInstanceName = metadataProperties.getInstanceName();
-            TransactionProperties txnProperties = runtimeContext.getTransactionProperties();
-            Node self = null;
-            List<Node> nodes;
-            if (cluster.getSubstituteNodes() != null) {
-                nodes = cluster.getSubstituteNodes().getNode();
-            } else {
-                throw new IllegalStateException("Unknown node joining the cluster");
-            }
-            for (Node node : nodes) {
-                String ncId = asterixInstanceName + "_" + node.getId();
-                if (ncId.equalsIgnoreCase(nodeId)) {
-                    String storeDir = StorageConstants.STORAGE_ROOT_DIR_NAME;
-                    String nodeIoDevices = node.getIodevices() == null ? cluster.getIodevices() : node.getIodevices();
-                    String[] ioDevicePaths = nodeIoDevices.trim().split(",");
-                    for (int i = 0; i < ioDevicePaths.length; i++) {
-                        // construct full store path
-                        ioDevicePaths[i] += File.separator + storeDir;
-                    }
-                    metadataProperties.getStores().put(nodeId, ioDevicePaths);
-
-                    String coredumpPath = node.getLogDir() == null ? cluster.getLogDir() : node.getLogDir();
-                    metadataProperties.getCoredumpPaths().put(nodeId, coredumpPath);
-
-                    String txnLogDir = node.getTxnLogDir() == null ? cluster.getTxnLogDir() : node.getTxnLogDir();
-                    txnProperties.getLogDirectories().put(nodeId, txnLogDir);
-
-                    if (LOGGER.isLoggable(Level.INFO)) {
-                        LOGGER.info("Store set to : " + storeDir);
-                        LOGGER.info("Coredump dir set to : " + coredumpPath);
-                        LOGGER.info("Transaction log dir set to :" + txnLogDir);
-                    }
-                    self = node;
-                    break;
-                }
-            }
-            if (self != null) {
-                cluster.getSubstituteNodes().getNode().remove(self);
-                cluster.getNode().add(self);
-            } else {
-                throw new IllegalStateException("Unknown node joining the cluster");
-            }
         }
     }
 
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/util/FaultToleranceUtil.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/util/FaultToleranceUtil.java
index 9887c57..64e9810 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/util/FaultToleranceUtil.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/util/FaultToleranceUtil.java
@@ -20,7 +20,6 @@
 
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import java.util.stream.Collectors;
@@ -49,16 +48,18 @@
         List<String> primaryRemoteReplicas = replicationStrategy.getRemotePrimaryReplicas(nodeId).stream()
                 .map(Replica::getId).collect(Collectors.toList());
         String nodeIdAddress = StringUtils.EMPTY;
-        Map<String, Map<IOption, Object>> ncConfiguration = clusterManager.getNcConfiguration();
+        int nodePort = -1;
+        Map<String, Map<IOption, Object>> activeNcConfiguration = clusterManager.getActiveNcConfiguration();
+
         // In case the node joined with a new IP address, we need to send it to the other replicas
         if (event == ClusterEventType.NODE_JOIN) {
-            nodeIdAddress = (String) ncConfiguration.get(nodeId).get(NCConfig.Option.CLUSTER_PUBLIC_ADDRESS);
+            nodeIdAddress = (String) activeNcConfiguration.get(nodeId).get(NCConfig.Option.REPLICATION_PUBLIC_ADDRESS);
+            nodePort = (int) activeNcConfiguration.get(nodeId).get(NCConfig.Option.REPLICATION_PUBLIC_PORT);
         }
-        final Set<String> participantNodes = clusterManager.getParticipantNodes();
-        ReplicaEventMessage msg = new ReplicaEventMessage(nodeId, nodeIdAddress, event);
+        ReplicaEventMessage msg = new ReplicaEventMessage(nodeId, nodeIdAddress, nodePort, event);
         for (String replica : primaryRemoteReplicas) {
             // If the remote replica is alive, send the event
-            if (participantNodes.contains(replica)) {
+            if (activeNcConfiguration.containsKey(replica)) {
                 try {
                     messageBroker.sendApplicationMessageToNC(msg, replica);
                 } catch (Exception e) {
@@ -69,4 +70,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/asterixdb/asterix-app/src/main/resources/cc-rep.conf b/asterixdb/asterix-app/src/main/resources/cc-rep.conf
new file mode 100644
index 0000000..9c093dc
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/cc-rep.conf
@@ -0,0 +1,52 @@
+; 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.
+
+[nc/asterix_nc1]
+txn.log.dir=../asterix-server/target/tmp/asterix_nc1/txnlog
+core.dump.dir=../asterix-server/target/tmp/asterix_nc1/coredump
+iodevices=../asterix-server/target/tmp/asterix_nc1/iodevice1,../asterix-server/target/tmp/asterix_nc1/iodevice2
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006
+replication.listen.port=2001
+nc.api.port=19004
+
+[nc/asterix_nc2]
+ncservice.port=9091
+txn.log.dir=../asterix-server/target/tmp/asterix_nc2/txnlog
+core.dump.dir=../asterix-server/target/tmp/asterix_nc2/coredump
+iodevices=../asterix-server/target/tmp/asterix_nc2/iodevice1,../asterix-server/target/tmp/asterix_nc2/iodevice2
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5007
+replication.listen.port=2002
+nc.api.port=19005
+
+[nc]
+address=127.0.0.1
+command=asterixnc
+app.class=org.apache.asterix.hyracks.bootstrap.NCApplication
+jvm.args=-Xmx4096m -Dnode.Resolver="org.apache.asterix.external.util.IdentitiyResolverFactory"
+storage.subdir=test_storage
+storage.memorycomponent.globalbudget = 1073741824
+
+[cc]
+address = 127.0.0.1
+app.class=org.apache.asterix.hyracks.bootstrap.CCApplication
+heartbeat.period=2000
+
+[common]
+log.level = INFO
+replication.enabled=true
+replication.strategy=metadata_only
+replication.factor=2
diff --git a/asterixdb/asterix-app/src/main/resources/cc.conf b/asterixdb/asterix-app/src/main/resources/cc.conf
new file mode 100644
index 0000000..57260a4
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/cc.conf
@@ -0,0 +1,56 @@
+; 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.
+
+[nc/asterix_nc1]
+txn.log.dir=target/tmp/asterix_nc1/txnlog
+core.dump.dir=target/tmp/asterix_nc1/coredump
+iodevices=target/tmp/asterix_nc1/iodevice1,../asterix-server/target/tmp/asterix_nc1/iodevice2
+nc.api.port=19004
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006
+
+[nc/asterix_nc2]
+ncservice.port=9091
+txn.log.dir=target/tmp/asterix_nc2/txnlog
+core.dump.dir=target/tmp/asterix_nc2/coredump
+iodevices=target/tmp/asterix_nc2/iodevice1,../asterix-server/target/tmp/asterix_nc2/iodevice2
+nc.api.port=19005
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5007
+
+[nc]
+address=127.0.0.1
+command=asterixnc
+app.class=org.apache.asterix.hyracks.bootstrap.NCApplication
+jvm.args=-Xmx4096m -Dnode.Resolver="org.apache.asterix.external.util.IdentitiyResolverFactory"
+storage.buffercache.pagesize=32KB
+storage.buffercache.size=48MB
+storage.memorycomponent.numpages=16
+storage.memorycomponent.globalbudget=512MB
+
+[cc]
+address = 127.0.0.1
+app.class=org.apache.asterix.hyracks.bootstrap.CCApplication
+heartbeat.period=2000
+
+[common]
+log.level = INFO
+compiler.framesize=32KB
+compiler.sortmemory=320KB
+compiler.groupmemory=160KB
+compiler.joinmemory=256KB
+messaging.frame.size=4096
+messaging.frame.count=512
+
diff --git a/asterixdb/asterix-app/src/main/resources/cc2.conf b/asterixdb/asterix-app/src/main/resources/cc2.conf
new file mode 100644
index 0000000..41beda7
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/cc2.conf
@@ -0,0 +1,56 @@
+; 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.
+
+[nc/asterix_nc1]
+txn.log.dir=target/tmp/asterix_nc1/txnlog
+core.dump.dir=target/tmp/asterix_nc1/coredump
+iodevices=target/tmp/asterix_nc1/iodevice1,../asterix-server/target/tmp/asterix_nc1/iodevice2
+nc.api.port=19004
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006
+
+[nc/asterix_nc2]
+ncservice.port=9091
+txn.log.dir=target/tmp/asterix_nc2/txnlog
+core.dump.dir=target/tmp/asterix_nc2/coredump
+iodevices=target/tmp/asterix_nc2/iodevice1,../asterix-server/target/tmp/asterix_nc2/iodevice2
+nc.api.port=19005
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5007
+
+[nc]
+address=127.0.0.1
+command=asterixnc
+app.class=org.apache.asterix.hyracks.bootstrap.NCApplication
+jvm.args=-Xmx4096m -Dnode.Resolver="org.apache.asterix.external.util.IdentitiyResolverFactory"
+storage.buffercache.pagesize=32KB
+storage.buffercache.size=48MB
+storage.memorycomponent.numpages=16
+storage.memorycomponent.globalbudget=512MB
+
+[cc]
+address = 127.0.0.1
+app.class=org.apache.asterix.hyracks.bootstrap.CCApplication
+heartbeat.period=2000
+
+[common]
+log.level = WARNING
+compiler.framesize=32KB
+compiler.sortmemory=320KB
+compiler.groupmemory=160KB
+compiler.joinmemory=256KB
+compiler.parallelism=-1
+messaging.frame.size=4096
+messaging.frame.count=512
diff --git a/asterixdb/asterix-app/src/main/resources/cc3.conf b/asterixdb/asterix-app/src/main/resources/cc3.conf
new file mode 100644
index 0000000..4c38081
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/cc3.conf
@@ -0,0 +1,56 @@
+; 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.
+
+[nc/asterix_nc1]
+txn.log.dir=target/tmp/asterix_nc1/txnlog
+core.dump.dir=target/tmp/asterix_nc1/coredump
+iodevices=target/tmp/asterix_nc1/iodevice1,../asterix-server/target/tmp/asterix_nc1/iodevice2
+nc.api.port=19004
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006
+
+[nc/asterix_nc2]
+ncservice.port=9091
+txn.log.dir=target/tmp/asterix_nc2/txnlog
+core.dump.dir=target/tmp/asterix_nc2/coredump
+iodevices=target/tmp/asterix_nc2/iodevice1,../asterix-server/target/tmp/asterix_nc2/iodevice2
+nc.api.port=19005
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5007
+
+[nc]
+address=127.0.0.1
+command=asterixnc
+app.class=org.apache.asterix.hyracks.bootstrap.NCApplication
+jvm.args=-Xmx4096m -Dnode.Resolver="org.apache.asterix.external.util.IdentitiyResolverFactory"
+storage.buffercache.pagesize=32KB
+storage.buffercache.size=48MB
+storage.memorycomponent.numpages=16
+storage.memorycomponent.globalbudget=512MB
+
+[cc]
+address = 127.0.0.1
+app.class=org.apache.asterix.hyracks.bootstrap.CCApplication
+heartbeat.period=2000
+
+[common]
+log.level = WARNING
+compiler.framesize=32KB
+compiler.sortmemory=320KB
+compiler.groupmemory=160KB
+compiler.joinmemory=256KB
+compiler.parallelism=3
+messaging.frame.size=4096
+messaging.frame.count=512
diff --git a/asterixdb/asterix-app/src/main/resources/cc4.conf b/asterixdb/asterix-app/src/main/resources/cc4.conf
new file mode 100644
index 0000000..7ed2d20
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/cc4.conf
@@ -0,0 +1,53 @@
+; 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.
+
+[nc/asterix_nc1]
+txn.log.dir=target/tmp/asterix_nc1/txnlog
+core.dump.dir=target/tmp/asterix_nc1/coredump
+iodevices=target/tmp/asterix_nc1/iodevice1,../asterix-server/target/tmp/asterix_nc1/iodevice2
+nc.api.port=19004
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006
+
+[nc/asterix_nc2]
+ncservice.port=9091
+txn.log.dir=target/tmp/asterix_nc2/txnlog
+core.dump.dir=target/tmp/asterix_nc2/coredump
+iodevices=target/tmp/asterix_nc2/iodevice1,../asterix-server/target/tmp/asterix_nc2/iodevice2
+nc.api.port=19005
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5007
+
+[nc]
+address=127.0.0.1
+command=asterixnc
+app.class=org.apache.asterix.hyracks.bootstrap.NCApplication
+jvm.args=-Xmx4096m -Dnode.Resolver="org.apache.asterix.external.util.IdentitiyResolverFactory"
+storage.buffercache.pagesize=32KB
+
+[cc]
+address = 127.0.0.1
+app.class=org.apache.asterix.hyracks.bootstrap.CCApplication
+heartbeat.period=2000
+
+[common]
+log.level = INFO
+compiler.framesize=32KB
+compiler.sortmemory=320KB
+compiler.groupmemory=160KB
+compiler.joinmemory=256KB
+messaging.frame.size=4096
+messaging.frame.count=512
+compiler.parallelism=-1
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
index a1c2ee6..fddab14 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
@@ -25,6 +25,7 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.logging.Logger;
 
 import org.apache.asterix.app.external.ExternalUDFLibrarian;
@@ -66,6 +67,7 @@
 import org.apache.asterix.transaction.management.opcallbacks.PrimaryIndexModificationOperationCallbackFactory;
 import org.apache.asterix.transaction.management.runtime.CommitRuntime;
 import org.apache.asterix.transaction.management.service.logging.LogReader;
+import org.apache.avro.generic.GenericData;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.runtime.base.IPushRuntime;
@@ -74,6 +76,7 @@
 import org.apache.hyracks.algebricks.runtime.operators.std.EmptyTupleSourceRuntimeFactory;
 import org.apache.hyracks.api.comm.IFrameWriter;
 import org.apache.hyracks.api.comm.VSizeFrame;
+import org.apache.hyracks.api.config.IOption;
 import org.apache.hyracks.api.context.IHyracksJobletContext;
 import org.apache.hyracks.api.context.IHyracksTaskContext;
 import org.apache.hyracks.api.dataflow.ActivityId;
@@ -117,7 +120,7 @@
     protected static final String PATH_ACTUAL = "unittest" + File.separator;
     protected static final String PATH_BASE = FileUtil.joinPath("src", "test", "resources", "nodetests");
 
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
     protected static TransactionProperties txnProperties;
     private static final boolean cleanupOnStart = true;
     private static final boolean cleanupOnStop = true;
@@ -132,6 +135,7 @@
     private long jobCounter = 100L;
     private final String testConfigFileName;
     private final boolean runHDFS;
+    private final List<Pair<IOption, Object>> options = new ArrayList<>();
 
     public TestNodeController(String testConfigFileName, boolean runHDFS) {
         this.testConfigFileName = testConfigFileName;
@@ -146,7 +150,7 @@
             ExternalUDFLibrarian.removeLibraryDir();
             ExecutionTestUtil.setUp(cleanupOnStart,
                     testConfigFileName == null ? TEST_CONFIG_FILE_NAME : testConfigFileName,
-                    ExecutionTestUtil.integrationUtil, runHDFS);
+                    ExecutionTestUtil.integrationUtil, runHDFS, options);
         } catch (Throwable th) {
             th.printStackTrace();
             throw th;
@@ -158,6 +162,10 @@
         ExecutionTestUtil.tearDown(cleanupOnStop);
     }
 
+    public void setOpts(List<Pair<IOption, Object>> opts) {
+        options.addAll(opts);
+    }
+
     public TxnId getTxnJobId(IHyracksTaskContext ctx) {
         return getTxnJobId(ctx.getJobletContext().getJobId());
     }
@@ -171,30 +179,29 @@
             int[] primaryKeyIndexes, List<Integer> primaryKeyIndicators,
             StorageComponentProvider storageComponentProvider, Index secondaryIndex)
             throws AlgebricksException, HyracksDataException, RemoteException, ACIDException {
-        CcApplicationContext appCtx =
-                (CcApplicationContext) ExecutionTestUtil.integrationUtil.cc.getApplicationContext();
+        CcApplicationContext appCtx = (CcApplicationContext) ExecutionTestUtil.integrationUtil.cc
+                .getApplicationContext();
         MetadataProvider mdProvider = new MetadataProvider(appCtx, null);
         try {
             MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
-            org.apache.hyracks.algebricks.common.utils.Pair<ILSMMergePolicyFactory, Map<String, String>> mergePolicy =
-                    DatasetUtil.getMergePolicyFactory(dataset, mdTxnCtx);
+            org.apache.hyracks.algebricks.common.utils.Pair<ILSMMergePolicyFactory, Map<String, String>> mergePolicy = DatasetUtil
+                    .getMergePolicyFactory(dataset, mdTxnCtx);
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
             PrimaryIndexInfo primaryIndexInfo = new PrimaryIndexInfo(dataset, primaryKeyTypes, recordType, metaType,
                     mergePolicy.first, mergePolicy.second, filterFields, primaryKeyIndexes, primaryKeyIndicators);
             IndexOperation op = IndexOperation.INSERT;
-            IModificationOperationCallbackFactory modOpCallbackFactory =
-                    new PrimaryIndexModificationOperationCallbackFactory(dataset.getDatasetId(),
-                            primaryIndexInfo.primaryKeyIndexes, TXN_SUBSYSTEM_PROVIDER, Operation.get(op),
-                            ResourceType.LSM_BTREE);
+            IModificationOperationCallbackFactory modOpCallbackFactory = new PrimaryIndexModificationOperationCallbackFactory(
+                    dataset.getDatasetId(), primaryIndexInfo.primaryKeyIndexes, TXN_SUBSYSTEM_PROVIDER,
+                    Operation.get(op), ResourceType.LSM_BTREE);
             IRecordDescriptorProvider recordDescProvider = primaryIndexInfo.getInsertRecordDescriptorProvider();
-            RecordDescriptor recordDesc =
-                    recordDescProvider.getInputRecordDescriptor(new ActivityId(new OperatorDescriptorId(0), 0), 0);
+            RecordDescriptor recordDesc = recordDescProvider
+                    .getInputRecordDescriptor(new ActivityId(new OperatorDescriptorId(0), 0), 0);
             IIndexDataflowHelperFactory indexHelperFactory = new IndexDataflowHelperFactory(
                     storageComponentProvider.getStorageManager(), primaryIndexInfo.getFileSplitProvider());
-            LSMInsertDeleteOperatorNodePushable insertOp =
-                    new LSMInsertDeleteOperatorNodePushable(ctx, ctx.getTaskAttemptId().getTaskId().getPartition(),
-                            primaryIndexInfo.primaryIndexInsertFieldsPermutations, recordDesc, op, true,
-                            indexHelperFactory, modOpCallbackFactory, null);
+            LSMInsertDeleteOperatorNodePushable insertOp = new LSMInsertDeleteOperatorNodePushable(ctx,
+                    ctx.getTaskAttemptId().getTaskId().getPartition(),
+                    primaryIndexInfo.primaryIndexInsertFieldsPermutations, recordDesc, op, true, indexHelperFactory,
+                    modOpCallbackFactory, null);
 
             // For now, this assumes a single secondary index. recordDesc is always <pk-record-meta>
             // for the index, we will have to create an assign operator that extract the sk
@@ -202,8 +209,8 @@
             if (secondaryIndex != null) {
                 List<List<String>> skNames = secondaryIndex.getKeyFieldNames();
                 List<Integer> indicators = secondaryIndex.getKeyFieldSourceIndicators();
-                IScalarEvaluatorFactory[] secondaryFieldAccessEvalFactories =
-                        new IScalarEvaluatorFactory[skNames.size()];
+                IScalarEvaluatorFactory[] secondaryFieldAccessEvalFactories = new IScalarEvaluatorFactory[skNames
+                        .size()];
                 for (int i = 0; i < skNames.size(); i++) {
                     ARecordType sourceType = dataset.hasMetaPart()
                             ? indicators.get(i).intValue() == Index.RECORD_INDICATOR ? recordType : metaType
@@ -226,18 +233,17 @@
                 for (int i = 0; i < primaryIndexInfo.index.getKeyFieldNames().size(); i++) {
                     projectionList[projCount++] = i;
                 }
-                IPushRuntime assignOp =
-                        new AssignRuntimeFactory(outColumns, secondaryFieldAccessEvalFactories, projectionList, true)
-                                .createPushRuntime(ctx);
+                IPushRuntime assignOp = new AssignRuntimeFactory(outColumns, secondaryFieldAccessEvalFactories,
+                        projectionList, true).createPushRuntime(ctx);
                 insertOp.setOutputFrameWriter(0, assignOp, primaryIndexInfo.rDesc);
                 assignOp.setInputRecordDescriptor(0, primaryIndexInfo.rDesc);
                 SecondaryIndexInfo secondaryIndexInfo = new SecondaryIndexInfo(primaryIndexInfo, secondaryIndex);
                 IIndexDataflowHelperFactory secondaryIndexHelperFactory = new IndexDataflowHelperFactory(
                         storageComponentProvider.getStorageManager(), secondaryIndexInfo.fileSplitProvider);
-                LSMInsertDeleteOperatorNodePushable secondaryInsertOp =
-                        new LSMInsertDeleteOperatorNodePushable(ctx, ctx.getTaskAttemptId().getTaskId().getPartition(),
-                                secondaryIndexInfo.insertFieldsPermutations, secondaryIndexInfo.rDesc, op, false,
-                                secondaryIndexHelperFactory, NoOpOperationCallbackFactory.INSTANCE, null);
+                LSMInsertDeleteOperatorNodePushable secondaryInsertOp = new LSMInsertDeleteOperatorNodePushable(ctx,
+                        ctx.getTaskAttemptId().getTaskId().getPartition(), secondaryIndexInfo.insertFieldsPermutations,
+                        secondaryIndexInfo.rDesc, op, false, secondaryIndexHelperFactory,
+                        NoOpOperationCallbackFactory.INSTANCE, null);
                 assignOp.setOutputFrameWriter(0, secondaryInsertOp, secondaryIndexInfo.rDesc);
                 CommitRuntime commitOp = new CommitRuntime(ctx, getTxnJobId(ctx), dataset.getDatasetId(),
                         secondaryIndexInfo.primaryKeyIndexes, true, ctx.getTaskAttemptId().getTaskId().getPartition(),
@@ -272,9 +278,9 @@
         BTreeSearchOperatorDescriptor searchOpDesc = new BTreeSearchOperatorDescriptor(spec, primaryIndexInfo.rDesc,
                 null, null, true, true, indexDataflowHelperFactory, false, false, null,
                 NoOpOperationCallbackFactory.INSTANCE, filterFields, filterFields, false);
-        BTreeSearchOperatorNodePushable searchOp =
-                searchOpDesc.createPushRuntime(ctx, primaryIndexInfo.getSearchRecordDescriptorProvider(),
-                        ctx.getTaskAttemptId().getTaskId().getPartition(), 1);
+        BTreeSearchOperatorNodePushable searchOp = searchOpDesc.createPushRuntime(ctx,
+                primaryIndexInfo.getSearchRecordDescriptorProvider(), ctx.getTaskAttemptId().getTaskId().getPartition(),
+                1);
         emptyTupleOp.setOutputFrameWriter(0, searchOp,
                 primaryIndexInfo.getSearchRecordDescriptorProvider().getInputRecordDescriptor(null, 0));
         searchOp.setOutputFrameWriter(0, countOp, primaryIndexInfo.rDesc);
@@ -294,8 +300,8 @@
         Dataverse dataverse = new Dataverse(dataset.getDataverseName(), NonTaggedDataFormat.class.getName(),
                 MetadataUtil.PENDING_NO_OP);
         Index index = primaryIndexInfo.getIndex();
-        CcApplicationContext appCtx =
-                (CcApplicationContext) ExecutionTestUtil.integrationUtil.cc.getApplicationContext();
+        CcApplicationContext appCtx = (CcApplicationContext) ExecutionTestUtil.integrationUtil.cc
+                .getApplicationContext();
         MetadataProvider mdProvider = new MetadataProvider(appCtx, dataverse);
         try {
             return dataset.getResourceFactory(mdProvider, index, primaryIndexInfo.recordType, primaryIndexInfo.metaType,
@@ -310,8 +316,8 @@
             int[] primaryKeyIndexes, List<Integer> primaryKeyIndicators, int partition)
             throws AlgebricksException, HyracksDataException, RemoteException, ACIDException {
         MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
-        org.apache.hyracks.algebricks.common.utils.Pair<ILSMMergePolicyFactory, Map<String, String>> mergePolicy =
-                DatasetUtil.getMergePolicyFactory(dataset, mdTxnCtx);
+        org.apache.hyracks.algebricks.common.utils.Pair<ILSMMergePolicyFactory, Map<String, String>> mergePolicy = DatasetUtil
+                .getMergePolicyFactory(dataset, mdTxnCtx);
         MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
         PrimaryIndexInfo primaryIndexInfo = new PrimaryIndexInfo(dataset, primaryKeyTypes, recordType, metaType,
                 mergePolicy.first, mergePolicy.second, filterFields, primaryKeyIndexes, primaryKeyIndicators);
@@ -322,9 +328,9 @@
         try {
             IResourceFactory resourceFactory = dataset.getResourceFactory(mdProvider, primaryIndexInfo.index,
                     recordType, metaType, mergePolicy.first, mergePolicy.second);
-            IndexBuilderFactory indexBuilderFactory =
-                    new IndexBuilderFactory(storageComponentProvider.getStorageManager(),
-                            primaryIndexInfo.getFileSplitProvider(), resourceFactory, true);
+            IndexBuilderFactory indexBuilderFactory = new IndexBuilderFactory(
+                    storageComponentProvider.getStorageManager(), primaryIndexInfo.getFileSplitProvider(),
+                    resourceFactory, true);
             IHyracksTaskContext ctx = createTestContext(newJobId(), partition, false);
             IIndexBuilder indexBuilder = indexBuilderFactory.create(ctx, partition);
             indexBuilder.build();
@@ -338,8 +344,8 @@
             IStorageComponentProvider storageComponentProvider, int partition)
             throws AlgebricksException, HyracksDataException, RemoteException, ACIDException {
         MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
-        org.apache.hyracks.algebricks.common.utils.Pair<ILSMMergePolicyFactory, Map<String, String>> mergePolicy =
-                DatasetUtil.getMergePolicyFactory(primaryIndexInfo.dataset, mdTxnCtx);
+        org.apache.hyracks.algebricks.common.utils.Pair<ILSMMergePolicyFactory, Map<String, String>> mergePolicy = DatasetUtil
+                .getMergePolicyFactory(primaryIndexInfo.dataset, mdTxnCtx);
         MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
         Dataverse dataverse = new Dataverse(primaryIndexInfo.dataset.getDataverseName(),
                 NonTaggedDataFormat.class.getName(), MetadataUtil.PENDING_NO_OP);
@@ -350,9 +356,9 @@
 
             IResourceFactory resourceFactory = primaryIndexInfo.dataset.getResourceFactory(mdProvider, secondaryIndex,
                     primaryIndexInfo.recordType, primaryIndexInfo.metaType, mergePolicy.first, mergePolicy.second);
-            IndexBuilderFactory indexBuilderFactory =
-                    new IndexBuilderFactory(storageComponentProvider.getStorageManager(),
-                            secondaryIndexInfo.fileSplitProvider, resourceFactory, true);
+            IndexBuilderFactory indexBuilderFactory = new IndexBuilderFactory(
+                    storageComponentProvider.getStorageManager(), secondaryIndexInfo.fileSplitProvider, resourceFactory,
+                    true);
             IHyracksTaskContext ctx = createTestContext(newJobId(), partition, false);
             IIndexBuilder indexBuilder = indexBuilderFactory.create(ctx, partition);
             indexBuilder.build();
@@ -367,8 +373,8 @@
         int i = 0;
         ISerializerDeserializer<?>[] primaryIndexSerdes = new ISerializerDeserializer<?>[primaryIndexNumOfTupleFields];
         for (; i < primaryKeyTypes.length; i++) {
-            primaryIndexSerdes[i] =
-                    SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(primaryKeyTypes[i]);
+            primaryIndexSerdes[i] = SerializerDeserializerProvider.INSTANCE
+                    .getSerializerDeserializer(primaryKeyTypes[i]);
         }
         primaryIndexSerdes[i++] = SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(recordType);
         if (metaType != null) {
@@ -379,16 +385,16 @@
 
     public static ISerializerDeserializer<?>[] createSecondaryIndexSerdes(ARecordType recordType, ARecordType metaType,
             IAType[] primaryKeyTypes, IAType[] secondaryKeyTypes) {
-        ISerializerDeserializer<?>[] secondaryIndexSerdes =
-                new ISerializerDeserializer<?>[secondaryKeyTypes.length + primaryKeyTypes.length];
+        ISerializerDeserializer<?>[] secondaryIndexSerdes = new ISerializerDeserializer<?>[secondaryKeyTypes.length
+                + primaryKeyTypes.length];
         int i = 0;
         for (; i < secondaryKeyTypes.length; i++) {
-            secondaryIndexSerdes[i] =
-                    SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(secondaryKeyTypes[i]);
+            secondaryIndexSerdes[i] = SerializerDeserializerProvider.INSTANCE
+                    .getSerializerDeserializer(secondaryKeyTypes[i]);
         }
         for (; i < primaryKeyTypes.length; i++) {
-            secondaryIndexSerdes[i] =
-                    SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(primaryKeyTypes[i]);
+            secondaryIndexSerdes[i] = SerializerDeserializerProvider.INSTANCE
+                    .getSerializerDeserializer(primaryKeyTypes[i]);
         }
         return secondaryIndexSerdes;
     }
@@ -434,8 +440,8 @@
         ctx = Mockito.spy(ctx);
         Mockito.when(ctx.getJobletContext()).thenReturn(jobletCtx);
         Mockito.when(ctx.getIoManager()).thenReturn(ExecutionTestUtil.integrationUtil.ncs[0].getIoManager());
-        TaskAttemptId taskId =
-                new TaskAttemptId(new TaskId(new ActivityId(new OperatorDescriptorId(0), 0), partition), 0);
+        TaskAttemptId taskId = new TaskAttemptId(new TaskId(new ActivityId(new OperatorDescriptorId(0), 0), partition),
+                0);
         Mockito.when(ctx.getTaskAttemptId()).thenReturn(taskId);
         return ctx;
     }
@@ -469,8 +475,8 @@
             this.primaryIndexInfo = primaryIndexInfo;
             this.secondaryIndex = secondaryIndex;
             List<String> nodes = Collections.singletonList(ExecutionTestUtil.integrationUtil.ncs[0].getId());
-            CcApplicationContext appCtx =
-                    (CcApplicationContext) ExecutionTestUtil.integrationUtil.cc.getApplicationContext();
+            CcApplicationContext appCtx = (CcApplicationContext) ExecutionTestUtil.integrationUtil.cc
+                    .getApplicationContext();
             FileSplit[] splits = SplitsAndConstraintsUtil.getIndexSplits(appCtx.getClusterStateManager(),
                     primaryIndexInfo.dataset, secondaryIndex.getIndexName(), nodes);
             fileSplitProvider = new ConstantFileSplitProvider(splits);
@@ -524,10 +530,10 @@
             this.mergePolicyProperties = mergePolicyProperties;
             this.primaryKeyIndexes = primaryKeyIndexes;
             primaryIndexNumOfTupleFields = primaryKeyTypes.length + (1 + ((metaType == null) ? 0 : 1));
-            primaryIndexTypeTraits =
-                    createPrimaryIndexTypeTraits(primaryIndexNumOfTupleFields, primaryKeyTypes, recordType, metaType);
-            primaryIndexSerdes =
-                    createPrimaryIndexSerdes(primaryIndexNumOfTupleFields, primaryKeyTypes, recordType, metaType);
+            primaryIndexTypeTraits = createPrimaryIndexTypeTraits(primaryIndexNumOfTupleFields, primaryKeyTypes,
+                    recordType, metaType);
+            primaryIndexSerdes = createPrimaryIndexSerdes(primaryIndexNumOfTupleFields, primaryKeyTypes, recordType,
+                    metaType);
             rDesc = new RecordDescriptor(primaryIndexSerdes, primaryIndexTypeTraits);
             primaryIndexInsertFieldsPermutations = new int[primaryIndexNumOfTupleFields];
             for (int i = 0; i < primaryIndexNumOfTupleFields; i++) {
@@ -537,16 +543,16 @@
             List<IAType> keyFieldTypes = Arrays.asList(primaryKeyTypes);
             for (int i = 0; i < primaryKeyIndicators.size(); i++) {
                 Integer indicator = primaryKeyIndicators.get(i);
-                String[] fieldNames =
-                        indicator == Index.RECORD_INDICATOR ? recordType.getFieldNames() : metaType.getFieldNames();
+                String[] fieldNames = indicator == Index.RECORD_INDICATOR ? recordType.getFieldNames()
+                        : metaType.getFieldNames();
                 keyFieldNames.add(Arrays.asList(fieldNames[primaryKeyIndexes[i]]));
             }
             index = new Index(dataset.getDataverseName(), dataset.getDatasetName(), dataset.getDatasetName(),
                     IndexType.BTREE, keyFieldNames, primaryKeyIndicators, keyFieldTypes, false, false, true,
                     MetadataUtil.PENDING_NO_OP);
             List<String> nodes = Collections.singletonList(ExecutionTestUtil.integrationUtil.ncs[0].getId());
-            CcApplicationContext appCtx =
-                    (CcApplicationContext) ExecutionTestUtil.integrationUtil.cc.getApplicationContext();
+            CcApplicationContext appCtx = (CcApplicationContext) ExecutionTestUtil.integrationUtil.cc
+                    .getApplicationContext();
             FileSplit[] splits = SplitsAndConstraintsUtil.getIndexSplits(appCtx.getClusterStateManager(), dataset,
                     index.getIndexName(), nodes);
             fileSplitProvider = new ConstantFileSplitProvider(splits);
@@ -567,8 +573,8 @@
             ISerializerDeserializer<?>[] primaryKeySerdes = new ISerializerDeserializer<?>[primaryKeyTypes.length];
             for (int i = 0; i < primaryKeyTypes.length; i++) {
                 primaryKeyTypeTraits[i] = TypeTraitProvider.INSTANCE.getTypeTrait(primaryKeyTypes[i]);
-                primaryKeySerdes[i] =
-                        SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(primaryKeyTypes[i]);
+                primaryKeySerdes[i] = SerializerDeserializerProvider.INSTANCE
+                        .getSerializerDeserializer(primaryKeyTypes[i]);
             }
             RecordDescriptor searcgRecDesc = new RecordDescriptor(primaryKeySerdes, primaryKeyTypeTraits);
             IRecordDescriptorProvider rDescProvider = Mockito.mock(IRecordDescriptorProvider.class);
@@ -584,10 +590,10 @@
 
     public RecordDescriptor getSearchOutputDesc(IAType[] keyTypes, ARecordType recordType, ARecordType metaType) {
         int primaryIndexNumOfTupleFields = keyTypes.length + (1 + ((metaType == null) ? 0 : 1));
-        ITypeTraits[] primaryIndexTypeTraits =
-                createPrimaryIndexTypeTraits(primaryIndexNumOfTupleFields, keyTypes, recordType, metaType);
-        ISerializerDeserializer<?>[] primaryIndexSerdes =
-                createPrimaryIndexSerdes(primaryIndexNumOfTupleFields, keyTypes, recordType, metaType);
+        ITypeTraits[] primaryIndexTypeTraits = createPrimaryIndexTypeTraits(primaryIndexNumOfTupleFields, keyTypes,
+                recordType, metaType);
+        ISerializerDeserializer<?>[] primaryIndexSerdes = createPrimaryIndexSerdes(primaryIndexNumOfTupleFields,
+                keyTypes, recordType, metaType);
         return new RecordDescriptor(primaryIndexSerdes, primaryIndexTypeTraits);
     }
 
@@ -598,8 +604,8 @@
     }
 
     public IStorageManager getStorageManager() {
-        CcApplicationContext appCtx =
-                (CcApplicationContext) ExecutionTestUtil.integrationUtil.cc.getApplicationContext();
+        CcApplicationContext appCtx = (CcApplicationContext) ExecutionTestUtil.integrationUtil.cc
+                .getApplicationContext();
         return appCtx.getStorageManager();
     }
 
@@ -608,8 +614,8 @@
             int[] keyIndexes, List<Integer> keyIndicators, StorageComponentProvider storageComponentProvider,
             IFrameOperationCallbackFactory frameOpCallbackFactory, boolean hasSecondaries) throws Exception {
         MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
-        org.apache.hyracks.algebricks.common.utils.Pair<ILSMMergePolicyFactory, Map<String, String>> mergePolicy =
-                DatasetUtil.getMergePolicyFactory(dataset, mdTxnCtx);
+        org.apache.hyracks.algebricks.common.utils.Pair<ILSMMergePolicyFactory, Map<String, String>> mergePolicy = DatasetUtil
+                .getMergePolicyFactory(dataset, mdTxnCtx);
         MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
         PrimaryIndexInfo primaryIndexInfo = new PrimaryIndexInfo(dataset, keyTypes, recordType, metaType,
                 mergePolicy.first, mergePolicy.second, filterFields, keyIndexes, keyIndicators);
@@ -620,13 +626,13 @@
         IRecordDescriptorProvider recordDescProvider = primaryIndexInfo.getInsertRecordDescriptorProvider();
         IIndexDataflowHelperFactory indexHelperFactory = new IndexDataflowHelperFactory(
                 storageComponentProvider.getStorageManager(), primaryIndexInfo.getFileSplitProvider());
-        LSMPrimaryUpsertOperatorNodePushable insertOp =
-                new LSMPrimaryUpsertOperatorNodePushable(ctx, ctx.getTaskAttemptId().getTaskId().getPartition(),
-                        indexHelperFactory, primaryIndexInfo.primaryIndexInsertFieldsPermutations,
-                        recordDescProvider.getInputRecordDescriptor(new ActivityId(new OperatorDescriptorId(0), 0), 0),
-                        modificationCallbackFactory, searchCallbackFactory, keyIndexes.length, recordType, -1,
-                        frameOpCallbackFactory == null ? dataset.getFrameOpCallbackFactory() : frameOpCallbackFactory,
-                        MissingWriterFactory.INSTANCE, hasSecondaries);
+        LSMPrimaryUpsertOperatorNodePushable insertOp = new LSMPrimaryUpsertOperatorNodePushable(ctx,
+                ctx.getTaskAttemptId().getTaskId().getPartition(), indexHelperFactory,
+                primaryIndexInfo.primaryIndexInsertFieldsPermutations,
+                recordDescProvider.getInputRecordDescriptor(new ActivityId(new OperatorDescriptorId(0), 0), 0),
+                modificationCallbackFactory, searchCallbackFactory, keyIndexes.length, recordType, -1,
+                frameOpCallbackFactory == null ? dataset.getFrameOpCallbackFactory() : frameOpCallbackFactory,
+                MissingWriterFactory.INSTANCE, hasSecondaries);
         RecordDescriptor upsertOutRecDesc = getUpsertOutRecDesc(primaryIndexInfo.rDesc, dataset,
                 filterFields == null ? 0 : filterFields.length, recordType, metaType);
         // fix pk fields
@@ -644,8 +650,8 @@
 
     private RecordDescriptor getUpsertOutRecDesc(RecordDescriptor inputRecordDesc, Dataset dataset, int numFilterFields,
             ARecordType itemType, ARecordType metaItemType) throws Exception {
-        ITypeTraits[] outputTypeTraits =
-                new ITypeTraits[inputRecordDesc.getFieldCount() + (dataset.hasMetaPart() ? 2 : 1) + numFilterFields];
+        ITypeTraits[] outputTypeTraits = new ITypeTraits[inputRecordDesc.getFieldCount()
+                + (dataset.hasMetaPart() ? 2 : 1) + numFilterFields];
         ISerializerDeserializer<?>[] outputSerDes = new ISerializerDeserializer[inputRecordDesc.getFieldCount()
                 + (dataset.hasMetaPart() ? 2 : 1) + numFilterFields];
 
@@ -683,4 +689,4 @@
         }
         return new RecordDescriptor(outputSerDes, outputTypeTraits);
     }
-}
\ No newline at end of file
+}
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/aql/translator/QueryTranslatorTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/aql/translator/QueryTranslatorTest.java
index b80f8f8..51c512a 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/aql/translator/QueryTranslatorTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/aql/translator/QueryTranslatorTest.java
@@ -29,11 +29,8 @@
 import java.util.List;
 
 import org.apache.asterix.app.translator.DefaultStatementExecutorFactory;
-import org.apache.asterix.common.config.ClusterProperties;
 import org.apache.asterix.common.config.ExternalProperties;
 import org.apache.asterix.compiler.provider.AqlCompilationProvider;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.MasterNode;
 import org.apache.asterix.file.StorageComponentProvider;
 import org.apache.asterix.lang.common.base.Statement;
 import org.apache.asterix.lang.common.statement.RunStatement;
@@ -41,7 +38,9 @@
 import org.apache.asterix.translator.IStatementExecutor;
 import org.apache.asterix.translator.SessionOutput;
 import org.apache.hyracks.api.application.ICCServiceContext;
+import org.apache.hyracks.api.client.ClusterControllerInfo;
 import org.apache.hyracks.api.config.IApplicationConfig;
+import org.apache.hyracks.api.context.ICCContext;
 import org.apache.hyracks.control.common.controllers.CCConfig;
 import org.junit.Assert;
 import org.junit.Test;
@@ -64,19 +63,15 @@
         when(mockAsterixExternalProperties.getAPIServerPort()).thenReturn(19002);
         ICCServiceContext mockServiceContext = mock(ICCServiceContext.class);
         when(mockAsterixAppContextInfo.getServiceContext()).thenReturn(mockServiceContext);
+        ICCContext mockCCContext = mock(ICCContext.class);
+        when(mockServiceContext.getCCContext()).thenReturn(mockCCContext);
+        ClusterControllerInfo mockCCInfo = mock(ClusterControllerInfo.class);
+        when(mockCCContext.getClusterControllerInfo()).thenReturn(mockCCInfo);
+        when(mockCCInfo.getClientNetAddress()).thenReturn("127.0.0.1");
         IApplicationConfig mockApplicationConfig = mock(IApplicationConfig.class);
         when(mockServiceContext.getAppConfig()).thenReturn(mockApplicationConfig);
         when(mockApplicationConfig.getBoolean(CCConfig.Option.ENFORCE_FRAME_WRITER_PROTOCOL)).thenReturn(true);
 
-        // Mocks AsterixClusterProperties.
-        Cluster mockCluster = mock(Cluster.class);
-        MasterNode mockMasterNode = mock(MasterNode.class);
-        ClusterProperties mockClusterProperties = mock(ClusterProperties.class);
-        setFinalStaticField(ClusterProperties.class.getDeclaredField("INSTANCE"), mockClusterProperties);
-        when(mockClusterProperties.getCluster()).thenReturn(mockCluster);
-        when(mockCluster.getMasterNode()).thenReturn(mockMasterNode);
-        when(mockMasterNode.getClientIp()).thenReturn("127.0.0.1");
-
         IStatementExecutor aqlTranslator = new DefaultStatementExecutorFactory().create(mockAsterixAppContextInfo,
                 statements, mockSessionOutput, new AqlCompilationProvider(), new StorageComponentProvider());
         List<String> parameters = new ArrayList<>();
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/runtime/ClusterStateManagerTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/runtime/ClusterStateManagerTest.java
index 1466088..07d3584 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/runtime/ClusterStateManagerTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/runtime/ClusterStateManagerTest.java
@@ -30,7 +30,6 @@
 import org.apache.asterix.common.cluster.ClusterPartition;
 import org.apache.asterix.common.cluster.IGlobalRecoveryManager;
 import org.apache.asterix.common.config.MetadataProperties;
-import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.metadata.IMetadataBootstrap;
 import org.apache.asterix.runtime.transaction.ResourceIdManager;
 import org.apache.asterix.runtime.utils.CcApplicationContext;
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/ActiveStatsTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/ActiveStatsTest.java
index e1fdb69..df7756b 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/ActiveStatsTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/ActiveStatsTest.java
@@ -60,26 +60,27 @@
 
     protected boolean cleanUp = true;
     private static String EXPECTED_STATS = "\"Mock stats\"";
+    private static String CONF_PATH = "src/main/resources/cc.conf";
 
     @Before
     public void setUp() throws Exception {
-        ExecutionTestUtil.setUp(cleanUp);
+        ExecutionTestUtil.setUp(cleanUp, CONF_PATH);
     }
 
     @Test
     public void refreshStatsTest() throws Exception {
         // Entities to be used
         EntityId entityId = new EntityId("MockExtension", "MockDataverse", "MockEntity");
-        ActiveRuntimeId activeRuntimeId =
-                new ActiveRuntimeId(entityId, FeedIntakeOperatorNodePushable.class.getSimpleName(), 0);
+        ActiveRuntimeId activeRuntimeId = new ActiveRuntimeId(entityId,
+                FeedIntakeOperatorNodePushable.class.getSimpleName(), 0);
         List<Dataset> datasetList = new ArrayList<>();
-        AlgebricksAbsolutePartitionConstraint partitionConstraint =
-                new AlgebricksAbsolutePartitionConstraint(new String[] { "asterix_nc1" });
+        AlgebricksAbsolutePartitionConstraint partitionConstraint = new AlgebricksAbsolutePartitionConstraint(
+                new String[] { "asterix_nc1" });
         String requestedStats;
-        CcApplicationContext appCtx =
-                (CcApplicationContext) ExecutionTestUtil.integrationUtil.cc.getApplicationContext();
-        ActiveNotificationHandler activeJobNotificationHandler =
-                (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();
+        CcApplicationContext appCtx = (CcApplicationContext) ExecutionTestUtil.integrationUtil.cc
+                .getApplicationContext();
+        ActiveNotificationHandler activeJobNotificationHandler = (ActiveNotificationHandler) appCtx
+                .getActiveNotificationHandler();
         JobId jobId = new JobId(1);
 
         // Mock ActiveRuntime
@@ -103,8 +104,8 @@
                 entityId, datasetList, partitionConstraint, FeedIntakeOperatorNodePushable.class.getSimpleName(),
                 NoRetryPolicyFactory.INSTANCE, null, Collections.emptyList());
         // Register mock runtime
-        NCAppRuntimeContext nc1AppCtx =
-                (NCAppRuntimeContext) ExecutionTestUtil.integrationUtil.ncs[0].getApplicationContext();
+        NCAppRuntimeContext nc1AppCtx = (NCAppRuntimeContext) ExecutionTestUtil.integrationUtil.ncs[0]
+                .getApplicationContext();
         nc1AppCtx.getActiveManager().registerRuntime(mockRuntime);
 
         // Check init stats
@@ -115,8 +116,8 @@
         eventsListener.refreshStats(1000);
         requestedStats = eventsListener.getStats();
         Assert.assertTrue(requestedStats.contains("N/A"));
-        WaitForStateSubscriber startingSubscriber =
-                new WaitForStateSubscriber(eventsListener, Collections.singleton(ActivityState.STARTING));
+        WaitForStateSubscriber startingSubscriber = new WaitForStateSubscriber(eventsListener,
+                Collections.singleton(ActivityState.STARTING));
         // Update stats of created/started job without joined partition
         TestUserActor user = new TestUserActor("Xikui", mdProvider, null);
         Action start = user.startActivity(eventsListener);
@@ -127,8 +128,8 @@
         requestedStats = eventsListener.getStats();
         Assert.assertTrue(requestedStats.contains("N/A"));
         // Fake partition message and notify eventListener
-        ActivePartitionMessage partitionMessage =
-                new ActivePartitionMessage(activeRuntimeId, jobId, Event.RUNTIME_REGISTERED, null);
+        ActivePartitionMessage partitionMessage = new ActivePartitionMessage(activeRuntimeId, jobId,
+                Event.RUNTIME_REGISTERED, null);
         partitionMessage.handle(appCtx);
         start.sync();
         if (start.hasFailed()) {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
index d840daf..eaed8a6 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
@@ -72,6 +72,7 @@
 import org.apache.asterix.testframework.xml.TestCase.CompilationUnit;
 import org.apache.asterix.testframework.xml.TestCase.CompilationUnit.Parameter;
 import org.apache.asterix.testframework.xml.TestGroup;
+import org.apache.avro.generic.GenericData;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.output.ByteArrayOutputStream;
@@ -108,13 +109,13 @@
     // see
     // https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers/417184
     private static final long MAX_URL_LENGTH = 2000l;
-    private static final Pattern JAVA_BLOCK_COMMENT_PATTERN =
-            Pattern.compile("/\\*.*\\*/", Pattern.MULTILINE | Pattern.DOTALL);
-    private static final Pattern JAVA_SHELL_SQL_LINE_COMMENT_PATTERN =
-            Pattern.compile("^(//|#|--).*$", Pattern.MULTILINE);
+    private static final Pattern JAVA_BLOCK_COMMENT_PATTERN = Pattern.compile("/\\*.*\\*/",
+            Pattern.MULTILINE | Pattern.DOTALL);
+    private static final Pattern JAVA_SHELL_SQL_LINE_COMMENT_PATTERN = Pattern.compile("^(//|#|--).*$",
+            Pattern.MULTILINE);
     private static final Pattern REGEX_LINES_PATTERN = Pattern.compile("^(-)?/(.*)/([im]*)$");
-    private static final Pattern POLL_TIMEOUT_PATTERN =
-            Pattern.compile("polltimeoutsecs=(\\d+)(\\D|$)", Pattern.MULTILINE);
+    private static final Pattern POLL_TIMEOUT_PATTERN = Pattern.compile("polltimeoutsecs=(\\d+)(\\D|$)",
+            Pattern.MULTILINE);
     private static final Pattern POLL_DELAY_PATTERN = Pattern.compile("polldelaysecs=(\\d+)(\\D|$)", Pattern.MULTILINE);
     private static final Pattern HANDLE_VARIABLE_PATTERN = Pattern.compile("handlevariable=(\\w+)");
     private static final Pattern VARIABLE_REF_PATTERN = Pattern.compile("\\$(\\w+)");
@@ -128,7 +129,6 @@
     public static final String DELIVERY_IMMEDIATE = "immediate";
     private static final String METRICS_QUERY_TYPE = "metrics";
 
-    private static Method managixExecuteMethod = null;
     private static final HashMap<Integer, ITestServer> runningTestServers = new HashMap<>();
     private static Map<String, InetSocketAddress> ncEndPoints;
     private static Map<String, InetSocketAddress> replicationAddress;
@@ -186,10 +186,10 @@
     public void runScriptAndCompareWithResult(File scriptFile, PrintWriter print, File expectedFile, File actualFile,
             ComparisonEnum compare) throws Exception {
         System.err.println("Expected results file: " + expectedFile.toString());
-        BufferedReader readerExpected =
-                new BufferedReader(new InputStreamReader(new FileInputStream(expectedFile), "UTF-8"));
-        BufferedReader readerActual =
-                new BufferedReader(new InputStreamReader(new FileInputStream(actualFile), "UTF-8"));
+        BufferedReader readerExpected = new BufferedReader(
+                new InputStreamReader(new FileInputStream(expectedFile), "UTF-8"));
+        BufferedReader readerActual = new BufferedReader(
+                new InputStreamReader(new FileInputStream(actualFile), "UTF-8"));
         boolean regex = false;
         try {
             if (ComparisonEnum.BINARY.equals(compare)) {
@@ -372,10 +372,10 @@
     public void runScriptAndCompareWithResultRegex(File scriptFile, File expectedFile, File actualFile)
             throws Exception {
         String lineExpected, lineActual;
-        try (BufferedReader readerExpected =
-                new BufferedReader(new InputStreamReader(new FileInputStream(expectedFile), "UTF-8"));
-                BufferedReader readerActual =
-                        new BufferedReader(new InputStreamReader(new FileInputStream(actualFile), "UTF-8"))) {
+        try (BufferedReader readerExpected = new BufferedReader(
+                new InputStreamReader(new FileInputStream(expectedFile), "UTF-8"));
+                BufferedReader readerActual = new BufferedReader(
+                        new InputStreamReader(new FileInputStream(actualFile), "UTF-8"))) {
             StringBuilder actual = new StringBuilder();
             while ((lineActual = readerActual.readLine()) != null) {
                 actual.append(lineActual).append('\n');
@@ -715,8 +715,8 @@
     // Insert and Delete statements are executed here
     public void executeUpdate(String str, URI uri) throws Exception {
         // Create a method instance.
-        HttpUriRequest request =
-                RequestBuilder.post(uri).setEntity(new StringEntity(str, StandardCharsets.UTF_8)).build();
+        HttpUriRequest request = RequestBuilder.post(uri).setEntity(new StringEntity(str, StandardCharsets.UTF_8))
+                .build();
 
         // Execute the method.
         executeAndCheckHttpRequest(request);
@@ -726,10 +726,10 @@
     public InputStream executeAnyAQLAsync(String statement, boolean defer, OutputFormat fmt, URI uri,
             Map<String, Object> variableCtx) throws Exception {
         // Create a method instance.
-        HttpUriRequest request =
-                RequestBuilder.post(uri).addParameter("mode", defer ? "asynchronous-deferred" : "asynchronous")
-                        .setEntity(new StringEntity(statement, StandardCharsets.UTF_8))
-                        .setHeader("Accept", fmt.mimeType()).build();
+        HttpUriRequest request = RequestBuilder.post(uri)
+                .addParameter("mode", defer ? "asynchronous-deferred" : "asynchronous")
+                .setEntity(new StringEntity(statement, StandardCharsets.UTF_8)).setHeader("Accept", fmt.mimeType())
+                .build();
 
         String handleVar = getHandleVariable(statement);
 
@@ -755,8 +755,8 @@
     // create function statement
     public void executeDDL(String str, URI uri) throws Exception {
         // Create a method instance.
-        HttpUriRequest request =
-                RequestBuilder.post(uri).setEntity(new StringEntity(str, StandardCharsets.UTF_8)).build();
+        HttpUriRequest request = RequestBuilder.post(uri).setEntity(new StringEntity(str, StandardCharsets.UTF_8))
+                .build();
 
         // Execute the method.
         executeAndCheckHttpRequest(request);
@@ -766,8 +766,8 @@
     // and returns the contents as a string
     // This string is later passed to REST API for execution.
     public String readTestFile(File testFile) throws Exception {
-        BufferedReader reader =
-                new BufferedReader(new InputStreamReader(new FileInputStream(testFile), StandardCharsets.UTF_8));
+        BufferedReader reader = new BufferedReader(
+                new InputStreamReader(new FileInputStream(testFile), StandardCharsets.UTF_8));
         String line;
         StringBuilder stringBuilder = new StringBuilder();
         String ls = System.getProperty("line.separator");
@@ -779,15 +779,6 @@
         return stringBuilder.toString();
     }
 
-    public static void executeManagixCommand(String command) throws ClassNotFoundException, NoSuchMethodException,
-            SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
-        if (managixExecuteMethod == null) {
-            Class<?> clazz = Class.forName("org.apache.asterix.installer.test.AsterixInstallerIntegrationUtil");
-            managixExecuteMethod = clazz.getMethod("executeCommand", String.class);
-        }
-        managixExecuteMethod.invoke(null, command);
-    }
-
     public static String executeScript(ProcessBuilder pb, String scriptPath) throws Exception {
         LOGGER.info("Executing script: " + scriptPath);
         pb.command(scriptPath);
@@ -795,22 +786,6 @@
         return getProcessOutput(p);
     }
 
-    private static String executeVagrantScript(ProcessBuilder pb, String node, String scriptName) throws Exception {
-        pb.command("vagrant", "ssh", node, "--", pb.environment().get("SCRIPT_HOME") + scriptName);
-        Process p = pb.start();
-        p.waitFor();
-        InputStream input = p.getInputStream();
-        return IOUtils.toString(input, StandardCharsets.UTF_8.name());
-    }
-
-    private static String executeVagrantManagix(ProcessBuilder pb, String command) throws Exception {
-        pb.command("vagrant", "ssh", "cc", "--", pb.environment().get("MANAGIX_HOME") + command);
-        Process p = pb.start();
-        p.waitFor();
-        InputStream input = p.getInputStream();
-        return IOUtils.toString(input, StandardCharsets.UTF_8.name());
-    }
-
     private static String getScriptPath(String queryPath, String scriptBasePath, String scriptFileName) {
         String targetWord = "queries" + File.separator;
         int targetWordSize = targetWord.lastIndexOf(File.separator);
@@ -822,8 +797,8 @@
 
     private static String getProcessOutput(Process p) throws Exception {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        Future<Integer> future =
-                Executors.newSingleThreadExecutor().submit(() -> IOUtils.copy(p.getInputStream(), new OutputStream() {
+        Future<Integer> future = Executors.newSingleThreadExecutor()
+                .submit(() -> IOUtils.copy(p.getInputStream(), new OutputStream() {
                     @Override
                     public void write(int b) throws IOException {
                         baos.write(b);
@@ -917,10 +892,6 @@
                         expectedResultFile, actualResultFile, queryCount, expectedResultFileCtxs.size(),
                         cUnit.getParameter(), ComparisonEnum.TEXT);
                 break;
-            case "mgx":
-                executeManagixCommand(stripLineComments(statement).trim());
-                Thread.sleep(8000);
-                break;
             case "txnqbc": // qbc represents query before crash
                 InputStream resultStream = executeQuery(statement, OutputFormat.forCompilationUnit(cUnit),
                         getEndpoint(Servlets.AQL_QUERY), cUnit.getParameter());
@@ -979,28 +950,6 @@
                 }
                 System.err.println("...but that was expected.");
                 break;
-            case "vscript": // a script that will be executed on a vagrant virtual node
-                try {
-                    String[] command = stripLineComments(statement).trim().split(" ");
-                    if (command.length != 2) {
-                        throw new Exception("invalid vagrant script format");
-                    }
-                    String nodeId = command[0];
-                    String scriptName = command[1];
-                    String output = executeVagrantScript(pb, nodeId, scriptName);
-                    if (output.contains("ERROR")) {
-                        throw new Exception(output);
-                    }
-                } catch (Exception e) {
-                    throw new Exception("Test \"" + testFile + "\" FAILED!\n", e);
-                }
-                break;
-            case "vmgx": // a managix command that will be executed on vagrant cc node
-                String output = executeVagrantManagix(pb, stripLineComments(statement).trim());
-                if (output.contains("ERROR")) {
-                    throw new Exception(output);
-                }
-                break;
             case "get":
             case "post":
             case "put":
@@ -1094,8 +1043,13 @@
                 command = stripJavaComments(statement).trim().split(" ");
                 String commandType = command[0];
                 String nodeId = command[1];
-                if (commandType.equals("kill")) {
-                    killNC(nodeId, cUnit);
+                switch (commandType) {
+                    case "kill":
+                        killNC(nodeId, cUnit);
+                        break;
+                    case "start":
+                        startNC(nodeId);
+                        break;
                 }
                 break;
             case "loop":
@@ -1403,9 +1357,9 @@
         return executeJSON(fmt, ctxType.toUpperCase(), uri, params, responseCodeValidator);
     }
 
-    private void killNC(String nodeId, CompilationUnit cUnit) throws Exception {
+    public void killNC(String nodeId, CompilationUnit cUnit) throws Exception {
         //get node process id
-        OutputFormat fmt = OutputFormat.forCompilationUnit(cUnit);
+        OutputFormat fmt = OutputFormat.CLEAN_JSON;
         String endpoint = "/admin/cluster/node/" + nodeId + "/config";
         InputStream executeJSONGet = executeJSONGet(fmt, createEndpointURI(endpoint, null));
         StringWriter actual = new StringWriter();
@@ -1421,6 +1375,18 @@
         deleteNCTxnLogs(nodeId, cUnit);
     }
 
+    public void startNC(String nodeId) throws Exception {
+        //get node process id
+        OutputFormat fmt = OutputFormat.CLEAN_JSON;
+        String endpoint = "/rest/startnode";
+        List<Parameter> params = new ArrayList<>();
+        Parameter node = new Parameter();
+        node.setName("node");
+        node.setValue(nodeId);
+        params.add(node);
+        InputStream executeJSON = executeJSON(fmt, "POST", URI.create("http://localhost:16001" + endpoint), params);
+    }
+
     private void deleteNCTxnLogs(String nodeId, CompilationUnit cUnit) throws Exception {
         OutputFormat fmt = OutputFormat.forCompilationUnit(cUnit);
         String endpoint = "/admin/cluster/node/" + nodeId + "/config";
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestHelper.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestHelper.java
index df9782a..66a34ff 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestHelper.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestHelper.java
@@ -19,7 +19,6 @@
 package org.apache.asterix.test.common;
 
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -29,13 +28,6 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.asterix.common.configuration.AsterixConfiguration;
-import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.commons.compress.utils.IOUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.hyracks.util.file.FileUtil;
@@ -54,6 +46,15 @@
         return false;
     }
 
+    public static void deleteExistingInstanceFiles() {
+        for (String dirName : TEST_DIRS) {
+            File f = new File(FileUtil.joinPath(TEST_DIR_BASE_PATH, dirName));
+            if (FileUtils.deleteQuietly(f)) {
+                System.out.println("Dir " + f.getName() + " deleted");
+            }
+        }
+    }
+
     public static void unzip(String sourceFile, String outputDir) throws IOException {
         if (System.getProperty("os.name").toLowerCase().startsWith("win")) {
             try (ZipFile zipFile = new ZipFile(sourceFile)) {
@@ -80,43 +81,4 @@
             }
         }
     }
-
-    public static AsterixConfiguration getConfigurations(String fileName)
-            throws IOException, JAXBException, AsterixException {
-        try (InputStream is = TestHelper.class.getClassLoader().getResourceAsStream(fileName)) {
-            if (is != null) {
-                JAXBContext ctx = JAXBContext.newInstance(AsterixConfiguration.class);
-                Unmarshaller unmarshaller = ctx.createUnmarshaller();
-                return (AsterixConfiguration) unmarshaller.unmarshal(is);
-            } else {
-                throw new AsterixException("Could not find configuration file " + fileName);
-            }
-        }
-    }
-
-    public static void writeConfigurations(AsterixConfiguration ac, String fileName)
-            throws FileNotFoundException, IOException, JAXBException {
-        File configFile = new File(fileName);
-        if (!configFile.exists()) {
-            configFile.getParentFile().mkdirs();
-            configFile.createNewFile();
-        } else {
-            configFile.delete();
-        }
-        try (FileOutputStream os = new FileOutputStream(fileName)) {
-            JAXBContext ctx = JAXBContext.newInstance(AsterixConfiguration.class);
-            Marshaller marshaller = ctx.createMarshaller();
-            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
-            marshaller.marshal(ac, os);
-        }
-    }
-
-    public static void deleteExistingInstanceFiles() {
-        for (String dirName : TEST_DIRS) {
-            File f = new File(FileUtil.joinPath(TEST_DIR_BASE_PATH, dirName));
-            if (FileUtils.deleteQuietly(f)) {
-                System.out.println("Dir " + f.getName() + " deleted");
-            }
-        }
-    }
 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ComponentRollbackTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ComponentRollbackTest.java
index e923d93..fca0848 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ComponentRollbackTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ComponentRollbackTest.java
@@ -90,8 +90,8 @@
     private static final IAType[] KEY_TYPES = { BuiltinType.AINT32 };
     private static final ARecordType RECORD_TYPE = new ARecordType("TestRecordType", new String[] { "key", "value" },
             new IAType[] { BuiltinType.AINT32, BuiltinType.AINT64 }, false);
-    private static final GenerationFunction[] RECORD_GEN_FUNCTION =
-            { GenerationFunction.DETERMINISTIC, GenerationFunction.DETERMINISTIC };
+    private static final GenerationFunction[] RECORD_GEN_FUNCTION = { GenerationFunction.DETERMINISTIC,
+            GenerationFunction.DETERMINISTIC };
     private static final boolean[] UNIQUE_RECORD_FIELDS = { true, false };
     private static final ARecordType META_TYPE = null;
     private static final GenerationFunction[] META_GEN_FUNCTION = null;
@@ -133,7 +133,7 @@
         System.out.println("SetUp: ");
         TestHelper.deleteExistingInstanceFiles();
         String configPath = System.getProperty("user.dir") + File.separator + "src" + File.separator + "test"
-                + File.separator + "resources" + File.separator + "multi-partition-test-configuration.xml";
+                + File.separator + "resources" + File.separator + "cc.conf";
         nc = new TestNodeController(configPath, false);
         nc.init();
         ncAppCtx = nc.getAppRuntimeContext();
@@ -152,15 +152,14 @@
         List<List<String>> partitioningKeys = new ArrayList<>();
         partitioningKeys.add(Collections.singletonList("key"));
         int partition = 0;
-        dataset =
-                new TestDataset(DATAVERSE_NAME, DATASET_NAME, DATAVERSE_NAME, DATA_TYPE_NAME, NODE_GROUP_NAME,
-                        NoMergePolicyFactory.NAME, null, new InternalDatasetDetails(null, PartitioningStrategy.HASH,
-                                partitioningKeys, null, null, null, false, null),
-                        null, DatasetType.INTERNAL, DATASET_ID, 0);
+        dataset = new TestDataset(DATAVERSE_NAME, DATASET_NAME, DATAVERSE_NAME, DATA_TYPE_NAME, NODE_GROUP_NAME,
+                NoMergePolicyFactory.NAME, null, new InternalDatasetDetails(null, PartitioningStrategy.HASH,
+                        partitioningKeys, null, null, null, false, null),
+                null, DatasetType.INTERNAL, DATASET_ID, 0);
         PrimaryIndexInfo primaryIndexInfo = nc.createPrimaryIndex(dataset, KEY_TYPES, RECORD_TYPE, META_TYPE, null,
                 storageManager, KEY_INDEXES, KEY_INDICATORS_LIST, partition);
-        IndexDataflowHelperFactory iHelperFactory =
-                new IndexDataflowHelperFactory(nc.getStorageManager(), primaryIndexInfo.getFileSplitProvider());
+        IndexDataflowHelperFactory iHelperFactory = new IndexDataflowHelperFactory(nc.getStorageManager(),
+                primaryIndexInfo.getFileSplitProvider());
         JobId jobId = nc.newJobId();
         ctx = nc.createTestContext(jobId, partition, false);
         indexDataflowHelper = iHelperFactory.create(ctx.getJobletContext().getServiceContext(), partition);
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/LogMarkerTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/LogMarkerTest.java
index 0a968c8..5e32a10 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/LogMarkerTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/LogMarkerTest.java
@@ -75,8 +75,8 @@
     private static final IAType[] KEY_TYPES = { BuiltinType.AINT32 };
     private static final ARecordType RECORD_TYPE = new ARecordType("TestRecordType", new String[] { "key", "value" },
             new IAType[] { BuiltinType.AINT32, BuiltinType.AINT64 }, false);
-    private static final GenerationFunction[] RECORD_GEN_FUNCTION =
-            { GenerationFunction.DETERMINISTIC, GenerationFunction.DETERMINISTIC };
+    private static final GenerationFunction[] RECORD_GEN_FUNCTION = { GenerationFunction.DETERMINISTIC,
+            GenerationFunction.DETERMINISTIC };
     private static final boolean[] UNIQUE_RECORD_FIELDS = { true, false };
     private static final ARecordType META_TYPE = null;
     private static final GenerationFunction[] META_GEN_FUNCTION = null;
@@ -150,10 +150,10 @@
                 }
                 insertOp.close();
                 nc.getTransactionManager().commitTransaction(txnCtx.getTxnId());
-                IndexDataflowHelperFactory iHelperFactory =
-                        new IndexDataflowHelperFactory(nc.getStorageManager(), indexInfo.getFileSplitProvider());
-                IIndexDataflowHelper dataflowHelper =
-                        iHelperFactory.create(ctx.getJobletContext().getServiceContext(), 0);
+                IndexDataflowHelperFactory iHelperFactory = new IndexDataflowHelperFactory(nc.getStorageManager(),
+                        indexInfo.getFileSplitProvider());
+                IIndexDataflowHelper dataflowHelper = iHelperFactory.create(ctx.getJobletContext().getServiceContext(),
+                        0);
                 dataflowHelper.open();
                 LSMBTree btree = (LSMBTree) dataflowHelper.getIndexInstance();
                 LongPointable longPointable = LongPointable.FACTORY.createPointable();
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/MultiPartitionLSMIndexTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/MultiPartitionLSMIndexTest.java
index 8b8c600..703eb85 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/MultiPartitionLSMIndexTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/MultiPartitionLSMIndexTest.java
@@ -86,8 +86,8 @@
     private static final IAType[] KEY_TYPES = { BuiltinType.AINT32 };
     private static final ARecordType RECORD_TYPE = new ARecordType("TestRecordType", new String[] { "key", "value" },
             new IAType[] { BuiltinType.AINT32, BuiltinType.AINT64 }, false);
-    private static final GenerationFunction[] RECORD_GEN_FUNCTION =
-            { GenerationFunction.DETERMINISTIC, GenerationFunction.DETERMINISTIC };
+    private static final GenerationFunction[] RECORD_GEN_FUNCTION = { GenerationFunction.DETERMINISTIC,
+            GenerationFunction.DETERMINISTIC };
     private static final boolean[] UNIQUE_RECORD_FIELDS = { true, false };
     private static final ARecordType META_TYPE = null;
     private static final GenerationFunction[] META_GEN_FUNCTION = null;
@@ -104,8 +104,8 @@
     private static final String DATA_TYPE_NAME = "DUMMY";
     private static final String NODE_GROUP_NAME = "DEFAULT";
     private static final IndexType INDEX_TYPE = IndexType.BTREE;
-    private static final List<List<String>> INDEX_FIELD_NAMES =
-            Arrays.asList(Arrays.asList(RECORD_TYPE.getFieldNames()[1]));
+    private static final List<List<String>> INDEX_FIELD_NAMES = Arrays
+            .asList(Arrays.asList(RECORD_TYPE.getFieldNames()[1]));
     private static final List<Integer> INDEX_FIELD_INDICATORS = Arrays.asList(Index.RECORD_INDICATOR);
     private static final List<IAType> INDEX_FIELD_TYPES = Arrays.asList(BuiltinType.AINT64);
     private static final StorageComponentProvider storageManager = new StorageComponentProvider();
@@ -129,7 +129,7 @@
         System.out.println("SetUp: ");
         TestHelper.deleteExistingInstanceFiles();
         String configPath = System.getProperty("user.dir") + File.separator + "src" + File.separator + "test"
-                + File.separator + "resources" + File.separator + "multi-partition-test-configuration.xml";
+                + File.separator + "resources" + File.separator + "cc-multipart.conf";
         nc = new TestNodeController(configPath, false);
         nc.init();
         ncAppCtx = nc.getAppRuntimeContext();
@@ -147,11 +147,10 @@
     public void createIndex() throws Exception {
         List<List<String>> partitioningKeys = new ArrayList<>();
         partitioningKeys.add(Collections.singletonList("key"));
-        dataset =
-                new TestDataset(DATAVERSE_NAME, DATASET_NAME, DATAVERSE_NAME, DATA_TYPE_NAME, NODE_GROUP_NAME,
-                        NoMergePolicyFactory.NAME, null, new InternalDatasetDetails(null, PartitioningStrategy.HASH,
-                                partitioningKeys, null, null, null, false, null),
-                        null, DatasetType.INTERNAL, DATASET_ID, 0);
+        dataset = new TestDataset(DATAVERSE_NAME, DATASET_NAME, DATAVERSE_NAME, DATA_TYPE_NAME, NODE_GROUP_NAME,
+                NoMergePolicyFactory.NAME, null, new InternalDatasetDetails(null, PartitioningStrategy.HASH,
+                        partitioningKeys, null, null, null, false, null),
+                null, DatasetType.INTERNAL, DATASET_ID, 0);
         secondaryIndex = new Index(DATAVERSE_NAME, DATASET_NAME, INDEX_NAME, INDEX_TYPE, INDEX_FIELD_NAMES,
                 INDEX_FIELD_INDICATORS, INDEX_FIELD_TYPES, false, false, false, 0);
         taskCtxs = new IHyracksTaskContext[NUM_PARTITIONS];
@@ -168,18 +167,18 @@
             taskCtxs[i] = nc.createTestContext(jobId, i, false);
             PrimaryIndexInfo primaryIndexInfo = nc.createPrimaryIndex(dataset, KEY_TYPES, RECORD_TYPE, META_TYPE, null,
                     storageManager, KEY_INDEXES, KEY_INDICATORS_LIST, i);
-            SecondaryIndexInfo secondaryIndexInfo =
-                    nc.createSecondaryIndex(primaryIndexInfo, secondaryIndex, storageManager, i);
-            IndexDataflowHelperFactory iHelperFactory =
-                    new IndexDataflowHelperFactory(nc.getStorageManager(), primaryIndexInfo.getFileSplitProvider());
-            primaryIndexDataflowHelpers[i] =
-                    iHelperFactory.create(taskCtxs[i].getJobletContext().getServiceContext(), i);
+            SecondaryIndexInfo secondaryIndexInfo = nc.createSecondaryIndex(primaryIndexInfo, secondaryIndex,
+                    storageManager, i);
+            IndexDataflowHelperFactory iHelperFactory = new IndexDataflowHelperFactory(nc.getStorageManager(),
+                    primaryIndexInfo.getFileSplitProvider());
+            primaryIndexDataflowHelpers[i] = iHelperFactory.create(taskCtxs[i].getJobletContext().getServiceContext(),
+                    i);
             primaryIndexDataflowHelpers[i].open();
             primaryLsmBtrees[i] = (TestLsmBtree) primaryIndexDataflowHelpers[i].getIndexInstance();
-            iHelperFactory =
-                    new IndexDataflowHelperFactory(nc.getStorageManager(), secondaryIndexInfo.getFileSplitProvider());
-            secondaryIndexDataflowHelpers[i] =
-                    iHelperFactory.create(taskCtxs[i].getJobletContext().getServiceContext(), i);
+            iHelperFactory = new IndexDataflowHelperFactory(nc.getStorageManager(),
+                    secondaryIndexInfo.getFileSplitProvider());
+            secondaryIndexDataflowHelpers[i] = iHelperFactory.create(taskCtxs[i].getJobletContext().getServiceContext(),
+                    i);
             secondaryIndexDataflowHelpers[i].open();
             secondaryLsmBtrees[i] = (TestLsmBtree) secondaryIndexDataflowHelpers[i].getIndexInstance();
             secondaryIndexDataflowHelpers[i].close();
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dml/DmlTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dml/DmlTest.java
index 7818d13..facf03d1 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dml/DmlTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dml/DmlTest.java
@@ -59,13 +59,13 @@
         }
         outdir.mkdirs();
 
-        integrationUtil.init(true);
+        integrationUtil.init(true, AsterixHyracksIntegrationUtil.DEFAULT_CONF_FILE);
         Reader loadReader = new BufferedReader(
                 new InputStreamReader(new FileInputStream(LOAD_FOR_ENLIST_FILE), "UTF-8"));
-        AsterixJavaClient asterixLoad =
-                new AsterixJavaClient((ICcApplicationContext) integrationUtil.cc.getApplicationContext(),
-                        integrationUtil.getHyracksClientConnection(), loadReader,
-                ERR, new AqlCompilationProvider(), new DefaultStatementExecutorFactory(), new StorageComponentProvider());
+        AsterixJavaClient asterixLoad = new AsterixJavaClient(
+                (ICcApplicationContext) integrationUtil.cc.getApplicationContext(),
+                integrationUtil.getHyracksClientConnection(), loadReader, ERR, new AqlCompilationProvider(),
+                new DefaultStatementExecutorFactory(), new StorageComponentProvider());
         try {
             asterixLoad.compile(true, false, false, false, false, true, false);
         } catch (AsterixException e) {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonLogicalPlanTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonLogicalPlanTest.java
index 77d0130..52532d6 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonLogicalPlanTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonLogicalPlanTest.java
@@ -1 +1 @@
-/* * 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.test.jsonplan;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.io.Reader;import java.util.ArrayList;import java.util.Collection;import java.util.logging.Logger;import org.apache.asterix.api.common.AsterixHyracksIntegrationUtil;import org.apache.asterix.api.java.AsterixJavaClient;import org.apache.asterix.app.translator.DefaultStatementExecutorFactory;import org.apache.asterix.common.config.GlobalConfig;import org.apache.asterix.common.context.IStorageComponentProvider;import org.apache.asterix.common.dataflow.ICcApplicationContext;import org.apache.asterix.common.exceptions.AsterixException;import org.apache.asterix.compiler.provider.AqlCompilationProvider;import org.apache.asterix.compiler.provider.ILangCompilationProvider;import org.apache.asterix.compiler.provider.SqlppCompilationProvider;import org.apache.asterix.external.util.ExternalDataConstants;import org.apache.asterix.external.util.IdentitiyResolverFactory;import org.apache.asterix.file.StorageComponentProvider;import org.apache.asterix.test.base.AsterixTestHelper;import org.apache.asterix.test.common.TestHelper;import org.apache.asterix.test.runtime.HDFSCluster;import org.apache.asterix.translator.IStatementExecutorFactory;import org.apache.asterix.translator.SessionConfig.PlanFormat;import org.apache.hyracks.api.client.IHyracksClientConnection;import org.junit.AfterClass;import org.junit.Assume;import org.junit.BeforeClass;import org.junit.Test;import org.junit.internal.AssumptionViolatedException;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters;import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.databind.ObjectMapper;@RunWith(Parameterized.class)public class JsonLogicalPlanTest {    private static final Logger LOGGER =            Logger.getLogger(org.apache.asterix.test.jsonplan.JsonLogicalPlanTest.class.getName());    protected static final String SEPARATOR = File.separator;    private static final String EXTENSION_AQL = "aql";    private static final String EXTENSION_SQLPP = "sqlpp";    private static final String EXTENSION_RESULT = "plan";    private static final String FILENAME_IGNORE = "ignore.txt";    private static final String FILENAME_ONLY = "only.txt";    private static final String PATH_BASE =            "src" + SEPARATOR + "test" + SEPARATOR + "resources" + SEPARATOR + "optimizerts" + SEPARATOR;    private static final String PATH_QUERIES = PATH_BASE + "queries" + SEPARATOR;    protected static String PATH_ACTUAL = "target" + File.separator + "jplantest" + SEPARATOR;    protected static boolean optimized = false;    private static final ArrayList<String> ignore = AsterixTestHelper.readTestListFile(FILENAME_IGNORE, PATH_BASE);    private static final ArrayList<String> only = AsterixTestHelper.readTestListFile(FILENAME_ONLY, PATH_BASE);    protected static String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";    private static final ILangCompilationProvider aqlCompilationProvider = new AqlCompilationProvider();    private static final ILangCompilationProvider sqlppCompilationProvider = new SqlppCompilationProvider();    protected static ILangCompilationProvider extensionLangCompilationProvider = null;    protected static IStatementExecutorFactory statementExecutorFactory = new DefaultStatementExecutorFactory();    protected static IStorageComponentProvider storageComponentProvider = new StorageComponentProvider();    protected static AsterixHyracksIntegrationUtil integrationUtil = new AsterixHyracksIntegrationUtil();    @BeforeClass    public static void setUp() throws Exception {        System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, TEST_CONFIG_FILE_NAME);        final File outdir = new File(PATH_ACTUAL);        outdir.mkdirs();        HDFSCluster.getInstance().setup();        integrationUtil.init(true);        // Set the node resolver to be the identity resolver that expects node names        // to be node controller ids; a valid assumption in test environment.        System.setProperty(ExternalDataConstants.NODE_RESOLVER_FACTORY_PROPERTY,                IdentitiyResolverFactory.class.getName());    }    @AfterClass    public static void tearDown() throws Exception {        File outdir = new File(PATH_ACTUAL);        File[] files = outdir.listFiles();        if (files == null || files.length == 0) {            outdir.delete();        }        HDFSCluster.getInstance().cleanup();        integrationUtil.deinit(true);    }    private static void suiteBuildPerFile(File file, Collection<Object[]> testArgs, String path) {        if (file.isDirectory() && !file.getName().startsWith(".")) {            for (File innerfile : file.listFiles()) {                String subdir = innerfile.isDirectory() ? path + innerfile.getName() + SEPARATOR : path;                suiteBuildPerFile(innerfile, testArgs, subdir);            }        }        if (file.isFile() && (file.getName().endsWith(EXTENSION_AQL) || file.getName().endsWith(EXTENSION_SQLPP))) {            String resultFileName = AsterixTestHelper.extToResExt(file.getName(), EXTENSION_RESULT);            File actualFile = new File(PATH_ACTUAL + SEPARATOR + path + resultFileName);            testArgs.add(new Object[] { file, actualFile });        }    }    @Parameters(name = "JsonLogicalPlanTest {index}: {0}")    public static Collection<Object[]> tests() {        Collection<Object[]> testArgs = new ArrayList<>();        if (only.isEmpty()) {            suiteBuildPerFile(new File(PATH_QUERIES), testArgs, "");        } else {            for (String path : only) {                suiteBuildPerFile(new File(PATH_QUERIES + path), testArgs,                        path.lastIndexOf(SEPARATOR) < 0 ? "" : path.substring(0, path.lastIndexOf(SEPARATOR) + 1));            }        }        return testArgs;    }    private final File actualFile;    private final File queryFile;    public JsonLogicalPlanTest(final File queryFile, final File actualFile) {        this.queryFile = queryFile;        this.actualFile = actualFile;    }    @Test    public void test() throws Exception {        try {            String queryFileShort =                    queryFile.getPath().substring(PATH_QUERIES.length()).replace(SEPARATOR.charAt(0), '/');            if (!only.isEmpty()) {                boolean toRun = TestHelper.isInPrefixList(only, queryFileShort);                if (!toRun) {                    LOGGER.info("SKIP TEST: \"" + queryFile.getPath()                            + "\" \"only.txt\" not empty and not in \"only.txt\".");                }                Assume.assumeTrue(toRun);            }            boolean skipped = TestHelper.isInPrefixList(ignore, queryFileShort);            if (skipped) {                LOGGER.info("SKIP TEST: \"" + queryFile.getPath() + "\" in \"ignore.txt\".");            }            Assume.assumeTrue(!skipped);            LOGGER.info("RUN TEST: \"" + queryFile.getPath() + "\"");            Reader query = new BufferedReader(new InputStreamReader(new FileInputStream(queryFile), "UTF-8"));            // Forces the creation of actualFile.            actualFile.getParentFile().mkdirs();            PrintWriter plan = new PrintWriter(actualFile);            ILangCompilationProvider provider =                    queryFile.getName().endsWith("aql") ? aqlCompilationProvider : sqlppCompilationProvider;            if (extensionLangCompilationProvider != null) {                provider = extensionLangCompilationProvider;            }            IHyracksClientConnection hcc = integrationUtil.getHyracksClientConnection();            AsterixJavaClient asterix =                    new AsterixJavaClient((ICcApplicationContext) integrationUtil.cc.getApplicationContext(), hcc,                            query, plan, provider, statementExecutorFactory, storageComponentProvider);            try {                asterix.compile(true, false, !optimized, optimized, false, false, false, PlanFormat.JSON);            } catch (AsterixException e) {                plan.close();                query.close();                throw new Exception("Compile ERROR for " + queryFile + ": " + e.getMessage(), e);            }            plan.close();            query.close();            BufferedReader readerActual =                    new BufferedReader(new InputStreamReader(new FileInputStream(actualFile), "UTF-8"));            String lineActual, objectActual = "";            boolean firstPlan = false;            while ((lineActual = readerActual.readLine()) != null) {                if (lineActual.contains("--")) {                    if (firstPlan) {                        break;                    }                    firstPlan = true;                } else {                    objectActual = objectActual + lineActual;                }            }            try {                final JsonParser parser = new ObjectMapper().getJsonFactory().createJsonParser(objectActual);                while (parser.nextToken() != null) {                }            } finally {                readerActual.close();            }        } catch (Exception e) {            if (!(e instanceof AssumptionViolatedException)) {                LOGGER.severe("Test \"" + queryFile.getPath() + "\" FAILED!");                throw new Exception("Test \"" + queryFile.getPath() + "\" FAILED!", e);            } else {                throw e;            }        }    }}
\ No newline at end of file
+/* * 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.test.jsonplan;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.io.Reader;import java.util.ArrayList;import java.util.Collection;import java.util.logging.Logger;import org.apache.asterix.api.common.AsterixHyracksIntegrationUtil;import org.apache.asterix.api.java.AsterixJavaClient;import org.apache.asterix.app.translator.DefaultStatementExecutorFactory;import org.apache.asterix.common.config.GlobalConfig;import org.apache.asterix.common.context.IStorageComponentProvider;import org.apache.asterix.common.dataflow.ICcApplicationContext;import org.apache.asterix.common.exceptions.AsterixException;import org.apache.asterix.compiler.provider.AqlCompilationProvider;import org.apache.asterix.compiler.provider.ILangCompilationProvider;import org.apache.asterix.compiler.provider.SqlppCompilationProvider;import org.apache.asterix.external.util.ExternalDataConstants;import org.apache.asterix.external.util.IdentitiyResolverFactory;import org.apache.asterix.file.StorageComponentProvider;import org.apache.asterix.test.base.AsterixTestHelper;import org.apache.asterix.test.common.TestHelper;import org.apache.asterix.test.runtime.HDFSCluster;import org.apache.asterix.translator.IStatementExecutorFactory;import org.apache.asterix.translator.SessionConfig.PlanFormat;import org.apache.hyracks.api.client.IHyracksClientConnection;import org.junit.AfterClass;import org.junit.Assume;import org.junit.BeforeClass;import org.junit.Test;import org.junit.internal.AssumptionViolatedException;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters;import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.databind.ObjectMapper;@RunWith(Parameterized.class)public class JsonLogicalPlanTest {    private static final Logger LOGGER = Logger            .getLogger(org.apache.asterix.test.jsonplan.JsonLogicalPlanTest.class.getName());    protected static final String SEPARATOR = File.separator;    private static final String EXTENSION_AQL = "aql";    private static final String EXTENSION_SQLPP = "sqlpp";    private static final String EXTENSION_RESULT = "plan";    private static final String FILENAME_IGNORE = "ignore.txt";    private static final String FILENAME_ONLY = "only.txt";    private static final String PATH_BASE = "src" + SEPARATOR + "test" + SEPARATOR + "resources" + SEPARATOR            + "optimizerts" + SEPARATOR;    private static final String PATH_QUERIES = PATH_BASE + "queries" + SEPARATOR;    protected static String PATH_ACTUAL = "target" + File.separator + "jplantest" + SEPARATOR;    protected static boolean optimized = false;    private static final ArrayList<String> ignore = AsterixTestHelper.readTestListFile(FILENAME_IGNORE, PATH_BASE);    private static final ArrayList<String> only = AsterixTestHelper.readTestListFile(FILENAME_ONLY, PATH_BASE);    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";    private static final ILangCompilationProvider aqlCompilationProvider = new AqlCompilationProvider();    private static final ILangCompilationProvider sqlppCompilationProvider = new SqlppCompilationProvider();    protected static ILangCompilationProvider extensionLangCompilationProvider = null;    protected static IStatementExecutorFactory statementExecutorFactory = new DefaultStatementExecutorFactory();    protected static IStorageComponentProvider storageComponentProvider = new StorageComponentProvider();    protected static AsterixHyracksIntegrationUtil integrationUtil = new AsterixHyracksIntegrationUtil();    @BeforeClass    public static void setUp() throws Exception {        System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, TEST_CONFIG_FILE_NAME);        final File outdir = new File(PATH_ACTUAL);        outdir.mkdirs();        HDFSCluster.getInstance().setup();        integrationUtil.init(true, TEST_CONFIG_FILE_NAME);        // Set the node resolver to be the identity resolver that expects node names        // to be node controller ids; a valid assumption in test environment.        System.setProperty(ExternalDataConstants.NODE_RESOLVER_FACTORY_PROPERTY,                IdentitiyResolverFactory.class.getName());    }    @AfterClass    public static void tearDown() throws Exception {        File outdir = new File(PATH_ACTUAL);        File[] files = outdir.listFiles();        if (files == null || files.length == 0) {            outdir.delete();        }        HDFSCluster.getInstance().cleanup();        integrationUtil.deinit(true);    }    private static void suiteBuildPerFile(File file, Collection<Object[]> testArgs, String path) {        if (file.isDirectory() && !file.getName().startsWith(".")) {            for (File innerfile : file.listFiles()) {                String subdir = innerfile.isDirectory() ? path + innerfile.getName() + SEPARATOR : path;                suiteBuildPerFile(innerfile, testArgs, subdir);            }        }        if (file.isFile() && (file.getName().endsWith(EXTENSION_AQL) || file.getName().endsWith(EXTENSION_SQLPP))) {            String resultFileName = AsterixTestHelper.extToResExt(file.getName(), EXTENSION_RESULT);            File actualFile = new File(PATH_ACTUAL + SEPARATOR + path + resultFileName);            testArgs.add(new Object[] { file, actualFile });        }    }    @Parameters(name = "JsonLogicalPlanTest {index}: {0}")    public static Collection<Object[]> tests() {        Collection<Object[]> testArgs = new ArrayList<>();        if (only.isEmpty()) {            suiteBuildPerFile(new File(PATH_QUERIES), testArgs, "");        } else {            for (String path : only) {                suiteBuildPerFile(new File(PATH_QUERIES + path), testArgs,                        path.lastIndexOf(SEPARATOR) < 0 ? "" : path.substring(0, path.lastIndexOf(SEPARATOR) + 1));            }        }        return testArgs;    }    private final File actualFile;    private final File queryFile;    public JsonLogicalPlanTest(final File queryFile, final File actualFile) {        this.queryFile = queryFile;        this.actualFile = actualFile;    }    @Test    public void test() throws Exception {        try {            String queryFileShort = queryFile.getPath().substring(PATH_QUERIES.length()).replace(SEPARATOR.charAt(0),                    '/');            if (!only.isEmpty()) {                boolean toRun = TestHelper.isInPrefixList(only, queryFileShort);                if (!toRun) {                    LOGGER.info("SKIP TEST: \"" + queryFile.getPath()                            + "\" \"only.txt\" not empty and not in \"only.txt\".");                }                Assume.assumeTrue(toRun);            }            boolean skipped = TestHelper.isInPrefixList(ignore, queryFileShort);            if (skipped) {                LOGGER.info("SKIP TEST: \"" + queryFile.getPath() + "\" in \"ignore.txt\".");            }            Assume.assumeTrue(!skipped);            LOGGER.info("RUN TEST: \"" + queryFile.getPath() + "\"");            Reader query = new BufferedReader(new InputStreamReader(new FileInputStream(queryFile), "UTF-8"));            // Forces the creation of actualFile.            actualFile.getParentFile().mkdirs();            PrintWriter plan = new PrintWriter(actualFile);            ILangCompilationProvider provider = queryFile.getName().endsWith("aql") ? aqlCompilationProvider                    : sqlppCompilationProvider;            if (extensionLangCompilationProvider != null) {                provider = extensionLangCompilationProvider;            }            IHyracksClientConnection hcc = integrationUtil.getHyracksClientConnection();            AsterixJavaClient asterix = new AsterixJavaClient(                    (ICcApplicationContext) integrationUtil.cc.getApplicationContext(), hcc, query, plan, provider,                    statementExecutorFactory, storageComponentProvider);            try {                asterix.compile(true, false, !optimized, optimized, false, false, false, PlanFormat.JSON);            } catch (AsterixException e) {                plan.close();                query.close();                throw new Exception("Compile ERROR for " + queryFile + ": " + e.getMessage(), e);            }            plan.close();            query.close();            BufferedReader readerActual = new BufferedReader(                    new InputStreamReader(new FileInputStream(actualFile), "UTF-8"));            String lineActual, objectActual = "";            boolean firstPlan = false;            while ((lineActual = readerActual.readLine()) != null) {                if (lineActual.contains("--")) {                    if (firstPlan) {                        break;                    }                    firstPlan = true;                } else {                    objectActual = objectActual + lineActual;                }            }            try {                final JsonParser parser = new ObjectMapper().getJsonFactory().createJsonParser(objectActual);                while (parser.nextToken() != null) {                }            } finally {                readerActual.close();            }        } catch (Exception e) {            if (!(e instanceof AssumptionViolatedException)) {                LOGGER.severe("Test \"" + queryFile.getPath() + "\" FAILED!");                throw new Exception("Test \"" + queryFile.getPath() + "\" FAILED!", e);            } else {                throw e;            }        }    }}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/logging/CheckpointingTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/logging/CheckpointingTest.java
index 7543bf6..f635d6f 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/logging/CheckpointingTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/logging/CheckpointingTest.java
@@ -30,8 +30,6 @@
 import org.apache.asterix.app.data.gen.TupleGenerator.GenerationFunction;
 import org.apache.asterix.common.config.DatasetConfig.DatasetType;
 import org.apache.asterix.common.config.TransactionProperties;
-import org.apache.asterix.common.configuration.AsterixConfiguration;
-import org.apache.asterix.common.configuration.Property;
 import org.apache.asterix.common.dataflow.LSMInsertDeleteOperatorNodePushable;
 import org.apache.asterix.common.transactions.Checkpoint;
 import org.apache.asterix.common.transactions.ICheckpointManager;
@@ -52,7 +50,9 @@
 import org.apache.asterix.test.common.TestHelper;
 import org.apache.asterix.transaction.management.service.logging.LogManager;
 import org.apache.asterix.transaction.management.service.recovery.AbstractCheckpointManager;
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.hyracks.api.comm.VSizeFrame;
+import org.apache.hyracks.api.config.IOption;
 import org.apache.hyracks.api.context.IHyracksTaskContext;
 import org.apache.hyracks.api.job.JobId;
 import org.apache.hyracks.dataflow.common.comm.io.FrameTupleAppender;
@@ -67,16 +67,15 @@
 
 public class CheckpointingTest {
 
-    private static final String DEFAULT_TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
-    private static final String TEST_CONFIG_FILE_NAME = "asterix-test-configuration.xml";
-    private static final String TEST_CONFIG_PATH =
-            System.getProperty("user.dir") + File.separator + "target" + File.separator + "config";
+    private static final String TEST_CONFIG_FILE_NAME = "cc.conf";
+    private static final String TEST_CONFIG_PATH = System.getProperty("user.dir") + File.separator + "src"
+            + File.separator + "main" + File.separator + "resources";
     private static final String TEST_CONFIG_FILE_PATH = TEST_CONFIG_PATH + File.separator + TEST_CONFIG_FILE_NAME;
     private static final IAType[] KEY_TYPES = { BuiltinType.AINT32 };
     private static final ARecordType RECORD_TYPE = new ARecordType("TestRecordType", new String[] { "key", "value" },
             new IAType[] { BuiltinType.AINT32, BuiltinType.AINT64 }, false);
-    private static final GenerationFunction[] RECORD_GEN_FUNCTION =
-            { GenerationFunction.DETERMINISTIC, GenerationFunction.DETERMINISTIC };
+    private static final GenerationFunction[] RECORD_GEN_FUNCTION = { GenerationFunction.DETERMINISTIC,
+            GenerationFunction.DETERMINISTIC };
     private static final boolean[] UNIQUE_RECORD_FIELDS = { true, false };
     private static final ARecordType META_TYPE = null;
     private static final GenerationFunction[] META_GEN_FUNCTION = null;
@@ -94,17 +93,6 @@
     @Before
     public void setUp() throws Exception {
         System.out.println("SetUp: ");
-        TestHelper.deleteExistingInstanceFiles();
-        // Read default test configurations
-        AsterixConfiguration ac = TestHelper.getConfigurations(DEFAULT_TEST_CONFIG_FILE_NAME);
-        // Set log file size to 2MB
-        ac.getProperty().add(new Property(TransactionProperties.TXN_LOG_PARTITIONSIZE_KEY,
-                String.valueOf(TXN_LOG_PARTITION_SIZE), ""));
-        // Disable checkpointing by making checkpoint thread wait max wait time
-        ac.getProperty().add(new Property(TransactionProperties.TXN_LOG_CHECKPOINT_POLLFREQUENCY_KEY,
-                String.valueOf(Integer.MAX_VALUE), ""));
-        // Write test config file
-        TestHelper.writeConfigurations(ac, TEST_CONFIG_FILE_PATH);
     }
 
     @After
@@ -113,10 +101,18 @@
         TestHelper.deleteExistingInstanceFiles();
     }
 
+    private List<Pair<IOption, Object>> setOpts() {
+        List<Pair<IOption, Object>> opts = new ArrayList<>();
+        opts.add(Pair.of(TransactionProperties.Option.TXN_LOG_PARTITIONSIZE, TXN_LOG_PARTITION_SIZE));
+        opts.add(Pair.of(TransactionProperties.Option.TXN_LOG_CHECKPOINT_POLLFREQUENCY, Integer.MAX_VALUE));
+        return opts;
+    }
+
     @Test
     public void testDeleteOldLogFiles() {
         try {
             TestNodeController nc = new TestNodeController(new File(TEST_CONFIG_FILE_PATH).getAbsolutePath(), false);
+            nc.setOpts(setOpts());
             StorageComponentProvider storageManager = new StorageComponentProvider();
             nc.init();
             List<List<String>> partitioningKeys = new ArrayList<>();
@@ -221,8 +217,8 @@
             nc.init();
             try {
                 final ITransactionSubsystem txnSubsystem = nc.getTransactionSubsystem();
-                final AbstractCheckpointManager checkpointManager =
-                        (AbstractCheckpointManager) txnSubsystem.getCheckpointManager();
+                final AbstractCheckpointManager checkpointManager = (AbstractCheckpointManager) txnSubsystem
+                        .getCheckpointManager();
                 // Make a checkpoint with the current minFirstLSN
                 final long minFirstLSN = txnSubsystem.getRecoveryManager().getMinFirstLSN();
                 checkpointManager.tryCheckpoint(minFirstLSN);
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataTest.java
index f75942d..0cd9473 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataTest.java
@@ -45,17 +45,16 @@
     private static final String PATH_ACTUAL = "target" + File.separator + "mdtest" + File.separator;
     private static final String PATH_BASE = StringUtils
             .join(new String[] { "src", "test", "resources", "metadata" + File.separator }, File.separator);
-    private static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
 
     private static final TestExecutor testExecutor = new TestExecutor();
     private static AsterixHyracksIntegrationUtil integrationUtil = new AsterixHyracksIntegrationUtil();
 
     @BeforeClass
     public static void setUp() throws Exception {
-        System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, TEST_CONFIG_FILE_NAME);
         File outdir = new File(PATH_ACTUAL);
         outdir.mkdirs();
-        integrationUtil.init(true);
+        integrationUtil.init(true, TEST_CONFIG_FILE_NAME);
     }
 
     @AfterClass
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataTxnTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataTxnTest.java
index 3e906b4..1d31bc0 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataTxnTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/metadata/MetadataTxnTest.java
@@ -53,14 +53,14 @@
 
 public class MetadataTxnTest {
 
-    private static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
     private static final TestExecutor testExecutor = new TestExecutor();
     private static final AsterixHyracksIntegrationUtil integrationUtil = new AsterixHyracksIntegrationUtil();
 
     @Before
     public void setUp() throws Exception {
         System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, TEST_CONFIG_FILE_NAME);
-        integrationUtil.init(true);
+        integrationUtil.init(true, TEST_CONFIG_FILE_NAME);
     }
 
     @After
@@ -70,8 +70,8 @@
 
     @Test
     public void abortMetadataTxn() throws Exception {
-        ICcApplicationContext appCtx =
-                (ICcApplicationContext) integrationUtil.getClusterControllerService().getApplicationContext();
+        ICcApplicationContext appCtx = (ICcApplicationContext) integrationUtil.getClusterControllerService()
+                .getApplicationContext();
         final MetadataProvider metadataProvider = new MetadataProvider(appCtx, null);
         final MetadataTransactionContext mdTxn = MetadataManager.INSTANCE.beginTransaction();
         metadataProvider.setMetadataTxnContext(mdTxn);
@@ -98,8 +98,8 @@
 
     @Test
     public void rebalanceFailureMetadataTxn() throws Exception {
-        ICcApplicationContext appCtx =
-                (ICcApplicationContext) integrationUtil.getClusterControllerService().getApplicationContext();
+        ICcApplicationContext appCtx = (ICcApplicationContext) integrationUtil.getClusterControllerService()
+                .getApplicationContext();
         String nodeGroup = "ng";
         String datasetName = "dataset1";
         final TestCaseContext.OutputFormat format = TestCaseContext.OutputFormat.CLEAN_JSON;
@@ -158,8 +158,8 @@
         testExecutor.executeSqlppUpdateOrDdl("CREATE DATASET " + datasetName + "(KeyType) PRIMARY KEY id;", format);
 
         // get created dataset
-        ICcApplicationContext appCtx =
-                (ICcApplicationContext) integrationUtil.getClusterControllerService().getApplicationContext();
+        ICcApplicationContext appCtx = (ICcApplicationContext) integrationUtil.getClusterControllerService()
+                .getApplicationContext();
         MetadataProvider metadataProvider = new MetadataProvider(appCtx, null);
         final MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
@@ -202,8 +202,8 @@
         Assert.assertEquals(0, failCount.get());
 
         // make sure all metadata indexes have no pending operations after all txns committed/aborted
-        final IDatasetLifecycleManager datasetLifecycleManager =
-                ((INcApplicationContext) integrationUtil.ncs[0].getApplicationContext()).getDatasetLifecycleManager();
+        final IDatasetLifecycleManager datasetLifecycleManager = ((INcApplicationContext) integrationUtil.ncs[0]
+                .getApplicationContext()).getDatasetLifecycleManager();
         int maxMetadatasetId = 14;
         for (int i = 1; i <= maxMetadatasetId; i++) {
             if (datasetLifecycleManager.getIndex(i, i) != null) {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/optimizer/OptimizerTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/optimizer/OptimizerTest.java
index c0a4d80..9b8afd3 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/optimizer/OptimizerTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/optimizer/OptimizerTest.java
@@ -67,15 +67,15 @@
     private static final String EXTENSION_RESULT = "plan";
     private static final String FILENAME_IGNORE = "ignore.txt";
     private static final String FILENAME_ONLY = "only.txt";
-    private static final String PATH_BASE =
-            "src" + SEPARATOR + "test" + SEPARATOR + "resources" + SEPARATOR + "optimizerts" + SEPARATOR;
+    private static final String PATH_BASE = "src" + SEPARATOR + "test" + SEPARATOR + "resources" + SEPARATOR
+            + "optimizerts" + SEPARATOR;
     private static final String PATH_QUERIES = PATH_BASE + "queries" + SEPARATOR;
     private static final String PATH_EXPECTED = PATH_BASE + "results" + SEPARATOR;
     protected static final String PATH_ACTUAL = "target" + File.separator + "opttest" + SEPARATOR;
 
     private static final ArrayList<String> ignore = AsterixTestHelper.readTestListFile(FILENAME_IGNORE, PATH_BASE);
     private static final ArrayList<String> only = AsterixTestHelper.readTestListFile(FILENAME_ONLY, PATH_BASE);
-    protected static String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
     private static final ILangCompilationProvider aqlCompilationProvider = new AqlCompilationProvider();
     private static final ILangCompilationProvider sqlppCompilationProvider = new SqlppCompilationProvider();
     protected static ILangCompilationProvider extensionLangCompilationProvider = null;
@@ -86,13 +86,12 @@
 
     @BeforeClass
     public static void setUp() throws Exception {
-        System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, TEST_CONFIG_FILE_NAME);
         final File outdir = new File(PATH_ACTUAL);
         outdir.mkdirs();
 
         HDFSCluster.getInstance().setup();
 
-        integrationUtil.init(true);
+        integrationUtil.init(true, TEST_CONFIG_FILE_NAME);
         // Set the node resolver to be the identity resolver that expects node names
         // to be node controller ids; a valid assumption in test environment.
         System.setProperty(ExternalDataConstants.NODE_RESOLVER_FACTORY_PROPERTY,
@@ -154,10 +153,10 @@
     @Test
     public void test() throws Exception {
         try {
-            String queryFileShort =
-                    queryFile.getPath().substring(PATH_QUERIES.length()).replace(SEPARATOR.charAt(0), '/');
+            String queryFileShort = queryFile.getPath().substring(PATH_QUERIES.length()).replace(SEPARATOR.charAt(0),
+                    '/');
             if (!only.isEmpty()) {
-                boolean toRun = TestHelper.isInPrefixList(only, queryFileShort);
+                boolean toRun =  TestHelper.isInPrefixList(only, queryFileShort);
                 if (!toRun) {
                     LOGGER.info("SKIP TEST: \"" + queryFile.getPath()
                             + "\" \"only.txt\" not empty and not in \"only.txt\".");
@@ -179,15 +178,15 @@
             actualFile.getParentFile().mkdirs();
 
             PrintWriter plan = new PrintWriter(actualFile);
-            ILangCompilationProvider provider =
-                    queryFile.getName().endsWith("aql") ? aqlCompilationProvider : sqlppCompilationProvider;
+            ILangCompilationProvider provider = queryFile.getName().endsWith("aql") ? aqlCompilationProvider
+                    : sqlppCompilationProvider;
             if (extensionLangCompilationProvider != null) {
                 provider = extensionLangCompilationProvider;
             }
             IHyracksClientConnection hcc = integrationUtil.getHyracksClientConnection();
-            AsterixJavaClient asterix =
-                    new AsterixJavaClient((ICcApplicationContext) integrationUtil.cc.getApplicationContext(), hcc,
-                            query, plan, provider, statementExecutorFactory, storageComponentProvider);
+            AsterixJavaClient asterix = new AsterixJavaClient(
+                    (ICcApplicationContext) integrationUtil.cc.getApplicationContext(), hcc, query, plan, provider,
+                    statementExecutorFactory, storageComponentProvider);
             try {
                 asterix.compile(true, false, false, true, true, false, false);
             } catch (AlgebricksException e) {
@@ -198,10 +197,10 @@
             plan.close();
             query.close();
 
-            BufferedReader readerExpected =
-                    new BufferedReader(new InputStreamReader(new FileInputStream(expectedFile), "UTF-8"));
-            BufferedReader readerActual =
-                    new BufferedReader(new InputStreamReader(new FileInputStream(actualFile), "UTF-8"));
+            BufferedReader readerExpected = new BufferedReader(
+                    new InputStreamReader(new FileInputStream(expectedFile), "UTF-8"));
+            BufferedReader readerActual = new BufferedReader(
+                    new InputStreamReader(new FileInputStream(actualFile), "UTF-8"));
 
             String lineExpected, lineActual;
             int num = 1;
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/APIExecutionTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/APIExecutionTest.java
index dd87455..cf62e42 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/APIExecutionTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/APIExecutionTest.java
@@ -35,7 +35,7 @@
  */
 @RunWith(Parameterized.class)
 public class APIExecutionTest {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionFullParallelismIT.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionFullParallelismIT.java
index 4ab44e0..09758f6 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionFullParallelismIT.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionFullParallelismIT.java
@@ -35,7 +35,7 @@
  */
 @RunWith(Parameterized.class)
 public class AqlExecutionFullParallelismIT {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration2.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc2.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionLessParallelismIT.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionLessParallelismIT.java
index c72013e..62ed790 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionLessParallelismIT.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionLessParallelismIT.java
@@ -35,7 +35,7 @@
  */
 @RunWith(Parameterized.class)
 public class AqlExecutionLessParallelismIT {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration3.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc3.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionTest.java
index abc9f2f..6430219 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionTest.java
@@ -35,7 +35,7 @@
  */
 @RunWith(Parameterized.class)
 public class AqlExecutionTest {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionTestIT.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionTestIT.java
index 441f27d..290638e 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionTestIT.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/AqlExecutionTestIT.java
@@ -35,7 +35,7 @@
  */
 @RunWith(Parameterized.class)
 public class AqlExecutionTestIT {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ClusterStateDefaultParameterTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ClusterStateDefaultParameterTest.java
index 17e88a6..f029669 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ClusterStateDefaultParameterTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ClusterStateDefaultParameterTest.java
@@ -40,7 +40,7 @@
  */
 @RunWith(Parameterized.class)
 public class ClusterStateDefaultParameterTest {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration4.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc4.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ClusterStateExecutionFullParallelismTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ClusterStateExecutionFullParallelismTest.java
index e428c93..f79a7ea 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ClusterStateExecutionFullParallelismTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ClusterStateExecutionFullParallelismTest.java
@@ -35,7 +35,7 @@
  */
 @RunWith(Parameterized.class)
 public class ClusterStateExecutionFullParallelismTest {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration2.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc2.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ClusterStateExecutionLessParallelismTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ClusterStateExecutionLessParallelismTest.java
index 346ae2f..ccd54d7 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ClusterStateExecutionLessParallelismTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ClusterStateExecutionLessParallelismTest.java
@@ -35,7 +35,7 @@
  */
 @RunWith(Parameterized.class)
 public class ClusterStateExecutionLessParallelismTest {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration3.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc3.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
index 5c2d263..b7ffcf2 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
@@ -34,6 +34,8 @@
 import org.apache.asterix.external.util.IdentitiyResolverFactory;
 import org.apache.asterix.testframework.xml.TestGroup;
 import org.apache.asterix.testframework.xml.TestSuite;
+import org.apache.commons.lang3.tuple.Pair;
+import org.apache.hyracks.api.config.IOption;
 import org.apache.hyracks.control.nc.NodeControllerService;
 
 public class ExecutionTestUtil {
@@ -42,33 +44,36 @@
 
     protected static final String PATH_ACTUAL = "rttest" + File.separator;
 
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
-
     public static TestGroup FailedGroup;
 
     public static AsterixHyracksIntegrationUtil integrationUtil = new AsterixHyracksIntegrationUtil();
 
     public static List<ILibraryManager> setUp(boolean cleanup) throws Exception {
-        return setUp(cleanup, TEST_CONFIG_FILE_NAME, integrationUtil, true);
+        return setUp(cleanup, AsterixHyracksIntegrationUtil.DEFAULT_CONF_FILE, integrationUtil, true, null);
     }
 
     public static List<ILibraryManager> setUp(boolean cleanup, String configFile) throws Exception {
-        return setUp(cleanup, configFile, integrationUtil, true);
+        return setUp(cleanup, configFile, integrationUtil, true, null);
     }
 
     public static List<ILibraryManager> setUp(boolean cleanup, String configFile,
-            AsterixHyracksIntegrationUtil alternateIntegrationUtil, boolean startHdfs) throws Exception {
+            AsterixHyracksIntegrationUtil alternateIntegrationUtil, boolean startHdfs, List<Pair<IOption, Object>> opts)
+            throws Exception {
         System.out.println("Starting setup");
         if (LOGGER.isLoggable(Level.INFO)) {
             LOGGER.info("Starting setup");
         }
-        System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, configFile);
 
         if (LOGGER.isLoggable(Level.INFO)) {
             LOGGER.info("initializing pseudo cluster");
         }
         integrationUtil = alternateIntegrationUtil;
-        integrationUtil.init(cleanup);
+        if (opts != null) {
+            for (Pair<IOption, Object> p : opts) {
+                integrationUtil.addOption(p.getLeft(), p.getRight());
+            }
+        }
+        integrationUtil.init(cleanup, configFile);
 
         if (LOGGER.isLoggable(Level.INFO)) {
             LOGGER.info("initializing HDFS");
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/LangExecutionUtil.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/LangExecutionUtil.java
index 09761a0..8deb827 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/LangExecutionUtil.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/LangExecutionUtil.java
@@ -31,6 +31,7 @@
 import java.util.Collection;
 import java.util.List;
 
+import org.apache.asterix.common.config.NodeProperties;
 import org.apache.asterix.app.external.ExternalUDFLibrarian;
 import org.apache.asterix.common.library.ILibraryManager;
 import org.apache.asterix.common.utils.StorageConstants;
@@ -48,8 +49,8 @@
 public class LangExecutionUtil {
 
     private static final String PATH_ACTUAL = "target" + File.separator + "rttest" + File.separator;
-    private static final String PATH_BASE =
-            StringUtils.join(new String[] { "src", "test", "resources", "runtimets" }, File.separator);
+    private static final String PATH_BASE = StringUtils.join(new String[] { "src", "test", "resources", "runtimets" },
+            File.separator);
 
     private static final boolean cleanupOnStart = true;
     private static final boolean cleanupOnStop = true;
@@ -213,8 +214,8 @@
         String processId = processName.split("@")[0];
 
         // Checks whether there are leaked run files from operators.
-        Process process =
-                Runtime.getRuntime().exec(new String[] { "bash", "-c", "lsof -p " + processId + "|grep waf|wc -l" });
+        Process process = Runtime.getRuntime()
+                .exec(new String[] { "bash", "-c", "lsof -p " + processId + "|grep waf|wc -l" });
         try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
             int runFileCount = Integer.parseInt(reader.readLine().trim());
             if (runFileCount != 0) {
@@ -230,8 +231,8 @@
     }
 
     private static void outputLeakedOpenFiles(String processId) throws IOException {
-        Process process =
-                Runtime.getRuntime().exec(new String[] { "bash", "-c", "lsof -p " + processId + "|grep waf" });
+        Process process = Runtime.getRuntime()
+                .exec(new String[] { "bash", "-c", "lsof -p " + processId + "|grep waf" });
         try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
             String line;
             while ((line = reader.readLine()) != null) {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/MetricsExecutionTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/MetricsExecutionTest.java
index c7fae46..a973c63 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/MetricsExecutionTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/MetricsExecutionTest.java
@@ -35,7 +35,7 @@
  */
 @RunWith(Parameterized.class)
 public class MetricsExecutionTest {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/RebalanceTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/RebalanceTest.java
index 7eb1110..afde4b2 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/RebalanceTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/RebalanceTest.java
@@ -34,7 +34,7 @@
  */
 @RunWith(Parameterized.class)
 public class RebalanceTest {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/RebalanceWithCancellationIT.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/RebalanceWithCancellationIT.java
index 1d7bdc3..58502fb 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/RebalanceWithCancellationIT.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/RebalanceWithCancellationIT.java
@@ -35,7 +35,7 @@
  */
 @RunWith(Parameterized.class)
 public class RebalanceWithCancellationIT {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
     private static RebalanceCancellationTestExecutor executor = new RebalanceCancellationTestExecutor();
 
     @BeforeClass
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ReplicationExecutionTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ReplicationExecutionTest.java
index 32b756b..d54d448 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ReplicationExecutionTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ReplicationExecutionTest.java
@@ -25,9 +25,9 @@
 import java.util.Map;
 
 import org.apache.asterix.common.api.INcApplicationContext;
-import org.apache.asterix.common.config.ClusterProperties;
 import org.apache.asterix.test.common.TestExecutor;
 import org.apache.asterix.testframework.context.TestCaseContext;
+import org.apache.hyracks.control.common.controllers.NCConfig;
 import org.apache.hyracks.control.nc.NodeControllerService;
 import org.junit.After;
 import org.junit.Before;
@@ -39,13 +39,12 @@
 
 @RunWith(Parameterized.class)
 public class ReplicationExecutionTest {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc-rep.conf";
     private static final TestExecutor testExecutor = new TestExecutor();
     private static boolean configured = false;
 
     @BeforeClass
     public static void setUp() {
-        ClusterProperties.INSTANCE.getCluster().getHighAvailability().setEnabled(String.valueOf(true));
         LangExecutionUtil.setCheckStorageDistribution(false);
     }
 
@@ -61,7 +60,7 @@
                 final String nodeId = nc.getId();
                 final INcApplicationContext appCtx = (INcApplicationContext) nc.getApplicationContext();
                 int apiPort = appCtx.getExternalProperties().getNcApiPort();
-                int replicationPort = appCtx.getReplicationProperties().getDataReplicationPort(nodeId);
+                int replicationPort = (int) appCtx.getServiceContext().getAppConfig().get(NCConfig.Option.REPLICATION_LISTEN_PORT);
                 ncEndPoints.put(nodeId, InetSocketAddress.createUnresolved(ip, apiPort));
                 replicationAddress.put(nodeId, InetSocketAddress.createUnresolved(ip, replicationPort));
             }
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionFullParallelismIT.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionFullParallelismIT.java
index 3d93c36..df7976b 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionFullParallelismIT.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionFullParallelismIT.java
@@ -35,7 +35,7 @@
  */
 @RunWith(Parameterized.class)
 public class SqlppExecutionFullParallelismIT {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration2.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc2.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionIT.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionIT.java
index 99907a2..334d6df 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionIT.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionIT.java
@@ -35,7 +35,7 @@
  */
 @RunWith(Parameterized.class)
 public class SqlppExecutionIT {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionLessParallelismIT.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionLessParallelismIT.java
index 53b068e..d99590d 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionLessParallelismIT.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionLessParallelismIT.java
@@ -35,7 +35,7 @@
  */
 @RunWith(Parameterized.class)
 public class SqlppExecutionLessParallelismIT {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration3.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc3.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionTest.java
index 8ec1fe7..f9f57a3 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionTest.java
@@ -34,7 +34,7 @@
  */
 @RunWith(Parameterized.class)
 public class SqlppExecutionTest {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
 
     @BeforeClass
     public static void setUp() throws Exception {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionWithCancellationTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionWithCancellationTest.java
index fff0775..c5ca66a 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionWithCancellationTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/SqlppExecutionWithCancellationTest.java
@@ -36,7 +36,7 @@
  */
 @RunWith(Parameterized.class)
 public class SqlppExecutionWithCancellationTest {
-    protected static final String TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    protected static final String TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
     public static int numCancelledQueries = 0;
 
     @BeforeClass
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/DiskIsFullTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/DiskIsFullTest.java
index 8897169..c813c43 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/DiskIsFullTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/DiskIsFullTest.java
@@ -63,8 +63,8 @@
     private static final IAType[] KEY_TYPES = { BuiltinType.AINT32 };
     private static final ARecordType RECORD_TYPE = new ARecordType("TestRecordType", new String[] { "key", "value" },
             new IAType[] { BuiltinType.AINT32, BuiltinType.AINT64 }, false);
-    private static final GenerationFunction[] RECORD_GEN_FUNCTION =
-            { GenerationFunction.DETERMINISTIC, GenerationFunction.DETERMINISTIC };
+    private static final GenerationFunction[] RECORD_GEN_FUNCTION = { GenerationFunction.DETERMINISTIC,
+            GenerationFunction.DETERMINISTIC };
     private static final boolean[] UNIQUE_RECORD_FIELDS = { true, false };
     private static final ARecordType META_TYPE = null;
     private static final GenerationFunction[] META_GEN_FUNCTION = null;
@@ -111,8 +111,8 @@
         if (!shouldRun) {
             return;
         }
-        HyracksDataException expectedException =
-                HyracksDataException.create(ErrorCode.CANNOT_MODIFY_INDEX_DISK_IS_FULL);
+        HyracksDataException expectedException = HyracksDataException
+                .create(ErrorCode.CANNOT_MODIFY_INDEX_DISK_IS_FULL);
         try {
             TestNodeController nc = new TestNodeController(null, false);
             nc.init();
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/IndexDropOperatorNodePushableTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/IndexDropOperatorNodePushableTest.java
index 402da6c..31cc77a 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/IndexDropOperatorNodePushableTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/IndexDropOperatorNodePushableTest.java
@@ -111,8 +111,8 @@
             // create dataset
             TestNodeController.PrimaryIndexInfo indexInfo = nc.createPrimaryIndex(dataset, KEY_TYPES, RECORD_TYPE,
                     META_TYPE, null, storageManager, KEY_INDEXES, KEY_INDICATORS_LIST, 0);
-            IndexDataflowHelperFactory helperFactory =
-                    new IndexDataflowHelperFactory(nc.getStorageManager(), indexInfo.getFileSplitProvider());
+            IndexDataflowHelperFactory helperFactory = new IndexDataflowHelperFactory(nc.getStorageManager(),
+                    indexInfo.getFileSplitProvider());
             JobId jobId = nc.newJobId();
             IHyracksTaskContext ctx = nc.createTestContext(jobId, 0, true);
             IIndexDataflowHelper dataflowHelper = helperFactory.create(ctx.getJobletContext().getServiceContext(), 0);
@@ -153,10 +153,10 @@
             MetadataManager.INSTANCE.commitTransaction(mdTxn);
             FileSplit[] splits = SplitsAndConstraintsUtil.getIndexSplits(appCtx.getClusterStateManager(), dataset,
                     indexName, Arrays.asList("asterix_nc1"));
-            final ConstantFileSplitProvider constantFileSplitProvider =
-                    new ConstantFileSplitProvider(Arrays.copyOfRange(splits, 0, 1));
-            IndexDataflowHelperFactory helperFactory =
-                    new IndexDataflowHelperFactory(nc.getStorageManager(), constantFileSplitProvider);
+            final ConstantFileSplitProvider constantFileSplitProvider = new ConstantFileSplitProvider(
+                    Arrays.copyOfRange(splits, 0, 1));
+            IndexDataflowHelperFactory helperFactory = new IndexDataflowHelperFactory(nc.getStorageManager(),
+                    constantFileSplitProvider);
             JobId jobId = nc.newJobId();
             IHyracksTaskContext ctx = nc.createTestContext(jobId, 0, true);
             IIndexDataflowHelper dataflowHelper = helperFactory.create(ctx.getJobletContext().getServiceContext(), 0);
@@ -172,8 +172,8 @@
         // open the index to make it in-use
         dataflowHelper.open();
         // try to drop in-use index (should fail)
-        IndexDropOperatorNodePushable dropInUseOp =
-                new IndexDropOperatorNodePushable(helperFactory, EnumSet.noneOf(DropOption.class), ctx, 0);
+        IndexDropOperatorNodePushable dropInUseOp = new IndexDropOperatorNodePushable(helperFactory,
+                EnumSet.noneOf(DropOption.class), ctx, 0);
         try {
             dropInUseOp.initialize();
         } catch (HyracksDataException e) {
@@ -212,8 +212,8 @@
     private void dropNonExisting(IHyracksTaskContext ctx, IndexDataflowHelperFactory helperFactory) throws Exception {
         dropFailed.set(false);
         // Dropping non-existing index
-        IndexDropOperatorNodePushable dropNonExistingOp =
-                new IndexDropOperatorNodePushable(helperFactory, EnumSet.noneOf(DropOption.class), ctx, 0);
+        IndexDropOperatorNodePushable dropNonExistingOp = new IndexDropOperatorNodePushable(helperFactory,
+                EnumSet.noneOf(DropOption.class), ctx, 0);
         try {
             dropNonExistingOp.initialize();
         } catch (HyracksDataException e) {
@@ -228,8 +228,8 @@
             throws Exception {
         // Dropping non-existing index with if exists option should be successful
         dropFailed.set(false);
-        IndexDropOperatorNodePushable dropNonExistingWithIfExistsOp =
-                new IndexDropOperatorNodePushable(helperFactory, EnumSet.of(DropOption.IF_EXISTS), ctx, 0);
+        IndexDropOperatorNodePushable dropNonExistingWithIfExistsOp = new IndexDropOperatorNodePushable(helperFactory,
+                EnumSet.of(DropOption.IF_EXISTS), ctx, 0);
         try {
             dropNonExistingWithIfExistsOp.initialize();
         } catch (HyracksDataException e) {
@@ -238,4 +238,4 @@
         }
         Assert.assertFalse(dropFailed.get());
     }
-}
\ No newline at end of file
+}
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/MigrateStorageResourcesTaskTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/MigrateStorageResourcesTaskTest.java
index 47a561a..a98730a 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/MigrateStorageResourcesTaskTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/storage/MigrateStorageResourcesTaskTest.java
@@ -42,12 +42,11 @@
 
 public class MigrateStorageResourcesTaskTest {
 
-    private static final String DEFAULT_TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
+    private static final String DEFAULT_TEST_CONFIG_FILE_NAME = "src/main/resources/cc.conf";
     private static final AsterixHyracksIntegrationUtil integrationUtil = new AsterixHyracksIntegrationUtil();
 
     @Before
     public void setUp() throws Exception {
-        System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, DEFAULT_TEST_CONFIG_FILE_NAME);
     }
 
     @After
@@ -57,12 +56,12 @@
 
     @Test
     public void storageStructureMigration() throws Exception {
-        Function<IndexPathElements, String> legacyIndexPathProvider = (pathElements) ->
-                (pathElements.getRebalanceCount().equals("0") ? "" : pathElements.getRebalanceCount() + File.separator)
-                        + pathElements.getDatasetName() + StorageConstants.LEGACY_DATASET_INDEX_NAME_SEPARATOR
-                        + pathElements.getIndexName();
+        Function<IndexPathElements, String> legacyIndexPathProvider = (
+                pathElements) -> (pathElements.getRebalanceCount().equals("0") ? ""
+                        : pathElements.getRebalanceCount() + File.separator) + pathElements.getDatasetName()
+                        + StorageConstants.LEGACY_DATASET_INDEX_NAME_SEPARATOR + pathElements.getIndexName();
         StoragePathUtil.setIndexPathProvider(legacyIndexPathProvider);
-        integrationUtil.init(true);
+        integrationUtil.init(true, DEFAULT_TEST_CONFIG_FILE_NAME);
         // create dataset and insert data using legacy structure
         String datasetName = "ds";
         TestDataUtil.createIdOnlyDataset(datasetName);
@@ -72,18 +71,18 @@
         integrationUtil.deinit(false);
         // forge a checkpoint with old version to force migration to new storage structure on all ncs
         final INcApplicationContext nc1AppCtx = (INcApplicationContext) integrationUtil.ncs[0].getApplicationContext();
-        final AbstractCheckpointManager nc1CheckpointManager =
-                (AbstractCheckpointManager) nc1AppCtx.getTransactionSubsystem().getCheckpointManager();
+        final AbstractCheckpointManager nc1CheckpointManager = (AbstractCheckpointManager) nc1AppCtx
+                .getTransactionSubsystem().getCheckpointManager();
         forgeOldVersionCheckpoint(nc1CheckpointManager);
         final INcApplicationContext nc2AppCtx = (INcApplicationContext) integrationUtil.ncs[1].getApplicationContext();
-        final AbstractCheckpointManager nc2CheckpointManager =
-                (AbstractCheckpointManager) nc2AppCtx.getTransactionSubsystem().getCheckpointManager();
+        final AbstractCheckpointManager nc2CheckpointManager = (AbstractCheckpointManager) nc2AppCtx
+                .getTransactionSubsystem().getCheckpointManager();
         forgeOldVersionCheckpoint(nc2CheckpointManager);
 
         // remove the legacy path provider to use the new default structure
         StoragePathUtil.setIndexPathProvider(null);
         // start the NCs to do the migration
-        integrationUtil.init(false);
+        integrationUtil.init(false, DEFAULT_TEST_CONFIG_FILE_NAME);
         final long countAfterMigration = TestDataUtil.getDatasetCount(datasetName);
         // ensure data migrated to new structure without issues
         Assert.assertEquals(countBeforeMigration, countAfterMigration);
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/txn/RecoveryManagerTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/txn/RecoveryManagerTest.java
index 29efa47..92e403c 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/txn/RecoveryManagerTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/txn/RecoveryManagerTest.java
@@ -23,11 +23,13 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.asterix.api.common.AsterixHyracksIntegrationUtil;
 import org.apache.asterix.common.TestDataUtil;
 import org.apache.asterix.common.config.GlobalConfig;
-import org.apache.asterix.common.configuration.AsterixConfiguration;
-import org.apache.asterix.common.configuration.Property;
+import org.apache.asterix.common.config.StorageProperties;
+import org.apache.asterix.common.utils.Servlets;
+import org.apache.asterix.test.common.TestExecutor;
 import org.apache.asterix.metadata.bootstrap.MetadataBuiltinEntities;
 import org.apache.asterix.test.common.TestHelper;
 import org.junit.After;
@@ -37,25 +39,21 @@
 
 public class RecoveryManagerTest {
 
-    private static final String DEFAULT_TEST_CONFIG_FILE_NAME = "asterix-build-configuration.xml";
-    private static final String TEST_CONFIG_FILE_NAME = "asterix-test-configuration.xml";
-    private static final String TEST_CONFIG_PATH =
-            System.getProperty("user.dir") + File.separator + "target" + File.separator + "config";
+    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+    private static final String TEST_CONFIG_FILE_NAME = "cc.conf";
+    private static final String TEST_CONFIG_PATH = System.getProperty("user.dir") + File.separator + "src"
+            + File.separator + "main" + File.separator + "resources";
     private static final String TEST_CONFIG_FILE_PATH = TEST_CONFIG_PATH + File.separator + TEST_CONFIG_FILE_NAME;
     private static final AsterixHyracksIntegrationUtil integrationUtil = new AsterixHyracksIntegrationUtil();
 
     @Before
     public void setUp() throws Exception {
         // Read default test configurations
-        AsterixConfiguration ac = TestHelper.getConfigurations(DEFAULT_TEST_CONFIG_FILE_NAME);
-        // override memory config to enforce dataset eviction
-        ac.getProperty().add(new Property("storage.memorycomponent.globalbudget", "128MB", ""));
-        ac.getProperty().add(new Property("storage.memorycomponent.numpages", "32", ""));
         // Write test config file
-        TestHelper.writeConfigurations(ac, TEST_CONFIG_FILE_PATH);
-        System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, TEST_CONFIG_FILE_PATH);
+        integrationUtil.addOption(StorageProperties.Option.STORAGE_MEMORYCOMPONENT_GLOBALBUDGET, "128MB");
+        integrationUtil.addOption(StorageProperties.Option.STORAGE_MEMORYCOMPONENT_NUMPAGES, 32);
         integrationUtil.setGracefulShutdown(false);
-        integrationUtil.init(true);
+        integrationUtil.init(true, TEST_CONFIG_FILE_PATH);
     }
 
     @After
@@ -76,7 +74,7 @@
         final long countBeforeFirstRecovery = TestDataUtil.getDatasetCount(datasetName);
         // do ungraceful shutdown to enforce recovery
         integrationUtil.deinit(false);
-        integrationUtil.init(false);
+        integrationUtil.init(false, TEST_CONFIG_FILE_PATH);
         final long countAfterFirstRecovery = TestDataUtil.getDatasetCount(datasetName);
         Assert.assertEquals(countBeforeFirstRecovery, countAfterFirstRecovery);
         // create more datasets after recovery
@@ -89,7 +87,7 @@
         final long countBeforeSecondRecovery = TestDataUtil.getDatasetCount(datasetName);
         // do ungraceful shutdown to enforce recovery again
         integrationUtil.deinit(false);
-        integrationUtil.init(false);
+        integrationUtil.init(false, TEST_CONFIG_FILE_PATH);
         final long countAfterSecondRecovery = TestDataUtil.getDatasetCount(datasetName);
         Assert.assertEquals(countBeforeSecondRecovery, countAfterSecondRecovery);
     }
@@ -111,8 +109,8 @@
         final long countBeforeRecovery = TestDataUtil.getDatasetCount(datasetName);
         // do ungraceful shutdown to enforce recovery
         integrationUtil.deinit(false);
-        integrationUtil.init(false);
+        integrationUtil.init(false, TEST_CONFIG_FILE_PATH);
         final long countAfterRecovery = TestDataUtil.getDatasetCount(datasetName);
         Assert.assertEquals(countBeforeRecovery, countAfterRecovery);
     }
-}
\ No newline at end of file
+}
diff --git a/asterixdb/asterix-app/src/test/resources/cc-multipart.conf b/asterixdb/asterix-app/src/test/resources/cc-multipart.conf
new file mode 100644
index 0000000..d9498da
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/cc-multipart.conf
@@ -0,0 +1,56 @@
+; 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.
+
+[nc/asterix_nc1]
+txn.log.dir=target/tmp/asterix_nc1/txnlog
+core.dump.dir=target/tmp/asterix_nc1/coredump
+iodevices=target/tmp/asterix_nc1/iodevice1,../asterix-server/target/tmp/asterix_nc1/iodevice2
+nc.api.port=19004
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006
+
+[nc/asterix_nc2]
+ncservice.port=9091
+txn.log.dir=target/tmp/asterix_nc2/txnlog
+core.dump.dir=target/tmp/asterix_nc2/coredump
+iodevices=target/tmp/asterix_nc2/iodevice1,../asterix-server/target/tmp/asterix_nc2/iodevice2
+nc.api.port=19005
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5007
+
+[nc]
+address=127.0.0.1
+command=asterixnc
+app.class=org.apache.asterix.hyracks.bootstrap.NCApplication
+jvm.args=-Xmx4096m -Dnode.Resolver="org.apache.asterix.external.util.IdentitiyResolverFactory"
+storage.subdir=test_storage
+storage.buffercache.pagesize=32KB
+storage.buffercache.size=48MB
+storage.memorycomponent.numpages=32
+storage.memorycomponent.globalbudget=512MB
+
+[cc]
+address = 127.0.0.1
+app.class=org.apache.asterix.hyracks.bootstrap.CCApplication
+heartbeat.period=2000
+
+[common]
+log.level = INFO
+compiler.framesize=32KB
+compiler.sortmemory=320KB
+compiler.groupmemory=160KB
+compiler.joinmemory=256KB
+messaging.frame.size=4096
+messaging.frame.count=512
diff --git a/asterixdb/asterix-app/src/test/resources/cc.conf b/asterixdb/asterix-app/src/test/resources/cc.conf
new file mode 100644
index 0000000..bdd3e74
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/cc.conf
@@ -0,0 +1,56 @@
+; 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.
+
+[nc/asterix_nc1]
+txn.log.dir=target/tmp/asterix_nc1/txnlog
+core.dump.dir=target/tmp/asterix_nc1/coredump
+iodevices=target/tmp/asterix_nc1/iodevice1,../asterix-server/target/tmp/asterix_nc1/iodevice2
+nc.api.port=19004
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006
+
+[nc/asterix_nc2]
+ncservice.port=9091
+txn.log.dir=target/tmp/asterix_nc2/txnlog
+core.dump.dir=target/tmp/asterix_nc2/coredump
+iodevices=target/tmp/asterix_nc2/iodevice1,../asterix-server/target/tmp/asterix_nc2/iodevice2
+nc.api.port=19005
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5007
+
+[nc]
+address=127.0.0.1
+command=asterixnc
+app.class=org.apache.asterix.hyracks.bootstrap.NCApplication
+jvm.args=-Xmx4096m -Dnode.Resolver="org.apache.asterix.external.util.IdentitiyResolverFactory"
+storage.subdir=test_storage
+storage.buffercache.pagesize=32KB
+storage.buffercache.size=48MB
+storage.memorycomponent.numpages=16
+storage.memorycomponent.globalbudget=512MB
+
+[cc]
+address = 127.0.0.1
+app.class=org.apache.asterix.hyracks.bootstrap.CCApplication
+heartbeat.period=2000
+
+[common]
+log.level = INFO
+compiler.framesize=32KB
+compiler.sortmemory=320KB
+compiler.groupmemory=160KB
+compiler.joinmemory=256KB
+messaging.frame.size=4096
+messaging.frame.count=512
diff --git a/asterixdb/asterix-app/src/test/resources/multi-partition-test-configuration.xml b/asterixdb/asterix-app/src/test/resources/multi-partition-test-configuration.xml
deleted file mode 100644
index aaeb244..0000000
--- a/asterixdb/asterix-app/src/test/resources/multi-partition-test-configuration.xml
+++ /dev/null
@@ -1,112 +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.
- !-->
-<asterixConfiguration xmlns="asterixconf">
-  <metadataNode>asterix_nc1</metadataNode>
-  <store>
-    <ncId>asterix_nc1</ncId>
-    <storeDirs>iodevice0,iodevice1</storeDirs>
-  </store>
-  <store>
-    <ncId>asterix_nc2</ncId>
-    <storeDirs>iodevice0,iodevice1</storeDirs>
-  </store>
-  <transactionLogDir>
-    <ncId>asterix_nc1</ncId>
-    <txnLogDirPath>target/txnLogDir/asterix_nc1</txnLogDirPath>
-  </transactionLogDir>
-  <transactionLogDir>
-    <ncId>asterix_nc2</ncId>
-    <txnLogDirPath>target/txnLogDir/asterix_nc2</txnLogDirPath>
-  </transactionLogDir>
-
-  <property>
-    <name>max.wait.active.cluster</name>
-    <value>60</value>
-    <description>Maximum wait (in seconds) for a cluster to be ACTIVE (all
-      nodes are available)
-      before a submitted query/statement can be
-      executed. (Default = 60 seconds)
-    </description>
-  </property>
-
-  <property>
-    <name>compiler.framesize</name>
-    <value>32KB</value>
-  </property>
-  <property>
-    <name>compiler.sortmemory</name>
-    <value>320KB</value>
-  </property>
-  <property>
-    <name>compiler.groupmemory</name>
-    <value>160KB</value>
-  </property>
-  <property>
-    <name>compiler.joinmemory</name>
-    <value>256KB</value>
-  </property>
-  <property>
-    <name>storage.buffercache.pagesize</name>
-    <value>32KB</value>
-    <description>The page size in bytes for pages in the buffer cache.
-      (Default = "128KB")
-    </description>
-  </property>
-  <property>
-    <name>storage.buffercache.size</name>
-    <value>48MB</value>
-    <description>The size of memory allocated to the disk buffer cache.
-      The value should be a multiple of the buffer cache page size.
-    </description>
-  </property>
-  <property>
-    <name>storage.memorycomponent.numpages</name>
-    <value>32</value>
-    <description>The number of pages to allocate for a memory component.
-      This budget is shared by all the memory components of the primary
-      index and all its secondary indexes across all I/O devices on a node.
-      Note: in-memory components usually has fill factor of 75% since
-      the pages are 75% full and the remaining 25% is un-utilized.
-    </description>
-  </property>
-  <property>
-    <name>storage.memorycomponent.globalbudget</name>
-    <value>512MB</value>
-    <description>The size of memory allocated to the memory components.
-      The value should be a multiple of the memory component page size.
-    </description>
-  </property>
-  <property>
-    <name>messaging.frame.size</name>
-    <value>4096</value>
-    <description>The frame size to be used for NC to NC messaging. (Default = 4kb)
-    </description>
-  </property>
-  <property>
-    <name>messaging.frame.count</name>
-    <value>512</value>
-    <description>Number of reusable frames for NC to NC messaging. (Default = 512)
-    </description>
-  </property>
-  <property>
-    <name>log.level</name>
-    <value>INFO</value>
-    <description>foo</description>
-  </property>
-</asterixConfiguration>
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/data/big_object_20M.adm b/asterixdb/asterix-app/src/test/resources/runtimets/data/big_object_20M.adm
new file mode 100644
index 0000000..0a79c67
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/data/big_object_20M.adm
Binary files differ
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1/cluster_state_1.1.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1/cluster_state_1.1.regexadm
index e8f018e..53d6563 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1/cluster_state_1.1.regexadm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1/cluster_state_1.1.regexadm
@@ -21,11 +21,15 @@
     "metadata\.listen\.port" : 0,
     "metadata\.node" : "asterix_nc1",
     "metadata\.registration\.timeout\.secs" : 60,
+    "replication\.enabled" : false,
+    "replication\.factor" : 3,
     "replication\.log\.batchsize" : 4096,
     "replication\.log\.buffer\.numpages" : 8,
     "replication\.log\.buffer\.pagesize" : 131072,
     "replication\.max\.remote\.recovery\.attempts" : 5,
-    "replication\.timeout" : 30,
+    "replication\.port" : 2000,
+    "replication\.strategy" : "chained_declustering",
+    "replication\.timeout" : 15,
     "txn\.commitprofiler\.enabled" : false,
     "txn\.commitprofiler\.reportinterval" : 5,
     "txn\.job\.recovery\.memorysize" : 67108864,
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_full/cluster_state_1_full.1.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_full/cluster_state_1_full.1.regexadm
index e099835..941c8bb 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_full/cluster_state_1_full.1.regexadm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_full/cluster_state_1_full.1.regexadm
@@ -21,11 +21,15 @@
     "metadata\.listen\.port" : 0,
     "metadata\.node" : "asterix_nc1",
     "metadata\.registration\.timeout\.secs" : 60,
+    "replication\.enabled" : false,
+    "replication\.factor" : 3,
     "replication\.log\.batchsize" : 4096,
     "replication\.log\.buffer\.numpages" : 8,
     "replication\.log\.buffer\.pagesize" : 131072,
     "replication\.max\.remote\.recovery\.attempts" : 5,
-    "replication\.timeout" : 30,
+    "replication\.port" : 2000,
+    "replication\.strategy" : "chained_declustering",
+    "replication\.timeout" : 15,
     "txn\.commitprofiler\.enabled" : false,
     "txn\.commitprofiler\.reportinterval" : 5,
     "txn\.job\.recovery\.memorysize" : 67108864,
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_less/cluster_state_1_less.1.regexadm b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_less/cluster_state_1_less.1.regexadm
index b3fe5cc..bb495cd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_less/cluster_state_1_less.1.regexadm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_less/cluster_state_1_less.1.regexadm
@@ -21,11 +21,15 @@
     "metadata\.listen\.port" : 0,
     "metadata\.node" : "asterix_nc1",
     "metadata\.registration\.timeout\.secs" : 60,
+    "replication\.enabled" : false,
+    "replication\.factor" : 3,
     "replication\.log\.batchsize" : 4096,
     "replication\.log\.buffer\.numpages" : 8,
     "replication\.log\.buffer\.pagesize" : 131072,
     "replication\.max\.remote\.recovery\.attempts" : 5,
-    "replication\.timeout" : 30,
+    "replication\.port" : 2000,
+    "replication\.strategy" : "chained_declustering",
+    "replication\.timeout" : 15,
     "txn\.commitprofiler\.enabled" : false,
     "txn\.commitprofiler\.reportinterval" : 5,
     "txn\.job\.recovery\.memorysize" : 67108864,
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/replication/add_replica/add_replica.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/replication/add_replica/add_replica.2.adm
index 6836f71..e48cbcf 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/replication/add_replica/add_replica.2.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/replication/add_replica/add_replica.2.adm
@@ -1,7 +1,7 @@
 [ {
   "partition" : 0,
   "replicas" : [ {
-    "location" : "127.0.0.1:2017",
+    "location" : "127.0.0.1:2002",
     "status" : "IN_SYNC"
   } ]
-} ]
\ No newline at end of file
+} ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/replication/metadata_failover/metadata_failover.2.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/replication/metadata_failover/metadata_failover.2.adm
index 6836f71..7e92c87 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/replication/metadata_failover/metadata_failover.2.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/replication/metadata_failover/metadata_failover.2.adm
@@ -1,7 +1,7 @@
 [ {
   "partition" : 0,
   "replicas" : [ {
-    "location" : "127.0.0.1:2017",
+    "location" : "127.0.0.1:2002",
     "status" : "IN_SYNC"
   } ]
 } ]
\ No newline at end of file
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/cluster/IClusterStateManager.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/cluster/IClusterStateManager.java
index 7616aed..5b7e5a7 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/cluster/IClusterStateManager.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/cluster/IClusterStateManager.java
@@ -25,7 +25,6 @@
 import org.apache.asterix.common.api.IClusterManagementWork.ClusterState;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.exceptions.AsterixException;
-import org.apache.asterix.event.schema.cluster.Node;
 import org.apache.hyracks.algebricks.common.constraints.AlgebricksAbsolutePartitionConstraint;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.api.config.IOption;
@@ -210,11 +209,6 @@
     void notifyNodeFailure(String deadNode) throws HyracksException;
 
     /**
-     * @return a substitution node or null
-     */
-    Node getAvailableSubstitutionNode();
-
-    /**
      * Add node to the list of nodes pending removal
      *
      * @param nodeId
@@ -228,4 +222,6 @@
      * @return
      */
     boolean cancelRemovePending(String nodeId);
+
+    Map<String, Map<IOption, Object>> getActiveNcConfiguration();
 }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/ClusterProperties.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/ClusterProperties.java
deleted file mode 100644
index cc3291d..0000000
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/ClusterProperties.java
+++ /dev/null
@@ -1,100 +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.common.config;
-
-import java.io.InputStream;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.asterix.common.replication.IReplicationStrategy;
-import org.apache.asterix.common.replication.ReplicationStrategyFactory;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.cluster.Replica;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class ClusterProperties {
-
-    public static final ClusterProperties INSTANCE = new ClusterProperties();
-    public static final String CLUSTER_CONFIGURATION_FILE = "cluster.xml";
-    private String nodeNamePrefix = StringUtils.EMPTY;
-    private Cluster cluster;
-
-    private ClusterProperties() {
-        InputStream is = this.getClass().getClassLoader().getResourceAsStream(CLUSTER_CONFIGURATION_FILE);
-        if (is != null) {
-            try {
-                JAXBContext ctx = JAXBContext.newInstance(Cluster.class);
-                Unmarshaller unmarshaller = ctx.createUnmarshaller();
-                cluster = (Cluster) unmarshaller.unmarshal(is);
-                nodeNamePrefix = cluster.getInstanceName() + "_";
-                updateNodeIdToFullName();
-            } catch (JAXBException e) {
-                throw new IllegalStateException("Failed to read configuration file " + CLUSTER_CONFIGURATION_FILE, e);
-            }
-        }
-    }
-
-    public Cluster getCluster() {
-        return cluster;
-    }
-
-    public Node getNodeById(String nodeId) {
-        Optional<Node> matchingNode = cluster.getNode().stream().filter(node -> node.getId().equals(nodeId)).findAny();
-        return matchingNode.isPresent() ? matchingNode.get() : null;
-    }
-
-    public int getNodeIndex(String nodeId) {
-        for (int i = 0; i < cluster.getNode().size(); i++) {
-            Node node = cluster.getNode().get(i);
-            if (node.getId().equals(nodeId)) {
-                return i;
-            }
-        }
-        return -1;
-    }
-
-    public IReplicationStrategy getReplicationStrategy() throws HyracksDataException {
-        return ReplicationStrategyFactory.create(cluster);
-    }
-
-    private String getNodeFullName(String nodeId) {
-        if (nodeId.startsWith(nodeNamePrefix)) {
-            return nodeId;
-        }
-        return nodeNamePrefix + nodeId;
-    }
-
-    private void updateNodeIdToFullName() {
-        cluster.getNode().forEach(node -> node.setId(getNodeFullName(node.getId())));
-        if (cluster.getMetadataNode() != null) {
-            cluster.setMetadataNode(getNodeFullName(cluster.getMetadataNode()));
-        }
-        if (cluster.getHighAvailability() != null && cluster.getHighAvailability().getFaultTolerance() != null
-                && cluster.getHighAvailability().getFaultTolerance().getReplica() != null) {
-            Replica replicas = cluster.getHighAvailability().getFaultTolerance().getReplica();
-            replicas.setNodeId(replicas.getNodeId().stream().map(this::getNodeFullName).collect(Collectors.toList()));
-        }
-    }
-}
\ No newline at end of file
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/NodeProperties.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/NodeProperties.java
index 2e25e34..1443b8e 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/NodeProperties.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/NodeProperties.java
@@ -112,4 +112,12 @@
     public boolean isVirtualNc() {
         return accessor.getInt(NCConfig.Option.NCSERVICE_PORT) == NCConfig.NCSERVICE_PORT_DISABLED;
     }
+
+    public String getTxnLogDir() {
+        return accessor.getString(Option.TXN_LOG_DIR);
+    }
+
+    public String getStorageSubdir() {
+        return accessor.getString(Option.STORAGE_SUBDIR);
+    }
 }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/PropertiesAccessor.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/PropertiesAccessor.java
index 467e877..150705e 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/PropertiesAccessor.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/PropertiesAccessor.java
@@ -18,23 +18,17 @@
  */
 package org.apache.asterix.common.config;
 
-import static org.apache.asterix.common.config.MetadataProperties.Option.INSTANCE_NAME;
-import static org.apache.asterix.common.config.MetadataProperties.Option.METADATA_NODE;
 import static org.apache.asterix.common.config.NodeProperties.Option.STORAGE_SUBDIR;
 import static org.apache.hyracks.control.common.controllers.NCConfig.Option.IODEVICES;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Properties;
 import java.util.Set;
 import java.util.SortedMap;
@@ -43,23 +37,10 @@
 import java.util.function.Predicate;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import java.util.stream.Stream;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
 
 import org.apache.asterix.common.cluster.ClusterPartition;
-import org.apache.asterix.common.configuration.AsterixConfiguration;
-import org.apache.asterix.common.configuration.Coredump;
-import org.apache.asterix.common.configuration.Extension;
-import org.apache.asterix.common.configuration.Property;
-import org.apache.asterix.common.configuration.Store;
-import org.apache.asterix.common.configuration.TransactionLogDir;
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.exceptions.ErrorCode;
-import org.apache.asterix.common.utils.ConfigUtil;
-import org.apache.asterix.event.schema.cluster.Node;
 import org.apache.commons.lang3.mutable.MutableInt;
 import org.apache.hyracks.algebricks.common.utils.Pair;
 import org.apache.hyracks.api.config.IApplicationConfig;
@@ -68,8 +49,6 @@
 import org.apache.hyracks.api.config.Section;
 import org.apache.hyracks.control.common.application.ConfigManagerApplicationConfig;
 import org.apache.hyracks.control.common.config.ConfigManager;
-import org.apache.hyracks.control.common.controllers.ControllerConfig;
-import org.apache.hyracks.control.common.controllers.NCConfig;
 
 public class PropertiesAccessor implements IApplicationConfig {
     private static final Logger LOGGER = Logger.getLogger(PropertiesAccessor.class.getName());
@@ -93,142 +72,21 @@
         nodePartitionsMap = new ConcurrentHashMap<>();
         clusterPartitions = Collections.synchronizedSortedMap(new TreeMap<>());
         extensions = new ArrayList<>();
-        // Determine whether to use old-style asterix-configuration.xml or new-style configuration.
-        // QQQ strip this out eventually
-        // QQQ this is NOT a good way to determine whether to use config file
         ConfigManager configManager = ((ConfigManagerApplicationConfig) cfg).getConfigManager();
-        boolean usingConfigFile = Stream
-                .of((IOption) ControllerConfig.Option.CONFIG_FILE, ControllerConfig.Option.CONFIG_FILE_URL)
-                .map(configManager::get).anyMatch(Objects::nonNull);
-        AsterixConfiguration asterixConfiguration = null;
-        try {
-            asterixConfiguration = configure(
-                    System.getProperty(GlobalConfig.CONFIG_FILE_PROPERTY, GlobalConfig.DEFAULT_CONFIG_FILE_NAME));
-        } catch (Exception e) {
-            // cannot load config file, assume new-style config
+        MutableInt uniquePartitionId = new MutableInt(0);
+        // Iterate through each configured NC.
+        for (String ncName : cfg.getNCNames()) {
+            configureNc(configManager, ncName, uniquePartitionId);
         }
-
-        if (!usingConfigFile && asterixConfiguration != null) {
-            LOGGER.info("using old-style configuration: " + System.getProperty(GlobalConfig.CONFIG_FILE_PROPERTY));
-            if (asterixConfiguration.getInstanceName() != null) {
-                configManager.set(INSTANCE_NAME, asterixConfiguration.getInstanceName());
-            }
-            if (asterixConfiguration.getMetadataNode() != null) {
-                configManager.set(METADATA_NODE, asterixConfiguration.getMetadataNode());
-            }
-            List<Store> configuredStores = asterixConfiguration.getStore();
-
-            int uniquePartitionId = 0;
-            // Here we iterate through all <store> elements in asterix-configuration.xml.
-            // For each one, we create an array of ClusterPartitions and store this array
-            // in nodePartitionsMap, keyed by the node name. The array is the same length
-            // as the comma-separated <storeDirs> child element, because Managix will have
-            // arranged for that element to be populated with the full paths to each
-            // partition directory (as formed by appending the <store> subdirectory to
-            // each <iodevices> path from the user's original cluster.xml).
-            for (Store store : configuredStores) {
-                configManager.set(store.getNcId(), NodeProperties.Option.STARTING_PARTITION_ID, uniquePartitionId);
-                String trimmedStoreDirs = store.getStoreDirs().trim();
-                String[] nodeStores = trimmedStoreDirs.split(",");
-                ClusterPartition[] nodePartitions = new ClusterPartition[nodeStores.length];
-                for (int i = 0; i < nodePartitions.length; i++) {
-                    ClusterPartition partition = new ClusterPartition(uniquePartitionId++, store.getNcId(), i);
-                    clusterPartitions.put(partition.getPartitionId(), partition);
-                    nodePartitions[i] = partition;
-                }
-                stores.put(store.getNcId(), nodeStores);
-                nodePartitionsMap.put(store.getNcId(), nodePartitions);
-                // push the store info to the config manager
-                configManager.set(store.getNcId(), NCConfig.Option.IODEVICES, nodeStores);
-                // marking node as virtual, as we're not using NCServices with old-style config
-                configManager.set(store.getNcId(), NCConfig.Option.NCSERVICE_PORT, NCConfig.NCSERVICE_PORT_DISABLED);
-            }
-            // populate nc api port from cluster properties
-            final ExternalProperties.Option ncApiPort = ExternalProperties.Option.NC_API_PORT;
-            for (Node node : ClusterProperties.INSTANCE.getCluster().getNode()) {
-                configManager.set(node.getId(), ncApiPort, node.getNcApiPort().intValue());
-            }
-            // Get extensions
-            if (asterixConfiguration.getExtensions() != null) {
-                for (Extension ext : asterixConfiguration.getExtensions().getExtension()) {
-                    extensions.add(ConfigUtil.toAsterixExtension(ext));
-                }
-            }
-            for (Property p : asterixConfiguration.getProperty()) {
-                IOption option = null;
-                for (Section section : Arrays.asList(Section.COMMON, Section.CC, Section.NC)) {
-                    IOption optionTemp = cfg.lookupOption(section.sectionName(), p.getName());
-                    if (optionTemp == null) {
-                        continue;
-                    }
-                    if (option != null) {
-                        throw new IllegalStateException(
-                                "ERROR: option found in multiple sections: " + Arrays.asList(option, optionTemp));
-                    }
-                    option = optionTemp;
-                }
-                if (option == null) {
-                    LOGGER.warning("Ignoring unknown property: " + p.getName());
-                } else {
-                    configManager.set(option, option.type().parse(p.getValue()));
-                }
-            }
-            for (Coredump cd : asterixConfiguration.getCoredump()) {
-                coredumpConfig.put(cd.getNcId(), cd.getCoredumpPath());
-            }
-            for (TransactionLogDir txnLogDir : asterixConfiguration.getTransactionLogDir()) {
-                transactionLogDirs.put(txnLogDir.getNcId(), txnLogDir.getTxnLogDirPath());
-            }
-        } else {
-            LOGGER.info("using new-style configuration");
-            MutableInt uniquePartitionId = new MutableInt(0);
-            // Iterate through each configured NC.
-            for (String ncName : cfg.getNCNames()) {
-                configureNc(configManager, ncName, uniquePartitionId);
-            }
-            for (String section : cfg.getSectionNames()) {
-                if (section.startsWith(AsterixProperties.SECTION_PREFIX_EXTENSION)) {
-                    String className = AsterixProperties.getSectionId(AsterixProperties.SECTION_PREFIX_EXTENSION,
-                            section);
-                    configureExtension(className, section);
-                }
+        for (String section : cfg.getSectionNames()) {
+            if (section.startsWith(AsterixProperties.SECTION_PREFIX_EXTENSION)) {
+                String className = AsterixProperties.getSectionId(AsterixProperties.SECTION_PREFIX_EXTENSION, section);
+                configureExtension(className, section);
             }
         }
         loadAsterixBuildProperties();
     }
 
-    private AsterixConfiguration configure(String fileName) throws IOException, AsterixException {
-        try (InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileName)) {
-            if (is != null) {
-                return configure(is, fileName);
-            }
-        }
-        try (FileInputStream is = new FileInputStream(fileName)) {
-            return configure(is, fileName);
-        } catch (FileNotFoundException fnf1) {
-            LOGGER.warning(
-                    "Failed to get configuration file " + fileName + " as FileInputStream. FileNotFoundException");
-            LOGGER.warning("Attempting to get default configuration file " + GlobalConfig.DEFAULT_CONFIG_FILE_NAME
-                    + " as FileInputStream");
-            try (FileInputStream fis = new FileInputStream(GlobalConfig.DEFAULT_CONFIG_FILE_NAME)) {
-                return configure(fis, GlobalConfig.DEFAULT_CONFIG_FILE_NAME);
-            } catch (FileNotFoundException fnf2) {
-                fnf1.addSuppressed(fnf2);
-                throw new AsterixException("Could not find configuration file " + fileName, fnf1);
-            }
-        }
-    }
-
-    private AsterixConfiguration configure(InputStream is, String fileName) throws AsterixException {
-        try {
-            JAXBContext ctx = JAXBContext.newInstance(AsterixConfiguration.class);
-            Unmarshaller unmarshaller = ctx.createUnmarshaller();
-            return (AsterixConfiguration) unmarshaller.unmarshal(is);
-        } catch (JAXBException e) {
-            throw new AsterixException("Failed to read configuration file " + fileName, e);
-        }
-    }
-
     private void configureExtension(String className, String section) {
         Set<String> keys = cfg.getKeys(section);
         List<Pair<String, String>> kvs = new ArrayList<>();
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/ReplicationProperties.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/ReplicationProperties.java
index 1e79a26..6e7d58b 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/ReplicationProperties.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/ReplicationProperties.java
@@ -18,37 +18,43 @@
  */
 package org.apache.asterix.common.config;
 
-import static org.apache.hyracks.control.common.config.OptionTypes.INTEGER;
-import static org.apache.hyracks.control.common.config.OptionTypes.INTEGER_BYTE_UNIT;
-
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import org.apache.asterix.common.replication.IReplicationStrategy;
-import org.apache.asterix.common.replication.Replica;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
+import java.util.List;
 import org.apache.hyracks.api.config.IApplicationConfig;
 import org.apache.hyracks.api.config.IOption;
 import org.apache.hyracks.api.config.IOptionType;
 import org.apache.hyracks.api.config.Section;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.control.common.controllers.NCConfig;
 import org.apache.hyracks.util.StorageUtil;
 import org.apache.hyracks.util.StorageUtil.StorageUnit;
 
+import static org.apache.hyracks.control.common.config.OptionTypes.*;
+
 public class ReplicationProperties extends AbstractProperties {
 
     public enum Option implements IOption {
-        REPLICATION_MAX_REMOTE_RECOVERY_ATTEMPTS(INTEGER, 5,
+        REPLICATION_MAX_REMOTE_RECOVERY_ATTEMPTS(
+                INTEGER,
+                5,
                 "The maximum number of times to attempt to recover from a replica on failure before giving up"),
-        REPLICATION_LOG_BUFFER_PAGESIZE(INTEGER_BYTE_UNIT, StorageUtil.getIntSizeInBytes(128,
-                StorageUnit.KILOBYTE), "The size in bytes of each log buffer page"),
+        REPLICATION_LOG_BUFFER_PAGESIZE(
+                INTEGER_BYTE_UNIT,
+                StorageUtil.getIntSizeInBytes(128, StorageUnit.KILOBYTE),
+                "The size in bytes of each log buffer page"),
         REPLICATION_LOG_BUFFER_NUMPAGES(INTEGER, 8, "The number of log buffer pages"),
-        REPLICATION_LOG_BATCHSIZE(INTEGER_BYTE_UNIT, StorageUtil.getIntSizeInBytes(4, StorageUnit.KILOBYTE),
+        REPLICATION_LOG_BATCHSIZE(
+                INTEGER_BYTE_UNIT,
+                StorageUtil.getIntSizeInBytes(4, StorageUnit.KILOBYTE),
                 "The size in bytes to replicate in each batch"),
-        REPLICATION_TIMEOUT(INTEGER, REPLICATION_TIME_OUT_DEFAULT,
+        REPLICATION_TIMEOUT(
+                INTEGER,
+                REPLICATION_TIME_OUT_DEFAULT,
                 "The time in seconds to timeout when trying to contact a replica, before assuming it is dead"),
-        ;
+
+        REPLICATION_ENABLED(BOOLEAN, false, "Whether or not data replication is enabled"),
+        REPLICATION_FACTOR(INTEGER, 3, "Number of node controller faults to tolerate with replication"),
+        REPLICATION_STRATEGY(STRING, "chained_declustering", "Replication strategy to choose"),
+        REPLICATION_PORT(INTEGER, 2000, "port on which to run replication related communications"),;
 
         private final IOptionType type;
         private final Object defaultValue;
@@ -84,13 +90,6 @@
         public Object get(IApplicationConfig config) {
             switch (this) {
                 case REPLICATION_TIMEOUT:
-                    final Cluster cluster = ClusterProperties.INSTANCE.getCluster();
-                    if (cluster != null
-                            && cluster.getHighAvailability() != null
-                            && cluster.getHighAvailability().getDataReplication() != null
-                            && cluster.getHighAvailability().getDataReplication().getReplicationTimeOut() != null) {
-                        return cluster.getHighAvailability().getDataReplication().getReplicationTimeOut().intValue();
-                    }
                     return REPLICATION_TIME_OUT_DEFAULT;
                 default:
                     return config.getStatic(this);
@@ -98,23 +97,28 @@
         }
     }
 
-    private static final int REPLICATION_DATAPORT_DEFAULT = 2000;
+    public boolean isReplicationEnabled() {
+        return accessor.getBoolean(Option.REPLICATION_ENABLED);
+    }
 
     private static final int REPLICATION_TIME_OUT_DEFAULT = 15;
 
-    private static final String NODE_IP_ADDRESS_DEFAULT = "127.0.0.1";
-
-    private final IReplicationStrategy repStrategy;
-
     public ReplicationProperties(PropertiesAccessor accessor) throws HyracksDataException {
         super(accessor);
-        this.repStrategy = ClusterProperties.INSTANCE.getReplicationStrategy();
     }
 
     public int getMaxRemoteRecoveryAttempts() {
         return accessor.getInt(Option.REPLICATION_MAX_REMOTE_RECOVERY_ATTEMPTS);
     }
 
+    public int getReplicationFactor() {
+        return accessor.getInt(Option.REPLICATION_FACTOR);
+    }
+
+    public List<String> getNodeIds() {
+        return accessor.getNCNames();
+    }
+
     public int getLogBufferPageSize() {
         return accessor.getInt(Option.REPLICATION_LOG_BUFFER_PAGESIZE);
     }
@@ -127,53 +131,20 @@
         return accessor.getInt(Option.REPLICATION_LOG_BATCHSIZE);
     }
 
-    public String getReplicaIPAddress(String nodeId) {
-        Node node = ClusterProperties.INSTANCE.getNodeById(nodeId);
-        return node != null ? node.getClusterIp() : NODE_IP_ADDRESS_DEFAULT;
+    public String getNodeIpFromId(String id) {
+        return accessor.getNCEffectiveConfig(id).getString(NCConfig.Option.PUBLIC_ADDRESS);
     }
 
-    public int getDataReplicationPort(String nodeId) {
-        final Cluster cluster = ClusterProperties.INSTANCE.getCluster();
-        Node node = ClusterProperties.INSTANCE.getNodeById(nodeId);
-        if (node != null) {
-            return node.getReplicationPort() != null ? node.getReplicationPort().intValue()
-                    : cluster.getHighAvailability().getDataReplication().getReplicationPort().intValue();
-        }
-        return REPLICATION_DATAPORT_DEFAULT;
-    }
-
-    public Replica getReplicaById(String nodeId) {
-        Node node = ClusterProperties.INSTANCE.getNodeById(nodeId);
-        if (node != null) {
-            return new Replica(node);
-        }
-        return null;
-    }
-
-    public Set<String> getRemoteReplicasIds(String nodeId) {
-        return repStrategy.getRemoteReplicas(nodeId).stream().map(Replica::getId).collect(Collectors.toSet());
-    }
-
-    public Set<String> getRemotePrimaryReplicasIds(String nodeId) {
-        return repStrategy.getRemotePrimaryReplicas(nodeId).stream().map(Replica::getId).collect(Collectors.toSet());
-    }
-
-    public Set<String> getNodeReplicasIds(String nodeId) {
-        Set<String> remoteReplicasIds = getRemoteReplicasIds(nodeId);
-        // This includes the node itself
-        remoteReplicasIds.add(nodeId);
-        return remoteReplicasIds;
+    public String getReplicationStrategy() {
+        return accessor.getString(Option.REPLICATION_STRATEGY);
     }
 
     public int getReplicationTimeOut() {
         return accessor.getInt(Option.REPLICATION_TIMEOUT);
     }
 
-    public boolean isParticipant(String nodeId) {
-        return repStrategy.isParticipant(nodeId);
+    public MetadataProperties getMetadataProperties() {
+        return new MetadataProperties(accessor);
     }
 
-    public IReplicationStrategy getReplicationStrategy() {
-        return repStrategy;
-    }
 }
\ No newline at end of file
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/ChainedDeclusteringReplicationStrategy.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/ChainedDeclusteringReplicationStrategy.java
index dc69383..1ef798c 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/ChainedDeclusteringReplicationStrategy.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/ChainedDeclusteringReplicationStrategy.java
@@ -24,16 +24,18 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.apache.asterix.common.config.ClusterProperties;
-import org.apache.asterix.common.exceptions.ErrorCode;
-import org.apache.asterix.common.exceptions.RuntimeDataException;
-import org.apache.asterix.event.schema.cluster.Cluster;
+import org.apache.asterix.common.config.ReplicationProperties;
+import org.apache.hyracks.api.config.IConfigManager;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.control.common.config.ConfigManager;
+import org.apache.hyracks.control.common.controllers.NCConfig;
 
 public class ChainedDeclusteringReplicationStrategy implements IReplicationStrategy {
 
     private static final Logger LOGGER = Logger.getLogger(ChainedDeclusteringReplicationStrategy.class.getName());
     private int replicationFactor;
+    private ReplicationProperties repProp;
+    private ConfigManager configManager;
 
     @Override
     public boolean isMatch(int datasetId) {
@@ -43,9 +45,8 @@
     @Override
     public Set<Replica> getRemoteReplicas(String nodeId) {
         Set<Replica> remoteReplicas = new HashSet<>();
-        Cluster cluster = ClusterProperties.INSTANCE.getCluster();
         int numberOfRemoteReplicas = replicationFactor - 1;
-        int nodeIndex = ClusterProperties.INSTANCE.getNodeIndex(nodeId);
+        int nodeIndex = repProp.getNodeIds().indexOf(nodeId);
 
         if (nodeIndex == -1) {
             if (LOGGER.isLoggable(Level.WARNING)) {
@@ -56,35 +57,49 @@
 
         //find nodes to the right of this node
         while (remoteReplicas.size() != numberOfRemoteReplicas) {
-            remoteReplicas.add(new Replica(cluster.getNode().get(++nodeIndex % cluster.getNode().size())));
+            String replica = repProp.getNodeIds().get(++nodeIndex % repProp.getNodeIds().size());
+            remoteReplicas.add(new Replica(replica,
+                    configManager.getNodeEffectiveConfig(replica).getString(NCConfig.Option.REPLICATION_LISTEN_ADDRESS),
+                    configManager.getNodeEffectiveConfig(replica).getInt(NCConfig.Option.REPLICATION_LISTEN_PORT)));
         }
 
         return remoteReplicas;
     }
 
     @Override
+    public Set<Replica> getRemoteReplicasAndSelf(String nodeId) {
+        Set<Replica> replicas = getRemoteReplicas(nodeId);
+        replicas.add(new Replica(nodeId,
+                configManager.getNodeEffectiveConfig(nodeId).getString(NCConfig.Option.REPLICATION_LISTEN_ADDRESS),
+                configManager.getNodeEffectiveConfig(nodeId).getInt(NCConfig.Option.REPLICATION_LISTEN_PORT)));
+        return replicas;
+
+    }
+
+    @Override
     public Set<Replica> getRemotePrimaryReplicas(String nodeId) {
         Set<Replica> clientReplicas = new HashSet<>();
-        Cluster cluster = ClusterProperties.INSTANCE.getCluster();
         final int remotePrimaryReplicasCount = replicationFactor - 1;
-
-        int nodeIndex = ClusterProperties.INSTANCE.getNodeIndex(nodeId);
+        int nodeIndex = repProp.getNodeIds().indexOf(nodeId);
 
         //find nodes to the left of this node
         while (clientReplicas.size() != remotePrimaryReplicasCount) {
-            clientReplicas.add(new Replica(cluster.getNode().get(Math.abs(--nodeIndex % cluster.getNode().size()))));
+            String replica = repProp.getNodeIds().get(Math.abs(--nodeIndex % repProp.getNodeIds().size()));
+            clientReplicas.add(new Replica(replica,
+                    configManager.getNodeEffectiveConfig(replica).getString(NCConfig.Option.REPLICATION_LISTEN_ADDRESS),
+                    configManager.getNodeEffectiveConfig(replica).getInt(NCConfig.Option.REPLICATION_LISTEN_PORT)));
         }
 
         return clientReplicas;
     }
 
     @Override
-    public ChainedDeclusteringReplicationStrategy from(Cluster cluster) throws HyracksDataException {
-        if (cluster.getHighAvailability().getDataReplication().getReplicationFactor() == null) {
-            throw new RuntimeDataException(ErrorCode.INVALID_CONFIGURATION, "Replication factor must be specified.");
-        }
+    public ChainedDeclusteringReplicationStrategy from(ReplicationProperties repProp, IConfigManager configManager)
+            throws HyracksDataException {
         ChainedDeclusteringReplicationStrategy cd = new ChainedDeclusteringReplicationStrategy();
-        cd.replicationFactor = cluster.getHighAvailability().getDataReplication().getReplicationFactor().intValue();
+        cd.repProp = repProp;
+        cd.replicationFactor = repProp.getReplicationFactor();
+        cd.configManager = (ConfigManager) configManager;
         return cd;
     }
 }
\ No newline at end of file
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/IReplicationManager.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/IReplicationManager.java
index 04c4437..07076cf 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/IReplicationManager.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/IReplicationManager.java
@@ -56,8 +56,8 @@
      *            a list of already existing files on the requester
      * @throws IOException
      */
-    public void requestReplicaFiles(String remoteReplicaId, Set<Integer> partitionsToRecover,
-            Set<String> existingFiles) throws IOException;
+    public void requestReplicaFiles(String remoteReplicaId, Set<Integer> partitionsToRecover, Set<String> existingFiles)
+            throws IOException;
 
     /**
      * Requests current maximum LSN from remote replicas.
@@ -128,6 +128,8 @@
      */
     public void replicateTxnLogBatch(ByteBuffer buffer);
 
+    IReplicationStrategy getReplicationStrategy();
+
     /**
      * Registers {@code replica}. After registration, the replica will be included in all replication events
      *
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/IReplicationStrategy.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/IReplicationStrategy.java
index b3f1701..93ccfbe 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/IReplicationStrategy.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/IReplicationStrategy.java
@@ -20,7 +20,8 @@
 
 import java.util.Set;
 
-import org.apache.asterix.event.schema.cluster.Cluster;
+import org.apache.asterix.common.config.ReplicationProperties;
+import org.apache.hyracks.api.config.IConfigManager;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 
 public interface IReplicationStrategy {
@@ -31,6 +32,8 @@
      */
     boolean isMatch(int datasetId);
 
+    Set<Replica> getRemoteReplicasAndSelf(String nodeId);
+
     /**
      * @param nodeId
      * @return The set of nodes that replicate data on {@code nodeId}.
@@ -52,8 +55,8 @@
     }
 
     /**
-     * @param cluster
+     * @param p
      * @return A replication strategy based on the passed configurations.
      */
-    IReplicationStrategy from(Cluster cluster) throws HyracksDataException;
+    IReplicationStrategy from(ReplicationProperties p, IConfigManager configManager) throws HyracksDataException;
 }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/MetadataOnlyReplicationStrategy.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/MetadataOnlyReplicationStrategy.java
index f0bba41..2262437 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/MetadataOnlyReplicationStrategy.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/MetadataOnlyReplicationStrategy.java
@@ -22,20 +22,22 @@
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
+import java.util.stream.Collectors;
 
-import org.apache.asterix.common.config.ClusterProperties;
-import org.apache.asterix.common.exceptions.ErrorCode;
-import org.apache.asterix.common.exceptions.RuntimeDataException;
+import org.apache.asterix.common.config.MetadataProperties;
+import org.apache.asterix.common.config.ReplicationProperties;
 import org.apache.asterix.common.metadata.MetadataIndexImmutableProperties;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
+import org.apache.hyracks.api.config.IConfigManager;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.control.common.config.ConfigManager;
+import org.apache.hyracks.control.common.controllers.NCConfig;
 
 public class MetadataOnlyReplicationStrategy implements IReplicationStrategy {
 
-    private String metadataNodeId;
+    private String metadataPrimaryReplicaId;
     private Replica metadataPrimaryReplica;
     private Set<Replica> metadataNodeReplicas;
+    MetadataProperties metadataProperties;
 
     @Override
     public boolean isMatch(int datasetId) {
@@ -44,13 +46,25 @@
 
     @Override
     public Set<Replica> getRemoteReplicas(String nodeId) {
-        if (nodeId.equals(metadataNodeId)) {
+        if (nodeId.equals(metadataPrimaryReplicaId)) {
             return metadataNodeReplicas;
         }
         return Collections.emptySet();
     }
 
     @Override
+    public Set<Replica> getRemoteReplicasAndSelf(String nodeId) {
+
+        if (nodeId.equals(metadataPrimaryReplicaId)) {
+            Set<Replica> replicasAndSelf = new HashSet<>();
+            replicasAndSelf.addAll(metadataNodeReplicas);
+            replicasAndSelf.add(metadataPrimaryReplica);
+            return replicasAndSelf;
+        }
+        return Collections.emptySet();
+    }
+
+    @Override
     public Set<Replica> getRemotePrimaryReplicas(String nodeId) {
         if (metadataNodeReplicas.stream().map(Replica::getId).filter(replicaId -> replicaId.equals(nodeId))
                 .count() != 0) {
@@ -60,29 +74,29 @@
     }
 
     @Override
-    public MetadataOnlyReplicationStrategy from(Cluster cluster) throws HyracksDataException {
-        if (cluster.getMetadataNode() == null) {
-            throw new RuntimeDataException(ErrorCode.INVALID_CONFIGURATION, "Metadata node must be specified.");
-        }
-
-        Node metadataNode = ClusterProperties.INSTANCE.getNodeById(cluster.getMetadataNode());
-        if (metadataNode == null) {
-            throw new IllegalStateException("Invalid metadata node specified");
-        }
-        final Set<Replica> replicas = new HashSet<>();
-        if (cluster.getHighAvailability().getFaultTolerance().getReplica() != null) {
-            for (String nodeId : cluster.getHighAvailability().getFaultTolerance().getReplica().getNodeId()) {
-                Node node = ClusterProperties.INSTANCE.getNodeById(nodeId);
-                if (node == null) {
-                    throw new RuntimeDataException(ErrorCode.INVALID_CONFIGURATION,
-                            "Invalid replica specified: " + nodeId);
-                }
-                replicas.add(new Replica(node));
-            }
-        }
+    public MetadataOnlyReplicationStrategy from(ReplicationProperties p, IConfigManager configManager)
+            throws HyracksDataException {
         MetadataOnlyReplicationStrategy st = new MetadataOnlyReplicationStrategy();
-        st.metadataNodeId = cluster.getMetadataNode();
-        st.metadataPrimaryReplica = new Replica(metadataNode);
+        st.metadataProperties = p.getMetadataProperties();
+        st.metadataPrimaryReplicaId = st.metadataProperties.getMetadataNodeName();
+        st.metadataPrimaryReplica = new Replica(st.metadataPrimaryReplicaId,
+                ((ConfigManager) configManager).getNodeEffectiveConfig(st.metadataPrimaryReplicaId)
+                        .getString(NCConfig.Option.REPLICATION_LISTEN_ADDRESS),
+                ((ConfigManager) configManager).getNodeEffectiveConfig(st.metadataPrimaryReplicaId)
+                        .getInt(NCConfig.Option.REPLICATION_LISTEN_PORT));
+        final Set<Replica> replicas = new HashSet<>();
+        Set<String> candidateSet = new HashSet<>();
+        candidateSet.addAll(((ConfigManager) (configManager)).getNodeNames());
+        candidateSet.remove(st.metadataPrimaryReplicaId);
+        String[] candidateAry = new String[candidateSet.size()];
+        candidateSet.toArray(candidateAry);
+        for (int i = 0; i < candidateAry.length && i < p.getReplicationFactor(); i++) {
+            replicas.add(new Replica(candidateAry[i],
+                    ((ConfigManager) configManager).getNodeEffectiveConfig(candidateAry[i])
+                            .getString(NCConfig.Option.REPLICATION_LISTEN_ADDRESS),
+                    ((ConfigManager) configManager).getNodeEffectiveConfig(candidateAry[i])
+                            .getInt(NCConfig.Option.REPLICATION_LISTEN_PORT)));
+        }
         st.metadataNodeReplicas = replicas;
         return st;
     }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/NoReplicationStrategy.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/NoReplicationStrategy.java
index 43347f6..c32ee3c 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/NoReplicationStrategy.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/NoReplicationStrategy.java
@@ -21,7 +21,10 @@
 import java.util.Collections;
 import java.util.Set;
 
-import org.apache.asterix.event.schema.cluster.Cluster;
+import org.apache.asterix.common.config.ReplicationProperties;
+import org.apache.hyracks.api.config.IConfigManager;
+import org.apache.hyracks.control.common.config.ConfigManager;
+import org.apache.hyracks.control.common.controllers.NCConfig;
 
 public class NoReplicationStrategy implements IReplicationStrategy {
 
@@ -45,8 +48,12 @@
         return Collections.emptySet();
     }
 
+    public Set<Replica> getRemoteReplicasAndSelf(String nodeId) {
+        return Collections.emptySet();
+    }
+
     @Override
-    public NoReplicationStrategy from(Cluster cluster) {
+    public NoReplicationStrategy from(ReplicationProperties p, IConfigManager configManager) {
         return new NoReplicationStrategy();
     }
 }
\ No newline at end of file
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/Replica.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/Replica.java
index 267a22d..52dbd25 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/Replica.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/Replica.java
@@ -23,10 +23,6 @@
 import java.io.DataOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
-import java.net.InetSocketAddress;
-
-import org.apache.asterix.common.config.ReplicationProperties;
-import org.apache.asterix.event.schema.cluster.Node;
 
 public class Replica {
 
@@ -36,13 +32,15 @@
         UNKNOWN
     }
 
-    private final Node node;
     private ReplicaState state = ReplicaState.UNKNOWN;
+    String nodeId;
+    String ipAddr;
+    int port;
 
-    public Replica(Node node) {
-        this.node = new Node();
-        this.node.setId(node.getId());
-        this.node.setClusterIp(node.getClusterIp());
+    public Replica(String id, String ip, int port) {
+        nodeId = id;
+        ipAddr = ip;
+        this.port = port;
     }
 
     public ReplicaState getState() {
@@ -53,41 +51,62 @@
         this.state = state;
     }
 
-    public Node getNode() {
-        return node;
-    }
-
-    public String getId() {
-        return node.getId();
-    }
-
-    public InetSocketAddress getAddress(ReplicationProperties asterixReplicationProperties) {
-        String replicaIPAddress = node.getClusterIp();
-        int replicationPort = asterixReplicationProperties.getDataReplicationPort(node.getId());
-        return InetSocketAddress.createUnresolved(replicaIPAddress, replicationPort);
-    }
-
     public static Replica create(DataInput input) throws IOException {
-        Node node = new Node();
-        Replica replica = new Replica(node);
+        Replica replica = new Replica(null, null, -1);
         replica.readFields(input);
         return replica;
     }
 
+    public String getId() {
+        return nodeId;
+    }
+
     public void writeFields(DataOutput output) throws IOException {
-        output.writeUTF(node.getId());
-        output.writeUTF(node.getClusterIp());
+        output.writeUTF(nodeId);
+        output.writeUTF(ipAddr);
+        output.writeInt(port);
         output.writeInt(state.ordinal());
     }
 
     public void readFields(DataInput input) throws IOException {
-        this.node.setId(input.readUTF());
-        this.node.setClusterIp(input.readUTF());
+        this.nodeId = input.readUTF();
+        this.ipAddr = input.readUTF();
+        this.port = input.readInt();
         this.state = ReplicaState.values()[input.readInt()];
     }
 
+    public String getClusterIp() {
+        return ipAddr;
+    }
+
+    public void setClusterIp(String ip) {
+        ipAddr = ip;
+    }
+
+    public int getPort() {
+        return port;
+    }
+
+    public void setPort(int port) {
+        this.port = port;
+    }
+
     public void serialize(OutputStream out) throws IOException {
         DataOutputStream dos = new DataOutputStream(out);
         writeFields(dos);
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (!(o instanceof Replica)) {
+            return false;
+        }
+        Replica other = (Replica) o;
+        return nodeId.equals(other.getId());
+    }
+
+    @Override
+    public int hashCode() {
+        return nodeId.hashCode();
+    }
 }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/ReplicationStrategyFactory.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/ReplicationStrategyFactory.java
index 703ddcc..e6b6445 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/ReplicationStrategyFactory.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/replication/ReplicationStrategyFactory.java
@@ -21,15 +21,16 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.asterix.common.config.ReplicationProperties;
 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.exceptions.RuntimeDataException;
-import org.apache.asterix.event.schema.cluster.Cluster;
+import org.apache.hyracks.api.config.IConfigManager;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 
 public class ReplicationStrategyFactory {
 
-    private static final Map<String, Class<? extends IReplicationStrategy>>
-    BUILT_IN_REPLICATION_STRATEGY = new HashMap<>();
+    private static final Map<String, Class<? extends IReplicationStrategy>> BUILT_IN_REPLICATION_STRATEGY =
+            new HashMap<>();
 
     static {
         BUILT_IN_REPLICATION_STRATEGY.put("no_replication", NoReplicationStrategy.class);
@@ -41,24 +42,16 @@
         throw new AssertionError();
     }
 
-    public static IReplicationStrategy create(Cluster cluster) throws HyracksDataException {
-        boolean highAvailabilityEnabled = cluster.getHighAvailability() != null
-                && cluster.getHighAvailability().getEnabled() != null
-                && Boolean.valueOf(cluster.getHighAvailability().getEnabled());
-
-        if (!highAvailabilityEnabled || cluster.getHighAvailability().getDataReplication() == null
-                || cluster.getHighAvailability().getDataReplication().getStrategy() == null) {
-            return new NoReplicationStrategy();
-        }
-        String strategyName = cluster.getHighAvailability().getDataReplication().getStrategy().toLowerCase();
+    public static IReplicationStrategy create(String name, ReplicationProperties repProp, IConfigManager ncConfig)
+            throws HyracksDataException {
+        String strategyName = name.toLowerCase();
         if (!BUILT_IN_REPLICATION_STRATEGY.containsKey(strategyName)) {
-            throw new RuntimeDataException(ErrorCode.UNSUPPORTED_REPLICATION_STRATEGY,
-                    String.format("%s. Available strategies: %s", strategyName,
-                            BUILT_IN_REPLICATION_STRATEGY.keySet().toString()));
+            throw new RuntimeDataException(ErrorCode.UNSUPPORTED_REPLICATION_STRATEGY, String.format(
+                    "%s. Available strategies: %s", strategyName, BUILT_IN_REPLICATION_STRATEGY.keySet().toString()));
         }
         Class<? extends IReplicationStrategy> clazz = BUILT_IN_REPLICATION_STRATEGY.get(strategyName);
         try {
-            return clazz.newInstance().from(cluster);
+            return clazz.newInstance().from(repProp, ncConfig);
         } catch (InstantiationException | IllegalAccessException e) {
             throw new RuntimeDataException(ErrorCode.INSTANTIATION_ERROR, e, clazz.getName());
         }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/ConfigUtil.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/ConfigUtil.java
deleted file mode 100644
index 5db1693..0000000
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/utils/ConfigUtil.java
+++ /dev/null
@@ -1,41 +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.common.utils;
-
-import java.util.ArrayList;
-
-import org.apache.asterix.common.config.AsterixExtension;
-import org.apache.asterix.common.configuration.Extension;
-import org.apache.asterix.common.configuration.Property;
-import org.apache.hyracks.algebricks.common.utils.Pair;
-
-public class ConfigUtil {
-
-    private ConfigUtil() {
-    }
-
-    public static AsterixExtension toAsterixExtension(Extension ext) {
-        String className = ext.getExtensionClassName();
-        ArrayList<Pair<String, String>> args = new ArrayList<>();
-        for (Property property : ext.getProperty()) {
-            args.add(new Pair<>(property.getName(), property.getValue()));
-        }
-        return new AsterixExtension(className, args);
-    }
-}
diff --git a/asterixdb/asterix-common/src/main/resources/schema/asterix-conf.xsd b/asterixdb/asterix-common/src/main/resources/schema/asterix-conf.xsd
deleted file mode 100644
index d6a35cd..0000000
--- a/asterixdb/asterix-common/src/main/resources/schema/asterix-conf.xsd
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-
-<!--
- ! 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.
- !-->
-
-<xs:schema
-    xmlns:xs="http://www.w3.org/2001/XMLSchema"
-    xmlns:mg="asterixconf"
-    targetNamespace="asterixconf"
-    elementFormDefault="qualified">
-
-    <!-- definition of simple types -->
-    <xs:element
-        name="instanceName"
-        type="xs:string" />
-    <xs:element
-        name="version"
-        type="xs:string" />
-    <xs:element
-        name="metadataNode"
-        type="xs:string" />
-    <xs:element
-        name="coredumpPath"
-        type="xs:string" />
-    <xs:element
-        name="storeDirs"
-        type="xs:string" />
-    <xs:element
-        name="ncId"
-        type="xs:string" />
-    <xs:element
-        name="name"
-        type="xs:string" />
-    <xs:element
-        name="value"
-        type="xs:string" />
-    <xs:element
-        name="description"
-        type="xs:string" />
-    <xs:element
-        name="txnLogDirPath"
-        type="xs:string" />
-    <xs:element
-        name="extensionClassName"
-        type="xs:string" />
-
-    <!-- definition of complex elements -->
-    <xs:element name="store">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="mg:ncId" />
-                <xs:element ref="mg:storeDirs" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="coredump">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="mg:ncId" />
-                <xs:element ref="mg:coredumpPath" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="transactionLogDir">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="mg:ncId" />
-                <xs:element ref="mg:txnLogDirPath" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="property">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="mg:name" />
-                <xs:element ref="mg:value" />
-                <xs:element ref="mg:description" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="extension">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="mg:extensionClassName"
-                maxOccurs="1"
-                minOccurs="1"/>
-                <xs:element ref="mg:property"
-                    minOccurs="0"
-                    maxOccurs="unbounded" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="extensions">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="mg:extension"
-                    minOccurs="0"
-                    maxOccurs="unbounded">
-                </xs:element>
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="asterixConfiguration">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element
-                    ref="mg:instanceName"
-                    minOccurs="0" />
-                <xs:element
-                    ref="mg:version"
-                    minOccurs="0" />
-                <xs:element
-                    ref="mg:metadataNode"
-                    minOccurs="0" />
-                <xs:element
-                    ref="mg:store"
-                    maxOccurs="unbounded" />
-                <xs:element
-                    ref="mg:coredump"
-                    maxOccurs="unbounded" />
-                <xs:element
-                    ref="mg:transactionLogDir"
-                    maxOccurs="unbounded" />
-                <xs:element ref="mg:extensions"
-                    minOccurs="0"
-                    maxOccurs="1" />
-                <xs:element
-                    ref="mg:property"
-                    minOccurs="0"
-                    maxOccurs="unbounded" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-</xs:schema>
diff --git a/asterixdb/asterix-common/src/main/resources/schema/cluster.xsd b/asterixdb/asterix-common/src/main/resources/schema/cluster.xsd
deleted file mode 100644
index be189e3..0000000
--- a/asterixdb/asterix-common/src/main/resources/schema/cluster.xsd
+++ /dev/null
@@ -1,197 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-
-<!--
- ! 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.
- !-->
-
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-    xmlns:cl="cluster" targetNamespace="cluster" elementFormDefault="qualified">
-
-    <!-- definition of simple types -->
-    <xs:element name="instance_name" type="xs:string" />
-    <xs:element name="cluster_name" type="xs:string" />
-    <xs:element name="log_dir" type="xs:string" />
-    <xs:element name="txn_log_dir" type="xs:string" />
-    <xs:element name="id" type="xs:string" />
-    <xs:element name="client_ip" type="xs:string" />
-    <xs:element name="cluster_ip" type="xs:string" />
-    <xs:element name="key" type="xs:string" />
-    <xs:element name="value" type="xs:string" />
-    <xs:element name="dir" type="xs:string" />
-    <xs:element name="NFS" type="xs:boolean" />
-    <xs:element name="store" type="xs:string" />
-    <xs:element name="iodevices" type="xs:string" />
-    <xs:element name="java_home" type="xs:string" />
-    <xs:element name="username" type="xs:string" />
-    <xs:element name="web_port" type="xs:string" />
-    <xs:element name="client_port" type="xs:integer" />
-    <xs:element name="cluster_port" type="xs:integer" />
-    <xs:element name="http_port" type="xs:integer" />
-    <xs:element name="debug_port" type="xs:integer" />
-    <xs:element name="metadata_node" type="xs:string" />
-    <xs:element name="enabled" type="xs:string" />
-    <xs:element name="replication_port" type="xs:integer" />
-    <xs:element name="replication_factor" type="xs:integer" />
-    <xs:element name="auto_failover" type="xs:boolean" />
-    <xs:element name="replication_time_out" type="xs:integer" />
-    <xs:element name="heartbeat_period" type="xs:integer" />
-    <xs:element name="max_heartbeat_lapse_periods" type="xs:integer" />
-    <xs:element name="profile_dump_period" type="xs:integer" />
-    <xs:element name="job_history_size" type="xs:integer" />
-    <xs:element name="result_time_to_live" type="xs:long" />
-    <xs:element name="result_sweep_threshold" type="xs:long" />
-    <xs:element name="cc_root" type="xs:string" />
-    <xs:element name="strategy" type="xs:string" />
-    <xs:element name="node_id" type="xs:string" />
-    <xs:element name="nc_api_port" type="xs:integer" />
-
-    <!-- definition of complex elements -->
-    <xs:element name="working_dir">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:dir" />
-                <xs:element ref="cl:NFS" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="master_node">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:id" />
-                <xs:element ref="cl:client_ip" />
-                <xs:element ref="cl:cluster_ip" />
-                <xs:element ref="cl:java_home" minOccurs="0" />
-                <xs:element ref="cl:log_dir" minOccurs="0" />
-                <xs:element ref="cl:client_port" />
-                <xs:element ref="cl:cluster_port" />
-                <xs:element ref="cl:http_port" />
-                <xs:element ref="cl:debug_port" minOccurs="0" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="data_replication">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:strategy" />
-                <xs:element ref="cl:replication_port" />
-                <xs:element ref="cl:replication_factor" />
-                <xs:element ref="cl:replication_time_out" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="fault_tolerance">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:strategy" />
-                <xs:element ref="cl:replica" minOccurs="0"/>
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="high_availability">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:enabled" minOccurs="0"/>
-                <xs:element ref="cl:data_replication" minOccurs="0"/>
-                <xs:element ref="cl:fault_tolerance" minOccurs="0"/>
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="property">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:key" />
-                <xs:element ref="cl:value" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="env">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:property" minOccurs="0" maxOccurs="unbounded" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="node">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:id" />
-                <xs:element ref="cl:cluster_ip" />
-                <xs:element ref="cl:java_home" minOccurs="0" />
-                <xs:element ref="cl:log_dir" minOccurs="0" />
-                <xs:element ref="cl:txn_log_dir" minOccurs="0" />
-                <xs:element ref="cl:iodevices" minOccurs="0" />
-                <xs:element ref="cl:debug_port" minOccurs="0" />
-                <xs:element ref="cl:replication_port" minOccurs="0" />
-                <xs:element ref="cl:nc_api_port" minOccurs="0" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="substitute_nodes">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:node" maxOccurs="unbounded" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="replica">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:node_id" maxOccurs="unbounded" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="cluster">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:instance_name" />
-                <xs:element ref="cl:cluster_name" />
-                <xs:element ref="cl:username" />
-                <xs:element ref="cl:env" minOccurs="0" />
-                <xs:element ref="cl:java_home" minOccurs="0" />
-                <xs:element ref="cl:log_dir" minOccurs="0" />
-                <xs:element ref="cl:txn_log_dir" minOccurs="0" />
-                <xs:element ref="cl:store" minOccurs="0" />
-                <xs:element ref="cl:iodevices" minOccurs="0" />
-                <xs:element ref="cl:working_dir" />
-                <xs:element ref="cl:metadata_node" />
-                <xs:element ref="cl:high_availability" minOccurs="0" />
-                <xs:element ref="cl:master_node" />
-                <xs:element ref="cl:node" maxOccurs="unbounded" />
-                <xs:element ref="cl:substitute_nodes" />
-                <xs:element ref="cl:heartbeat_period" minOccurs="0" />
-                <xs:element ref="cl:max_heartbeat_lapse_periods" minOccurs="0" />
-                <xs:element ref="cl:profile_dump_period" minOccurs="0" />
-                <xs:element ref="cl:job_history_size" minOccurs="0" />
-                <xs:element ref="cl:result_time_to_live" minOccurs="0" />
-                <xs:element ref="cl:result_sweep_threshold" minOccurs="0" />
-                <xs:element ref="cl:cc_root" minOccurs="0" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-</xs:schema>
diff --git a/asterixdb/asterix-common/src/main/resources/schema/jaxb-bindings.xjb b/asterixdb/asterix-common/src/main/resources/schema/jaxb-bindings.xjb
deleted file mode 100644
index 0b191a6..0000000
--- a/asterixdb/asterix-common/src/main/resources/schema/jaxb-bindings.xjb
+++ /dev/null
@@ -1,28 +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.
- !-->
-
-<jxb:bindings version="1.0"
-xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
-<jxb:globalBindings>
-  <jxb:serializable uid="1"/>
-</jxb:globalBindings>
-
-</jxb:bindings>
diff --git a/asterixdb/asterix-common/src/main/resources/schema/yarn_cluster.xsd b/asterixdb/asterix-common/src/main/resources/schema/yarn_cluster.xsd
deleted file mode 100644
index 4292509..0000000
--- a/asterixdb/asterix-common/src/main/resources/schema/yarn_cluster.xsd
+++ /dev/null
@@ -1,211 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-
-<!--
- ! 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.
- !-->
-
-<xs:schema
-    xmlns:xs="http://www.w3.org/2001/XMLSchema"
-    xmlns:cl="yarn_cluster"
-    targetNamespace="yarn_cluster"
-    elementFormDefault="qualified">
-
-    <!-- definition of simple types -->
-    <xs:element
-        name="instance_name"
-        type="xs:string" />
-    <xs:element
-        name="cluster_name"
-        type="xs:string" />
-    <xs:element
-        name="log_dir"
-        type="xs:string" />
-    <xs:element
-        name="txn_log_dir"
-        type="xs:string" />
-    <xs:element
-        name="id"
-        type="xs:string" />
-    <xs:element
-        name="client_ip"
-        type="xs:string" />
-    <xs:element
-        name="cluster_ip"
-        type="xs:string" />
-    <xs:element
-        name="key"
-        type="xs:string" />
-    <xs:element
-        name="value"
-        type="xs:string" />
-    <xs:element
-        name="store"
-        type="xs:string" />
-    <xs:element
-        name="iodevices"
-        type="xs:string" />
-    <xs:element
-        name="web_port"
-        type="xs:string" />
-    <xs:element
-        name="client_port"
-        type="xs:integer" />
-    <xs:element
-        name="cluster_port"
-        type="xs:integer" />
-    <xs:element
-        name="http_port"
-        type="xs:integer" />
-    <xs:element
-        name="debug_port"
-        type="xs:integer" />
-    <xs:element
-        name="metadata_node"
-        type="xs:string" />
-    <xs:element
-        name="cc_container_mem"
-        type="xs:string" />
-    <xs:element
-        name="nc_container_mem"
-        type="xs:string" />
-    <xs:element name="heartbeat_period" type="xs:integer" />
-    <xs:element name="max_heartbeat_lapse_periods" type="xs:integer" />
-    <xs:element name="profile_dump_period" type="xs:integer" />
-    <xs:element name="default_max_job_attempts" type="xs:integer" />
-    <xs:element name="job_history_size" type="xs:integer" />
-    <xs:element name="result_time_to_live" type="xs:long" />
-    <xs:element name="result_sweep_threshold" type="xs:long" />
-    <xs:element name="cc_root" type="xs:string" />
-
-    <!-- definition of complex elements -->
-
-    <xs:element name="master_node">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:id" />
-                <xs:element ref="cl:client_ip" />
-                <xs:element ref="cl:cluster_ip" />
-                <xs:element
-                    ref="cl:log_dir"
-                    minOccurs="0" />
-                <xs:element ref="cl:client_port" />
-                <xs:element ref="cl:cluster_port" />
-                <xs:element ref="cl:http_port" />
-                <xs:element
-                    ref="cl:debug_port"
-                    minOccurs="0" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="property">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:key" />
-                <xs:element ref="cl:value" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="env">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element
-                    ref="cl:property"
-                    minOccurs="0"
-                    maxOccurs="unbounded" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="node">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:id" />
-                <xs:element ref="cl:cluster_ip" />
-                <xs:element
-                    ref="cl:log_dir"
-                    minOccurs="0" />
-                <xs:element
-                    ref="cl:txn_log_dir"
-                    minOccurs="0" />
-                <xs:element
-                    ref="cl:iodevices"
-                    minOccurs="0" />
-                <xs:element
-                    ref="cl:debug_port"
-                    minOccurs="0" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="substitute_nodes">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element
-                    ref="cl:node"
-                    maxOccurs="unbounded" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-    <xs:element name="cluster">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element ref="cl:instance_name" />
-                <xs:element ref="cl:cluster_name" />
-                <xs:element
-                    ref="cl:cc_container_mem"
-                    minOccurs="0" />
-                <xs:element
-                    ref="cl:nc_container_mem"
-                    minOccurs="0" />
-                <xs:element
-                    ref="cl:env"
-                    minOccurs="0" />
-                <xs:element
-                    ref="cl:log_dir"
-                    minOccurs="0" />
-                <xs:element
-                    ref="cl:txn_log_dir"
-                    minOccurs="0" />
-                <xs:element
-                    ref="cl:store"
-                    minOccurs="0" />
-                <xs:element
-                    ref="cl:iodevices"
-                    minOccurs="0" />
-                <xs:element ref="cl:metadata_node" />
-                <xs:element ref="cl:master_node" />
-                <xs:element
-                    ref="cl:node"
-                    maxOccurs="unbounded" />
-                <xs:element ref="cl:substitute_nodes" />
-                <xs:element ref="cl:heartbeat_period" minOccurs="0" />
-                <xs:element ref="cl:max_heartbeat_lapse_periods" minOccurs="0" />
-                <xs:element ref="cl:profile_dump_period" minOccurs="0" />
-                <xs:element ref="cl:default_max_job_attempts" minOccurs="0" />
-                <xs:element ref="cl:job_history_size" minOccurs="0" />
-                <xs:element ref="cl:result_time_to_live" minOccurs="0" />
-                <xs:element ref="cl:result_sweep_threshold" minOccurs="0" />
-                <xs:element ref="cl:cc_root" minOccurs="0" />
-            </xs:sequence>
-        </xs:complexType>
-    </xs:element>
-
-</xs:schema>
diff --git a/asterixdb/asterix-events/pom.xml b/asterixdb/asterix-events/pom.xml
deleted file mode 100644
index 9704637..0000000
--- a/asterixdb/asterix-events/pom.xml
+++ /dev/null
@@ -1,171 +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.
- !-->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>apache-asterixdb</artifactId>
-    <groupId>org.apache.asterix</groupId>
-    <version>0.9.3-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.asterix</groupId>
-  <artifactId>asterix-events</artifactId>
-
-  <licenses>
-    <license>
-      <name>Apache License, Version 2.0</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-      <comments>A business-friendly OSS license</comments>
-    </license>
-  </licenses>
-
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <appendedResourcesDirectory>${basedir}/../src/main/appended-resources</appendedResourcesDirectory>
-  </properties>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.jvnet.jaxb2.maven2</groupId>
-        <artifactId>maven-jaxb2-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>event</id>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-            <configuration>
-              <args>
-                <arg>-Xsetters</arg>
-                <arg>-Xvalue-constructor</arg>
-              </args>
-              <plugins>
-                <plugin>
-                  <groupId>org.jvnet.jaxb2_commons</groupId>
-                  <artifactId>jaxb2-basics</artifactId>
-                  <version>0.6.2</version>
-                </plugin>
-                <plugin>
-                  <groupId>org.jvnet.jaxb2_commons</groupId>
-                  <artifactId>jaxb2-value-constructor</artifactId>
-                  <version>3.0</version>
-                </plugin>
-              </plugins>
-              <schemaDirectory>src/main/resources/schema</schemaDirectory>
-              <schemaIncludes>
-                <include>event.xsd</include>
-              </schemaIncludes>
-              <generatePackage>org.apache.asterix.event.schema.event</generatePackage>
-              <generateDirectory>${project.build.directory}/generated-sources/event</generateDirectory>
-            </configuration>
-          </execution>
-          <execution>
-            <id>configuration</id>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-            <configuration>
-              <args>
-                <arg>-Xsetters</arg>
-                <arg>-Xvalue-constructor</arg>
-              </args>
-              <plugins>
-                <plugin>
-                  <groupId>org.jvnet.jaxb2_commons</groupId>
-                  <artifactId>jaxb2-basics</artifactId>
-                  <version>0.6.2</version>
-                </plugin>
-                <plugin>
-                  <groupId>org.jvnet.jaxb2_commons</groupId>
-                  <artifactId>jaxb2-value-constructor</artifactId>
-                  <version>3.0</version>
-                </plugin>
-              </plugins>
-              <schemaDirectory>src/main/resources/schema</schemaDirectory>
-              <schemaIncludes>
-                <include>installer-conf.xsd</include>
-              </schemaIncludes>
-              <generatePackage>org.apache.asterix.installer.schema.conf</generatePackage>
-              <generateDirectory>${project.build.directory}/generated-sources/configuration</generateDirectory>
-            </configuration>
-          </execution>
-          <execution>
-            <id>pattern</id>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-            <configuration>
-              <args>
-                <arg>-Xsetters</arg>
-                <arg>-Xvalue-constructor</arg>
-              </args>
-              <plugins>
-                <plugin>
-                  <groupId>org.jvnet.jaxb2_commons</groupId>
-                  <artifactId>jaxb2-basics</artifactId>
-                  <version>0.6.2</version>
-                </plugin>
-                <plugin>
-                  <groupId>org.jvnet.jaxb2_commons</groupId>
-                  <artifactId>jaxb2-value-constructor</artifactId>
-                  <version>3.0</version>
-                </plugin>
-              </plugins>
-              <schemaDirectory>src/main/resources/schema</schemaDirectory>
-              <schemaIncludes>
-                <include>pattern.xsd</include>
-              </schemaIncludes>
-              <generatePackage>org.apache.asterix.event.schema.pattern</generatePackage>
-              <generateDirectory>${project.build.directory}/generated-sources/pattern</generateDirectory>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-  <dependencies>
-    <dependency>
-      <groupId>args4j</groupId>
-      <artifactId>args4j</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.zookeeper</groupId>
-      <artifactId>zookeeper</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-common</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-    </dependency>
-  </dependencies>
-</project>
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/driver/EventConfig.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/driver/EventConfig.java
deleted file mode 100644
index 33cb63b..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/driver/EventConfig.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.event.driver;
-
-import org.kohsuke.args4j.Option;
-
-public class EventConfig {
-
-    @Option(name = "-h", required = false, usage = "Help")
-    public boolean help = false;
-
-    @Option(name = "-d", required = false, usage = "Show the execution on a timeline")
-    public boolean dryRun = false;
-
-    @Option(name = "-s", required = false, usage = "Seed for randomization")
-    public int seed = -1;
-
-    @Option(name = "-c", required = true, usage = "Path to cluster configuration (REQUIRED)")
-    public String clusterPath;
-
-    @Option(name = "-p", required = true, usage = "Path to pattern configuration (REQUIRED)")
-    public String patternPath;
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/driver/EventDriver.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/driver/EventDriver.java
deleted file mode 100644
index c7f16fc..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/driver/EventDriver.java
+++ /dev/null
@@ -1,120 +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.event.driver;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.asterix.event.management.EventUtil;
-import org.apache.asterix.event.management.Randomizer;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.cluster.Property;
-import org.apache.asterix.event.schema.event.Events;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.kohsuke.args4j.CmdLineParser;
-
-public class EventDriver {
-
-    public static final String CLIENT_NODE_ID = "client_node";
-    public static final String CLUSTER_IP = "127.0.0.1";
-    public static final Node CLIENT_NODE = new Node(CLIENT_NODE_ID, CLUSTER_IP, null, null, null, null, null, null,
-            null);
-
-    private static String eventsDir;
-    private static Map<String, String> env = new HashMap<String, String>();
-    private static String scriptDirSuffix;
-
-    public static Map<String, String> getEnvironment() {
-        return env;
-    }
-
-    public static Cluster initializeCluster(String path) throws JAXBException, IOException {
-        Cluster cluster = EventUtil.getCluster(path);
-        for (Property p : cluster.getEnv().getProperty()) {
-            env.put(p.getKey(), p.getValue());
-        }
-        return cluster;
-    }
-
-    public static void main(String[] args) throws Exception {
-        String eventsHome = System.getenv("EVENT_HOME");
-        if (eventsHome == null) {
-            throw new IllegalStateException("EVENT_HOME is not set");
-        }
-        eventsDir = eventsHome + File.separator + EventUtil.EVENTS_DIR;
-        EventConfig eventConfig = new EventConfig();
-        CmdLineParser parser = new CmdLineParser(eventConfig);
-        try {
-            parser.parseArgument(args);
-            if (eventConfig.help) {
-                parser.printUsage(System.out);
-            }
-            if (eventConfig.seed > 0) {
-                Randomizer.getInstance(eventConfig.seed);
-            }
-            Cluster cluster = initializeCluster(eventConfig.clusterPath);
-
-            if (!eventConfig.dryRun) {
-                prepare(cluster);
-            }
-            if (!eventConfig.dryRun) {
-                cleanup(cluster);
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            parser.printUsage(System.err);
-        }
-    }
-
-    private static void prepare(Cluster cluster) throws IOException, InterruptedException {
-
-        scriptDirSuffix = Long.toString(System.nanoTime());
-        List<String> args = new ArrayList<String>();
-        args.add(scriptDirSuffix);
-        Node clientNode = new Node();
-        clientNode.setId("client");
-        clientNode.setClusterIp(CLUSTER_IP);
-        for (Node node : cluster.getNode()) {
-            args.add(node.getClusterIp());
-        }
-        EventUtil.executeLocalScript(clientNode, eventsDir + "/" + "events" + "/" + "prepare.sh", args);
-    }
-
-    private static void cleanup(Cluster cluster) throws IOException, InterruptedException {
-        List<String> args = new ArrayList<String>();
-        args.add(scriptDirSuffix);
-        Node clientNode = new Node();
-        clientNode.setId("client");
-        clientNode.setClusterIp(CLUSTER_IP);
-        for (Node node : cluster.getNode()) {
-            args.add(node.getClusterIp());
-        }
-        EventUtil.executeLocalScript(clientNode, eventsDir + "/" + "events" + "/" + "cleanup.sh", args);
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/error/EventException.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/error/EventException.java
deleted file mode 100644
index 1c63f80..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/error/EventException.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.event.error;
-
-public class EventException extends Exception {
-
-    private static final long serialVersionUID = 1L;
-
-    public EventException(String message) {
-        super(message);
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/error/OutputHandler.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/error/OutputHandler.java
deleted file mode 100644
index efb2ac4..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/error/OutputHandler.java
+++ /dev/null
@@ -1,87 +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.event.error;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.Properties;
-
-import org.apache.asterix.event.management.IOutputHandler;
-import org.apache.asterix.event.management.OutputAnalysis;
-import org.apache.asterix.event.model.EventList.EventType;
-import org.apache.asterix.event.schema.pattern.Event;
-
-public class OutputHandler implements IOutputHandler {
-
-    public static IOutputHandler INSTANCE = new OutputHandler();
-
-    private OutputHandler() {
-
-    }
-
-    @Override
-    public OutputAnalysis reportEventOutput(Event event, String output) {
-
-        EventType eventType = EventType.valueOf(event.getType().toUpperCase());
-        boolean ignore = true;
-        String trimmedOutput = output.trim();
-        StringBuilder errorMessage = new StringBuilder();
-        switch (eventType) {
-            case FILE_TRANSFER:
-                if (trimmedOutput.length() > 0) {
-                    if (output.contains("Permission denied") || output.contains("cannot find or open")) {
-                        ignore = false;
-                        break;
-                    }
-                }
-                break;
-
-            case BACKUP:
-            case RESTORE:
-                if (trimmedOutput.length() > 0) {
-                    if (trimmedOutput.contains("AccessControlException")) {
-                        errorMessage.append("Insufficient permissions on back up directory");
-                    }
-                    ignore = output.contains("does not exist") || output.contains("File exist")
-                            || (output.contains("No such file or directory"));
-                }
-                break;
-
-            case NODE_INFO:
-                Properties p = new Properties();
-                try {
-                    p.load(new ByteArrayInputStream(trimmedOutput.getBytes()));
-                } catch (IOException e) {
-                }
-                String javaVersion = (String) p.get("java_version");
-                if (p.get("java_version") == null) {
-                    errorMessage.append("Java not installed on " + event.getNodeid().getValue().getAbsvalue());
-                    ignore = false;
-                } else if (!javaVersion.contains("1.7")) {
-                    errorMessage.append("Asterix requires Java 1.7.x. Incompatible version found on  "
-                            + event.getNodeid().getValue().getAbsvalue() + "\n");
-                    ignore = false;
-                }
-                break;
-            default:
-                break;
-        }
-        return ignore ? new OutputAnalysis(true, null) : new OutputAnalysis(false, errorMessage.toString());
-    }
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/error/VerificationUtil.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/error/VerificationUtil.java
deleted file mode 100644
index 640422e..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/error/VerificationUtil.java
+++ /dev/null
@@ -1,128 +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.event.error;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.model.AsterixRuntimeState;
-import org.apache.asterix.event.model.ProcessInfo;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-
-public class VerificationUtil {
-
-    private static final String VERIFY_SCRIPT_PATH = AsterixEventService.getEventHome() + File.separator + "scripts"
-            + File.separator + "verify.sh";
-
-    public static AsterixRuntimeState getAsterixRuntimeState(AsterixInstance instance) throws Exception {
-
-        Cluster cluster = instance.getCluster();
-        List<String> args = new ArrayList<String>();
-        args.add(instance.getName());
-        args.add(instance.getCluster().getMasterNode().getClusterIp());
-        for (Node node : cluster.getNode()) {
-            args.add(node.getClusterIp());
-            args.add(instance.getName() + "_" + node.getId());
-        }
-        Thread.sleep(2000);
-        String output = AsterixEventServiceUtil.executeLocalScript(VERIFY_SCRIPT_PATH, args);
-        boolean ccRunning = true;
-        List<String> failedNCs = new ArrayList<String>();
-        String[] infoFields;
-        List<ProcessInfo> processes = new ArrayList<ProcessInfo>();
-
-        for (String line : output.split("\n")) {
-            String nodeid = null;
-            infoFields = line.split(":");
-            try {
-                int pid = Integer.parseInt(infoFields[3]);
-                if (infoFields[0].equals("NC")) {
-                    nodeid = infoFields[2].split("_")[1];
-                } else {
-                    nodeid = instance.getCluster().getMasterNode().getId();
-                }
-                processes.add(new ProcessInfo(infoFields[0], infoFields[1], nodeid, pid));
-            } catch (Exception e) {
-                if (infoFields[0].equalsIgnoreCase("CC")) {
-                    ccRunning = false;
-                } else {
-                    failedNCs.add(infoFields[1]);
-                }
-            }
-        }
-        return new AsterixRuntimeState(processes, failedNCs, ccRunning);
-    }
-
-    public static void updateInstanceWithRuntimeDescription(AsterixInstance instance, AsterixRuntimeState state,
-            boolean expectedRunning) {
-        StringBuilder summary = new StringBuilder();
-        if (expectedRunning) {
-            if (!state.isCcRunning()) {
-                summary.append(
-                        "Cluster Controller not running at " + instance.getCluster().getMasterNode().getId() + "\n");
-                instance.setState(State.UNUSABLE);
-            }
-            if (state.getFailedNCs() != null && !state.getFailedNCs().isEmpty()) {
-                summary.append("Node Controller not running at the following nodes" + "\n");
-                for (String failedNC : state.getFailedNCs()) {
-                    summary.append(failedNC + "\n");
-                }
-                // instance.setState(State.UNUSABLE);
-            }
-            if (!(instance.getState().equals(State.UNUSABLE))) {
-                instance.setState(State.ACTIVE);
-            }
-        } else {
-            if (state.getProcesses() != null && state.getProcesses().size() > 0) {
-                summary.append("Following process still running " + "\n");
-                for (ProcessInfo pInfo : state.getProcesses()) {
-                    summary.append(pInfo + "\n");
-                }
-                // instance.setState(State.UNUSABLE);
-            } else {
-                // instance.setState(State.INACTIVE);
-            }
-        }
-        state.setSummary(summary.toString());
-        instance.setAsterixRuntimeStates(state);
-    }
-
-    public static void verifyBackupRestoreConfiguration(String hdfsUrl, String hadoopVersion, String hdfsBackupDir)
-            throws Exception {
-        StringBuilder errorCheck = new StringBuilder();
-        if (hdfsUrl == null || hdfsUrl.length() == 0) {
-            errorCheck.append("\n HDFS Url not configured");
-        }
-        if (hadoopVersion == null || hadoopVersion.length() == 0) {
-            errorCheck.append("\n HDFS version not configured");
-        }
-        if (hdfsBackupDir == null || hdfsBackupDir.length() == 0) {
-            errorCheck.append("\n HDFS backup directory not configured");
-        }
-        if (errorCheck.length() > 0) {
-            throw new Exception("Incomplete hdfs configuration" + errorCheck);
-        }
-    }
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/AsterixEventServiceClient.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/AsterixEventServiceClient.java
deleted file mode 100644
index 34c1837..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/AsterixEventServiceClient.java
+++ /dev/null
@@ -1,232 +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.event.management;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Logger;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.asterix.event.driver.EventDriver;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.event.Events;
-import org.apache.asterix.event.schema.pattern.Event;
-import org.apache.asterix.event.schema.pattern.Nodeid;
-import org.apache.asterix.event.schema.pattern.Pattern;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.schema.pattern.Value;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.installer.schema.conf.Configuration;
-
-public class AsterixEventServiceClient {
-
-    private static final Logger LOGGER = Logger.getLogger(AsterixEventServiceClient.class.getName());
-
-    private EventTask[] tasks;
-    private boolean dryRun = false;
-    private LinkedBlockingQueue<EventTaskReport> msgInbox = new LinkedBlockingQueue<EventTaskReport>();
-    private AtomicInteger pendingTasks = new AtomicInteger(0);
-    private final Cluster cluster;
-    private IPatternListener listener;
-    private IOutputHandler outputHandler;
-    private Events events;
-    private String eventsHomeDir;
-    private Configuration configuration;
-
-    public AsterixEventServiceClient(Configuration configuration, String eventsHomeDir, Cluster cluster,
-            boolean transferArtifacts, boolean dryRun, IOutputHandler outputHandler) throws Exception {
-        this.eventsHomeDir = eventsHomeDir;
-        this.events = initializeEvents();
-        this.cluster = cluster;
-        this.dryRun = dryRun;
-        this.configuration = configuration;
-        this.outputHandler = outputHandler;
-        if (!dryRun && transferArtifacts) {
-            initializeCluster(getEventsDir());
-        }
-    }
-
-    public void submit(Patterns patterns) throws Exception {
-        if (patterns.getPattern().isEmpty()) {
-            return;
-        }
-        initTasks(patterns);
-        try {
-            waitForCompletion();
-        } catch (InterruptedException ie) {
-            LOGGER.info("Interrupted exception :" + ie);
-        } catch (Exception e) {
-            throw e;
-        }
-
-    }
-
-    public void submit(Patterns patterns, IPatternListener listener) throws Exception {
-        this.listener = listener;
-        initTasks(patterns);
-    }
-
-    private void initTasks(Patterns patterns) {
-        tasks = new EventTask[patterns.getPattern().size()];
-        pendingTasks.set(tasks.length);
-        int index = 0;
-        for (Pattern pattern : patterns.getPattern()) {
-            tasks[index] = new EventTask(pattern, this);
-            tasks[index].start();
-            index++;
-        }
-    }
-
-    public Cluster getCluster() {
-        return cluster;
-    }
-
-    public boolean isDryRun() {
-        return dryRun;
-    }
-
-    public Events getEvents() {
-        return events;
-    }
-
-    public String getEventsDir() {
-        return eventsHomeDir + File.separator + AsterixEventServiceUtil.EVENT_DIR;
-    }
-
-    public synchronized void notifyCompletion(EventTaskReport report) {
-
-        if (report.isSuccess()) {
-            if (listener != null) {
-                pendingTasks.decrementAndGet();
-                listener.eventCompleted(report);
-                if (pendingTasks.get() == 0) {
-                    listener.jobCompleted();
-                }
-            } else {
-                try {
-                    msgInbox.put(report);
-                } catch (InterruptedException e) {
-                }
-            }
-        } else {
-            for (EventTask t : tasks) {
-                if (t.getState() == EventTask.State.INITIALIZED || t.getState() == EventTask.State.IN_PROGRESS) {
-                    t.cancel();
-                }
-            }
-            if (listener != null) {
-                listener.jobFailed(report);
-            } else {
-                try {
-                    msgInbox.put(report);
-                } catch (InterruptedException e) {
-                }
-            }
-        }
-    }
-
-    private void waitForCompletion() throws Exception {
-        while (true) {
-            EventTaskReport report = msgInbox.take();
-            if (report.isSuccess()) {
-                if (pendingTasks.decrementAndGet() == 0) {
-                    break;
-                }
-            } else {
-                throw report.getException();
-            }
-        }
-    }
-
-    private void initializeCluster(String eventsDir) throws Exception {
-        Patterns patterns = initPattern(eventsDir);
-        submit(patterns);
-    }
-
-    private Patterns initPattern(String eventsDir) throws Exception {
-        Nodeid nodeid = new Nodeid(new Value(null, EventDriver.CLIENT_NODE.getId()));
-        List<Pattern> patternList = new ArrayList<Pattern>();
-        String workingDir = cluster.getWorkingDir().getDir();
-        String username = cluster.getUsername() == null ? System.getProperty("user.name") : cluster.getUsername();
-        patternList.add(getDirectoryTransferPattern(username, eventsDir, nodeid,
-                cluster.getMasterNode().getClusterIp(), workingDir));
-
-        JAXBContext ctx = JAXBContext.newInstance(Configuration.class);
-        Marshaller marshaller = ctx.createMarshaller();
-        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
-        String outputPathDir = System.getProperty("java.io.tmpdir") + File.separator + "conf-"
-                + System.getProperty("user.name");
-        new File(outputPathDir).mkdirs();
-        String outputPath = outputPathDir + File.separator + "configuration.xml";
-        marshaller.marshal(configuration, new FileOutputStream(outputPath));
-
-        patternList.add(getFileTransferPattern(username, outputPath, nodeid, cluster.getMasterNode().getClusterIp(),
-                workingDir));
-
-        if (!cluster.getWorkingDir().isNFS()) {
-            for (Node node : cluster.getNode()) {
-                patternList.add(getDirectoryTransferPattern(username, eventsDir, nodeid, node.getClusterIp(),
-                        workingDir));
-
-            }
-        }
-        return new Patterns(patternList);
-    }
-
-    private Pattern getDirectoryTransferPattern(String username, String src, Nodeid srcNode, String destNodeIp,
-            String destDir) {
-        String pargs = username + " " + src + " " + destNodeIp + " " + destDir;
-        Event event = new Event("directory_transfer", srcNode, pargs);
-        return new Pattern(null, 1, null, event);
-    }
-
-    private Pattern getFileTransferPattern(String username, String src, Nodeid srcNode, String destNodeIp,
-            String destDir) {
-        String pargs = username + " " + src + " " + destNodeIp + " " + destDir;
-        Event event = new Event("file_transfer", srcNode, pargs);
-        return new Pattern(null, 1, null, event);
-    }
-
-    public IOutputHandler getErrorHandler() {
-        return outputHandler;
-    }
-
-    private Events initializeEvents() throws JAXBException, FileNotFoundException {
-        File file = new File(getEventsDir() + File.separator + "events.xml");
-        JAXBContext eventCtx = JAXBContext.newInstance(Events.class);
-        Unmarshaller unmarshaller = eventCtx.createUnmarshaller();
-        events = (Events) unmarshaller.unmarshal(file);
-        return events;
-    }
-
-    public String getEventsHomeDir() {
-        return eventsHomeDir;
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/EventExecutor.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/EventExecutor.java
deleted file mode 100644
index 5035072..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/EventExecutor.java
+++ /dev/null
@@ -1,120 +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.event.management;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.asterix.event.driver.EventDriver;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.cluster.Property;
-import org.apache.asterix.event.schema.pattern.Pattern;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.commons.io.IOUtils;
-
-public class EventExecutor {
-
-    private static final String EXECUTE_SCRIPT = "execute.sh";
-    private static final String IP_LOCATION = "IP_LOCATION";
-    private static final String CLUSTER_ENV = "ENV";
-    private static final String SCRIPT = "SCRIPT";
-    private static final String ARGS = "ARGS";
-    private static final String DAEMON = "DAEMON";
-
-    public void executeEvent(Node node, String script, List<String> args, boolean isDaemon, Cluster cluster,
-            Pattern pattern, IOutputHandler outputHandler, AsterixEventServiceClient client) throws IOException {
-        List<String> pargs = new ArrayList<>();
-        pargs.add("/bin/bash");
-        pargs.add(client.getEventsHomeDir() + File.separator + AsterixEventServiceUtil.EVENT_DIR + File.separator
-                + EXECUTE_SCRIPT);
-        StringBuilder envBuffer = new StringBuilder(IP_LOCATION + "=" + node.getClusterIp() + " ");
-        boolean isMasterNode = node.getId().equals(cluster.getMasterNode().getId());
-
-        if (!node.getId().equals(EventDriver.CLIENT_NODE_ID) && cluster.getEnv() != null) {
-            for (Property p : cluster.getEnv().getProperty()) {
-                if (p.getKey().equals("JAVA_HOME")) {
-                    String val = node.getJavaHome() == null ? p.getValue() : node.getJavaHome();
-                    envBuffer.append(p.getKey() + "=" + val + " ");
-                } else if (p.getKey().equals(EventUtil.NC_JAVA_OPTS)) {
-                    if (!isMasterNode) {
-                        appendJavaOpts(node, envBuffer, p);
-                    }
-                } else if (p.getKey().equals(EventUtil.CC_JAVA_OPTS)) {
-                    if (isMasterNode) {
-                        appendJavaOpts(node, envBuffer, p);
-                    }
-                } else if (p.getKey().equals("LOG_DIR")) {
-                    String val = node.getLogDir() == null ? p.getValue() : node.getLogDir();
-                    envBuffer.append(p.getKey() + "=" + val + " ");
-                } else {
-                    envBuffer.append(p.getKey() + "=" + p.getValue() + " ");
-                }
-
-            }
-            pargs.add(cluster.getUsername() == null ? System.getProperty("user.name") : cluster.getUsername());
-        }
-
-        StringBuilder argBuffer = new StringBuilder();
-        if (args != null && args.size() > 0) {
-            for (String arg : args) {
-                argBuffer.append(arg + " ");
-            }
-        }
-
-        ProcessBuilder pb = new ProcessBuilder(pargs);
-        pb.environment().put(IP_LOCATION, node.getClusterIp());
-        pb.environment().put(CLUSTER_ENV, envBuffer.toString());
-        pb.environment().put(SCRIPT, script);
-        pb.environment().put(ARGS, argBuffer.toString());
-        pb.environment().put(DAEMON, Boolean.toString(isDaemon));
-        Process p = pb.start();
-        if (!isDaemon) {
-            BufferedInputStream bis = new BufferedInputStream(p.getInputStream());
-            StringWriter writer = new StringWriter();
-            IOUtils.copy(bis, writer, "UTF-8");
-            String result = writer.getBuffer().toString();
-            OutputAnalysis analysis = outputHandler.reportEventOutput(pattern.getEvent(), result);
-            if (!analysis.isExpected()) {
-                throw new IOException(analysis.getErrorMessage() + result);
-            }
-        }
-    }
-
-    protected void appendJavaOpts(Node node, StringBuilder envBuffer, Property p) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("\"");
-        String javaOpts = p.getValue();
-        if (javaOpts != null) {
-            builder.append(javaOpts);
-        }
-        if (node.getDebugPort() != null) {
-            int debugPort = node.getDebugPort().intValue();
-            if (javaOpts == null || !javaOpts.contains("-Xdebug")) {
-                builder.append(" -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=").append(debugPort);
-            }
-        }
-        builder.append("\"");
-        envBuffer.append("JAVA_OPTS=").append(builder.toString()).append(" ");
-    }
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/EventTask.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/EventTask.java
deleted file mode 100644
index afd53de..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/EventTask.java
+++ /dev/null
@@ -1,154 +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.event.management;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Date;
-import java.util.List;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import org.apache.log4j.Logger;
-
-import org.apache.asterix.event.driver.EventDriver;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.event.Event;
-import org.apache.asterix.event.schema.pattern.Pattern;
-import org.apache.asterix.event.schema.pattern.Period;
-
-public class EventTask extends TimerTask {
-
-    public static enum State {
-        INITIALIZED,
-        IN_PROGRESS,
-        COMPLETED,
-        FAILED
-    }
-
-    private static final Logger logger = Logger.getLogger(EventTask.class.getName());
-
-    private Pattern pattern;
-    private Event event;
-    private long interval = 0;
-    private long initialDelay = 0;
-    private int maxOccurs = Integer.MAX_VALUE;
-    private int occurrenceCount = 0;
-    private Timer timer;
-    private String taskScript;
-    private Node location;
-    private List<String> taskArgs;
-    private AsterixEventServiceClient client;
-    private List<Node> candidateLocations;
-    private boolean dynamicLocation = false;
-    private boolean reuseLocation = false;
-    private State state;
-
-    public EventTask(Pattern pattern, AsterixEventServiceClient client) {
-        this.pattern = pattern;
-        this.client = client;
-        Period period = pattern.getPeriod();
-        if (period != null && period.getAbsvalue() != null) {
-            this.interval = EventUtil.parseTimeInterval(period.getAbsvalue(), period.getUnit());
-        }
-        if (pattern.getDelay() != null) {
-            this.initialDelay = EventUtil.parseTimeInterval(new ValueType(pattern.getDelay().getValue()), pattern
-                    .getDelay().getUnit());
-        }
-        if (pattern.getMaxOccurs() != null) {
-            this.maxOccurs = pattern.getMaxOccurs();
-        }
-        this.timer = new Timer();
-        taskArgs = EventUtil.getEventArgs(pattern);
-        candidateLocations = EventUtil.getCandidateLocations(pattern, client.getCluster());
-        if (pattern.getEvent().getNodeid().getValue().getRandom() != null && period != null && maxOccurs > 1) {
-            dynamicLocation = true;
-            reuseLocation = pattern.getEvent().getNodeid().getValue().getRandom().getRange().isReuse();
-        } else {
-            location = EventUtil.getEventLocation(pattern, candidateLocations, client.getCluster());
-        }
-        String scriptsDir;
-        if (location.getId().equals(EventDriver.CLIENT_NODE_ID)) {
-            scriptsDir = client.getEventsDir();
-        } else {
-            scriptsDir = client.getCluster().getWorkingDir().getDir() + File.separator + "events";
-        }
-        event = EventUtil.getEvent(pattern, client.getEvents());
-        taskScript = scriptsDir + File.separator + event.getScript();
-        state = State.INITIALIZED;
-    }
-
-    public void start() {
-        if (interval > 0) {
-            timer.schedule(this, initialDelay, interval);
-        } else {
-            timer.schedule(this, initialDelay);
-        }
-    }
-
-    @Override
-    public void run() {
-        if (candidateLocations.size() == 0) {
-            timer.cancel();
-            client.notifyCompletion(new EventTaskReport(this));
-        } else {
-            if (dynamicLocation) {
-                location = EventUtil.getEventLocation(pattern, candidateLocations, client.getCluster());
-                if (!reuseLocation) {
-                    candidateLocations.remove(location);
-                }
-            }
-
-            logger.debug(EventUtil.dateFormat.get().format(new Date()) + " " + "EVENT "
-                    + pattern.getEvent().getType().toUpperCase() + " at " + location.getId().toUpperCase());
-            try {
-                if (!client.isDryRun()) {
-                    new EventExecutor().executeEvent(location, taskScript, taskArgs, event.isDaemon(),
-                            client.getCluster(), pattern, client.getErrorHandler(), client);
-                }
-                occurrenceCount++;
-                if (occurrenceCount >= maxOccurs) {
-                    timer.cancel();
-                    client.notifyCompletion(new EventTaskReport(this));
-                }
-            } catch (IOException ioe) {
-                timer.cancel();
-                client.notifyCompletion(new EventTaskReport(this, false, ioe));
-            }
-        }
-
-    }
-
-    public Node getLocation() {
-        return location;
-    }
-
-    public long getInterval() {
-        return interval;
-    }
-
-    public Pattern getPattern() {
-        return pattern;
-    }
-
-    public State getState() {
-        return state;
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/EventTaskReport.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/EventTaskReport.java
deleted file mode 100644
index 82f303a..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/EventTaskReport.java
+++ /dev/null
@@ -1,54 +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.event.management;
-
-import java.io.Serializable;
-
-public class EventTaskReport implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-    private final EventTask task;
-    private final boolean success;
-    private final Exception e;
-
-    public EventTaskReport(EventTask task, boolean success, Exception e) {
-        this.task = task;
-        this.success = success;
-        this.e = e;
-    }
-
-    public EventTaskReport(EventTask task) {
-        this.task = task;
-        this.success = true;
-        this.e = null;
-    }
-
-    public Exception getException() {
-        return e;
-    }
-
-    public EventTask getTask() {
-        return task;
-    }
-
-    public boolean isSuccess() {
-        return success;
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/EventUtil.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/EventUtil.java
deleted file mode 100644
index 9d684ec..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/EventUtil.java
+++ /dev/null
@@ -1,234 +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.event.management;
-
-import java.io.File;
-import java.io.IOException;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.asterix.event.driver.EventDriver;
-import org.apache.asterix.event.management.ValueType.Type;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.event.Event;
-import org.apache.asterix.event.schema.event.Events;
-import org.apache.asterix.event.schema.pattern.Pattern;
-
-public class EventUtil {
-
-    public static final String EVENTS_DIR = "events";
-    public static final ThreadLocal<DateFormat> dateFormat =
-            ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"));
-    public static final String NC_JAVA_OPTS = "nc.java.opts";
-    public static final String CC_JAVA_OPTS = "cc.java.opts";
-
-    private static final String IP_LOCATION = "IP_LOCATION";
-
-    public static Cluster getCluster(String clusterConfigurationPath) throws JAXBException {
-        File file = new File(clusterConfigurationPath);
-        JAXBContext ctx = JAXBContext.newInstance(Cluster.class);
-        Unmarshaller unmarshaller = ctx.createUnmarshaller();
-        Cluster cluster = (Cluster) unmarshaller.unmarshal(file);
-        return cluster;
-    }
-
-    public static long parseTimeInterval(ValueType v, String unit) throws IllegalArgumentException {
-        int val = 0;
-        switch (v.getType()) {
-            case ABS:
-                val = Integer.parseInt(v.getAbsoluteValue());
-                break;
-            case RANDOM_MIN_MAX:
-                val = Randomizer.getInstance().getRandomInt(v.getMin(), v.getMax());
-                break;
-            case RANDOM_RANGE:
-                String[] values = v.getRangeSet();
-                val = Integer.parseInt(values[Randomizer.getInstance().getRandomInt(0, values.length - 1)]);
-                break;
-        }
-        return computeInterval(val, unit);
-    }
-
-    public static long parseTimeInterval(String v, String unit) throws IllegalArgumentException {
-        int value = Integer.parseInt(v);
-        return computeInterval(value, unit);
-    }
-
-    private static long computeInterval(int val, String unit) {
-        int vmult = 1;
-        if ("hr".equalsIgnoreCase(unit)) {
-            vmult = 3600 * 1000;
-        } else if ("min".equalsIgnoreCase(unit)) {
-            vmult = 60 * 1000;
-        } else if ("sec".equalsIgnoreCase(unit)) {
-            vmult = 1000;
-        } else
-            throw new IllegalArgumentException(" invalid unit value specified for frequency (hr,min,sec)");
-        return val * vmult;
-
-    }
-
-    public static Event getEvent(Pattern pattern, Events events) {
-        for (Event event : events.getEvent()) {
-            if (event.getType().equals(pattern.getEvent().getType())) {
-                return event;
-            }
-        }
-        throw new IllegalArgumentException(" Unknown event type" + pattern.getEvent().getType());
-    }
-
-    public static Node getEventLocation(Pattern pattern, List<Node> candidateLocations, Cluster cluster) {
-        ValueType value = new ValueType(pattern.getEvent().getNodeid().getValue());
-        Node location = null;
-        Type vtype = value.getType();
-
-        switch (vtype) {
-            case ABS:
-                location = getNodeFromId(value.getAbsoluteValue(), cluster);
-                break;
-            case RANDOM_RANGE:
-                int nodeIndex = Randomizer.getInstance().getRandomInt(0, candidateLocations.size() - 1);
-                location = candidateLocations.get(nodeIndex);
-                break;
-            case RANDOM_MIN_MAX:
-                throw new IllegalStateException(" Canont configure a min max value range for location");
-        }
-        return location;
-
-    }
-
-    public static List<Node> getCandidateLocations(Pattern pattern, Cluster cluster) {
-        ValueType value = new ValueType(pattern.getEvent().getNodeid().getValue());
-        List<Node> candidateList = new ArrayList<Node>();
-        switch (value.getType()) {
-            case ABS:
-                candidateList.add(getNodeFromId(value.getAbsoluteValue(), cluster));
-                break;
-            case RANDOM_RANGE:
-                boolean anyOption = false;
-                String[] values = value.getRangeSet();
-                for (String v : values) {
-                    if (v.equalsIgnoreCase("ANY")) {
-                        anyOption = true;
-                    }
-                }
-                if (anyOption) {
-                    for (Node node : cluster.getNode()) {
-                        candidateList.add(node);
-                    }
-                } else {
-                    boolean found = false;
-                    for (String v : values) {
-                        for (Node node : cluster.getNode()) {
-                            if (node.getId().equals(v)) {
-                                candidateList.add(node);
-                                found = true;
-                                break;
-                            }
-                        }
-                        if (!found) {
-                            throw new IllegalStateException("Unknonw nodeId : " + v);
-                        }
-                        found = false;
-                    }
-
-                }
-                String[] excluded = value.getRangeExcluded();
-                if (excluded != null && excluded.length > 0) {
-                    List<Node> markedForRemoval = new ArrayList<Node>();
-                    for (String exclusion : excluded) {
-                        for (Node node : candidateList) {
-                            if (node.getId().equals(exclusion)) {
-                                markedForRemoval.add(node);
-                            }
-                        }
-                    }
-                    candidateList.removeAll(markedForRemoval);
-                }
-                break;
-            case RANDOM_MIN_MAX:
-                throw new IllegalStateException(" Invalid value configured for location");
-        }
-        return candidateList;
-    }
-
-    private static Node getNodeFromId(String nodeid, Cluster cluster) {
-        if (nodeid.equals(EventDriver.CLIENT_NODE.getId())) {
-            return EventDriver.CLIENT_NODE;
-        }
-
-        if (nodeid.equals(cluster.getMasterNode().getId())) {
-            String logDir = cluster.getMasterNode().getLogDir() == null ? cluster.getLogDir() : cluster.getMasterNode()
-                    .getLogDir();
-            String javaHome = cluster.getMasterNode().getJavaHome() == null ? cluster.getJavaHome() : cluster
-                    .getMasterNode().getJavaHome();
-            return new Node(cluster.getMasterNode().getId(), cluster.getMasterNode().getClusterIp(), javaHome, logDir,
-                    null, null, cluster.getMasterNode().getDebugPort(), null, null);
-        }
-
-        List<Node> nodeList = cluster.getNode();
-        for (Node node : nodeList) {
-            if (node.getId().equals(nodeid)) {
-                return node;
-            }
-        }
-        StringBuilder buffer = new StringBuilder();
-        buffer.append(EventDriver.CLIENT_NODE.getId() + ",");
-        buffer.append(cluster.getMasterNode().getId() + ",");
-        for (Node v : cluster.getNode()) {
-            buffer.append(v.getId() + ",");
-        }
-        buffer.deleteCharAt(buffer.length() - 1);
-        throw new IllegalArgumentException("Unknown node id :" + nodeid + " valid ids:" + buffer);
-    }
-
-    public static void executeLocalScript(Node node, String script, List<String> args) throws IOException,
-            InterruptedException {
-        List<String> pargs = new ArrayList<String>();
-        pargs.add("/bin/bash");
-        pargs.add(script);
-        if (args != null) {
-            pargs.addAll(args);
-        }
-        ProcessBuilder pb = new ProcessBuilder(pargs);
-        pb.environment().putAll(EventDriver.getEnvironment());
-        pb.environment().put(IP_LOCATION, node.getClusterIp());
-        pb.start();
-    }
-
-    public static List<String> getEventArgs(Pattern pattern) {
-        List<String> pargs = new ArrayList<String>();
-        if (pattern.getEvent().getPargs() == null) {
-            return pargs;
-        }
-        String[] args = pattern.getEvent().getPargs().split(" ");
-        for (String arg : args) {
-            pargs.add(arg.trim());
-        }
-        return pargs;
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/IOutputHandler.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/IOutputHandler.java
deleted file mode 100644
index d2c3242..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/IOutputHandler.java
+++ /dev/null
@@ -1,26 +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.event.management;
-
-import org.apache.asterix.event.schema.pattern.Event;
-
-public interface IOutputHandler {
-
-    public OutputAnalysis reportEventOutput(Event event, String output);
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/IPatternListener.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/IPatternListener.java
deleted file mode 100644
index e075140..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/IPatternListener.java
+++ /dev/null
@@ -1,28 +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.event.management;
-
-public interface IPatternListener {
-
-    public void eventCompleted(EventTaskReport report);
-
-    public void jobCompleted();
-
-    public void jobFailed(EventTaskReport report);
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/OutputAnalysis.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/OutputAnalysis.java
deleted file mode 100644
index 86baeb7..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/OutputAnalysis.java
+++ /dev/null
@@ -1,38 +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.event.management;
-
-public class OutputAnalysis {
-
-    private final boolean expected;
-    private final String errorMessage;
-
-    public OutputAnalysis(boolean expected, String errorMessage) {
-        this.expected = expected;
-        this.errorMessage = errorMessage;
-    }
-
-    public boolean isExpected() {
-        return expected;
-    }
-
-    public String getErrorMessage() {
-        return errorMessage;
-    }
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/Randomizer.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/Randomizer.java
deleted file mode 100644
index 347ffce..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/Randomizer.java
+++ /dev/null
@@ -1,69 +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.event.management;
-
-import java.util.Random;
-import java.util.logging.Logger;
-
-public class Randomizer {
-
-    private static final Logger LOGGER = Logger.getLogger(Randomizer.class.getName());
-    private static Randomizer INSTANCE;
-    private final Random random;
-    private final int seed;
-
-    public static Randomizer getInstance(int seed) {
-        if (INSTANCE == null) {
-            INSTANCE = new Randomizer(seed);
-        }
-        return INSTANCE;
-    }
-
-    public static Randomizer getInstance() {
-        if (INSTANCE == null) {
-            INSTANCE = new Randomizer();
-        }
-        return INSTANCE;
-    }
-
-    private Randomizer() {
-        Random rm = new Random();
-        seed = rm.nextInt(10000);
-        random = new Random(seed);
-        LOGGER.info("SEED:" + seed);
-    }
-
-    private Randomizer(int seed) {
-        this.seed = seed;
-        random = new Random(seed);
-        LOGGER.info("SEED:" + seed);
-    }
-
-    public Random getRandom() {
-        return random;
-    }
-
-    public int getSeed() {
-        return seed;
-    }
-
-    public int getRandomInt(int min, int max) {
-        return min + random.nextInt(max - min + 1);
-    }
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/ValueType.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/ValueType.java
deleted file mode 100644
index 2fc7eeb..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/management/ValueType.java
+++ /dev/null
@@ -1,99 +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.event.management;
-
-import org.apache.asterix.event.schema.pattern.Value;
-
-public class ValueType {
-
-    public static enum Type {
-        ABS,
-        RANDOM_RANGE,
-        RANDOM_MIN_MAX
-    }
-
-    private Value value;
-    private Type type;
-
-    public ValueType(Value value) {
-        this.value = value;
-        if (value.getAbsvalue() != null) {
-            type = Type.ABS;
-        } else if (value.getRandom() != null) {
-            if (value.getRandom().getMinmax() != null) {
-                type = Type.RANDOM_MIN_MAX;
-            } else if (value.getRandom().getRange() != null) {
-                type = Type.RANDOM_RANGE;
-            } else {
-                throw new IllegalStateException("Incorrect value type");
-            }
-        }
-    }
-
-    public int getMin() {
-        switch (type) {
-            case RANDOM_MIN_MAX:
-                return Integer.parseInt(value.getRandom().getMinmax().getMin());
-            default:
-                throw new IllegalStateException("");
-        }
-    }
-
-    public int getMax() {
-        switch (type) {
-            case RANDOM_MIN_MAX:
-                return Integer.parseInt(value.getRandom().getMinmax().getMax());
-            default:
-                throw new IllegalStateException("");
-        }
-    }
-
-    public String[] getRangeSet() {
-        switch (type) {
-            case RANDOM_RANGE:
-                return value.getRandom().getRange().getSet().split(" ");
-            default:
-                throw new IllegalStateException("");
-        }
-    }
-
-    public String[] getRangeExcluded() {
-        switch (type) {
-            case RANDOM_RANGE:
-                String exl = value.getRandom().getRange().getExclude();
-                return exl != null ? exl.split(" ") : null;
-            default:
-                throw new IllegalStateException("");
-        }
-    }
-
-    public String getAbsoluteValue() {
-        switch (type) {
-            case ABS:
-                return value.getAbsvalue();
-            default:
-                throw new IllegalStateException("");
-        }
-    }
-
-    public Type getType() {
-        return type;
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/AsterixInstance.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/AsterixInstance.java
deleted file mode 100644
index f824d5b..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/AsterixInstance.java
+++ /dev/null
@@ -1,202 +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.event.model;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.apache.asterix.common.configuration.AsterixConfiguration;
-import org.apache.asterix.common.configuration.Property;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-
-public class AsterixInstance implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    private static final int WEB_INTERFACE_PORT_DEFAULT = 19001;
-
-    public enum State {
-        ACTIVE,
-        INACTIVE,
-        UNUSABLE
-    }
-
-    private final Cluster cluster;
-    private final String name;
-    private final Date createdTimestamp;
-    private Date stateChangeTimestamp;
-    private Date modifiedTimestamp;
-    private AsterixConfiguration asterixConfiguration;
-    private State state;
-    private final String metadataNodeId;
-    private final String asterixVersion;
-    private final List<BackupInfo> backupInfo;
-    private AsterixRuntimeState runtimeState;
-    private State previousState;
-
-    public AsterixInstance(String name, Cluster cluster, AsterixConfiguration asterixConfiguration,
-            String metadataNodeId, String asterixVersion) {
-        this.name = name;
-        this.cluster = cluster;
-        this.asterixConfiguration = asterixConfiguration;
-        this.metadataNodeId = metadataNodeId;
-        this.state = State.ACTIVE;
-        this.previousState = State.UNUSABLE;
-        this.asterixVersion = asterixVersion;
-        this.createdTimestamp = new Date();
-        this.backupInfo = new ArrayList<BackupInfo>();
-    }
-
-    public State getState() {
-        return state;
-    }
-
-    public void setState(State state) {
-        this.previousState = this.state;
-        this.state = state;
-    }
-
-    public Cluster getCluster() {
-        return cluster;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setStateChangeTimestamp(Date stateChangeTimestamp) {
-        this.stateChangeTimestamp = stateChangeTimestamp;
-    }
-
-    public void setModifiedTimestamp(Date modifiedTimestamp) {
-        this.modifiedTimestamp = modifiedTimestamp;
-    }
-
-    public String getMetadataNodeId() {
-        return metadataNodeId;
-    }
-
-    public String getAsterixVersion() {
-        return asterixVersion;
-    }
-
-    public String getDescription(boolean detailed) {
-        StringBuilder buffer = new StringBuilder();
-        buffer.append("Name:" + name + "\n");
-        buffer.append("Created:" + createdTimestamp + "\n");
-
-        buffer.append("Web-Url:" + getWebInterfaceUrl() + "\n");
-        buffer.append("State:" + state);
-        if (!state.equals(State.UNUSABLE) && stateChangeTimestamp != null) {
-            buffer.append(" (" + stateChangeTimestamp + ")" + "\n");
-        } else {
-            buffer.append("\n");
-        }
-        if (modifiedTimestamp != null) {
-            buffer.append("Last modified timestamp:" + modifiedTimestamp + "\n");
-        }
-
-        if (runtimeState.getSummary() != null && runtimeState.getSummary().length() > 0) {
-            buffer.append("\nWARNING!:" + runtimeState.getSummary() + "\n");
-        }
-        if (detailed) {
-            addDetailedInformation(buffer);
-        }
-        return buffer.toString();
-    }
-
-    public List<BackupInfo> getBackupInfo() {
-        return backupInfo;
-    }
-
-    public String getWebInterfaceUrl() {
-        int webPort = WEB_INTERFACE_PORT_DEFAULT;
-        for (Property p : asterixConfiguration.getProperty()) {
-            if (p.getName().equalsIgnoreCase("web.port")) {
-                webPort = Integer.parseInt(p.getValue());
-            }
-        }
-        return "http://" + cluster.getMasterNode().getClientIp() + ":" + webPort;
-    }
-
-    public void setAsterixRuntimeStates(AsterixRuntimeState runtimeState) {
-        this.runtimeState = runtimeState;
-    }
-
-    private void addDetailedInformation(StringBuilder buffer) {
-        buffer.append("Master node:" + cluster.getMasterNode().getId() + ":" + cluster.getMasterNode().getClusterIp()
-                + "\n");
-        for (Node node : cluster.getNode()) {
-            buffer.append(node.getId() + ":" + node.getClusterIp() + "\n");
-        }
-
-        if (backupInfo != null && backupInfo.size() > 0) {
-            for (BackupInfo info : backupInfo) {
-                buffer.append(info + "\n");
-            }
-        }
-        buffer.append("\n");
-        buffer.append("Asterix version:" + asterixVersion + "\n");
-        buffer.append("Metadata Node:" + metadataNodeId + "\n");
-        buffer.append("Processes" + "\n");
-        for (ProcessInfo pInfo : runtimeState.getProcesses()) {
-            buffer.append(pInfo + "\n");
-        }
-
-        buffer.append("\n");
-        buffer.append("Asterix Configuration\n");
-        int lenMax = 0;
-        for (Property property : asterixConfiguration.getProperty()) {
-            int nextLen = property.getName().length();
-            if (nextLen > lenMax) {
-                lenMax = nextLen;
-            }
-        }
-        for (Property property : asterixConfiguration.getProperty()) {
-            buffer.append(property.getName() + getIndentation(property.getName(), lenMax) + ":" + property.getValue()
-                    + "\n");
-        }
-
-    }
-
-    private String getIndentation(String name, int lenMax) {
-        int len = name.length();
-        StringBuilder buf = new StringBuilder();
-        for (int i = 0; i < lenMax - len; i++) {
-            buf.append(" ");
-        }
-        return buf.toString();
-    }
-
-    public State getPreviousState() {
-        return previousState;
-    }
-
-    public AsterixConfiguration getAsterixConfiguration() {
-        return asterixConfiguration;
-    }
-
-    public void setAsterixConfiguration(AsterixConfiguration asterixConfiguration) {
-        this.asterixConfiguration = asterixConfiguration;
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/AsterixRuntimeState.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/AsterixRuntimeState.java
deleted file mode 100644
index a1c4418..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/AsterixRuntimeState.java
+++ /dev/null
@@ -1,58 +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.event.model;
-
-import java.io.Serializable;
-import java.util.List;
-
-public class AsterixRuntimeState implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-    private final List<ProcessInfo> processes;
-    private final List<String> failedNCs;
-    private final boolean ccRunning;
-    private String summary;
-
-    public AsterixRuntimeState(List<ProcessInfo> processes, List<String> failedNCs, boolean ccRunning) {
-        this.processes = processes;
-        this.failedNCs = failedNCs;
-        this.ccRunning = ccRunning;
-    }
-
-    public List<ProcessInfo> getProcesses() {
-        return processes;
-    }
-
-    public List<String> getFailedNCs() {
-        return failedNCs;
-    }
-
-    public boolean isCcRunning() {
-        return ccRunning;
-    }
-
-    public void setSummary(String summary) {
-        this.summary = summary;
-    }
-
-    public String getSummary() {
-        return summary;
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/BackupInfo.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/BackupInfo.java
deleted file mode 100644
index ae10cd7..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/BackupInfo.java
+++ /dev/null
@@ -1,72 +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.event.model;
-
-import java.io.Serializable;
-import java.util.Date;
-
-import org.apache.asterix.installer.schema.conf.Backup;
-import org.apache.asterix.installer.schema.conf.Hdfs;
-
-public class BackupInfo implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    public static enum BackupType {
-        LOCAL,
-        HDFS
-    };
-
-    private final int id;
-    private final Date date;
-    private final Backup backupConf;
-
-    public BackupInfo(int id, Date date, Backup backupConf) {
-        this.id = id;
-        this.date = date;
-        this.backupConf = backupConf;
-    }
-
-    public int getId() {
-        return id;
-    }
-
-    public Date getDate() {
-        return date;
-    }
-
-    public Backup getBackupConf() {
-        return backupConf;
-    }
-
-    @Override
-    public String toString() {
-        return id + " " + date + " " + "(" + getBackupType() + ")" + " " + "[ " + this.getBackupConf().getBackupDir()
-                + " ]";
-    }
-
-    public BackupType getBackupType() {
-        return getBackupType(this.getBackupConf());
-    }
-
-    public static BackupType getBackupType(Backup backupConf) {
-        Hdfs hdfs = backupConf.getHdfs();
-        return (hdfs != null && hdfs.getUrl() != null && hdfs.getUrl().length() > 0) ? BackupType.HDFS
-                : BackupType.LOCAL;
-    }
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/EventList.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/EventList.java
deleted file mode 100644
index dba84c6..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/EventList.java
+++ /dev/null
@@ -1,38 +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.event.model;
-
-public class EventList {
-
-    public enum EventType {
-        NODE_JOIN,
-        NODE_FAILURE,
-        CC_START,
-        CC_FAILURE,
-        BACKUP,
-        RESTORE,
-        FILE_DELETE,
-        HDFS_DELETE,
-        FILE_TRANSFER,
-        FILE_CREATE,
-        DIRECTORY_TRANSFER,
-        DIRECTORY_COPY,
-        NODE_INFO
-    }
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/ProcessInfo.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/ProcessInfo.java
deleted file mode 100644
index 9702ceb..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/model/ProcessInfo.java
+++ /dev/null
@@ -1,50 +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.event.model;
-
-import java.io.Serializable;
-
-public class ProcessInfo implements Serializable {
-
-    private static final long serialVersionUID = 304186774065853730L;
-    private final String processName;
-    private final String host;
-    private final String nodeId;
-    private final int processId;
-
-    public ProcessInfo(String processName, String host, String nodeId, int processId) {
-        this.processName = processName;
-        this.host = host;
-        this.nodeId = nodeId;
-        this.processId = processId;
-    }
-
-    public String getHost() {
-        return host;
-    }
-
-    public String getNodeId() {
-        return nodeId;
-    }
-
-    public String toString() {
-        return processName + " at " + nodeId + " [ " + processId + " ] ";
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/AsterixEventService.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/AsterixEventService.java
deleted file mode 100644
index f95b934..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/AsterixEventService.java
+++ /dev/null
@@ -1,92 +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.event.service;
-
-import java.io.File;
-import java.io.FileFilter;
-
-import org.apache.asterix.event.error.OutputHandler;
-import org.apache.asterix.event.management.AsterixEventServiceClient;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.installer.schema.conf.Configuration;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-
-public class AsterixEventService {
-
-    private static final Logger LOGGER = Logger.getLogger(AsterixEventService.class.getName());
-    private static Configuration configuration;
-    private static String asterixDir;
-    private static String asterixZip;
-    private static String eventHome;
-
-    public static void initialize(Configuration configuration, String asterixDir, String eventHome) throws Exception {
-        AsterixEventService.configuration = configuration;
-        AsterixEventService.asterixDir = asterixDir;
-        AsterixEventService.asterixZip = initBinary("asterix-server");
-        AsterixEventService.eventHome = eventHome;
-    }
-
-    public static AsterixEventServiceClient getAsterixEventServiceClient(Cluster cluster, boolean transferArtifacts,
-            boolean dryRun) throws Exception {
-        return new AsterixEventServiceClient(configuration, eventHome, cluster, transferArtifacts, dryRun,
-                OutputHandler.INSTANCE);
-    }
-
-    public static AsterixEventServiceClient getAsterixEventServiceClient(Cluster cluster) throws Exception {
-        return new AsterixEventServiceClient(configuration, eventHome, cluster, false, false, OutputHandler.INSTANCE);
-    }
-
-    private static String initBinary(final String fileNamePattern) {
-        File file = new File(asterixDir);
-        File[] zipFiles = file.listFiles(new FileFilter() {
-            public boolean accept(File arg0) {
-                return arg0.getAbsolutePath().contains(fileNamePattern) && arg0.isFile();
-            }
-        });
-        if (zipFiles.length == 0) {
-            String msg = " Binary not found at " + asterixDir;
-            LOGGER.log(Level.FATAL, msg);
-            throw new IllegalStateException(msg);
-        }
-        if (zipFiles.length > 1) {
-            String msg = " Multiple binaries found at " + asterixDir;
-            LOGGER.log(Level.FATAL, msg);
-            throw new IllegalStateException(msg);
-        }
-
-        return zipFiles[0].getAbsolutePath();
-    }
-
-    public static Configuration getConfiguration() {
-        return configuration;
-    }
-
-    public static String getAsterixZip() {
-        return asterixZip;
-    }
-
-    public static String getAsterixDir() {
-        return asterixDir;
-    }
-
-    public static String getEventHome() {
-        return eventHome;
-    }
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/AsterixEventServiceUtil.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/AsterixEventServiceUtil.java
deleted file mode 100644
index b48e311..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/AsterixEventServiceUtil.java
+++ /dev/null
@@ -1,514 +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.event.service;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringWriter;
-import java.net.InetAddress;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Random;
-import java.util.Set;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.jar.JarOutputStream;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipOutputStream;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-
-import org.apache.asterix.common.configuration.AsterixConfiguration;
-import org.apache.asterix.common.configuration.Coredump;
-import org.apache.asterix.common.configuration.Store;
-import org.apache.asterix.common.configuration.TransactionLogDir;
-import org.apache.asterix.event.driver.EventDriver;
-import org.apache.asterix.event.error.EventException;
-import org.apache.asterix.event.management.EventUtil;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Env;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.cluster.Property;
-import org.apache.commons.io.IOUtils;
-
-public class AsterixEventServiceUtil {
-
-    public static final String TXN_LOG_DIR = "txnLogs";
-    public static final String ASTERIX_CONFIGURATION_FILE = "asterix-configuration.xml";
-    public static final String CLUSTER_CONFIGURATION_FILE = "cluster.xml";
-    public static final String EVENT_DIR = "events";
-    public static final int CLUSTER_NET_PORT_DEFAULT = 1098;
-    public static final int CLIENT_NET_PORT_DEFAULT = 1099;
-    public static final int HTTP_PORT_DEFAULT = 8888;
-    private static final String EMPTY_STRING = "";
-
-    public static final String MANAGIX_CONF_XML = "conf" + File.separator + "managix-conf.xml";
-
-    private static final int BUFFER_SIZE = 4096;
-
-    public static AsterixInstance createAsterixInstance(String asterixInstanceName, Cluster cluster,
-            AsterixConfiguration asterixConfiguration) throws IOException {
-        Node metadataNode = getMetadataNode(asterixInstanceName, cluster);
-        String asterixZipName = asterixZipName();
-        String asterixVersion = asterixZipName.substring("asterix-server-".length(),
-                asterixZipName.indexOf("-binary-assembly"));
-        return new AsterixInstance(asterixInstanceName, cluster, asterixConfiguration,
-                metadataNode.getId(), asterixVersion);
-    }
-
-    public static void createAsterixZip(AsterixInstance asterixInstance)
-            throws IOException, InterruptedException, JAXBException, EventException {
-        String asterixInstanceDir = asterixInstanceDir(asterixInstance);
-        unzip(AsterixEventService.getAsterixZip(), asterixInstanceDir);
-
-        injectAsterixPropertyFile(asterixInstanceDir, asterixInstance);
-        injectAsterixClusterConfigurationFile(asterixInstanceDir, asterixInstance);
-
-        final String asterixZipPath = asterixInstanceDir + File.separator + asterixZipName();
-        zipDir(new File(asterixInstanceDir), new File(asterixZipPath));
-    }
-
-    public static void createClusterProperties(Cluster cluster, AsterixConfiguration asterixConfiguration) {
-
-        String ccJavaOpts = null;
-        String ncJavaOpts = null;
-        for (org.apache.asterix.common.configuration.Property property : asterixConfiguration.getProperty()) {
-            if (property.getName().equalsIgnoreCase(EventUtil.CC_JAVA_OPTS)) {
-                ccJavaOpts = property.getValue();
-            } else if (property.getName().equalsIgnoreCase(EventUtil.NC_JAVA_OPTS)) {
-                ncJavaOpts = property.getValue();
-            }
-        }
-
-        poulateClusterEnvironmentProperties(cluster, ccJavaOpts, ncJavaOpts);
-    }
-
-    public static void poulateClusterEnvironmentProperties(Cluster cluster, String ccJavaOpts, String ncJavaOpts) {
-        List<Property> clusterProperties = null;
-        if (cluster.getEnv() != null && cluster.getEnv().getProperty() != null) {
-            clusterProperties = cluster.getEnv().getProperty();
-            clusterProperties.clear();
-        } else {
-            clusterProperties = new ArrayList<Property>();
-        }
-
-        clusterProperties.add(new Property(EventUtil.CC_JAVA_OPTS, ccJavaOpts));
-        clusterProperties.add(new Property(EventUtil.NC_JAVA_OPTS, ncJavaOpts));
-        clusterProperties
-                .add(new Property("ASTERIX_HOME", cluster.getWorkingDir().getDir() + File.separator + "asterix"));
-        clusterProperties.add(new Property("LOG_DIR", cluster.getLogDir()));
-        clusterProperties.add(new Property("JAVA_HOME", cluster.getJavaHome()));
-        clusterProperties.add(new Property("WORKING_DIR", cluster.getWorkingDir().getDir()));
-        clusterProperties.add(new Property("CLIENT_NET_IP", cluster.getMasterNode().getClientIp()));
-        clusterProperties.add(new Property("CLUSTER_NET_IP", cluster.getMasterNode().getClusterIp()));
-
-        int clusterNetPort = cluster.getMasterNode().getClusterPort() != null
-                ? cluster.getMasterNode().getClusterPort().intValue() : CLUSTER_NET_PORT_DEFAULT;
-        int clientNetPort = cluster.getMasterNode().getClientPort() != null
-                ? cluster.getMasterNode().getClientPort().intValue() : CLIENT_NET_PORT_DEFAULT;
-        int httpPort = cluster.getMasterNode().getHttpPort() != null ? cluster.getMasterNode().getHttpPort().intValue()
-                : HTTP_PORT_DEFAULT;
-
-        clusterProperties.add(new Property("CLIENT_NET_PORT", "" + clientNetPort));
-        clusterProperties.add(new Property("CLUSTER_NET_PORT", "" + clusterNetPort));
-        clusterProperties.add(new Property("HTTP_PORT", "" + httpPort));
-
-        //pass Cluster optional parameters
-        if (cluster.getHeartbeatPeriod() != null) {
-            clusterProperties
-                    .add(new Property("HEARTBEAT_PERIOD", String.valueOf(cluster.getHeartbeatPeriod().intValue())));
-        }
-        if (cluster.getMaxHeartbeatLapsePeriods() != null) {
-            clusterProperties.add(new Property("MAX_HEARTBEAT_LAPSE_PERIODS",
-                    String.valueOf(cluster.getMaxHeartbeatLapsePeriods().intValue())));
-        }
-        if (cluster.getProfileDumpPeriod() != null) {
-            clusterProperties.add(
-                    new Property("PROFILE_DUMP_PERIOD", String.valueOf(cluster.getProfileDumpPeriod().intValue())));
-        }
-        if (cluster.getJobHistorySize() != null) {
-            clusterProperties
-                    .add(new Property("JOB_HISTORY_SIZE", String.valueOf(cluster.getJobHistorySize().intValue())));
-        }
-        if (cluster.getResultTimeToLive() != null) {
-            clusterProperties.add(
-                    new Property("RESULT_TIME_TO_LIVE", String.valueOf(cluster.getResultTimeToLive().longValue())));
-        }
-        if (cluster.getResultSweepThreshold() != null) {
-            clusterProperties.add(new Property("RESULT_SWEEP_THRESHOLD",
-                    String.valueOf(cluster.getResultSweepThreshold().longValue())));
-        }
-        if (cluster.getCcRoot() != null) {
-            clusterProperties.add(new Property("CC_ROOT", cluster.getCcRoot()));
-        }
-        cluster.setEnv(new Env(clusterProperties));
-    }
-
-    private static String asterixZipName() {
-        return AsterixEventService.getAsterixZip()
-                .substring(AsterixEventService.getAsterixZip().lastIndexOf(File.separator) + 1);
-    }
-
-    private static String asterixJarPath(AsterixInstance asterixInstance, String asterixInstanceDir) {
-        return asterixInstanceDir + File.separator + "repo" + File.separator + "asterix-app-"
-                + asterixInstance.getAsterixVersion() + ".jar";
-    }
-
-    private static String asterixInstanceDir(AsterixInstance asterixInstance) {
-        return AsterixEventService.getAsterixDir() + File.separator + asterixInstance.getName();
-    }
-
-    private static void injectAsterixPropertyFile(String asterixInstanceDir, AsterixInstance asterixInstance)
-            throws IOException, JAXBException {
-        writeAsterixConfigurationFile(asterixInstance);
-
-        File sourceJar = new File(asterixJarPath(asterixInstance, asterixInstanceDir));
-        File replacementFile = new File(asterixInstanceDir + File.separator + ASTERIX_CONFIGURATION_FILE);
-        replaceInJar(sourceJar, ASTERIX_CONFIGURATION_FILE, replacementFile);
-        new File(asterixInstanceDir + File.separator + ASTERIX_CONFIGURATION_FILE).delete();
-    }
-
-    private static void injectAsterixClusterConfigurationFile(String asterixInstanceDir,
-            AsterixInstance asterixInstance) throws IOException, EventException, JAXBException {
-        File sourceJar = new File(asterixJarPath(asterixInstance, asterixInstanceDir));
-        writeAsterixClusterConfigurationFile(asterixInstance);
-
-        File replacementFile = new File(asterixInstanceDir + File.separator + "cluster.xml");
-        replaceInJar(sourceJar, CLUSTER_CONFIGURATION_FILE, replacementFile);
-
-        new File(asterixInstanceDir + File.separator + CLUSTER_CONFIGURATION_FILE).delete();
-    }
-
-    private static void writeAsterixClusterConfigurationFile(AsterixInstance asterixInstance)
-            throws IOException, EventException, JAXBException {
-        String asterixInstanceName = asterixInstance.getName();
-        Cluster cluster = asterixInstance.getCluster();
-
-        JAXBContext ctx = JAXBContext.newInstance(Cluster.class);
-        Marshaller marshaller = ctx.createMarshaller();
-        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
-        marshaller.marshal(cluster, new FileOutputStream(AsterixEventService.getAsterixDir() + File.separator
-                + asterixInstanceName + File.separator + "cluster.xml"));
-    }
-
-    public static void addLibraryToAsterixZip(AsterixInstance asterixInstance, String dataverseName, String libraryName,
-            String libraryPath) throws IOException {
-        File instanceDir = new File(asterixInstanceDir(asterixInstance));
-        if (!instanceDir.exists()) {
-            instanceDir.mkdirs();
-        }
-        String asterixZipName = asterixZipName();
-
-        String sourceZip = instanceDir.getAbsolutePath() + File.separator + asterixZipName;
-        unzip(sourceZip, instanceDir.getAbsolutePath());
-        File libraryPathInZip = new File(instanceDir.getAbsolutePath() + File.separator + "external" + File.separator
-                + "library" + dataverseName + File.separator + "to-add" + File.separator + libraryName);
-        libraryPathInZip.mkdirs();
-        Runtime.getRuntime().exec("cp" + " " + libraryPath + " " + libraryPathInZip.getAbsolutePath());
-        Runtime.getRuntime().exec("rm " + sourceZip);
-        String destZip = AsterixEventService.getAsterixDir() + File.separator + asterixInstance.getName()
-                + File.separator + asterixZipName;
-        zipDir(instanceDir, new File(destZip));
-        Runtime.getRuntime().exec("mv" + " " + destZip + " " + sourceZip);
-    }
-
-    private static Node getMetadataNode(String asterixInstanceName, Cluster cluster) {
-        Node metadataNode = null;
-        if (cluster.getMetadataNode() != null) {
-            for (Node node : cluster.getNode()) {
-                if (node.getId().equals(cluster.getMetadataNode())) {
-                    metadataNode = node;
-                    break;
-                }
-            }
-        } else {
-            Random random = new Random();
-            int nNodes = cluster.getNode().size();
-            metadataNode = cluster.getNode().get(random.nextInt(nNodes));
-        }
-        return metadataNode;
-    }
-
-    private static void writeAsterixConfigurationFile(AsterixInstance asterixInstance)
-            throws IOException, JAXBException {
-        String asterixInstanceName = asterixInstance.getName();
-        Cluster cluster = asterixInstance.getCluster();
-        String metadataNodeId = asterixInstance.getMetadataNodeId();
-
-        AsterixConfiguration configuration = asterixInstance.getAsterixConfiguration();
-        configuration.setInstanceName(asterixInstanceName);
-        configuration.setMetadataNode(asterixInstanceName + "_" + metadataNodeId);
-        List<Store> stores = new ArrayList<Store>();
-        String storeDir = cluster.getStore().trim();
-        for (Node node : cluster.getNode()) {
-            String iodevices = node.getIodevices() == null ? cluster.getIodevices() : node.getIodevices();
-            String[] nodeIdDevice = iodevices.split(",");
-            StringBuilder nodeStores = new StringBuilder();
-            for (int i = 0; i < nodeIdDevice.length; i++) {
-                nodeStores.append(nodeIdDevice[i] + File.separator + storeDir + ",");
-            }
-            //remove last comma
-            nodeStores.deleteCharAt(nodeStores.length() - 1);
-            stores.add(new Store(asterixInstanceName + "_" + node.getId(), nodeStores.toString()));
-        }
-        configuration.setStore(stores);
-        List<Coredump> coredump = new ArrayList<Coredump>();
-        List<TransactionLogDir> txnLogDirs = new ArrayList<TransactionLogDir>();
-        for (Node node : cluster.getNode()) {
-            String coredumpdir = node.getLogDir() == null ? cluster.getLogDir() : node.getLogDir();
-            coredump.add(new Coredump(asterixInstanceName + "_" + node.getId(),
-                    coredumpdir + File.separator + asterixInstanceName + "_" + node.getId()));
-
-            String txnLogDir = node.getTxnLogDir() == null ? cluster.getTxnLogDir() : node.getTxnLogDir();
-            txnLogDirs.add(new TransactionLogDir(asterixInstanceName + "_" + node.getId(), txnLogDir));
-        }
-        configuration.setCoredump(coredump);
-        configuration.setTransactionLogDir(txnLogDirs);
-        File asterixConfDir = new File(AsterixEventService.getAsterixDir() + File.separator + asterixInstanceName);
-        asterixConfDir.mkdirs();
-
-        JAXBContext ctx = JAXBContext.newInstance(AsterixConfiguration.class);
-        Marshaller marshaller = ctx.createMarshaller();
-        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
-        FileOutputStream os = new FileOutputStream(asterixConfDir + File.separator + ASTERIX_CONFIGURATION_FILE);
-        marshaller.marshal(configuration, os);
-        os.close();
-    }
-
-    public static void unzip(String sourceFile, String destDir) throws IOException {
-        final FileInputStream fis = new FileInputStream(sourceFile);
-        final ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
-        final File destDirFile = new File(destDir);
-        final byte [] data = new byte[BUFFER_SIZE];
-
-        ZipEntry entry;
-        Set<String> visitedDirs = new HashSet<>();
-        createDir(destDir);
-        while ((entry = zis.getNextEntry()) != null) {
-            createDir(destDirFile, entry, visitedDirs);
-            if (entry.isDirectory()) {
-                continue;
-            }
-            int count;
-
-            // write the file to the disk
-            File dst = new File(destDir, entry.getName());
-            FileOutputStream fos = new FileOutputStream(dst);
-            BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER_SIZE);
-            while ((count = zis.read(data, 0, BUFFER_SIZE)) != -1) {
-                dest.write(data, 0, count);
-            }
-            // close the output streams
-            dest.flush();
-            dest.close();
-        }
-
-        zis.close();
-    }
-
-    public static void zipDir(File sourceDir, File destFile) throws IOException {
-        FileOutputStream fos = new FileOutputStream(destFile);
-        ZipOutputStream zos = new ZipOutputStream(fos);
-        zipDir(EMPTY_STRING, sourceDir, destFile, zos);
-        zos.close();
-    }
-
-    private static void zipDir(String prefix, File sourceDir, final File destFile, ZipOutputStream zos)
-            throws IOException {
-        File[] dirList = sourceDir.listFiles(f->!f.getName().endsWith(destFile.getName()));
-        String newPrefix = prefix.equals(EMPTY_STRING) ? prefix : prefix + File.separator;
-        for (int i = 0; i < dirList.length; i++) {
-            File f = dirList[i];
-            if (f.isDirectory()) {
-                zipDir(newPrefix + f.getName(), f, destFile, zos);
-            } else {
-                int bytesIn = 0;
-                byte[] readBuffer = new byte[2156];
-                FileInputStream fis = new FileInputStream(f);
-                ZipEntry entry = new ZipEntry(newPrefix + f.getName());
-                zos.putNextEntry(entry);
-                while ((bytesIn = fis.read(readBuffer)) != -1) {
-                    zos.write(readBuffer, 0, bytesIn);
-                }
-                fis.close();
-            }
-        }
-    }
-
-    private static void replaceInJar(File sourceJar, String origFile, File replacementFile) throws IOException {
-        String srcJarAbsPath = sourceJar.getAbsolutePath();
-        String srcJarSuffix = srcJarAbsPath.substring(srcJarAbsPath.lastIndexOf(File.separator) + 1);
-        String srcJarName = srcJarSuffix.split(".jar")[0];
-
-        String destJarName = srcJarName + "-managix";
-        String destJarSuffix = destJarName + ".jar";
-        File destJar = new File(sourceJar.getParentFile().getAbsolutePath() + File.separator + destJarSuffix);
-        //  File destJar = new File(sourceJar.getAbsolutePath() + ".modified");
-        JarFile sourceJarFile = new JarFile(sourceJar);
-        Enumeration<JarEntry> entries = sourceJarFile.entries();
-        JarOutputStream jos = new JarOutputStream(new FileOutputStream(destJar));
-        byte[] buffer = new byte[2048];
-        int read;
-        while (entries.hasMoreElements()) {
-            JarEntry entry = (JarEntry) entries.nextElement();
-            String name = entry.getName();
-            if (name.equals(origFile)) {
-                continue;
-            }
-            InputStream jarIs = sourceJarFile.getInputStream(entry);
-            jos.putNextEntry(entry);
-            while ((read = jarIs.read(buffer)) != -1) {
-                jos.write(buffer, 0, read);
-            }
-            jarIs.close();
-        }
-        sourceJarFile.close();
-        JarEntry entry = new JarEntry(origFile);
-        jos.putNextEntry(entry);
-        FileInputStream fis = new FileInputStream(replacementFile);
-        while ((read = fis.read(buffer)) != -1) {
-            jos.write(buffer, 0, read);
-        }
-        fis.close();
-        jos.close();
-        sourceJar.delete();
-        destJar.renameTo(sourceJar);
-        destJar.setExecutable(true);
-    }
-
-    public static void dumpToFile(String dest, String content) throws IOException {
-        FileWriter writer = new FileWriter(dest);
-        writer.write(content);
-        writer.close();
-    }
-
-    private static void createDir(File destDirectory, ZipEntry entry, Set<String> visitedDirs) {
-        String name = entry.getName();
-        int index = name.lastIndexOf(File.separator);
-        if (index != -1) {
-            String dirSequence = name.substring(0, index);
-            if (visitedDirs.add(dirSequence)) {
-                File newDirs = new File(destDirectory, dirSequence);
-                newDirs.mkdirs();
-            }
-        }
-    }
-
-    private static void createDir(String destDirectory) {
-        File newDirs = new File(destDirectory + File.separator);
-        newDirs.mkdirs();
-    }
-
-    public static AsterixInstance validateAsterixInstanceExists(String name, State... permissibleStates)
-            throws Exception {
-        AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService().getAsterixInstance(name);
-        if (instance == null) {
-            throw new EventException("Asterix instance by name " + name + " does not exist.");
-        }
-        boolean valid = false;
-        for (State state : permissibleStates) {
-            if (state.equals(instance.getState())) {
-                valid = true;
-                break;
-            }
-        }
-        if (!valid) {
-            throw new EventException(
-                    "Asterix instance by the name " + name + " is in " + instance.getState() + " state ");
-        }
-        return instance;
-    }
-
-    public static void validateAsterixInstanceNotExists(String name) throws Exception {
-        AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService().getAsterixInstance(name);
-        if (instance != null) {
-            throw new EventException("Asterix instance by name " + name + " already exists.");
-        }
-    }
-
-    public static void evaluateConflictWithOtherInstances(AsterixInstance instance) throws Exception {
-        List<AsterixInstance> existingInstances = ServiceProvider.INSTANCE.getLookupService().getAsterixInstances();
-        List<String> usedIps = new ArrayList<String>();
-        String masterIp = instance.getCluster().getMasterNode().getClusterIp();
-        for (Node node : instance.getCluster().getNode()) {
-            usedIps.add(node.getClusterIp());
-        }
-        usedIps.add(instance.getCluster().getMasterNode().getClusterIp());
-        boolean conflictFound = false;
-        AsterixInstance conflictingInstance = null;
-        for (AsterixInstance existing : existingInstances) {
-            if (existing.getState().equals(State.INACTIVE)) {
-                continue;
-            }
-            InetAddress extantAddress = InetAddress.getByName(existing.getCluster().getMasterNode().getClusterIp());
-            InetAddress masterAddress = InetAddress.getByName(masterIp);
-            if (extantAddress.equals(masterAddress)) {
-                conflictingInstance = existing;
-                break;
-            }
-            for (Node n : existing.getCluster().getNode()) {
-                if (usedIps.contains(n.getClusterIp())) {
-                    conflictFound = true;
-                    conflictingInstance = existing;
-                    break;
-                }
-            }
-        }
-        if (conflictFound) {
-            throw new Exception("Cluster definition conflicts with an existing instance of Asterix: "
-                    + conflictingInstance.getName());
-        }
-    }
-
-    public static void deleteDirectory(String path) throws IOException {
-        Runtime.getRuntime().exec("rm -rf " + path);
-    }
-
-    public static String executeLocalScript(String path, List<String> args) throws Exception {
-        List<String> pargs = new ArrayList<String>();
-        pargs.add("/bin/bash");
-        pargs.add(path);
-        if (args != null) {
-            pargs.addAll(args);
-        }
-        ProcessBuilder pb = new ProcessBuilder(pargs);
-        pb.environment().putAll(EventDriver.getEnvironment());
-        pb.environment().put("IP_LOCATION", EventDriver.CLIENT_NODE.getClusterIp());
-        Process p = pb.start();
-        BufferedInputStream bis = new BufferedInputStream(p.getInputStream());
-        StringWriter writer = new StringWriter();
-        IOUtils.copy(bis, writer, "UTF-8");
-        return writer.toString();
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/ClusterStateWatcher.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/ClusterStateWatcher.java
deleted file mode 100644
index c51e2cf..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/ClusterStateWatcher.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright 2009-2013 by The Regents of the University of California
- * Licensed 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 from
- *
- *     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.event.service;
-
-import java.io.File;
-import java.util.List;
-
-import org.apache.asterix.common.api.IClusterManagementWork.ClusterState;
-import org.apache.log4j.Logger;
-import org.apache.zookeeper.WatchedEvent;
-import org.apache.zookeeper.Watcher;
-import org.apache.zookeeper.ZooKeeper;
-
-//A zookeeper watcher that watches the change in the state of the cluster
-public class ClusterStateWatcher implements Watcher {
-    private final Object mutex = new Object();
-    private final ZooKeeper zk;
-    private String clusterStatePath;
-    private boolean done = false;
-    private ClusterState clusterState = ClusterState.UNUSABLE;
-    private boolean failed = false;
-    private Exception failureCause = null;
-    private static Logger LOGGER = Logger.getLogger(ClusterStateWatcher.class.getName());
-
-    public ClusterStateWatcher(ZooKeeper zk, String clusterName) {
-        this.clusterStatePath = ZooKeeperService.ASTERIX_INSTANCE_BASE_PATH + File.separator + clusterName
-                + ZooKeeperService.ASTERIX_INSTANCE_STATE_PATH;
-        this.zk = zk;
-    }
-
-    public ClusterState waitForClusterStart() throws Exception {
-        while (true) {
-            synchronized (mutex) {
-                if (done) {
-                    if (failed) {
-                        LOGGER.error("An error took place in the startup sequence. Check the CC logs.");
-                        throw failureCause;
-                    } else {
-                        return clusterState;
-                    }
-                } else {
-                    mutex.wait();
-                }
-            }
-        }
-    }
-
-    private void monitorStateChange() {
-        try {
-            while (true) {
-                synchronized (mutex) {
-                    // Get the cluster state
-                    List<String> list = zk.getChildren(clusterStatePath, this);
-                    if (list.size() == 0) {
-                        // Cluster state not found, wait to be awaken by Zookeeper
-                        mutex.wait();
-                    } else {
-                        // Cluster state found
-                        byte[] b = zk.getData(clusterStatePath + ZooKeeperService.ASTERIX_INSTANCE_STATE_REPORT, false,
-                                null);
-                        zk.delete(clusterStatePath + ZooKeeperService.ASTERIX_INSTANCE_STATE_REPORT, 0);
-                        clusterState = ClusterState.values()[(int) b[0]];
-                        done = true;
-                        mutex.notifyAll();
-                        return;
-                    }
-                }
-            }
-        } catch (Exception e) {
-            // Exception was thrown, let Managix know that a failure took place
-            failed = true;
-            done = true;
-            failureCause = e;
-        }
-    }
-
-    public void startMonitoringThread() {
-        Runnable monitoringThread = new Runnable() {
-            @Override
-            public void run() {
-                monitorStateChange();
-            }
-        };
-        // Start the monitoring thread
-        (new Thread(monitoringThread)).start();
-    }
-
-    @Override
-    synchronized public void process(WatchedEvent event) {
-        synchronized (mutex) {
-            mutex.notifyAll();
-        }
-    }
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/ILookupService.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/ILookupService.java
deleted file mode 100644
index 34252e3..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/ILookupService.java
+++ /dev/null
@@ -1,50 +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.event.service;
-
-import java.util.List;
-
-import org.apache.asterix.common.api.IClusterManagementWork.ClusterState;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.installer.schema.conf.Configuration;
-
-public interface ILookupService {
-
-    public void writeAsterixInstance(AsterixInstance asterixInstance) throws Exception;
-
-    public AsterixInstance getAsterixInstance(String name) throws Exception;
-
-    public boolean isRunning(Configuration conf) throws Exception;
-
-    public void startService(Configuration conf) throws Exception;
-
-    public void stopService(Configuration conf) throws Exception;
-
-    public boolean exists(String name) throws Exception;
-
-    public void removeAsterixInstance(String name) throws Exception;
-
-    public List<AsterixInstance> getAsterixInstances() throws Exception;
-
-    public void updateAsterixInstance(AsterixInstance updatedInstance) throws Exception;
-
-    public void reportClusterState(String instanceName, ClusterState active) throws Exception;
-
-    public ClusterStateWatcher startWatchingClusterState(String asterixInstanceName);
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/ServiceProvider.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/ServiceProvider.java
deleted file mode 100644
index ab421fd..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/ServiceProvider.java
+++ /dev/null
@@ -1,33 +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.event.service;
-
-public class ServiceProvider {
-
-    public static ServiceProvider INSTANCE = new ServiceProvider();
-    private static ILookupService lookupService = new ZooKeeperService();
-
-    private ServiceProvider() {
-    }
-
-    public ILookupService getLookupService() {
-        return lookupService;
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/ZooKeeperService.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/ZooKeeperService.java
deleted file mode 100644
index 5e102e7..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/service/ZooKeeperService.java
+++ /dev/null
@@ -1,329 +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.event.service;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.StringWriter;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.asterix.common.api.IClusterManagementWork.ClusterState;
-import org.apache.asterix.event.error.EventException;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.installer.schema.conf.Configuration;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.apache.commons.lang3.tuple.Pair;
-import org.apache.log4j.Logger;
-import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.KeeperException;
-import org.apache.zookeeper.WatchedEvent;
-import org.apache.zookeeper.Watcher;
-import org.apache.zookeeper.Watcher.Event.KeeperState;
-import org.apache.zookeeper.ZooDefs.Ids;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.data.Stat;
-
-public class ZooKeeperService implements ILookupService {
-
-    private static final Logger LOGGER = Logger.getLogger(ZooKeeperService.class.getName());
-
-    private static final int ZOOKEEPER_LEADER_CONN_PORT = 2222;
-    private static final int ZOOKEEPER_LEADER_ELEC_PORT = 2223;
-    private static final int ZOOKEEPER_SESSION_TIME_OUT = 40 * 1000; //milliseconds
-    private static final String ZOOKEEPER_HOME = AsterixEventService.getEventHome() + File.separator + "zookeeper";
-    private static final String ZOO_KEEPER_CONFIG = ZOOKEEPER_HOME + File.separator + "zk.cfg";
-
-    private boolean isRunning = false;
-    private ZooKeeper zk;
-    private String zkConnectionString;
-    public static final String ASTERIX_INSTANCE_BASE_PATH = File.separator + "Asterix";
-    public static final String ASTERIX_INSTANCE_STATE_PATH = File.separator + "state";
-    public static final String ASTERIX_INSTANCE_STATE_REPORT = File.separator + "clusterState";
-    public static final int DEFAULT_NODE_VERSION = -1;
-    private LinkedBlockingQueue<String> msgQ = new LinkedBlockingQueue<String>();
-    private ZooKeeperWatcher watcher = new ZooKeeperWatcher(msgQ);
-
-    @Override
-    public boolean isRunning(Configuration conf) throws Exception {
-        List<String> servers = conf.getZookeeper().getServers().getServer();
-        int clientPort = conf.getZookeeper().getClientPort().intValue();
-        StringBuilder connectionString = new StringBuilder();
-        for (String serverAddress : servers) {
-            connectionString.append(serverAddress);
-            connectionString.append(":");
-            connectionString.append(clientPort);
-            connectionString.append(",");
-        }
-        if (connectionString.length() > 0) {
-            connectionString.deleteCharAt(connectionString.length() - 1);
-        }
-        zkConnectionString = connectionString.toString();
-
-        zk = new ZooKeeper(zkConnectionString, ZOOKEEPER_SESSION_TIME_OUT, watcher);
-        try {
-            zk.exists("/dummy", watcher);
-            if (LOGGER.isDebugEnabled()) {
-                LOGGER.debug("ZooKeeper running at " + connectionString);
-            }
-            createRootIfNotExist();
-            isRunning = true;
-        } catch (KeeperException ke) {
-            isRunning = false;
-        }
-        return isRunning;
-    }
-
-    @Override
-    public void startService(Configuration conf) throws Exception {
-        if (LOGGER.isDebugEnabled()) {
-            LOGGER.debug("Starting ZooKeeper at " + zkConnectionString);
-        }
-        ZookeeperUtil.writeConfiguration(ZOO_KEEPER_CONFIG, conf, ZOOKEEPER_LEADER_CONN_PORT,
-                ZOOKEEPER_LEADER_ELEC_PORT);
-        String initScript = ZOOKEEPER_HOME + File.separator + "bin" + File.separator + "zk.init";
-        StringBuilder cmdBuffer = new StringBuilder();
-        cmdBuffer.append(initScript + " ");
-        cmdBuffer.append(conf.getZookeeper().getHomeDir() + " ");
-        cmdBuffer.append(conf.getZookeeper().getServers().getJavaHome() + " ");
-        List<String> zkServers = conf.getZookeeper().getServers().getServer();
-        for (String zkServer : zkServers) {
-            cmdBuffer.append(zkServer + " ");
-        }
-        //TODO: Create a better way to interact with zookeeper
-        Process zkProcess = Runtime.getRuntime().exec(cmdBuffer.toString());
-        int exitCode = zkProcess.waitFor();
-        Pair<CharSequence, CharSequence> outputs = getProcessStreams(zkProcess);
-        if (exitCode != 0) {
-            StringBuilder msg = new StringBuilder("Error starting zookeeper server; output code = ");
-            msg.append(exitCode);
-            appendNonEmptyStreams(outputs, msg);
-            throw new Exception(msg.toString());
-        }
-        zk = new ZooKeeper(zkConnectionString, ZOOKEEPER_SESSION_TIME_OUT, watcher);
-        String head = msgQ.poll(60, TimeUnit.SECONDS);
-        if (head == null) {
-            StringBuilder msg = new StringBuilder("Unable to start Zookeeper Service. This could be because of the"
-                    + " following reasons.\n1) Managix is incorrectly configured. Please run "
-                    + "managix validate to run a validation test and correct the errors reported.\n"
-                    + "2) If validation in (1) is successful, ensure that java_home parameter is set correctly"
-                    + " in Managix configuration (" + AsterixEventServiceUtil.MANAGIX_CONF_XML + ")");
-            appendNonEmptyStreams(outputs, msg);
-            throw new Exception(msg.toString());
-        }
-        msgQ.take();
-        createRootIfNotExist();
-    }
-
-    private void appendNonEmptyStreams(Pair<CharSequence, CharSequence> outputs, StringBuilder msg) {
-        appendIfNotEmpty(msg, outputs.getLeft(), "stdout");
-        appendIfNotEmpty(msg, outputs.getRight(), "stderr");
-    }
-
-    private Pair<CharSequence, CharSequence> getProcessStreams(Process process) throws IOException {
-        StringWriter stdout = new StringWriter();
-        StringWriter stderr = new StringWriter();
-        IOUtils.copy(process.getInputStream(), stdout, Charset.defaultCharset());
-        IOUtils.copy(process.getErrorStream(), stderr, Charset.defaultCharset());
-        return new ImmutablePair<>(stdout.getBuffer(), stderr.getBuffer());
-    }
-
-    private void appendIfNotEmpty(StringBuilder msg, CharSequence output, String outputName) {
-        if (output.length() > 0) {
-            msg.append(", ").append(outputName).append(" = ").append(output);
-        }
-    }
-
-    @Override
-    public void stopService(Configuration conf) throws Exception {
-        if (LOGGER.isDebugEnabled()) {
-            LOGGER.debug("Stopping ZooKeeper running at " + zkConnectionString);
-        }
-        String stopScript = ZOOKEEPER_HOME + File.separator + "bin" + File.separator + "stop_zk";
-        StringBuilder cmdBuffer = new StringBuilder();
-        cmdBuffer.append(stopScript + " ");
-        cmdBuffer.append(conf.getZookeeper().getHomeDir() + " ");
-        List<String> zkServers = conf.getZookeeper().getServers().getServer();
-        for (String zkServer : zkServers) {
-            cmdBuffer.append(zkServer + " ");
-        }
-        Runtime.getRuntime().exec(cmdBuffer.toString());
-        if (LOGGER.isDebugEnabled()) {
-            LOGGER.debug("Stopped ZooKeeper service at " + zkConnectionString);
-        }
-    }
-
-    @Override
-    public void writeAsterixInstance(AsterixInstance asterixInstance) throws Exception {
-        String instanceBasePath = ASTERIX_INSTANCE_BASE_PATH + File.separator + asterixInstance.getName();
-        ByteArrayOutputStream b = new ByteArrayOutputStream();
-        ObjectOutputStream o = new ObjectOutputStream(b);
-        o.writeObject(asterixInstance);
-        zk.create(instanceBasePath, b.toByteArray(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
-        // Create a place to put the state of the cluster in
-        String instanceStatePath = instanceBasePath + ASTERIX_INSTANCE_STATE_PATH;
-        zk.create(instanceStatePath, new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
-    }
-
-    private void createRootIfNotExist() throws Exception {
-        try {
-            Stat stat = zk.exists(ASTERIX_INSTANCE_BASE_PATH, false);
-            if (stat == null) {
-                zk.create(ASTERIX_INSTANCE_BASE_PATH, "root".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
-            }
-        } catch (Exception e) {
-            // Is this the right way to handle the exception (try again? forever?)
-            LOGGER.error("An error took place when creating the root in Zookeeper");
-            e.printStackTrace();
-            createRootIfNotExist();
-        }
-    }
-
-    @Override
-    public AsterixInstance getAsterixInstance(String name) throws Exception {
-        String path = ASTERIX_INSTANCE_BASE_PATH + File.separator + name;
-        Stat stat = zk.exists(ASTERIX_INSTANCE_BASE_PATH + File.separator + name, false);
-        if (stat == null) {
-            return null;
-        }
-        byte[] asterixInstanceBytes = zk.getData(path, false, new Stat());
-        return readAsterixInstanceObject(asterixInstanceBytes);
-    }
-
-    @Override
-    public boolean exists(String path) throws Exception {
-        return zk.exists(ASTERIX_INSTANCE_BASE_PATH + File.separator + path, false) != null;
-    }
-
-    @Override
-    public void removeAsterixInstance(String name) throws Exception {
-        if (!exists(name)) {
-            throw new EventException("Asterix instance by name " + name + " does not exists.");
-        }
-        if (exists(name + ASTERIX_INSTANCE_STATE_PATH)) {
-            if (exists(name + ASTERIX_INSTANCE_STATE_PATH + File.separator + "clusterState")) {
-                zk.delete(ASTERIX_INSTANCE_BASE_PATH + File.separator + name + ASTERIX_INSTANCE_STATE_PATH
-                        + ASTERIX_INSTANCE_STATE_REPORT, DEFAULT_NODE_VERSION);
-            }
-            zk.delete(ASTERIX_INSTANCE_BASE_PATH + File.separator + name + ASTERIX_INSTANCE_STATE_PATH,
-                    DEFAULT_NODE_VERSION);
-        }
-        zk.delete(ASTERIX_INSTANCE_BASE_PATH + File.separator + name, DEFAULT_NODE_VERSION);
-    }
-
-    @Override
-    public List<AsterixInstance> getAsterixInstances() throws Exception {
-        List<String> instanceNames = zk.getChildren(ASTERIX_INSTANCE_BASE_PATH, false);
-        List<AsterixInstance> asterixInstances = new ArrayList<AsterixInstance>();
-        String path;
-        for (String instanceName : instanceNames) {
-            path = ASTERIX_INSTANCE_BASE_PATH + File.separator + instanceName;
-            byte[] asterixInstanceBytes = zk.getData(path, false, new Stat());
-            asterixInstances.add(readAsterixInstanceObject(asterixInstanceBytes));
-        }
-        return asterixInstances;
-    }
-
-    private AsterixInstance readAsterixInstanceObject(byte[] asterixInstanceBytes)
-            throws IOException, ClassNotFoundException {
-        ByteArrayInputStream b = new ByteArrayInputStream(asterixInstanceBytes);
-        ObjectInputStream ois = new ObjectInputStream(b);
-        return (AsterixInstance) ois.readObject();
-    }
-
-    @Override
-    public void updateAsterixInstance(AsterixInstance updatedInstance) throws Exception {
-        removeAsterixInstance(updatedInstance.getName());
-        writeAsterixInstance(updatedInstance);
-    }
-
-    @Override
-    public ClusterStateWatcher startWatchingClusterState(String instanceName) {
-        ClusterStateWatcher watcher = new ClusterStateWatcher(zk, instanceName);
-        watcher.startMonitoringThread();
-        return watcher;
-    }
-
-    @Override
-    public void reportClusterState(String instanceName, ClusterState state) throws Exception {
-        String clusterStatePath = ZooKeeperService.ASTERIX_INSTANCE_BASE_PATH + File.separator + instanceName
-                + ASTERIX_INSTANCE_STATE_PATH;
-        Integer value = state.ordinal();
-        byte[] stateValue = new byte[] { value.byteValue() };
-        // Create a place to put the state of the cluster in
-        zk.create(clusterStatePath + ASTERIX_INSTANCE_STATE_REPORT, stateValue, Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-        return;
-    }
-
-}
-
-class ZooKeeperWatcher implements Watcher {
-
-    private boolean isRunning = true;
-    private LinkedBlockingQueue<String> msgQ;
-
-    public ZooKeeperWatcher(LinkedBlockingQueue<String> msgQ) {
-        this.msgQ = msgQ;
-    }
-
-    @Override
-    public void process(WatchedEvent wEvent) {
-        if (wEvent.getState() == KeeperState.SyncConnected) {
-            msgQ.add("connected");
-        }
-    }
-
-    public boolean isRunning() {
-        return isRunning;
-    }
-
-}
-
-class ZookeeperUtil {
-
-    public static void writeConfiguration(String zooKeeperConfigPath, Configuration conf, int leaderConnPort,
-            int leaderElecPort) throws IOException {
-
-        StringBuilder buffer = new StringBuilder();
-        buffer.append("tickTime=1000" + "\n");
-        buffer.append("dataDir=" + conf.getZookeeper().getHomeDir() + File.separator + "data" + "\n");
-        buffer.append("clientPort=" + conf.getZookeeper().getClientPort().intValue() + "\n");
-        buffer.append("initLimit=" + 2 + "\n");
-        buffer.append("syncLimit=" + 2 + "\n");
-
-        List<String> servers = conf.getZookeeper().getServers().getServer();
-        int serverId = 1;
-        for (String server : servers) {
-            buffer.append(
-                    "server" + "." + serverId + "=" + server + ":" + leaderConnPort + ":" + leaderElecPort + "\n");
-            serverId++;
-        }
-        AsterixEventServiceUtil.dumpToFile(zooKeeperConfigPath, buffer.toString());
-    }
-
-}
diff --git a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/util/PatternCreator.java b/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/util/PatternCreator.java
deleted file mode 100644
index c0f8f5f..0000000
--- a/asterixdb/asterix-events/src/main/java/org/apache/asterix/event/util/PatternCreator.java
+++ /dev/null
@@ -1,585 +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.event.util;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.asterix.event.driver.EventDriver;
-import org.apache.asterix.event.error.VerificationUtil;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.BackupInfo;
-import org.apache.asterix.event.model.BackupInfo.BackupType;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.pattern.Delay;
-import org.apache.asterix.event.schema.pattern.Event;
-import org.apache.asterix.event.schema.pattern.Nodeid;
-import org.apache.asterix.event.schema.pattern.Pattern;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.schema.pattern.Value;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.installer.schema.conf.Backup;
-
-public class PatternCreator {
-
-    public static final PatternCreator INSTANCE = new PatternCreator();
-
-    private PatternCreator() {
-    }
-
-    private void addInitialDelay(Pattern p, int delay, String unit) {
-        Delay d = new Delay(new Value(null, Integer.toString(delay)), unit);
-        p.setDelay(d);
-    }
-
-    public Patterns getAsterixBinaryTransferPattern(String asterixInstanceName, Cluster cluster) throws Exception {
-        String ccLocationIp = cluster.getMasterNode().getClusterIp();
-        String destDir = cluster.getWorkingDir().getDir() + File.separator + "asterix";
-        List<Pattern> ps = new ArrayList<>();
-
-        Pattern copyHyracks = createCopyHyracksPattern(asterixInstanceName, cluster, ccLocationIp, destDir);
-        ps.add(copyHyracks);
-
-        boolean copyHyracksToNC = !cluster.getWorkingDir().isNFS();
-
-        for (Node node : cluster.getNode()) {
-            if (copyHyracksToNC) {
-                Pattern copyHyracksForNC =
-                        createCopyHyracksPattern(asterixInstanceName, cluster, node.getClusterIp(), destDir);
-                ps.add(copyHyracksForNC);
-            }
-        }
-        ps.addAll(createHadoopLibraryTransferPattern(cluster).getPattern());
-        return new Patterns(ps);
-    }
-
-    public Patterns getStartAsterixPattern(String asterixInstanceName, Cluster cluster, boolean createCommand)
-            throws Exception {
-        String ccLocationId = cluster.getMasterNode().getId();
-        List<Pattern> ps = new ArrayList<>();
-
-        Pattern createCC = createCCStartPattern(ccLocationId);
-        addInitialDelay(createCC, 3, "sec");
-        ps.add(createCC);
-
-        for (Node node : cluster.getNode()) {
-            String iodevices = node.getIodevices() == null ? cluster.getIodevices() : node.getIodevices();
-            Pattern createNC = createNCStartPattern(cluster.getMasterNode().getClusterIp(), node.getId(),
-                    asterixInstanceName + "_" + node.getId(), iodevices, createCommand);
-            addInitialDelay(createNC, 5, "sec");
-            ps.add(createNC);
-        }
-
-        return new Patterns(ps);
-    }
-
-    public Patterns getBackUpAsterixPattern(AsterixInstance instance, Backup backupConf) throws Exception {
-        BackupType backupType = BackupInfo.getBackupType(backupConf);
-        Patterns patterns = null;
-        switch (backupType) {
-            case HDFS:
-                patterns = getHDFSBackUpAsterixPattern(instance, backupConf);
-                break;
-            case LOCAL:
-                patterns = getLocalBackUpAsterixPattern(instance, backupConf);
-                break;
-        }
-        return patterns;
-    }
-
-    public Patterns getRestoreAsterixPattern(AsterixInstance instance, BackupInfo backupInfo) throws Exception {
-        BackupType backupType = backupInfo.getBackupType();
-        Patterns patterns = null;
-        switch (backupType) {
-            case HDFS:
-                patterns = getHDFSRestoreAsterixPattern(instance, backupInfo);
-                break;
-            case LOCAL:
-                patterns = getLocalRestoreAsterixPattern(instance, backupInfo);
-                break;
-        }
-        return patterns;
-    }
-
-    private Patterns getHDFSBackUpAsterixPattern(AsterixInstance instance, Backup backupConf) throws Exception {
-        Cluster cluster = instance.getCluster();
-        String hdfsUrl = backupConf.getHdfs().getUrl();
-        String hadoopVersion = backupConf.getHdfs().getVersion();
-        String hdfsBackupDir = backupConf.getBackupDir();
-        VerificationUtil.verifyBackupRestoreConfiguration(hdfsUrl, hadoopVersion, hdfsBackupDir);
-        String workingDir = cluster.getWorkingDir().getDir();
-        String backupId = Integer.toString(instance.getBackupInfo().size());
-        String store;
-        String pargs;
-        String iodevices;
-        store = cluster.getStore();
-        List<Pattern> patternList = new ArrayList<>();
-        for (Node node : cluster.getNode()) {
-            Nodeid nodeid = new Nodeid(new Value(null, node.getId()));
-            iodevices = node.getIodevices() == null ? instance.getCluster().getIodevices() : node.getIodevices();
-            pargs = workingDir + " " + instance.getName() + " " + iodevices + " " + store + " " + " "
-                    + AsterixEventServiceUtil.TXN_LOG_DIR + " " + backupId + " " + hdfsBackupDir + " " + "hdfs" + " "
-                    + node.getId() + " " + hdfsUrl + " " + hadoopVersion;
-            Event event = new Event("backup", nodeid, pargs);
-            patternList.add(new Pattern(null, 1, null, event));
-        }
-        return new Patterns(patternList);
-    }
-
-    private Patterns getLocalBackUpAsterixPattern(AsterixInstance instance, Backup backupConf) throws Exception {
-        Cluster cluster = instance.getCluster();
-        String backupDir = backupConf.getBackupDir();
-        String workingDir = cluster.getWorkingDir().getDir();
-        String backupId = Integer.toString(instance.getBackupInfo().size());
-        String iodevices;
-        String txnLogDir;
-        String store;
-        String pargs;
-        store = cluster.getStore();
-        List<Pattern> patternList = new ArrayList<>();
-        for (Node node : cluster.getNode()) {
-            Nodeid nodeid = new Nodeid(new Value(null, node.getId()));
-            iodevices = node.getIodevices() == null ? instance.getCluster().getIodevices() : node.getIodevices();
-            txnLogDir = node.getTxnLogDir() == null ? instance.getCluster().getTxnLogDir() : node.getTxnLogDir();
-            pargs = workingDir + " " + instance.getName() + " " + iodevices + " " + store + " " + " " + txnLogDir + " "
-                    + backupId + " " + backupDir + " " + "local" + " " + node.getId();
-            Event event = new Event("backup", nodeid, pargs);
-            patternList.add(new Pattern(null, 1, null, event));
-        }
-        return new Patterns(patternList);
-    }
-
-    public Patterns getHDFSRestoreAsterixPattern(AsterixInstance instance, BackupInfo backupInfo) throws Exception {
-        Cluster cluster = instance.getCluster();
-        String clusterStore = instance.getCluster().getStore();
-        String hdfsUrl = backupInfo.getBackupConf().getHdfs().getUrl();
-        String hadoopVersion = backupInfo.getBackupConf().getHdfs().getVersion();
-        String hdfsBackupDir = backupInfo.getBackupConf().getBackupDir();
-        VerificationUtil.verifyBackupRestoreConfiguration(hdfsUrl, hadoopVersion, hdfsBackupDir);
-        String workingDir = cluster.getWorkingDir().getDir();
-        int backupId = backupInfo.getId();
-        String pargs;
-        List<Pattern> patternList = new ArrayList<>();
-        for (Node node : cluster.getNode()) {
-            Nodeid nodeid = new Nodeid(new Value(null, node.getId()));
-            String iodevices = node.getIodevices() == null ? cluster.getIodevices() : node.getIodevices();
-            pargs = workingDir + " " + instance.getName() + " " + iodevices + " " + clusterStore + " " + " "
-                    + AsterixEventServiceUtil.TXN_LOG_DIR + " " + backupId + " " + " " + hdfsBackupDir + " " + "hdfs"
-                    + " " + node.getId() + " " + hdfsUrl + " " + hadoopVersion;
-            Event event = new Event("restore", nodeid, pargs);
-            patternList.add(new Pattern(null, 1, null, event));
-        }
-        return new Patterns(patternList);
-    }
-
-    public Patterns getLocalRestoreAsterixPattern(AsterixInstance instance, BackupInfo backupInfo) throws Exception {
-        Cluster cluster = instance.getCluster();
-        String clusterStore = instance.getCluster().getStore();
-        String backupDir = backupInfo.getBackupConf().getBackupDir();
-        String workingDir = cluster.getWorkingDir().getDir();
-        int backupId = backupInfo.getId();
-        String pargs;
-        List<Pattern> patternList = new ArrayList<>();
-        for (Node node : cluster.getNode()) {
-            Nodeid nodeid = new Nodeid(new Value(null, node.getId()));
-            String iodevices = node.getIodevices() == null ? cluster.getIodevices() : node.getIodevices();
-            pargs = workingDir + " " + instance.getName() + " " + iodevices + " " + clusterStore + " " + " "
-                    + AsterixEventServiceUtil.TXN_LOG_DIR + " " + backupId + " " + backupDir + " " + "local" + " "
-                    + node.getId();
-            Event event = new Event("restore", nodeid, pargs);
-            patternList.add(new Pattern(null, 1, null, event));
-        }
-        return new Patterns(patternList);
-    }
-
-    public Patterns createHadoopLibraryTransferPattern(Cluster cluster) throws Exception {
-        List<Pattern> patternList = new ArrayList<>();
-        String workingDir = cluster.getWorkingDir().getDir();
-        String hadoopVersion = AsterixEventService.getConfiguration().getBackup().getHdfs().getVersion();
-        File hadoopDir = new File(AsterixEventService.getEventHome() + File.separator + "hadoop-" + hadoopVersion);
-        if (!hadoopDir.exists()) {
-            throw new IllegalStateException("Hadoop version :" + hadoopVersion + " not supported");
-        }
-
-        Nodeid nodeid = new Nodeid(new Value(null, EventDriver.CLIENT_NODE.getId()));
-        String username = cluster.getUsername() != null ? cluster.getUsername() : System.getProperty("user.name");
-        String pargs = username + " " + hadoopDir.getAbsolutePath() + " " + cluster.getMasterNode().getClusterIp() + " "
-                + workingDir;
-        Event event = new Event("directory_transfer", nodeid, pargs);
-        Pattern p = new Pattern(null, 1, null, event);
-        addInitialDelay(p, 2, "sec");
-        patternList.add(p);
-
-        boolean copyToNC = !cluster.getWorkingDir().isNFS();
-        if (copyToNC) {
-            for (Node node : cluster.getNode()) {
-                nodeid = new Nodeid(new Value(null, node.getId()));
-                pargs = cluster.getUsername() + " " + hadoopDir.getAbsolutePath() + " " + node.getClusterIp() + " "
-                        + workingDir;
-                event = new Event("directory_transfer", nodeid, pargs);
-                p = new Pattern(null, 1, null, event);
-                addInitialDelay(p, 2, "sec");
-                patternList.add(p);
-            }
-        }
-        return new Patterns(patternList);
-    }
-
-    public Patterns createDeleteInstancePattern(AsterixInstance instance) throws Exception {
-        List<Pattern> patternList = new ArrayList<>();
-        patternList.addAll(createRemoveAsterixStoragePattern(instance).getPattern());
-        if (instance.getBackupInfo() != null && !instance.getBackupInfo().isEmpty()) {
-            List<BackupInfo> backups = instance.getBackupInfo();
-            Set<String> removedBackupDirsHDFS = new HashSet<>();
-            Set<String> removedBackupDirsLocal = new HashSet<>();
-
-            String backupDir;
-            for (BackupInfo binfo : backups) {
-                backupDir = binfo.getBackupConf().getBackupDir();
-                switch (binfo.getBackupType()) {
-                    case HDFS:
-                        if (removedBackupDirsHDFS.contains(backupDir)) {
-                            continue;
-                        }
-                        patternList.addAll(createRemoveHDFSBackupPattern(instance, backupDir).getPattern());
-                        removedBackupDirsHDFS.add(backupDir);
-                        break;
-
-                    case LOCAL:
-                        if (removedBackupDirsLocal.contains(backupDir)) {
-                            continue;
-                        }
-                        patternList.addAll(createRemoveLocalBackupPattern(instance, backupDir).getPattern());
-                        removedBackupDirsLocal.add(backupDir);
-                        break;
-                }
-
-            }
-        }
-        patternList.addAll(createRemoveAsterixLogDirPattern(instance).getPattern());
-        patternList.addAll(createRemoveAsterixTxnLogs(instance).getPattern());
-        return new Patterns(patternList);
-    }
-
-    private Patterns createRemoveAsterixTxnLogs(AsterixInstance instance) throws Exception {
-        List<Pattern> patternList = new ArrayList<>();
-        Cluster cluster = instance.getCluster();
-        Nodeid nodeid;
-        Event event;
-        for (Node node : cluster.getNode()) {
-            String txnLogDir = node.getTxnLogDir() == null ? cluster.getTxnLogDir() : node.getTxnLogDir();
-            nodeid = new Nodeid(new Value(null, node.getId()));
-            event = new Event("file_delete", nodeid, txnLogDir);
-            patternList.add(new Pattern(null, 1, null, event));
-        }
-
-        return new Patterns(patternList);
-    }
-
-    private Patterns createRemoveHDFSBackupPattern(AsterixInstance instance, String hdfsBackupDir) throws Exception {
-        List<Pattern> patternList = new ArrayList<>();
-        Cluster cluster = instance.getCluster();
-        String hdfsUrl = AsterixEventService.getConfiguration().getBackup().getHdfs().getUrl();
-        String hadoopVersion = AsterixEventService.getConfiguration().getBackup().getHdfs().getVersion();
-        String workingDir = cluster.getWorkingDir().getDir();
-        Node launchingNode = cluster.getNode().get(0);
-        Nodeid nodeid = new Nodeid(new Value(null, launchingNode.getId()));
-        String pathToDelete = hdfsBackupDir + File.separator + instance.getName();
-        String pargs = workingDir + " " + hadoopVersion + " " + hdfsUrl + " " + pathToDelete;
-        Event event = new Event("hdfs_delete", nodeid, pargs);
-        patternList.add(new Pattern(null, 1, null, event));
-        return new Patterns(patternList);
-    }
-
-    private Patterns createRemoveLocalBackupPattern(AsterixInstance instance, String localBackupDir) throws Exception {
-        List<Pattern> patternList = new ArrayList<>();
-        Cluster cluster = instance.getCluster();
-
-        String pathToDelete = localBackupDir + File.separator + instance.getName();
-        String pargs = pathToDelete;
-        List<String> removedBackupDirs = new ArrayList<>();
-        for (Node node : cluster.getNode()) {
-            if (removedBackupDirs.contains(node.getClusterIp())) {
-                continue;
-            }
-            Nodeid nodeid = new Nodeid(new Value(null, node.getId()));
-            Event event = new Event("file_delete", nodeid, pargs);
-            patternList.add(new Pattern(null, 1, null, event));
-            removedBackupDirs.add(node.getClusterIp());
-        }
-
-        return new Patterns(patternList);
-    }
-
-    public Patterns createRemoveAsterixWorkingDirPattern(AsterixInstance instance) throws Exception {
-        List<Pattern> patternList = new ArrayList<>();
-        Cluster cluster = instance.getCluster();
-        String workingDir = cluster.getWorkingDir().getDir();
-        String pargs = workingDir;
-        Nodeid nodeid = new Nodeid(new Value(null, cluster.getMasterNode().getId()));
-        Event event = new Event("file_delete", nodeid, pargs);
-        patternList.add(new Pattern(null, 1, null, event));
-
-        if (!cluster.getWorkingDir().isNFS()) {
-            for (Node node : cluster.getNode()) {
-                nodeid = new Nodeid(new Value(null, node.getId()));
-                event = new Event("file_delete", nodeid, pargs);
-                patternList.add(new Pattern(null, 1, null, event));
-            }
-        }
-        return new Patterns(patternList);
-    }
-
-    public Patterns getLibraryInstallPattern(AsterixInstance instance, String dataverse, String libraryName,
-            String libraryPath) throws Exception {
-        List<Pattern> patternList = new ArrayList<>();
-        Cluster cluster = instance.getCluster();
-        Nodeid nodeid = new Nodeid(new Value(null, EventDriver.CLIENT_NODE.getId()));
-        String username = cluster.getUsername() != null ? cluster.getUsername() : System.getProperty("user.name");
-        String workingDir = cluster.getWorkingDir().getDir();
-        String destDir =
-                workingDir + File.separator + "library" + File.separator + dataverse + File.separator + libraryName;
-        String fileToTransfer = new File(libraryPath).getAbsolutePath();
-
-        Iterator<Node> installTargets = cluster.getNode().iterator();
-        Node installNode = installTargets.next();
-        String destinationIp = installNode.getClusterIp();
-        String pargs = username + " " + fileToTransfer + " " + destinationIp + " " + destDir + " " + "unpack";
-        Event event = new Event("file_transfer", nodeid, pargs);
-        Pattern p = new Pattern(null, 1, null, event);
-        patternList.add(p);
-
-        if (!cluster.getWorkingDir().isNFS()) {
-            while (installTargets.hasNext()) {
-                Node node = installTargets.next();
-                pargs = username + " " + fileToTransfer + " " + node.getClusterIp() + " " + destDir + " " + "unpack";
-                event = new Event("file_transfer", nodeid, pargs);
-                p = new Pattern(null, 1, null, event);
-                patternList.add(p);
-            }
-
-            pargs = username + " " + fileToTransfer + " " + cluster.getMasterNode().getClusterIp() + " " + destDir + " "
-                    + "unpack";
-            event = new Event("file_transfer", nodeid, pargs);
-            p = new Pattern(null, 1, null, event);
-            patternList.add(p);
-        }
-        return new Patterns(patternList);
-    }
-
-    public Patterns getLibraryUninstallPattern(AsterixInstance instance, String dataverse, String libraryName)
-            throws Exception {
-        List<Pattern> patternList = new ArrayList<>();
-        Cluster cluster = instance.getCluster();
-        String workingDir = cluster.getWorkingDir().getDir();
-        String destFile = dataverse + "." + libraryName;
-        String pargs = workingDir + File.separator + "uninstall" + " " + destFile;
-
-        String metadataNodeId = instance.getMetadataNodeId();
-        Nodeid nodeid = new Nodeid(new Value(null, metadataNodeId));
-        Event event = new Event("file_create", nodeid, pargs);
-        Pattern p = new Pattern(null, 1, null, event);
-        patternList.add(p);
-
-        Iterator<Node> uninstallTargets = cluster.getNode().iterator();
-        String libDir =
-                workingDir + File.separator + "library" + File.separator + dataverse + File.separator + libraryName;
-        Node uninstallNode = uninstallTargets.next();
-        nodeid = new Nodeid(new Value(null, uninstallNode.getId()));
-        event = new Event("file_delete", nodeid, libDir);
-        p = new Pattern(null, 1, null, event);
-        patternList.add(p);
-        pargs = libDir;
-
-        if (!cluster.getWorkingDir().isNFS()) {
-            while (uninstallTargets.hasNext()) {
-                uninstallNode = uninstallTargets.next();
-                nodeid = new Nodeid(new Value(null, uninstallNode.getId()));
-                event = new Event("file_delete", nodeid, pargs);
-                p = new Pattern(null, 1, null, event);
-                patternList.add(p);
-            }
-
-            nodeid = new Nodeid(new Value(null, cluster.getMasterNode().getId()));
-            event = new Event("file_delete", nodeid, pargs);
-            p = new Pattern(null, 1, null, event);
-            patternList.add(p);
-
-        }
-        return new Patterns(patternList);
-    }
-
-    private Patterns createRemoveAsterixLogDirPattern(AsterixInstance instance) throws Exception {
-        List<Pattern> patternList = new ArrayList<>();
-        Cluster cluster = instance.getCluster();
-        String pargs = instance.getCluster().getLogDir();
-        Nodeid nodeid = new Nodeid(new Value(null, cluster.getMasterNode().getId()));
-        Event event = new Event("file_delete", nodeid, pargs);
-        patternList.add(new Pattern(null, 1, null, event));
-
-        for (Node node : cluster.getNode()) {
-            nodeid = new Nodeid(new Value(null, node.getId()));
-            if (node.getLogDir() != null) {
-                pargs = node.getLogDir();
-            }
-            event = new Event("file_delete", nodeid, pargs);
-            patternList.add(new Pattern(null, 1, null, event));
-        }
-
-        return new Patterns(patternList);
-    }
-
-    private Patterns createRemoveAsterixStoragePattern(AsterixInstance instance) throws Exception {
-        List<Pattern> patternList = new ArrayList<>();
-        Cluster cluster = instance.getCluster();
-        String pargs;
-
-        for (Node node : cluster.getNode()) {
-            Nodeid nodeid = new Nodeid(new Value(null, node.getId()));
-            String[] nodeIODevices;
-            String iodevices = node.getIodevices() == null ? cluster.getIodevices() : node.getIodevices();
-            nodeIODevices = iodevices.trim().split(",");
-            String nodeStore = cluster.getStore().trim();
-            for (String nodeIODevice : nodeIODevices) {
-                pargs = nodeIODevice.trim() + File.separator + nodeStore;
-                Event event = new Event("file_delete", nodeid, pargs);
-                patternList.add(new Pattern(null, 1, null, event));
-            }
-        }
-        return new Patterns(patternList);
-    }
-
-    private Pattern createCopyHyracksPattern(String instanceName, Cluster cluster, String destinationIp,
-            String destDir) {
-        Nodeid nodeid = new Nodeid(new Value(null, EventDriver.CLIENT_NODE.getId()));
-        String username = cluster.getUsername() != null ? cluster.getUsername() : System.getProperty("user.name");
-        String asterixZipName = AsterixEventService.getAsterixZip()
-                .substring(AsterixEventService.getAsterixZip().lastIndexOf(File.separator) + 1);
-        String fileToTransfer = new File(
-                AsterixEventService.getAsterixDir() + File.separator + instanceName + File.separator + asterixZipName)
-                        .getAbsolutePath();
-        String pargs = username + " " + fileToTransfer + " " + destinationIp + " " + destDir + " " + "unpack";
-        Event event = new Event("file_transfer", nodeid, pargs);
-        return new Pattern(null, 1, null, event);
-    }
-
-    private Pattern createCCStartPattern(String hostId) {
-        Nodeid nodeid = new Nodeid(new Value(null, hostId));
-        Event event = new Event("cc_start", nodeid, "");
-        return new Pattern(null, 1, null, event);
-    }
-
-    public Pattern createCCStopPattern(String hostId) {
-        Nodeid nodeid = new Nodeid(new Value(null, hostId));
-        Event event = new Event("cc_failure", nodeid, null);
-        return new Pattern(null, 1, null, event);
-    }
-
-    public Pattern createNCStartPattern(String ccHost, String hostId, String nodeControllerId, String iodevices,
-            boolean isInitialRun) {
-        Nodeid nodeid = new Nodeid(new Value(null, hostId));
-        String pargs = ccHost + " " + nodeControllerId + " " + iodevices;
-        if (isInitialRun) {
-            pargs += " " + "-initial-run";
-        }
-        Event event = new Event("node_join", nodeid, pargs);
-        return new Pattern(null, 1, null, event);
-    }
-
-    public Pattern createNCStopPattern(String hostId, String nodeControllerId) {
-        Nodeid nodeid = new Nodeid(new Value(null, hostId));
-        Event event = new Event("node_failure", nodeid, nodeControllerId);
-        return new Pattern(null, 1, null, event);
-    }
-
-    public Patterns createPrepareNodePattern(String instanceName, Cluster cluster, Node nodeToBeAdded) {
-        List<Pattern> ps = new ArrayList<>();
-        boolean workingDirOnNFS = cluster.getWorkingDir().isNFS();
-        if (!workingDirOnNFS) {
-            String ccLocationIp = cluster.getMasterNode().getClusterIp();
-            String destDir = cluster.getWorkingDir().getDir() + File.separator + "asterix";
-            Pattern copyHyracks = createCopyHyracksPattern(instanceName, cluster, ccLocationIp, destDir);
-            ps.add(copyHyracks);
-
-            String workingDir = cluster.getWorkingDir().getDir();
-            String hadoopVersion = AsterixEventService.getConfiguration().getBackup().getHdfs().getVersion();
-            File hadoopDir = new File(AsterixEventService.getEventHome() + File.separator + "hadoop-" + hadoopVersion);
-            if (!hadoopDir.exists()) {
-                throw new IllegalStateException("Hadoop version :" + hadoopVersion + " not supported");
-            }
-
-            Nodeid nodeid = new Nodeid(new Value(null, EventDriver.CLIENT_NODE.getId()));
-            String username = cluster.getUsername() != null ? cluster.getUsername() : System.getProperty("user.name");
-            String pargs = username + " " + hadoopDir.getAbsolutePath() + " " + cluster.getMasterNode().getClusterIp()
-                    + " " + workingDir;
-            Event event = new Event("directory_transfer", nodeid, pargs);
-            Pattern p = new Pattern(null, 1, null, event);
-            addInitialDelay(p, 2, "sec");
-            ps.add(p);
-
-            nodeid = new Nodeid(new Value(null, nodeToBeAdded.getId()));
-            pargs = cluster.getUsername() + " " + hadoopDir.getAbsolutePath() + " " + nodeToBeAdded.getClusterIp() + " "
-                    + workingDir;
-            event = new Event("directory_transfer", nodeid, pargs);
-            p = new Pattern(null, 1, null, event);
-            addInitialDelay(p, 2, "sec");
-            ps.add(p);
-        }
-
-        return new Patterns(ps);
-    }
-
-    public Patterns getGenerateLogPattern(Cluster cluster, String outputDir) {
-        List<Pattern> patternList = new ArrayList<>();
-        Map<String, String> nodeLogs = new HashMap<>();
-
-        String username = cluster.getUsername() == null ? System.getProperty("user.name") : cluster.getUsername();
-        String srcHost = cluster.getMasterNode().getClientIp();
-        Nodeid nodeid = new Nodeid(new Value(null, EventDriver.CLIENT_NODE.getId()));
-        String srcDir =
-                cluster.getMasterNode().getLogDir() == null ? cluster.getLogDir() : cluster.getMasterNode().getLogDir();
-        String destDir = outputDir + File.separator + "cc";
-        String pargs = username + " " + srcHost + " " + srcDir + " " + destDir;
-        Event event = new Event("directory_copy", nodeid, pargs);
-        Pattern p = new Pattern(null, 1, null, event);
-        patternList.add(p);
-        nodeLogs.put(cluster.getMasterNode().getClusterIp(), srcDir);
-        for (Node node : cluster.getNode()) {
-            srcHost = node.getClusterIp();
-            srcDir = node.getLogDir() == null ? cluster.getLogDir() : node.getLogDir();
-            if (nodeLogs.get(node.getClusterIp()) != null && nodeLogs.get(node.getClusterIp()).equals(srcDir)) {
-                continue;
-            }
-            destDir = outputDir + File.separator + node.getId();
-            pargs = username + " " + srcHost + " " + srcDir + " " + destDir;
-            event = new Event("directory_copy", nodeid, pargs);
-            p = new Pattern(null, 1, null, event);
-            patternList.add(p);
-        }
-        return new Patterns(patternList);
-    }
-}
diff --git a/asterixdb/asterix-events/src/main/resources/events/backup/backup.sh b/asterixdb/asterix-events/src/main/resources/events/backup/backup.sh
deleted file mode 100755
index 155cb86..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/backup/backup.sh
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-
-WORKING_DIR=$1
-ASTERIX_INSTANCE_NAME=$2
-ASTERIX_IODEVICES=$3
-NODE_STORE=$4
-ASTERIX_ROOT_METADATA_DIR=$5
-TXN_LOG_DIR=$6
-BACKUP_ID=$7
-BACKUP_DIR=$8
-BACKUP_TYPE=$9
-NODE_ID=${10}
-
-nodeIODevices=$(echo $ASTERIX_IODEVICES | tr "," "\n")
-
-if [ $BACKUP_TYPE == "hdfs" ];
-then
-  HDFS_URL=${11}
-  HADOOP_VERSION=${12}
-  export HADOOP_HOME=$WORKING_DIR/hadoop-$HADOOP_VERSION
-  index=1
-  for nodeIODevice in $nodeIODevices
-  do
-    STORE_DIR=$nodeIODevice/$NODE_STORE
-    NODE_BACKUP_DIR=$BACKUP_DIR/$ASTERIX_INSTANCE_NAME/$BACKUP_ID/$NODE_ID/
-   
-    # make the destination directory 
-    $HADOOP_HOME/bin/hadoop fs -mkdir $STORE_DIR $HDFS_URL/$NODE_BACKUP_DIR
-
-    # copy store directory
-    $HADOOP_HOME/bin/hadoop fs -copyFromLocal $STORE_DIR $HDFS_URL/$NODE_BACKUP_DIR/
-
-    # copy asterix root metadata directory and log directory from the primary(first) iodevice
-    if [ $index -eq 1 ];
-    then
-      # copy asterix root metadata directory
-      $HADOOP_HOME/bin/hadoop fs -copyFromLocal $nodeIODevice/$ASTERIX_ROOT_METADATA_DIR $HDFS_URL/$NODE_BACKUP_DIR/
-
-      # copy log directory 
-      $HADOOP_HOME/bin/hadoop fs -copyFromLocal $TXN_LOG_DIR $HDFS_URL/$NODE_BACKUP_DIR/
-    fi
-
-    index=`expr $index + 1`
-  done
-else 
-  index=1
-  for nodeIODevice in $nodeIODevices
-  do
-    STORE_DIR=$nodeIODevice/$NODE_STORE
-    NODE_BACKUP_DIR=$BACKUP_DIR/$ASTERIX_INSTANCE_NAME/$BACKUP_ID/$NODE_ID
-
-    # create the backup directory, if it does not exists
-    if [ ! -d $NODE_BACKUP_DIR ];
-    then
-      mkdir -p $NODE_BACKUP_DIR
-    fi
-
-    # copy store directory
-    cp -r $STORE_DIR $NODE_BACKUP_DIR/
-
-    # copy asterix root metadata directory and log directory from the primary(first) iodevice
-    if [ $index -eq 1 ];
-    then
-      cp -r $nodeIODevice/$ASTERIX_ROOT_METADATA_DIR  $NODE_BACKUP_DIR/
-
-      # copy log directory
-      cp -r $TXN_LOG_DIR $NODE_BACKUP_DIR/
-    fi
-
-    index=`expr $index + 1`
-  done
-fi
diff --git a/asterixdb/asterix-events/src/main/resources/events/cc_failure/cc_failure.sh b/asterixdb/asterix-events/src/main/resources/events/cc_failure/cc_failure.sh
deleted file mode 100755
index e8bc326..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/cc_failure/cc_failure.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-
-CC_PARENT_ID=`ps -ef  | grep asterix | grep cc_start | grep -v ssh | awk '{ print $2 }'`
-CC_ID=`ps -ef | grep asterix | grep $CC_PARENT_ID | grep -v bash | awk "\\\$3 == $CC_PARENT_ID { print \\\$2 }"`
-kill -9 $CC_ID
diff --git a/asterixdb/asterix-events/src/main/resources/events/cc_start/cc_start.sh b/asterixdb/asterix-events/src/main/resources/events/cc_start/cc_start.sh
deleted file mode 100755
index 3950547..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/cc_start/cc_start.sh
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-
-if [ ! -d $LOG_DIR ];
-then
-  mkdir -p $LOG_DIR
-fi
-ccArgs='-client-listen-address '$CLIENT_NET_IP
-ccArgs=$ccArgs' -client-listen-port '$CLIENT_NET_PORT
-ccArgs=$ccArgs' -address '$CLUSTER_NET_IP
-ccArgs=$ccArgs' -cluster-listen-port '$CLUSTER_NET_PORT
-ccArgs=$ccArgs' -console-listen-port '$HTTP_PORT
-
-if [ ! -z $HEARTBEAT_PERIOD ]
-then
-ccArgs=$ccArgs' -heartbeat-period '$HEARTBEAT_PERIOD
-fi
-
-if [ ! -z $MAX_HEARTBEAT_LAPSE_PERIODS ]
-then
-ccArgs=$ccArgs' -heartbeat-max-misses '$MAX_HEARTBEAT_LAPSE_PERIODS
-fi
-
-if [ ! -z $PROFILE_DUMP_PERIOD ]
-then
-ccArgs=$ccArgs' -profile-dump-period '$PROFILE_DUMP_PERIOD
-fi
-
-if [ ! -z $JOB_HISTORY_SIZE ]
-then
-ccArgs=$ccArgs' -job-history-size '$JOB_HISTORY_SIZE
-fi
-
-if [ ! -z $RESULT_TIME_TO_LIVE ]
-then
-ccArgs=$ccArgs' -result-ttl '$RESULT_TIME_TO_LIVE
-fi
-
-if [ ! -z $RESULT_SWEEP_THRESHOLD ]
-then
-ccArgs=$ccArgs' -result-sweep-threshold '$RESULT_SWEEP_THRESHOLD
-fi
-
-if [ ! -z $CC_ROOT ]
-then
-ccArgs=$ccArgs' -root-dir '$CC_ROOT
-fi
-cd $WORKING_DIR
-# TODO(mblow): ensure logging configuration is correct here...
-# export JAVA_OPTS="$JAVA_OPTS -Dlog4j.configuration=file:$WORKING_DIR/conf/log4j.properties"
-
-DATE=`date`
-cat <<EOF >> $LOG_DIR/cc.log
---------------------------------------------------------------------------------
-LOG START: $DATE
-JAVA_OPTS: $JAVA_OPTS
---------------------------------------------------------------------------------
-EOF
-$ASTERIX_HOME/bin/asterixcc $ccArgs >> $LOG_DIR/cc.log 2>&1
\ No newline at end of file
diff --git a/asterixdb/asterix-events/src/main/resources/events/events.xml b/asterixdb/asterix-events/src/main/resources/events/events.xml
deleted file mode 100644
index c4f82c4..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/events.xml
+++ /dev/null
@@ -1,138 +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.
- !-->
-<events xmlns="events">
-  <event>
-    <type>node_join</type>
-    <script>node_join/nc_join.sh</script>
-    <description>Creates a NodeController process at a specified location.</description>
-    <args>location_of_cc location(hostname/ip_address) node_controller_id</args>
-    <daemon>true</daemon>
-  </event>
-  <event>
-    <type>node_failure</type>
-    <script>node_failure/nc_failure.sh</script>
-    <description>Kills a NodeController process at a specified location.</description>
-    <args>node_controller_id</args>
-    <daemon>false</daemon>
-  </event>
-  <event>
-    <type>cc_start</type>
-    <script>cc_start/cc_start.sh</script>
-    <description>Starts a ClusterController process at a specified location.</description>
-    <args></args>
-    <daemon>true</daemon>
-  </event>
-  <event>
-    <type>cc_failure</type>
-    <script>cc_failure/cc_failure.sh</script>
-    <description>Kills the Cluster Controller process running at a specified location.</description>
-    <args></args>
-    <daemon>false</daemon>
-  </event>
-  <event>
-    <type>node_restart</type>
-    <script>node_restart/nc_restart.sh</script>
-    <description>Shuts and restarts a NodeControllerProcess after a specified time interval, at a specified location</description>
-    <args>address of cc, node controller id and sleep interval(seconds)</args>
-    <daemon>true</daemon>
-  </event>
-  <event>
-    <type>asterix_deploy</type>
-    <script>asterix_deploy/asterix_deploy.sh</script>
-    <description>Deploys Asterix application on a cluster running hyracks</description>
-    <args>IP address of the node running the hyracks cluster controller</args>
-    <daemon>false</daemon>
-  </event>
-  <event>
-    <type>zookeeper_start</type>
-    <script>zookeeper/start.sh</script>
-    <description>Launches ZooKeeper server process</description>
-    <args>IP address of the ZooKeeper server</args>
-    <daemon>true</daemon>
-  </event>
-  <event>
-    <type>zookeeper_stop</type>
-    <script>zookeeper/stop.sh</script>
-    <description>Terminates ZooKeeper server process</description>
-    <args>IP address of the ZooKeeper server</args>
-    <daemon>false</daemon>
-  </event>
-  <event>
-    <type>file_transfer</type>
-    <script>file/transfer.sh</script>
-    <description>Copies a file on the local file system to a remote node</description>
-    <args>local_source_path destination_node destination_path</args>
-    <daemon>false</daemon>
-  </event>
-  <event>
-    <type>directory_transfer</type>
-    <script>file/dir_transfer.sh</script>
-    <description>Copies a directory (and its contents) on the local file system to a remote node</description>
-    <args>local_source_path destination_node destination_path</args>
-    <daemon>false</daemon>
-  </event>
-  <event>
-    <type>directory_copy</type>
-    <script>file/dir_copy.sh</script>
-    <description>Copies a directory (and its contents) from the remove file system to the local file system</description>
-    <args>destination_node destination_path local_source_path</args>
-    <daemon>false</daemon>
-  </event>
-  <event>
-    <type>file_delete</type>
-    <script>file/delete.sh</script>
-    <description>Deletes a file on the local file system to a remote node</description>
-    <args>destination_node destination_path</args>
-    <daemon>false</daemon>
-  </event>
-  <event>
-    <type>file_create</type>
-    <script>file/create_file.sh</script>
-    <description>Creates a file on the local file system to a remote node</description>
-    <args>destination_node destination_path</args>
-    <daemon>false</daemon>
-  </event>
-  <event>
-    <type>backup</type>
-    <script>backup/backup.sh</script>
-    <description>Takes a backup of an Asterix instance</description>
-    <args>Asterix_data_dir HDFSurl</args>
-    <daemon>false</daemon>
-  </event>
-  <event>
-    <type>restore</type>
-    <script>restore/restore.sh</script>
-    <description>Restores an Asterix instance from a back up</description>
-    <args>Asterix_data_dir HDFSurl</args>
-    <daemon>false</daemon>
-  </event>
-  <event>
-    <type>hdfs_delete</type>
-    <script>hdfs/delete.sh</script>
-    <description>Deletes an HDFS path</description>
-    <args>WorkingDir HadoopVersion HDFSUrl Path_to_Delete</args>
-    <daemon>false</daemon>
-  </event>
-  <event>
-    <type>node_info</type>
-    <script>node_info/node_info.sh</script>
-    <description>Retrieved environment information for a node</description>
-    <daemon>false</daemon>
-  </event>
-</events>
diff --git a/asterixdb/asterix-events/src/main/resources/events/execute.sh b/asterixdb/asterix-events/src/main/resources/events/execute.sh
deleted file mode 100755
index d9ad7b2..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/execute.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-USERNAME=$1
-if [ ! -d $MANAGIX_HOME/logs ];
-then
-   mkdir -p $MANAGIX_HOME/logs
-fi
-LOGDIR=$MANAGIX_HOME/logs
-if [ $DAEMON == "false" ]; then 
-  if [ -z $USERNAME ]
-  then
-    cmd_output=$(ssh $IP_LOCATION "$ENV $SCRIPT $ARGS" 2>&1 >/dev/null) 
-    echo "ssh $IP_LOCATION $ENV $SCRIPT $ARGS" >> $LOGDIR/execute.log
-    echo "$cmd_output"
-  else
-    echo "ssh -l $USERNAME $IP_LOCATION $ENV $SCRIPT $ARGS" >> $LOGDIR/execute.log
-    cmd_output=$(ssh -l $USERNAME $IP_LOCATION "$ENV $SCRIPT $ARGS" 2>&1 >/dev/null) 
-    echo "$cmd_output"
-  fi  
-else 
-  if [ -z $USERNAME ];
-  then
-     echo "ssh $IP_LOCATION $ENV $SCRIPT $ARGS &" >> $LOGDIR/execute.log
-     ssh $IP_LOCATION "$ENV $SCRIPT $ARGS" &
-  else
-     echo "ssh -l $USERNAME $IP_LOCATION $ENV $SCRIPT $ARGS &" >> $LOGDIR/execute.log
-     ssh -l $USERNAME $IP_LOCATION "$ENV $SCRIPT $ARGS" &
-  fi   
-fi
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/create_file.sh b/asterixdb/asterix-events/src/main/resources/events/file/create_file.sh
deleted file mode 100755
index 01aa3c5..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/file/create_file.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-mkdir -p $1
-echo "touch $1/$2" >> ~/file_create.log
-touch $1/$2
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/dir_copy.sh b/asterixdb/asterix-events/src/main/resources/events/file/dir_copy.sh
deleted file mode 100755
index fc1a346..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/file/dir_copy.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-
-USERNAME=$1
-SRC_HOST=$2
-SRC_DIR=$3
-DEST_DIR=$4
-mkdir -p $DEST_DIR
-echo "scp -r $USERNAME@$SRC_HOST:$SRC_DIR $DEST_DIR"
-scp -r $USERNAME@$SRC_HOST:$SRC_DIR $DEST_DIR 
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/dir_transfer.sh b/asterixdb/asterix-events/src/main/resources/events/file/dir_transfer.sh
deleted file mode 100755
index ec16c02..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/file/dir_transfer.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-
-USERNAME=$1
-DIR_TO_TRANSFER=$2
-DEST_HOST=$3
-DEST_DIR=$4
-ssh -l $USERNAME $DEST_HOST "mkdir -p $DEST_DIR"
-echo "scp -r $DIR_TO_TRANSFER $USERNAME@$DEST_HOST:$DEST_DIR/" 
-scp -r $DIR_TO_TRANSFER $USERNAME@$DEST_HOST:$DEST_DIR/
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/transfer.sh b/asterixdb/asterix-events/src/main/resources/events/file/transfer.sh
deleted file mode 100755
index be6add2..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/file/transfer.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-
-
-USERNAME=$1
-FILE_TO_TRANSFER=$2
-DEST_HOST=$3
-DEST_DIR=$4
-POST_ACTION=$5
-ssh -l $USERNAME $DEST_HOST "mkdir -p $DEST_DIR"
-echo "scp $FILE_TO_TRANSFER $USERNAME@$DEST_HOST:$DEST_DIR/" 
-scp $FILE_TO_TRANSFER $USERNAME@$DEST_HOST:$DEST_DIR/
-if [ $POST_ACTION == "unpack" ]
- then 
- filename=`echo ${FILE_TO_TRANSFER##*/}`
- fileType=`echo ${FILE_TO_TRANSFER##*.}`
- if [ $fileType == "tar" ]
- then 
-   echo "ssh -l $USERNAME $DEST_HOST cd $DEST_DIR && tar xf $filename"
-   ssh -l $USERNAME $DEST_HOST "cd $DEST_DIR && tar xf $filename"
- else if [ $fileType == "zip" ]
-   then
-     echo "ssh -l $USERNAME $DEST_HOST unzip -o -q -d $DEST_DIR $DEST_DIR/$filename"
-     ssh -l $USERNAME $DEST_HOST "unzip -o -q -d $DEST_DIR $DEST_DIR/$filename"
-     ssh -l $USERNAME $DEST_HOST "chmod -R 755  $DEST_DIR"
-   fi 
- fi
-fi
diff --git a/asterixdb/asterix-events/src/main/resources/events/hdfs/delete.sh b/asterixdb/asterix-events/src/main/resources/events/hdfs/delete.sh
deleted file mode 100755
index 1098b0c..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/hdfs/delete.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-
-WORKING_DIR=$1
-HADOOP_VERSION=$2
-HDFS_URL=$3
-HDFS_PATH=$4
-export HADOOP_HOME=$WORKING_DIR/hadoop-$HADOOP_VERSION
-echo "$HADOOP_HOME/bin/hadoop fs -rmr $HDFS_URL/$HDFS_PATH"
-$HADOOP_HOME/bin/hadoop fs -rmr $HDFS_URL/$HDFS_PATH
diff --git a/asterixdb/asterix-events/src/main/resources/events/node_failure/nc_failure.sh b/asterixdb/asterix-events/src/main/resources/events/node_failure/nc_failure.sh
deleted file mode 100755
index 50dfb26..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/node_failure/nc_failure.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-
-NC_ID=$1
-
-PARENT_ID=`ps -ef | grep nc_join | grep -v grep | grep -v ssh| grep $NC_ID | head -n 1 | awk '{ print $2 }'`
-PID=`ps -ef |  grep asterix | awk "\\\$3 == $PARENT_ID { print \\\$2 }"`
-kill -15 $PID
-
-cmd_output=$(ps -ef | awk "\\\$3 == $PID {print \\\$2}")
-tries=0
-while [ ${#cmd_output} -ne 0 -a $tries -lt 15 ]
-do
-  sleep 1
-  kill -15 $PID
-  tries=`expr $tries + 1`
-  cmd_output=$(ps -ef | awk "\\\$3 == $PID {print \\\$2}")
-done
-if [ ${#cmd_output} -ne 0 ];
-then
-  kill -9 $PID
-fi
\ No newline at end of file
diff --git a/asterixdb/asterix-events/src/main/resources/events/node_info/node_info.sh b/asterixdb/asterix-events/src/main/resources/events/node_info/node_info.sh
deleted file mode 100755
index de2f320..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/node_info/node_info.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-
-
-JAVA_VERSION=`java -version 2>&1 |awk 'NR==1{ gsub(/"/,""); print $3 }'`
-echo "java_version=$JAVA_VERSION" 1>&2
diff --git a/asterixdb/asterix-events/src/main/resources/events/node_join/nc_join.sh b/asterixdb/asterix-events/src/main/resources/events/node_join/nc_join.sh
deleted file mode 100755
index 626739a..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/node_join/nc_join.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-
-CC_HOST=$1
-NC_ID=$2
-IO_DEVICES=$3
-INITIAL_RUN_FLAG=$4
-if [ ! -d $LOG_DIR ];
-then
-  mkdir -p $LOG_DIR
-fi
-
-cd $WORKING_DIR
-
-DATE=`date`
-cat <<EOF >> $LOG_DIR/${NC_ID}.log
---------------------------------------------------------------------------------
-LOG START: $DATE
-JAVA_OPTS: $JAVA_OPTS
---------------------------------------------------------------------------------
-EOF
-$ASTERIX_HOME/bin/asterixnc -node-id $NC_ID -cluster-address $CC_HOST -cluster-port $CLUSTER_NET_PORT  -address $IP_LOCATION  -data-listen-address $IP_LOCATION -iodevices $IO_DEVICES -result-listen-address $IP_LOCATION $INITIAL_RUN_FLAG >> $LOG_DIR/${NC_ID}.log 2>&1
diff --git a/asterixdb/asterix-events/src/main/resources/events/node_restart/nc_restart.sh b/asterixdb/asterix-events/src/main/resources/events/node_restart/nc_restart.sh
deleted file mode 100755
index 521b402..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/node_restart/nc_restart.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-
-CC_HOST=$1
-NC_ID=$2
-SLEEP_TIME=$3
-
-if [ $NC_ID == 'ANY' ]
-then
-  NC_ID="."
-  PARENT_ID=`ps -ej | tr -s " " | grep nc_join | grep -v grep | grep -v ssh | awk '{ print $2 }' | head -n 1`
-  PARENT_PROCESS_ENTRY=`ps -ef | grep $PARENT_ID | grep -v grep   | head -n 1`
-  NC_ID=`echo ${PARENT_PROCESS_ENTRY##* }`
-  echo "NCid is $NC_ID" >> ~/try.txt
-else
-  PARENT_ID=`ps -ej | tr -s " " | grep nc_join | grep -v grep | grep -v ssh | grep $NC_ID | awk '{ print $2 }' | head -n 1`
-fi
-
-PID=`ps -ej | tr -s " " | grep hyracks | grep -v grep | grep -v nc_join | awk "\\\$3 == $PARENT_ID { print \\\$2 }" | head -n 1`
-kill -9 $PID
-
-sleep $3
-
-$HYRACKS_HOME/hyracks-server/target/hyracks-server-0.2.2-SNAPSHOT-binary-assembly/bin/hyracksnc -node-id $NC_ID -cluster-address $CC_HOST -cluster-port 1099 -address $IP_LOCATION  -data-listen-address $IP_LOCATION
diff --git a/asterixdb/asterix-events/src/main/resources/events/prepare.sh b/asterixdb/asterix-events/src/main/resources/events/prepare.sh
deleted file mode 100755
index 6edd950..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/prepare.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-# 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.
diff --git a/asterixdb/asterix-events/src/main/resources/events/restore/restore.sh b/asterixdb/asterix-events/src/main/resources/events/restore/restore.sh
deleted file mode 100755
index 6ba59da..0000000
--- a/asterixdb/asterix-events/src/main/resources/events/restore/restore.sh
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-
-WORKING_DIR=$1
-ASTERIX_INSTANCE_NAME=$2
-ASTERIX_IODEVICES=$3
-NODE_STORE=$4
-ASTERIX_ROOT_METADATA_DIR=$5
-TXN_LOG_DIR=$6
-BACKUP_ID=$7
-BACKUP_DIR=$8
-BACKUP_TYPE=$9
-NODE_ID=${10}
-HDFS_URL=${11}
-HADOOP_VERSION=${12}
-HADOOP_HOME=$WORKING_DIR/hadoop-$HADOOP_VERSION
-
-iodevices=$(echo $ASTERIX_IODEVICES | tr "," "\n")
-
-index=1
-for iodevice in $iodevices
-do
-  NODE_BACKUP_DIR=$BACKUP_DIR/$ASTERIX_INSTANCE_NAME/$BACKUP_ID/$NODE_ID
-
-  # remove the existing store directory
-  STORE_DIR=$iodevice/$NODE_STORE
-
-  # if STORE_DIR ends with a /, remove it
-  if [ ${STORE_DIR:${#STORE_DIR}-1} == "/" ];
-  then
-    STORE_DIR=${STORE_DIR:0:${#STORE_DIR}-1}
-  fi
-
-  DEST_STORE_DIR=${STORE_DIR%/*}
-  SOURCE_STORE_DIR=${NODE_STORE##*/}
-  rm -rf $DEST_STORE_DIR/$SOURCE_STORE_DIR
-
-  # remove the existing log directory
-  DEST_LOG_DIR=$TXN_LOG_DIR
-  rm -rf $DEST_LOG_DIR/*
-  TXN_LOG_DIR_NAME=${TXN_LOG_DIR%/*}
-
-  # remove the existing asterix metadata directory
-  rm -rf $iodevice/$ASTERIX_ROOT_METADATA_DIR
-
-  if [ $BACKUP_TYPE == "hdfs" ];
-  then
-      # RESTORE FROM HDFS BACKUP
-
-      # copy store directory
-      $HADOOP_HOME/bin/hadoop fs -copyToLocal $HDFS_URL/$NODE_BACKUP_DIR/$SOURCE_STORE_DIR  $DEST_STORE_DIR/ 
-
-      # copy asterix metadata root directory and txn log directory
-      if [ $index -eq 1 ];
-      then
-        $HADOOP_HOME/bin/hadoop fs -copyToLocal $HDFS_URL/$NODE_BACKUP_DIR/$ASTERIX_ROOT_METADATA_DIR $iodevice/
-
-        # copy transaction logs directory
-        $HADOOP_HOME/bin/hadoop fs -copyToLocal $HDFS_URL/$NODE_BACKUP_DIR/$TXN_LOG_DIR_NAME $$TXN_LOG_DIR/
-      fi
-
-  else
-
-      # RESTORE FROM LOCAL BACKUP
-      # copy store directory
-      cp  -r $NODE_BACKUP_DIR/$SOURCE_STORE_DIR  $DEST_STORE_DIR/ 
-
-      # copy asterix metadata root directory and txn log directory
-      if [ $index -eq 1 ];
-      then
-        cp -r $NODE_BACKUP_DIR/$ASTERIX_ROOT_METADATA_DIR $iodevice/
-
-        # copy transaction logs directory
-        cp -r $NODE_BACKUP_DIR/$TXN_LOG_DIR_NAME $TXN_LOG_DIR/
-      fi
-
-  fi
-  index=`expr $index + 1`
-done
diff --git a/asterixdb/asterix-events/src/main/resources/schema/event.xsd b/asterixdb/asterix-events/src/main/resources/schema/event.xsd
deleted file mode 100644
index 146c351..0000000
--- a/asterixdb/asterix-events/src/main/resources/schema/event.xsd
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-
-<!--
- ! 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.
- !-->
-
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:es="events" targetNamespace="events" elementFormDefault="qualified">
-
-<!-- definition of simple types --> 
-<xs:element name="script" type="xs:string"/>
-<xs:element name="type" type="xs:string"/>
-<xs:element name="description" type="xs:string"/>
-<xs:element name="args" type="xs:string"/>
-<xs:element name="daemon" type="xs:boolean"/>
-
-<!-- definition of complex elements -->
-
-<xs:element name="event">
-  <xs:complexType>
-    <xs:sequence>
-      <xs:element ref="es:type"/>
-      <xs:element ref="es:script"/>
-      <xs:element ref="es:description"/>
-      <xs:element ref="es:args"/>
-      <xs:element ref="es:daemon"/>
-    </xs:sequence>
-  </xs:complexType>
-</xs:element>
-
-<xs:element name="events">
-  <xs:complexType>
-    <xs:sequence>
-      <xs:element ref="es:event" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-</xs:element>
- 
-</xs:schema>     
diff --git a/asterixdb/asterix-events/src/main/resources/schema/installer-conf.xsd b/asterixdb/asterix-events/src/main/resources/schema/installer-conf.xsd
deleted file mode 100644
index e5bc3ed..0000000
--- a/asterixdb/asterix-events/src/main/resources/schema/installer-conf.xsd
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-
-<!--
- ! 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.
- !-->
-
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-  xmlns:mg="installer" targetNamespace="installer" elementFormDefault="qualified">
-
-  <!-- definition of simple types -->
-  <xs:element name="configured" type="xs:boolean" />
-  <xs:element name="asterix_home" type="xs:string" />
-  <xs:element name="hyracks_home" type="xs:string" />
-  <xs:element name="hdfsurl" type="xs:string" />
-  <xs:element name="server" type="xs:string" />
-  <xs:element name="clientPort" type="xs:integer" />
-  <xs:element name="homeDir" type="xs:string" />
-  <xs:element name="version" type="xs:string" />
-  <xs:element name="url" type="xs:string" />
-  <xs:element name="backupDir" type="xs:string" />
-  <xs:element name="java_home" type="xs:string" />
-
-  <!-- definition of complex elements -->
-  <xs:element name="hdfs">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="mg:version" />
-        <xs:element ref="mg:url" />
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="backup">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="mg:hdfs" minOccurs="0" />
-        <xs:element ref="mg:backupDir" />
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="zookeeper">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="mg:homeDir" />
-        <xs:element ref="mg:clientPort" />
-        <xs:element ref="mg:servers" />
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="servers">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="mg:java_home" />
-        <xs:element ref="mg:server" maxOccurs="unbounded" />
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="configuration">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="mg:configured" minOccurs="1" />
-        <xs:element ref="mg:backup" minOccurs="0" />
-        <xs:element ref="mg:zookeeper" minOccurs="1" />
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-
-</xs:schema>     
diff --git a/asterixdb/asterix-events/src/main/resources/schema/jaxb-bindings.xjb b/asterixdb/asterix-events/src/main/resources/schema/jaxb-bindings.xjb
deleted file mode 100644
index 0b191a6..0000000
--- a/asterixdb/asterix-events/src/main/resources/schema/jaxb-bindings.xjb
+++ /dev/null
@@ -1,28 +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.
- !-->
-
-<jxb:bindings version="1.0"
-xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
-<jxb:globalBindings>
-  <jxb:serializable uid="1"/>
-</jxb:globalBindings>
-
-</jxb:bindings>
diff --git a/asterixdb/asterix-events/src/main/resources/schema/pattern.xsd b/asterixdb/asterix-events/src/main/resources/schema/pattern.xsd
deleted file mode 100644
index c087374..0000000
--- a/asterixdb/asterix-events/src/main/resources/schema/pattern.xsd
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-
-<!--
- ! 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.
- !-->
-
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:eg="patterns" targetNamespace="patterns">
-
-
-<!-- definition of simple types --> 
-<xs:element name="maxOccurs" type = "xs:int"/> 
-<xs:element name="pargs" type="xs:string"/>
-<xs:element name="absvalue" type="xs:string"/>
-<xs:element name="unit" type="xs:string"/>
-<xs:element name="type" type="xs:string"/>
-<xs:element name="min" type="xs:string"/>
-<xs:element name="max" type="xs:string"/>
-<xs:element name="abs" type="xs:string"/>
-<xs:element name="set" type="xs:string"/>
-<xs:element name="exclude" type="xs:string"/>
-<xs:element name="reuse" type="xs:boolean"/>
-<!-- definition of attributes -->
-
-<!-- definition of complex elements -->
-
-<xs:element name="range">
-  <xs:complexType>
-    <xs:sequence>
-     <xs:element ref="eg:set"/>
-     <xs:element ref="eg:exclude" minOccurs="0"/>
-     <xs:element ref="eg:reuse" minOccurs="0"/>
-    </xs:sequence>
-  </xs:complexType>
-</xs:element>
-
-<xs:element name="minmax">
-  <xs:complexType>
-    <xs:sequence>
-      <xs:element ref="eg:min"/>
-      <xs:element ref="eg:max"/>
-    </xs:sequence>
-  </xs:complexType>
-</xs:element>
-
-
-<xs:element name="random">
-  <xs:complexType>
-    <xs:sequence>
-       <xs:element ref="eg:minmax" minOccurs="0"/>
-       <xs:element ref="eg:range" minOccurs="0"/>
-    </xs:sequence>
-  </xs:complexType>
-</xs:element>
-
-<xs:element name="value">
-  <xs:complexType>
-    <xs:sequence>
-      <xs:element ref="eg:random" minOccurs="0"/>
-      <xs:element ref="eg:absvalue" minOccurs="0"/>
-    </xs:sequence>
-  </xs:complexType>
-</xs:element>
-
-<xs:element name="nodeid">
-  <xs:complexType>
-    <xs:sequence>
-      <xs:element ref="eg:value"/>
-    </xs:sequence>
-  </xs:complexType>
-</xs:element>
-
-<xs:element name="period">
-  <xs:complexType>
-    <xs:sequence>
-      <xs:element ref="eg:absvalue"/>
-      <xs:element ref="eg:unit"/>
-    </xs:sequence>   
-  </xs:complexType>
-</xs:element>    
-
-<xs:element name="delay">
-  <xs:complexType>
-    <xs:sequence>
-      <xs:element ref="eg:value"/>
-      <xs:element ref="eg:unit"/>
-    </xs:sequence>   
-  </xs:complexType>
-</xs:element>    
-
-<xs:element name="event">
-  <xs:complexType>
-    <xs:sequence>
-      <xs:element ref="eg:type"/>
-      <xs:element ref="eg:nodeid"/>
-      <xs:element ref="eg:pargs"/>
-    </xs:sequence>
-  </xs:complexType>
-</xs:element>
- 
-<xs:element name="pattern">
-  <xs:complexType>
-    <xs:sequence>
-      <xs:element ref="eg:delay"/>
-      <xs:element ref="eg:maxOccurs" maxOccurs="1" minOccurs="0"/>
-      <xs:element ref="eg:period"/>
-      <xs:element ref="eg:event"/>
-    </xs:sequence>
-  </xs:complexType>
-</xs:element>
-
-<xs:element name="patterns">
-  <xs:complexType>
-    <xs:sequence>
-      <xs:element ref="eg:pattern" maxOccurs="unbounded"/>
-    </xs:sequence>
-  </xs:complexType>
-</xs:element>
-
-</xs:schema>     
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/execute.sh b/asterixdb/asterix-events/src/main/resources/scripts/execute.sh
deleted file mode 100755
index ed3a0f3..0000000
--- a/asterixdb/asterix-events/src/main/resources/scripts/execute.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-USERNAME=$1
-if [ ! -d $MANAGIX_HOME/logs ];
-then
-   mkdir -p $MANAGIX_HOME/logs
-fi
-LOGDIR=$MANAGIX_HOME/logs
-if [ $DAEMON == "false" ]; then 
-  if [ -z $USERNAME ]
-  then
-    cmd_output=$(ssh $IP_LOCATION "$ENV $SCRIPT $ARGS" 2>&1 >/dev/null) 
-    echo "ssh $IP_LOCATION $ENV $SCRIPT $ARGS" >> $LOGDIR/execute.log
-    echo "$cmd_output"
-  else
-    echo "ssh -l $USERNAME $IP_LOCATION $ENV $SCRIPT $ARGS" >> $LOGDIR/execute.log
-    cmd_output=$(ssh -l $USERNAME $IP_LOCATION "$ENV $SCRIPT $ARGS" 2>&1 >/dev/null) 
-    echo "$cmd_output"
-  fi  
-else 
-  if [ -z $USERNAME ];
-  then
-     echo "ssh $IP_LOCATION $ENV $SCRIPT $ARGS &" >> $LOGDIR/execute.log
-     ssh $IP_LOCATION "$ENV $SCRIPT $ARGS" &
-  else
-     echo "ssh -l $USERNAME $IP_LOCATION $ENV $SCRIPT $ARGS &" >> $LOGDIR/execute.log
-     ssh -l $USERNAME $IP_LOCATION "$ENV $SCRIPT $ARGS" &
-  fi   
-fi
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/provider/StreamRecordReaderProvider.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/provider/StreamRecordReaderProvider.java
index d6df81d..701d0f2 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/provider/StreamRecordReaderProvider.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/provider/StreamRecordReaderProvider.java
@@ -32,7 +32,6 @@
 
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.exceptions.ErrorCode;
-import org.apache.asterix.external.api.AsterixInputStream;
 import org.apache.asterix.external.input.record.reader.stream.StreamRecordReader;
 import org.apache.asterix.external.util.ExternalDataConstants;
 import org.apache.commons.io.IOUtils;
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
index dc8a8aa..8481064 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedUtils.java
@@ -24,6 +24,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.apache.asterix.common.api.IClusterManagementWork;
 import org.apache.asterix.common.cluster.ClusterPartition;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.exceptions.AsterixException;
diff --git a/asterixdb/asterix-installer/pom.xml b/asterixdb/asterix-installer/pom.xml
index ff5b8c4..893e0e9 100644
--- a/asterixdb/asterix-installer/pom.xml
+++ b/asterixdb/asterix-installer/pom.xml
@@ -26,11 +26,6 @@
   <artifactId>asterix-installer</artifactId>
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <appendedResourcesDirectory>${basedir}/src/main/appended-resources</appendedResourcesDirectory>
-
-    <failsafe.test.excludes>**/DmlRecoveryIT.java</failsafe.test.excludes>
-    <cluster.test.excludes>**/AsterixClusterLifeCycleIT.java</cluster.test.excludes>
-    <cluster.extest.excludes>**/ClusterExecutionIT.java</cluster.extest.excludes>
   </properties>
 
   <licenses>
@@ -42,509 +37,4 @@
     </license>
   </licenses>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.hyracks</groupId>
-        <artifactId>license-automation-plugin</artifactId>
-        <executions>
-          <execution>
-            <phase>generate-resources</phase>
-            <goals>
-              <!--<goal>licensedownload</goal>-->
-              <goal>generate</goal>
-            </goals>
-          </execution>
-        </executions>
-        <configuration>
-          <templateRootDir>${basedir}/../src/main/licenses/templates</templateRootDir>
-          <generatedFiles>
-            <generatedFile>
-              <template>asterix-license.ftl</template>
-              <outputFile>LICENSE</outputFile>
-            </generatedFile>
-            <generatedFile>
-              <template>asterix-notice.ftl</template>
-              <outputFile>NOTICE</outputFile>
-            </generatedFile>
-          </generatedFiles>
-          <location>repo/</location>
-          <timeoutSecs>10</timeoutSecs>
-          <extraLicenseMaps>
-            <extraLicenseMap>
-              <file>${basedir}/../asterix-server/target/generated-resources/license_map.json</file>
-              <location>asterix/asterix-server-${project.version}-binary-assembly.zip::repo/</location>
-            </extraLicenseMap>
-          </extraLicenseMaps>
-          <models>
-            <model>${basedir}/../src/main/appended-resources/supplemental-models.xml</model>
-          </models>
-          <downloadDir>${project.build.directory}/generated-resources/license</downloadDir>
-          <excludedScopes>
-            <excludedScope>test</excludedScope>
-          </excludedScopes>
-          <excludes>
-            <exclude>org.apache.asterix:*</exclude>
-            <exclude>org.apache.algebricks:*</exclude>
-            <exclude>org.apache.hyracks:*</exclude>
-          </excludes>
-          <licenseDirectory>${basedir}/../src/main/licenses/content</licenseDirectory>
-          <dependencySets>
-            <dependencySet>
-              <includes>
-                <!-- NOTE! Any changes here must be mirrored in src/main/assembly/binary-assembly.xml -->
-                <include>log4j:log4j</include>
-                <include>org.apache.asterix:asterix-events</include>
-                <include>org.apache.asterix:asterix-common</include>
-                <include>org.apache.commons:commons-lang3</include>
-                <include>org.apache.zookeeper:zookeeper</include>
-                <include>args4j:args4j</include>
-                <include>log4j:log4j</include>
-                <include>commons-io:commons-io</include>
-                <include>org.slf4j:slf4j-api</include>
-                <include>org.slf4j:slf4j-log4j12</include>
-              </includes>
-              <location>lib</location>
-            </dependencySet>
-            <dependencySet>
-              <includes>
-                <!-- NOTE! Any changes here must be mirrored in src/main/assembly/binary-assembly.xml -->
-                <include>commons-cli:commons-cli</include>
-                <include>commons-logging:commons-logging</include>
-              </includes>
-              <location>.installer/hadoop-0.20.2/lib</location>
-            </dependencySet>
-            <dependencySet>
-              <includes>
-                <!-- NOTE! Any changes here must be mirrored in src/main/assembly/binary-assembly.xml -->
-                <include>org.apache.zookeeper:zookeeper</include>
-                <include>log4j:log4j</include>
-                <include>org.slf4j:slf4j-api</include>
-              </includes>
-              <location>.installer/zookeeper/lib</location>
-            </dependencySet>
-          </dependencySets>
-          <overrides>
-            <override>
-              <gav>org.apache.zookeeper:zookeeper:3.4.5</gav>
-              <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            </override>
-          </overrides>
-          <templateProperties>
-            <packageName>Apache AsterixDB Managix Install</packageName>
-            <asterixAppLocation>repo/asterix-app-${project.version}.jar, within asterix/asterix-server-${project.version}-binary-assembly.zip</asterixAppLocation>
-            <hyracksControlCcLocation>repo/hyracks-control-cc-${project.version}.jar, within asterix/asterix-server-${project.version}-binary-assembly.zip</hyracksControlCcLocation>
-            <hivecompatLocation>repo/asterix-hivecompat-${project.version}.jar, within asterix/asterix-server-${project.version}-binary-assembly.zip</hivecompatLocation>
-          </templateProperties>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.jvnet.jaxb2.maven2</groupId>
-        <artifactId>maven-jaxb2-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>configuration</id>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-            <configuration>
-              <args>
-                <arg>-Xsetters</arg>
-                <arg>-Xvalue-constructor</arg>
-              </args>
-              <plugins>
-                <plugin>
-                  <groupId>org.jvnet.jaxb2_commons</groupId>
-                  <artifactId>jaxb2-basics</artifactId>
-                  <version>0.6.2</version>
-                </plugin>
-                <plugin>
-                  <groupId>org.jvnet.jaxb2_commons</groupId>
-                  <artifactId>jaxb2-value-constructor</artifactId>
-                  <version>3.0</version>
-                </plugin>
-              </plugins>
-              <schemaDirectory>src/main/resources/schema</schemaDirectory>
-              <schemaIncludes>
-                <include>installer-conf.xsd</include>
-              </schemaIncludes>
-              <generatePackage>org.apache.asterix.installer.schema.conf</generatePackage>
-              <generateDirectory>${project.build.directory}/generated-sources/configuration</generateDirectory>
-            </configuration>
-          </execution>
-          <execution>
-            <id>cluster</id>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-            <configuration>
-              <schemaDirectory>src/main/resources/schema</schemaDirectory>
-              <schemaIncludes>
-                <include>cluster.xsd</include>
-              </schemaIncludes>
-              <generatePackage>org.apache.asterix.installer.schema.cluster</generatePackage>
-              <bindingDirectory>src/main/resources/schema</bindingDirectory>
-              <bindingIncludes>
-                <bindingInclude>jaxb-bindings.xjb</bindingInclude>
-              </bindingIncludes>
-              <generateDirectory>${project.build.directory}/generated-sources/cluster</generateDirectory>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <executions>
-          <execution>
-            <configuration>
-              <descriptors>
-                <descriptor>src/main/assembly/binary-assembly.xml</descriptor>
-              </descriptors>
-            </configuration>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-resources-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>copy-test-data</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>copy-resources</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>target/data</outputDirectory>
-              <overwrite>true</overwrite>
-              <resources>
-                <resource>
-                  <directory>../asterix-app/data/external-parser</directory>
-                  <includes>
-                    <include>jobads.new</include>
-                  </includes>
-                </resource>
-              </resources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>copy-external-testlib</id>
-            <phase>pre-integration-test</phase>
-            <goals>
-              <goal>copy-dependencies</goal>
-            </goals>
-            <configuration>
-              <includeClassifiers>testlib</includeClassifiers>
-              <outputDirectory>target/resources/externallib</outputDirectory>
-              <stripVersion>true</stripVersion>
-              <overWriteIfNewer>true</overWriteIfNewer>
-            </configuration>
-          </execution>
-        </executions>
-        <configuration>
-          <usedDependencies combine.children="append">
-            <usedDependency>org.apache.asterix:asterix-server</usedDependency>
-            <usedDependency>org.apache.hadoop:hadoop-common</usedDependency>
-            <usedDependency>org.apache.hadoop:hadoop-hdfs</usedDependency>
-            <usedDependency>org.apache.hadoop:hadoop-minicluster</usedDependency>
-            <usedDependency>org.apache.zookeeper:zookeeper</usedDependency>
-          </usedDependencies>
-          <ignoredUnusedDeclaredDependencies>
-            <ignoredUnusedDeclaredDependency>org.apache.asterix:asterix-external-data:zip:*</ignoredUnusedDeclaredDependency>
-            <ignoredUnusedDeclaredDependency>org.apache.asterix:asterix-external-data:test-jar:*</ignoredUnusedDeclaredDependency>
-          </ignoredUnusedDeclaredDependencies>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <configuration>
-          <licenses combine.children="append">
-            <license implementation="org.apache.rat.analysis.license.MITLicense"/>
-            <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-              <licenseFamilyCategory>MIT</licenseFamilyCategory>
-              <licenseFamilyName>JQuery</licenseFamilyName>
-              <patterns>(c) jQuery Foundation | jquery.org/license</patterns>
-            </license>
-            <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-              <licenseFamilyCategory>MIT</licenseFamilyCategory>
-              <licenseFamilyName>Bootstrap</licenseFamilyName>
-              <patterns>Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)</patterns>
-            </license>
-            <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-              <licenseFamilyCategory>MIT</licenseFamilyCategory>
-              <licenseFamilyName>AngularJS</licenseFamilyName>
-              <patterns>http://angularjs.org | (c) 2010-2016 Google, Inc. | License: MIT</patterns>
-            </license>
-          </licenses>
-          <licenseFamilies combine.children="append">
-            <licenseFamily implementation="org.apache.rat.license.MITLicenseFamily"/>
-            <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
-              <familyName>JQuery</familyName>
-            </licenseFamily>
-            <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
-              <familyName>Bootstrap</familyName>
-            </licenseFamily>
-            <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
-              <familyName>AngularJS</familyName>
-            </licenseFamily>
-          </licenseFamilies>
-          <excludes combine.children="append">
-            <exclude>src/test/resources/clusterts/id_rsa</exclude>
-            <exclude>src/test/resources/clusterts/id_rsa.pub</exclude>
-            <exclude>src/test/resources/clusterts/known_hosts</exclude>
-            <exclude>src/test/resources/docker/id_rsa</exclude>
-            <exclude>src/test/resources/docker/id_rsa.pub</exclude>
-            <exclude>src/test/resources/transactionts/results/query_after_restart/big_object_20M/big_object_20M.1.adm.template</exclude>
-            <exclude>src/test/resources/integrationts/restart/tweets.json</exclude> <!-- https://issues.apache.org/jira/browse/ASTERIXDB-1850 -->
-          </excludes>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-failsafe-plugin</artifactId>
-        <configuration>
-          <excludes combine.children="append">
-            <exclude>${failsafe.test.excludes}</exclude>
-            <exclude>${cluster.test.excludes}</exclude>
-            <exclude>${cluster.extest.excludes}</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-    </plugins>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.eclipse.m2e</groupId>
-          <artifactId>lifecycle-mapping</artifactId>
-          <version>1.0.0</version>
-          <configuration>
-            <lifecycleMappingMetadata>
-              <pluginExecutions>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.apache.hyracks</groupId>
-                    <artifactId>license-automation-plugin</artifactId>
-                    <versionRange>[0.0,)</versionRange>
-                    <goals>
-                      <goal>generate</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore />
-                  </action>
-                </pluginExecution>
-              </pluginExecutions>
-            </lifecycleMappingMetadata>
-          </configuration>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-  </build>
-
-  <profiles>
-    <profile>
-      <id>cluster-tests</id>
-      <activation>
-        <activeByDefault>false</activeByDefault>
-        <property>
-          <name>clusterTest</name>
-          <value>true</value>
-        </property>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>net.ju-n.maven.plugins</groupId>
-            <artifactId>vagrant-maven-plugin</artifactId>
-            <version>1.1.0-SNAPSHOT</version>
-            <executions>
-
-              <!-- Before tests: import box, start VM -->
-              <execution>
-                <id>setup-and-start-vagrant-vm</id>
-                <phase>pre-integration-test</phase>
-                <goals>
-                  <goal>up</goal>
-                </goals>
-                <configuration>
-                  <box>chef/centos-6.5</box>
-                  <url>https://vagrantcloud.com/chef/centos-6.5</url>
-                  <vagrantHome>${project.basedir}/src/test/resources/clusterts</vagrantHome>
-                </configuration>
-              </execution>
-
-              <!-- After tests: shut down, destroy VM -->
-              <execution>
-                <id>destroy-vagrant-vm</id>
-                <phase>post-integration-test</phase>
-                <goals>
-                  <goal>destroy</goal>
-                </goals>
-                <configuration>
-                  <box>chef/centos-6.5</box>
-                  <url>https://vagrantcloud.com/chef/centos-6.5</url>
-                  <vagrantHome>${project.basedir}/src/test/resources/clusterts</vagrantHome>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-failsafe-plugin</artifactId>
-            <configuration>
-              <runOrder>alphabetical</runOrder>
-              <forkMode>pertest</forkMode>
-              <excludes>
-                <exclude>${failsafe.test.excludes}</exclude>
-                <exclude>${cluster.test.excludes}</exclude>
-                <exclude>${cluster.extest.excludes}</exclude>
-              </excludes>
-            </configuration>
-            <executions>
-              <execution>
-                <goals>
-                  <goal>integration-test</goal>
-                  <goal>verify</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-
-  <dependencies>
-    <dependency>
-      <groupId>args4j</groupId>
-      <artifactId>args4j</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.zookeeper</groupId>
-      <artifactId>zookeeper</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-events</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-common</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-app</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-server</artifactId>
-      <version>${project.version}</version>
-      <type>zip</type>
-      <classifier>binary-assembly</classifier>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-external-data</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-test-framework</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-common</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-minicluster</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-utils</artifactId>
-      <version>3.0.20</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-external-data</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-common</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>javax.xml.bind</groupId>
-      <artifactId>jaxb-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hyracks</groupId>
-      <artifactId>hyracks-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-hdfs</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hyracks</groupId>
-      <artifactId>hyracks-util</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-server</artifactId>
-      <type>test-jar</type>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-external-data</artifactId>
-      <version>${project.version}</version>
-      <type>zip</type>
-      <classifier>testlib</classifier>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
 </project>
diff --git a/asterixdb/asterix-installer/src/main/assembly/binary-assembly.xml b/asterixdb/asterix-installer/src/main/assembly/binary-assembly.xml
deleted file mode 100644
index d53593a..0000000
--- a/asterixdb/asterix-installer/src/main/assembly/binary-assembly.xml
+++ /dev/null
@@ -1,147 +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.
- !-->
-<assembly>
-  <id>binary-assembly</id>
-  <formats>
-    <format>zip</format>
-    <format>dir</format>
-  </formats>
-  <includeBaseDirectory>false</includeBaseDirectory>
-  <fileSets>
-    <fileSet>
-      <directory>src/main/resources/conf</directory>
-      <outputDirectory>conf</outputDirectory>
-    </fileSet>
-    <fileSet>
-      <directory>src/main/resources/clusters</directory>
-      <outputDirectory>clusters</outputDirectory>
-    </fileSet>
-    <fileSet>
-      <directory>src/main/resources/examples</directory>
-      <outputDirectory>examples</outputDirectory>
-    </fileSet>
-    <fileSet>
-      <directory>src/main/resources/zookeeper</directory>
-      <fileMode>0755</fileMode>
-      <outputDirectory>.installer/zookeeper/bin</outputDirectory>
-    </fileSet>
-    <fileSet>
-      <directory>src/main/resources/scripts</directory>
-      <fileMode>0755</fileMode>
-      <includes>
-        <include>managix</include>
-      </includes>
-      <outputDirectory>bin</outputDirectory>
-    </fileSet>
-    <fileSet>
-      <directory>src/main/resources/scripts</directory>
-      <fileMode>0755</fileMode>
-      <excludes>
-        <exclude>managix</exclude>
-      </excludes>
-      <outputDirectory>.installer/scripts</outputDirectory>
-    </fileSet>
-    <fileSet>
-      <directory>src/main/resources/hadoop-0.20.2</directory>
-      <outputDirectory>.installer/hadoop-0.20.2</outputDirectory>
-      <fileMode>0755</fileMode>
-    </fileSet>
-    <fileSet>
-      <directory>target</directory>
-      <outputDirectory>lib</outputDirectory>
-      <includes>
-        <include>*.jar</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>target/generated-sources</directory>
-      <outputDirectory>.</outputDirectory>
-      <includes>
-        <include>LICENSE*</include>
-        <include>NOTICE*</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>../asterix-events/src/main/resources/events</directory>
-      <outputDirectory>.installer/events</outputDirectory>
-      <fileMode>0755</fileMode>
-    </fileSet>
-  </fileSets>
-  <dependencySets>
-    <dependencySet>
-      <includes>
-        <!-- NOTE! Any changes here must be mirrored in asterix-installer pom.xml for licensegen -->
-        <include>log4j:log4j</include>
-        <include>org.apache.asterix:asterix-events</include>
-        <include>org.apache.asterix:asterix-common</include>
-        <include>org.apache.commons:commons-lang3</include>
-        <include>org.apache.zookeeper:zookeeper</include>
-        <include>args4j:args4j</include>
-        <include>log4j:log4j</include>
-        <include>commons-io:commons-io</include>
-        <include>org.slf4j:slf4j-api</include>
-        <include>org.slf4j:slf4j-log4j12</include>
-      </includes>
-      <unpack>false</unpack>
-      <outputDirectory>lib</outputDirectory>
-    </dependencySet>
-    <dependencySet>
-      <includes>
-        <!-- NOTE! Any changes here must be mirrored in asterix-installer pom.xml for licensegen -->
-        <include>commons-cli:commons-cli</include>
-        <include>commons-logging:commons-logging</include>
-      </includes>
-      <unpack>false</unpack>
-      <outputDirectory>.installer/hadoop-0.20.2/lib</outputDirectory>
-    </dependencySet>
-    <dependencySet>
-      <includes>
-        <!-- NOTE! Any changes here must be mirrored in asterix-installer pom.xml for licensegen -->
-        <include>org.apache.zookeeper:zookeeper</include>
-        <include>log4j:log4j</include>
-        <include>org.slf4j:slf4j-api</include>
-      </includes>
-      <unpack>false</unpack>
-      <outputDirectory>.installer/zookeeper/lib</outputDirectory>
-    </dependencySet>
-    <dependencySet>
-      <outputDirectory>asterix</outputDirectory>
-      <includes>
-        <include>org.apache.asterix:asterix-server*</include>
-      </includes>
-      <useTransitiveDependencies>false</useTransitiveDependencies>
-    </dependencySet>
-    <dependencySet>
-      <outputDirectory>.installer/events</outputDirectory>
-      <includes>
-        <include>org.apache.asterix:asterix-events*</include>
-      </includes>
-      <unpack>false</unpack>
-      <useTransitiveDependencies>false</useTransitiveDependencies>
-    </dependencySet>
-    <dependencySet>
-      <outputDirectory>extlibs</outputDirectory>
-      <includes>
-        <include>org.apache.asterix:asterix-external-data:*:zip</include>
-      </includes>
-      <unpack>false</unpack>
-      <useTransitiveDependencies>false</useTransitiveDependencies>
-    </dependencySet>
-  </dependencySets>
-</assembly>
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/AbstractCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/AbstractCommand.java
deleted file mode 100644
index 4ce37bd..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/AbstractCommand.java
+++ /dev/null
@@ -1,46 +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.installer.command;
-
-import org.apache.log4j.Logger;
-import org.kohsuke.args4j.CmdLineParser;
-
-public abstract class AbstractCommand implements ICommand {
-
-    protected static final Logger LOGGER = Logger.getLogger(AbstractCommand.class.getName());
-
-    protected CommandConfig config;
-
-    protected String usageDescription;
-
-    public void execute(String[] args) throws Exception {
-        String[] cmdArgs = new String[args.length - 1];
-        System.arraycopy(args, 1, cmdArgs, 0, cmdArgs.length);
-        config = getCommandConfig();
-        CmdLineParser parser = new CmdLineParser(config);
-        parser.parseArgument(cmdArgs);
-        execCommand();
-    }
-
-    abstract protected void execCommand() throws Exception;
-
-    abstract protected String getUsageDescription();
-
-    abstract protected CommandConfig getCommandConfig();
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/AlterCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/AlterCommand.java
deleted file mode 100644
index 05e3b67..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/AlterCommand.java
+++ /dev/null
@@ -1,76 +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.installer.command;
-
-import java.util.Date;
-
-import org.kohsuke.args4j.Option;
-
-import org.apache.asterix.common.configuration.AsterixConfiguration;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.service.ILookupService;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.installer.driver.InstallerDriver;
-import org.apache.asterix.installer.driver.InstallerUtil;
-
-public class AlterCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        String instanceName = ((AlterConfig) config).name;
-        AsterixEventServiceUtil.validateAsterixInstanceExists(instanceName, State.INACTIVE);
-        ILookupService lookupService = ServiceProvider.INSTANCE.getLookupService();
-        AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService().getAsterixInstance(instanceName);
-        AsterixEventServiceUtil.createClusterProperties(instance.getCluster(), instance.getAsterixConfiguration());
-        AsterixConfiguration asterixConfiguration = InstallerUtil
-                .getAsterixConfiguration(((AlterConfig) config).confPath);
-        instance.setAsterixConfiguration(asterixConfiguration);
-        instance.setModifiedTimestamp(new Date());
-        lookupService.updateAsterixInstance(instance);
-        LOGGER.info("Altered configuration settings for Asterix instance: " + instanceName);
-
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new AlterConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nAlter the instance's configuration settings."
-                + "\nPrior to running this command, the instance is required to be INACTIVE state."
-                + "\nChanged configuration settings will be reflected when the instance is started."
-                + "\n\nAvailable arguments/options" + "\n-n name of the ASTERIX instance.";
-    }
-
-}
-
-class AlterConfig extends CommandConfig {
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
-    public String name;
-
-    @Option(name = "-a", required = true, usage = "Path to asterix instance configuration")
-    public String confPath;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/BackupCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/BackupCommand.java
deleted file mode 100644
index 22b6952..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/BackupCommand.java
+++ /dev/null
@@ -1,78 +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.installer.command;
-
-import java.util.Date;
-import java.util.List;
-
-import org.kohsuke.args4j.Option;
-
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.model.BackupInfo;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.event.util.PatternCreator;
-import org.apache.asterix.installer.driver.InstallerDriver;
-import org.apache.asterix.installer.schema.conf.Backup;
-
-public class BackupCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        String asterixInstanceName = ((BackupConfig) config).name;
-        AsterixInstance instance = AsterixEventServiceUtil.validateAsterixInstanceExists(asterixInstanceName,
-                State.INACTIVE);
-        List<BackupInfo> backupInfo = instance.getBackupInfo();
-        Backup backupConf = AsterixEventService.getConfiguration().getBackup();
-        Patterns patterns = PatternCreator.INSTANCE.getBackUpAsterixPattern(instance, backupConf);
-        AsterixEventService.getAsterixEventServiceClient(instance.getCluster()).submit(patterns);
-        int backupId = backupInfo.size();
-        BackupInfo binfo = new BackupInfo(backupId, new Date(), backupConf);
-        backupInfo.add(binfo);
-        LOGGER.info(asterixInstanceName + " backed up " + binfo);
-        ServiceProvider.INSTANCE.getLookupService().updateAsterixInstance(instance);
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new BackupConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nThe backup command allows you to take a"
-                + "\nbackup of the data stored with an ASTERIX instance. "
-                + "\nThe backed up snapshot is stored either in HDFS or on the local file system of each node in the ASTERIX cluster."
-                + "\nThe target location of backup can be configured in $MANAGIX_HOME/conf/managix-conf.xml"
-                + "\n\nAvailable arguments/options:" + "\n-n name of the Asterix instance";
-
-    }
-
-}
-
-class BackupConfig extends CommandConfig {
-
-    @Option(name = "-n", required = true, usage = "Name of the Asterix instance")
-    public String name;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandConfig.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandConfig.java
deleted file mode 100644
index 4c07d4e..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandConfig.java
+++ /dev/null
@@ -1,23 +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.installer.command;
-
-public abstract class CommandConfig {
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandHandler.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandHandler.java
deleted file mode 100644
index 7d628ff..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandHandler.java
+++ /dev/null
@@ -1,88 +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.installer.command;
-
-import org.apache.asterix.installer.command.ICommand.CommandType;
-
-public class CommandHandler {
-
-    public void processCommand(String args[]) throws Exception {
-        CommandType cmdType = CommandType.valueOf(args[0].toUpperCase());
-        ICommand cmd = null;
-        switch (cmdType) {
-            case CREATE:
-                cmd = new CreateCommand();
-                break;
-            case ALTER:
-                cmd = new AlterCommand();
-                break;
-            case DELETE:
-                cmd = new DeleteCommand();
-                break;
-            case DESCRIBE:
-                cmd = new DescribeCommand();
-                break;
-            case BACKUP:
-                cmd = new BackupCommand();
-                break;
-            case RESTORE:
-                cmd = new RestoreCommand();
-                break;
-            case START:
-                cmd = new StartCommand();
-                break;
-            case STOP:
-                cmd = new StopCommand();
-                break;
-            case VALIDATE:
-                cmd = new ValidateCommand();
-                break;
-            case CONFIGURE:
-                cmd = new ConfigureCommand();
-                break;
-            case INSTALL:
-                cmd = new InstallCommand();
-                break;
-            case UNINSTALL:
-                cmd = new UninstallCommand();
-                break;
-            case LOG:
-                cmd = new LogCommand();
-                break;
-            case SHUTDOWN:
-                cmd = new ShutdownCommand();
-                break;
-            case HELP:
-                cmd = new HelpCommand();
-                break;
-            case STOPNODE:
-                cmd = new StopNodeCommand();
-                break;
-            case STARTNODE:
-                cmd = new StartNodeCommand();
-                break;
-            case VERSION:
-                cmd = new VersionCommand();
-                break;
-            default:
-                break;
-        }
-        cmd.execute(args);
-    }
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/ConfigureCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/ConfigureCommand.java
deleted file mode 100644
index eac7586..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/ConfigureCommand.java
+++ /dev/null
@@ -1,134 +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.installer.command;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.PropertyException;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.asterix.event.management.EventUtil;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.cluster.WorkingDir;
-import org.apache.asterix.installer.driver.InstallerDriver;
-import org.apache.asterix.installer.schema.conf.Configuration;
-
-public class ConfigureCommand extends AbstractCommand {
-
-    private static final String WORK_DIR = "/tmp/asterix";
-
-    @Override
-    protected void execCommand() throws Exception {
-        configureCluster("local", "local.xml");
-        configureCluster("local", "local_chained_declustering_rep.xml");
-        configureCluster("local", "local_metadata_only_rep.xml");
-        configureCluster("demo", "demo.xml");
-
-        String installerConfPath = InstallerDriver.getManagixHome() + File.separator + InstallerDriver.MANAGIX_CONF_XML;
-        JAXBContext ctx = JAXBContext.newInstance(Configuration.class);
-        Unmarshaller unmarshaller = ctx.createUnmarshaller();
-        Configuration configuration = (Configuration) unmarshaller.unmarshal(new File(installerConfPath));
-
-        configuration.setConfigured(true);
-        configuration.getBackup().setBackupDir(InstallerDriver.getManagixHome() + File.separator + "backup");
-        configuration.getZookeeper().setHomeDir(InstallerDriver.getManagixHome() + File.separator
-                + InstallerDriver.MANAGIX_INTERNAL_DIR + File.separator + "zookeeper_home");
-        configuration.getZookeeper().getServers().setJavaHome(System.getProperty("java.home"));
-
-        Marshaller marshaller = ctx.createMarshaller();
-        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
-        marshaller.marshal(configuration, new FileOutputStream(installerConfPath));
-    }
-
-    private void configureCluster(String dir, String file)
-            throws JAXBException, PropertyException, FileNotFoundException {
-        String clusterDir = InstallerDriver.getManagixHome() + File.separator + "clusters" + File.separator + dir;
-        String localClusterPath = clusterDir + File.separator + file;
-
-        if (!Files.exists(Paths.get(localClusterPath))) {
-            return;
-        }
-        Cluster cluster = EventUtil.getCluster(localClusterPath);
-        String workingDir = clusterDir + File.separator + "working_dir";
-        cluster.setWorkingDir(new WorkingDir(workingDir, true));
-        cluster.setIodevices(configureIoDevices(cluster.getIodevices(), workingDir));
-        cluster.setLogDir(configureDirectory(cluster.getLogDir(), workingDir));
-        cluster.setTxnLogDir(configureDirectory(cluster.getTxnLogDir(), workingDir));
-        String javaHome = System.getProperty("java.home");
-        if (javaHome.endsWith(File.separator + "jre")) {
-            javaHome = javaHome.substring(0, javaHome.indexOf(File.separator + "jre"));
-        }
-        cluster.setJavaHome(javaHome);
-
-        for (Node node : cluster.getNode()) {
-            node.setIodevices(configureIoDevices(node.getIodevices(), workingDir));
-            node.setLogDir(configureDirectory(node.getLogDir(), workingDir));
-            node.setTxnLogDir(configureDirectory(node.getTxnLogDir(), workingDir));
-        }
-
-        JAXBContext ctx = JAXBContext.newInstance(Cluster.class);
-        Marshaller marshaller = ctx.createMarshaller();
-        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
-        marshaller.marshal(cluster, new FileOutputStream(localClusterPath));
-    }
-
-    private String configureIoDevices(String ioDevices, String workingDir) {
-        if (ioDevices == null) {
-            return null;
-        }
-        final String separator = ",";
-        StringBuilder sb = new StringBuilder();
-        String[] ioDevs = ioDevices.split(separator);
-        for (int i = 0; i < ioDevs.length; ++i) {
-            if (i > 0) {
-                sb.append(separator);
-            }
-            sb.append(configureDirectory(ioDevs[i], workingDir));
-        }
-        return sb.toString();
-    }
-
-    private String configureDirectory(String dir, String workingDir) {
-        return dir == null ? null : dir.replace(WORK_DIR, workingDir);
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nAuto-generates the ASTERIX installer configruation settings and ASTERIX cluster "
-                + "\nconfiguration settings for a single node setup.";
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new ConfigureConfig();
-    }
-
-}
-
-class ConfigureConfig extends CommandConfig {
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/CreateCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/CreateCommand.java
deleted file mode 100644
index 6db0648..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/CreateCommand.java
+++ /dev/null
@@ -1,127 +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.installer.command;
-
-import java.io.File;
-
-import org.kohsuke.args4j.Option;
-import org.apache.asterix.common.api.IClusterManagementWork.ClusterState;
-import org.apache.asterix.common.configuration.AsterixConfiguration;
-import org.apache.asterix.event.error.VerificationUtil;
-import org.apache.asterix.event.management.AsterixEventServiceClient;
-import org.apache.asterix.event.management.EventUtil;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixRuntimeState;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.service.ClusterStateWatcher;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.event.util.PatternCreator;
-import org.apache.asterix.installer.driver.InstallerDriver;
-import org.apache.asterix.installer.driver.InstallerUtil;
-
-public class CreateCommand extends AbstractCommand {
-
-    private String asterixInstanceName;
-    private Cluster cluster;
-    private AsterixConfiguration asterixConfiguration;
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        ValidateCommand validateCommand = new ValidateCommand();
-        boolean valid = validateCommand.validateCluster(((CreateConfig) config).clusterPath);
-        if (!valid) {
-            throw new Exception("Cannot create an Asterix instance.");
-        }
-        asterixInstanceName = ((CreateConfig) config).name;
-        AsterixEventServiceUtil.validateAsterixInstanceNotExists(asterixInstanceName);
-        CreateConfig createConfig = (CreateConfig) config;
-        cluster = EventUtil.getCluster(createConfig.clusterPath);
-        cluster.setInstanceName(asterixInstanceName);
-        asterixConfiguration = InstallerUtil.getAsterixConfiguration(createConfig.asterixConfPath);
-        AsterixInstance asterixInstance = AsterixEventServiceUtil.createAsterixInstance(asterixInstanceName, cluster,
-                asterixConfiguration);
-        AsterixEventServiceUtil.evaluateConflictWithOtherInstances(asterixInstance);
-        AsterixEventServiceUtil.createAsterixZip(asterixInstance);
-        AsterixEventServiceUtil.createClusterProperties(cluster, asterixConfiguration);
-        AsterixEventServiceClient eventrixClient = AsterixEventService.getAsterixEventServiceClient(cluster, true,
-                false);
-        // Store the cluster initially in Zookeeper and start watching
-        ServiceProvider.INSTANCE.getLookupService().writeAsterixInstance(asterixInstance);
-        ClusterStateWatcher stateWatcher = ServiceProvider.INSTANCE.getLookupService().startWatchingClusterState(
-                asterixInstanceName);
-        Patterns asterixBinarytrasnferPattern = PatternCreator.INSTANCE.getAsterixBinaryTransferPattern(
-                asterixInstanceName, cluster);
-        eventrixClient.submit(asterixBinarytrasnferPattern);
-        Patterns patterns = PatternCreator.INSTANCE.getStartAsterixPattern(asterixInstanceName, cluster, true);
-        eventrixClient.submit(patterns);
-
-        // Check the cluster state
-        ClusterState clusterState = stateWatcher.waitForClusterStart();
-        if (clusterState != ClusterState.ACTIVE) {
-            throw new Exception("CC failed to start");
-        }
-
-        AsterixRuntimeState runtimeState = VerificationUtil.getAsterixRuntimeState(asterixInstance);
-        VerificationUtil.updateInstanceWithRuntimeDescription(asterixInstance, runtimeState, true);
-        ServiceProvider.INSTANCE.getLookupService().updateAsterixInstance(asterixInstance);
-        AsterixEventServiceUtil.deleteDirectory(InstallerDriver.getManagixHome() + File.separator
-                + InstallerDriver.ASTERIX_DIR + File.separator + asterixInstanceName);
-        LOGGER.info(asterixInstance.getDescription(false));
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new CreateConfig();
-    }
-
-    public Cluster getCluster() {
-        return cluster;
-    }
-
-    public String getAsterixInstanceName() {
-        return asterixInstanceName;
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nCreates an ASTERIX instance with a specified name."
-                + "\n\nPost creation, the instance is in ACTIVE state, indicating its "
-                + "\navailability for executing statements/queries." + "\n\nUsage arguments/options:"
-                + "\n-n Name of the ASTERIX instance." + "\n-c Path to the cluster configuration file"
-                + "\n[-a] Path to asterix configuration file" + "\n [..] indicates optional flag";
-    }
-
-}
-
-class CreateConfig extends CommandConfig {
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
-    public String name;
-
-    @Option(name = "-c", required = true, usage = "Path to cluster configuration")
-    public String clusterPath;
-
-    @Option(name = "-a", required = false, usage = "Path to asterix configuration")
-    public String asterixConfPath;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/DeleteCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/DeleteCommand.java
deleted file mode 100644
index 043d48a..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/DeleteCommand.java
+++ /dev/null
@@ -1,66 +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.installer.command;
-
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.event.util.PatternCreator;
-import org.apache.asterix.installer.driver.InstallerDriver;
-import org.kohsuke.args4j.Option;
-
-public class DeleteCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        String asterixInstanceName = ((DeleteConfig) config).name;
-        AsterixInstance instance = AsterixEventServiceUtil.validateAsterixInstanceExists(asterixInstanceName,
-                State.INACTIVE);
-        Patterns patterns = PatternCreator.INSTANCE.createDeleteInstancePattern(instance);
-        AsterixEventService.getAsterixEventServiceClient(instance.getCluster()).submit(patterns);
-
-        patterns = PatternCreator.INSTANCE.createRemoveAsterixWorkingDirPattern(instance);
-        AsterixEventService.getAsterixEventServiceClient(instance.getCluster()).submit(patterns);
-        ServiceProvider.INSTANCE.getLookupService().removeAsterixInstance(asterixInstanceName);
-        LOGGER.info("Deleted Asterix instance: " + asterixInstanceName);
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new DeleteConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nPermanently deletes an ASTERIX instance." + "\n" + "The instance must be in the INACTIVE state."
-                + "\n\nAvailable arguments/options" + "\n-n name of the ASTERIX instance.";
-    }
-
-}
-
-class DeleteConfig extends CommandConfig {
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
-    public String name;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/DescribeCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/DescribeCommand.java
deleted file mode 100644
index 1ffcb74..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/DescribeCommand.java
+++ /dev/null
@@ -1,95 +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.installer.command;
-
-import java.util.List;
-
-import org.kohsuke.args4j.Option;
-
-import org.apache.asterix.event.error.VerificationUtil;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.model.AsterixRuntimeState;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.installer.driver.InstallerDriver;
-import org.apache.asterix.installer.error.InstallerException;
-
-public class DescribeCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        String asterixInstanceName = ((DescribeConfig) config).name;
-        boolean adminView = ((DescribeConfig) config).admin;
-        if (asterixInstanceName != null) {
-            AsterixEventServiceUtil.validateAsterixInstanceExists(asterixInstanceName, State.INACTIVE, State.ACTIVE,
-                    State.UNUSABLE);
-            AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService().getAsterixInstance(
-                    asterixInstanceName);
-            if (instance != null) {
-                AsterixRuntimeState state = VerificationUtil.getAsterixRuntimeState(instance);
-                boolean expectedRunning = instance.getState().equals(State.UNUSABLE) ? instance.getPreviousState()
-                        .equals(State.ACTIVE) : !instance.getState().equals(State.INACTIVE);
-                VerificationUtil.updateInstanceWithRuntimeDescription(instance, state, expectedRunning);
-                ServiceProvider.INSTANCE.getLookupService().updateAsterixInstance(instance);
-                LOGGER.info(instance.getDescription(adminView));
-            } else {
-                throw new InstallerException("Asterix instance by the name " + asterixInstanceName + " does not exist.");
-            }
-        } else {
-            List<AsterixInstance> asterixInstances = ServiceProvider.INSTANCE.getLookupService().getAsterixInstances();
-            if (asterixInstances.size() > 0) {
-                for (AsterixInstance instance : asterixInstances) {
-                    AsterixRuntimeState state = VerificationUtil.getAsterixRuntimeState(instance);
-                    boolean expectedRunning = instance.getState().equals(State.UNUSABLE) ? instance.getPreviousState()
-                            .equals(State.ACTIVE) : !instance.getState().equals(State.INACTIVE);
-                    VerificationUtil.updateInstanceWithRuntimeDescription(instance, state, expectedRunning);
-                    ServiceProvider.INSTANCE.getLookupService().updateAsterixInstance(instance);
-                    LOGGER.info(instance.getDescription(adminView));
-                }
-            } else {
-                LOGGER.info("No Asterix instances found!");
-            }
-
-        }
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new DescribeConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nProvides information about an ASTERIX instance." + "\n\nUsage arguments/options:-"
-                + "\n[-n]       Name of the ASTERIX instance." + "\n[-admin]   Provides a detailed description";
-    }
-
-}
-
-class DescribeConfig extends CommandConfig {
-
-    @Option(name = "-n", required = false, usage = "Name of Asterix Instance")
-    public String name;
-
-    @Option(name = "-admin", required = false, usage = "Detailed description")
-    public boolean admin;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/HelpCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/HelpCommand.java
deleted file mode 100644
index e8a93be..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/HelpCommand.java
+++ /dev/null
@@ -1,110 +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.installer.command;
-
-import org.kohsuke.args4j.Option;
-
-public class HelpCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        HelpConfig helpConfig = (HelpConfig) config;
-        String command = helpConfig.command;
-        CommandType cmdType = CommandType.valueOf(command.toUpperCase());
-        String helpMessage = null;
-        switch (cmdType) {
-            case CREATE:
-                helpMessage = new CreateCommand().getUsageDescription();
-                break;
-            case CONFIGURE:
-                helpMessage = new ConfigureCommand().getUsageDescription();
-                break;
-            case DELETE:
-                helpMessage = new DeleteCommand().getUsageDescription();
-                break;
-            case DESCRIBE:
-                helpMessage = new DescribeCommand().getUsageDescription();
-                break;
-            case RESTORE:
-                helpMessage = new RestoreCommand().getUsageDescription();
-                break;
-            case START:
-                helpMessage = new StartCommand().getUsageDescription();
-                break;
-            case SHUTDOWN:
-                helpMessage = new ShutdownCommand().getUsageDescription();
-                break;
-            case BACKUP:
-                helpMessage = new BackupCommand().getUsageDescription();
-                break;
-            case STOP:
-                helpMessage = new StopCommand().getUsageDescription();
-                break;
-            case VALIDATE:
-                helpMessage = new ValidateCommand().getUsageDescription();
-                break;
-            case INSTALL:
-                helpMessage = new InstallCommand().getUsageDescription();
-                break;
-            case UNINSTALL:
-                helpMessage = new UninstallCommand().getUsageDescription();
-                break;
-            case ALTER:
-                helpMessage = new AlterCommand().getUsageDescription();
-                break;
-            case LOG:
-                helpMessage = new LogCommand().getUsageDescription();
-                break;
-            case STOPNODE:
-                helpMessage = new StopNodeCommand().getUsageDescription();
-                break;
-            case STARTNODE:
-                helpMessage = new StartNodeCommand().getUsageDescription();
-                break;
-            case VERSION:
-                helpMessage = new VersionCommand().getUsageDescription();
-                break;
-            default:
-                helpMessage = "Unknown command " + command;
-        }
-
-        System.out.println(helpMessage);
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new HelpConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nAlter the instance's configuration settings."
-                + "\nPrior to running this command, the instance is required to be INACTIVE state."
-                + "\n\nAvailable arguments/options" + "\n-n name of the ASTERIX instance"
-                + "\n-conf path to the ASTERIX configuration file.";
-    }
-
-}
-
-class HelpConfig extends CommandConfig {
-
-    @Option(name = "-cmd", required = true, usage = "Name of Asterix Instance")
-    public String command;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/ICommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/ICommand.java
deleted file mode 100644
index 47e4a8d..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/ICommand.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.installer.command;
-
-public interface ICommand {
-
-    public enum CommandType {
-        CREATE,
-        DELETE,
-        START,
-        STOP,
-        BACKUP,
-        RESTORE,
-        DESCRIBE,
-        ALTER,
-        VALIDATE,
-        CONFIGURE,
-        INSTALL,
-        UNINSTALL,
-        LOG,
-        SHUTDOWN,
-        HELP,
-        STOPNODE,
-        STARTNODE,
-        VERSION
-    }
-
-    public void execute(String args[]) throws Exception;
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/InstallCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/InstallCommand.java
deleted file mode 100644
index 779f76d..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/InstallCommand.java
+++ /dev/null
@@ -1,76 +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.installer.command;
-
-import org.kohsuke.args4j.Option;
-
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.util.PatternCreator;
-import org.apache.asterix.installer.driver.InstallerDriver;
-
-public class InstallCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        InstallConfig installConfig = ((InstallConfig) config);
-        String instanceName = installConfig.name;
-        AsterixInstance instance = AsterixEventServiceUtil.validateAsterixInstanceExists(instanceName, State.INACTIVE);
-        PatternCreator pc = PatternCreator.INSTANCE;
-        Patterns patterns = pc.getLibraryInstallPattern(instance, installConfig.dataverseName,
-                installConfig.libraryName, installConfig.libraryPath);
-        AsterixEventService.getAsterixEventServiceClient(instance.getCluster()).submit(patterns);
-        LOGGER.info("Installed library " + installConfig.libraryName);
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new InstallConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "Installs a library to an asterix instance." + "\n" + "Arguments/Options\n"
-                + "-n  Name of Asterix Instance\n"
-                + "-d  Name of the dataverse under which the library will be installed\n" + "-l  Name of the library\n"
-                + "-p  Path to library zip bundle";
-
-    }
-
-}
-
-class InstallConfig extends CommandConfig {
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
-    public String name;
-
-    @Option(name = "-d", required = true, usage = "Name of the dataverse under which the library will be installed")
-    public String dataverseName;
-
-    @Option(name = "-l", required = true, usage = "Name of the library")
-    public String libraryName;
-
-    @Option(name = "-p", required = true, usage = "Path to library zip bundle")
-    public String libraryPath;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/LogCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/LogCommand.java
deleted file mode 100644
index 1e00d70..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/LogCommand.java
+++ /dev/null
@@ -1,109 +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.installer.command;
-
-import java.io.File;
-import java.io.FilenameFilter;
-import java.util.Date;
-
-import org.apache.commons.io.FileUtils;
-import org.kohsuke.args4j.Option;
-
-import org.apache.asterix.event.management.AsterixEventServiceClient;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.util.PatternCreator;
-import org.apache.asterix.installer.driver.InstallerDriver;
-import org.apache.asterix.installer.error.InstallerException;
-
-public class LogCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        String asterixInstanceName = ((LogConfig) config).name;
-        AsterixInstance instance = AsterixEventServiceUtil.validateAsterixInstanceExists(asterixInstanceName,
-                State.INACTIVE, State.UNUSABLE, State.ACTIVE);
-        PatternCreator pc = PatternCreator.INSTANCE;
-
-        AsterixEventServiceClient eventrixClient = AsterixEventService.getAsterixEventServiceClient(
-                instance.getCluster(), true, false);
-
-        String outputDir = ((LogConfig) config).outputDir == null ? InstallerDriver.getManagixHome() + File.separator
-                + "logdump" : ((LogConfig) config).outputDir;
-        File f = new File(outputDir);
-        String outputDirPath = f.getAbsolutePath();
-        if (!f.exists()) {
-            boolean success = f.mkdirs();
-            if (!success) {
-                throw new InstallerException("Unable to create output directory:" + outputDirPath);
-            }
-        }
-        Patterns transferLogPattern = pc.getGenerateLogPattern(instance.getCluster(),
-                outputDirPath);
-        eventrixClient.submit(transferLogPattern);
-        File outputDirFile = new File(outputDirPath);
-        final String destFileName = "log_" + new Date().toString().replace(' ', '_') + ".zip";
-        File destFile = new File(outputDirFile, destFileName);
-        AsterixEventServiceUtil.zipDir(outputDirFile, destFile);
-
-        String[] filesToDelete = outputDirFile.list(new FilenameFilter() {
-            @Override
-            public boolean accept(File dir, String name) {
-                return !name.equals(destFileName);
-            }
-
-        });
-        for (String fileS : filesToDelete) {
-            f = new File(outputDirFile, fileS);
-            if (f.isDirectory()) {
-                FileUtils.deleteDirectory(f);
-            } else {
-                f.delete();
-            }
-        }
-        LOGGER.info("Log zip archive created at " + destFile.getAbsolutePath());
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new LogConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nCreates a tar ball containing log files corresponding to each worker node (NC) and the master (CC)  for an ASTERIX instance"
-                + "\n\nAvailable arguments/options"
-                + "\n-n name of the ASTERIX instance. \n-d destination directory for producing the tar ball (defaults to) "
-                + InstallerDriver.getManagixHome();
-    }
-}
-
-class LogConfig extends CommandConfig {
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
-    public String name;
-
-    @Option(name = "-d", required = false, usage = "Destination directory for producing log tar ball")
-    public String outputDir;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/RestoreCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/RestoreCommand.java
deleted file mode 100644
index 79a1cc7..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/RestoreCommand.java
+++ /dev/null
@@ -1,76 +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.installer.command;
-
-import java.util.List;
-
-import org.kohsuke.args4j.Option;
-
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.model.BackupInfo;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.util.PatternCreator;
-import org.apache.asterix.installer.driver.InstallerDriver;
-
-public class RestoreCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        String asterixInstanceName = ((RestoreConfig) config).name;
-        AsterixInstance instance = AsterixEventServiceUtil.validateAsterixInstanceExists(asterixInstanceName,
-                State.INACTIVE);
-        int backupId = ((RestoreConfig) config).backupId;
-        List<BackupInfo> backupInfoList = instance.getBackupInfo();
-        if (backupInfoList.size() <= backupId || backupId < 0) {
-            throw new IllegalStateException("Invalid backup id");
-        }
-
-        BackupInfo backupInfo = backupInfoList.get(backupId);
-        Patterns patterns = PatternCreator.INSTANCE.getRestoreAsterixPattern(instance, backupInfo);
-        AsterixEventService.getAsterixEventServiceClient(instance.getCluster()).submit(patterns);
-        LOGGER.info("Asterix instance: " + asterixInstanceName + " has been restored from backup");
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new RestoreConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nRestores an ASTERIX instance's data from a previously taken backup snapshot."
-                + "\n\nAvailable arguments/options" + "\n-n name of the ASTERIX instance"
-                + "\n-b id of the backup snapshot ";
-    }
-
-}
-
-class RestoreConfig extends CommandConfig {
-
-    @Option(name = "-n", required = true, usage = "Name of the Asterix instance")
-    public String name;
-
-    @Option(name = "-b", required = true, usage = "Id corresponding to the backed up version")
-    public int backupId;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/ShutdownCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/ShutdownCommand.java
deleted file mode 100644
index d4f6bcf..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/ShutdownCommand.java
+++ /dev/null
@@ -1,49 +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.installer.command;
-
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.ILookupService;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.installer.driver.InstallerDriver;
-
-public class ShutdownCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(false);
-        ILookupService lookupService = ServiceProvider.INSTANCE.getLookupService();
-        lookupService.stopService(AsterixEventService.getConfiguration());
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new ShutdownConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nShuts down the installer's backgrouund processes";
-    }
-
-}
-
-class ShutdownConfig extends CommandConfig {
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartCommand.java
deleted file mode 100644
index 551bc11..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartCommand.java
+++ /dev/null
@@ -1,90 +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.installer.command;
-
-import java.io.File;
-
-import org.kohsuke.args4j.Option;
-import org.apache.asterix.common.api.IClusterManagementWork.ClusterState;
-import org.apache.asterix.event.error.VerificationUtil;
-import org.apache.asterix.event.management.AsterixEventServiceClient;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.model.AsterixRuntimeState;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.service.ClusterStateWatcher;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.event.util.PatternCreator;
-import org.apache.asterix.installer.driver.InstallerDriver;
-
-public class StartCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        String asterixInstanceName = ((StartConfig) config).name;
-        AsterixInstance instance = AsterixEventServiceUtil.validateAsterixInstanceExists(asterixInstanceName,
-                State.INACTIVE);
-        AsterixEventServiceUtil.createAsterixZip(instance);
-        AsterixEventServiceClient client = AsterixEventService.getAsterixEventServiceClient(instance.getCluster());
-        Patterns asterixBinaryTransferPattern = PatternCreator.INSTANCE.getAsterixBinaryTransferPattern(
-                asterixInstanceName, instance.getCluster());
-        client.submit(asterixBinaryTransferPattern);
-        // Start the watcher
-        ClusterStateWatcher stateWatcher = ServiceProvider.INSTANCE.getLookupService().startWatchingClusterState(
-                asterixInstanceName);
-        AsterixEventServiceUtil.createClusterProperties(instance.getCluster(), instance.getAsterixConfiguration());
-        Patterns patterns = PatternCreator.INSTANCE.getStartAsterixPattern(asterixInstanceName, instance.getCluster(),
-                false);
-        client.submit(patterns);
-        // Check the cluster state
-        ClusterState clusterState = stateWatcher.waitForClusterStart();
-        if (clusterState != ClusterState.ACTIVE) {
-            throw new Exception("CC failed to start");
-        }
-        AsterixEventServiceUtil.deleteDirectory(InstallerDriver.getManagixHome() + File.separator
-                + InstallerDriver.ASTERIX_DIR + File.separator + asterixInstanceName);
-        AsterixRuntimeState runtimeState = VerificationUtil.getAsterixRuntimeState(instance);
-        VerificationUtil.updateInstanceWithRuntimeDescription(instance, runtimeState, true);
-        LOGGER.info(instance.getDescription(false));
-        ServiceProvider.INSTANCE.getLookupService().updateAsterixInstance(instance);
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new StartConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nStarts an ASTERIX instance that is in INACTIVE state."
-                + "\nAfter executing the start command, the ASTERIX instance transits to the ACTIVE state,"
-                + "\nindicating that it is now available for executing statements/queries."
-                + "\n\nAvailable arguments/options" + "\n-n name of the ASTERIX instance. ";
-    }
-}
-
-class StartConfig extends CommandConfig {
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
-    public String name;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartNodeCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartNodeCommand.java
deleted file mode 100644
index 59825fe..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartNodeCommand.java
+++ /dev/null
@@ -1,105 +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.installer.command;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.kohsuke.args4j.Option;
-
-import org.apache.asterix.event.error.VerificationUtil;
-import org.apache.asterix.event.management.AsterixEventServiceClient;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.model.AsterixRuntimeState;
-import org.apache.asterix.event.model.ProcessInfo;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.pattern.Pattern;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.event.util.PatternCreator;
-import org.apache.asterix.installer.driver.InstallerDriver;
-import org.apache.asterix.installer.error.InstallerException;
-
-public class StartNodeCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        String asterixInstanceName = ((StartNodeConfig) config).name;
-        AsterixInstance instance = AsterixEventServiceUtil.validateAsterixInstanceExists(asterixInstanceName,
-                State.INACTIVE, State.ACTIVE, State.UNUSABLE);
-
-        Cluster cluster = instance.getCluster();
-        List<Pattern> pl = new ArrayList<Pattern>();
-        AsterixRuntimeState runtimeState = VerificationUtil.getAsterixRuntimeState(instance);
-        String[] nodesToBeAdded = ((StartNodeConfig) config).nodes.split(",");
-        List<String> aliveNodes = new ArrayList<String>();
-        for (ProcessInfo p : runtimeState.getProcesses()) {
-            aliveNodes.add(p.getNodeId());
-        }
-        List<Node> clusterNodes = cluster.getNode();
-        for (String n : nodesToBeAdded) {
-            if (aliveNodes.contains(n)) {
-                throw new InstallerException("Node: " + n + " is already alive");
-            }
-            for (Node node : clusterNodes) {
-                if (n.equals(node.getId())) {
-                    String iodevices = node.getIodevices() == null ? cluster.getIodevices() : node.getIodevices();
-                    Pattern createNC = PatternCreator.INSTANCE.createNCStartPattern(cluster.getMasterNode()
-                            .getClusterIp(), node.getId(), asterixInstanceName + "_" + node.getId(), iodevices, false);
-                    pl.add(createNC);
-                    break;
-                }
-            }
-        }
-        Patterns patterns = new Patterns(pl);
-        AsterixEventServiceClient client = AsterixEventService.getAsterixEventServiceClient(cluster);
-        client.submit(patterns);
-        runtimeState = VerificationUtil.getAsterixRuntimeState(instance);
-        VerificationUtil.updateInstanceWithRuntimeDescription(instance, runtimeState, true);
-        LOGGER.info(instance.getDescription(false));
-        ServiceProvider.INSTANCE.getLookupService().updateAsterixInstance(instance);
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new StartNodeConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nStarts a set of nodes for an ASTERIX instance." + "\n\nAvailable arguments/options"
-                + "\n-n name of the ASTERIX instance. " + "\n-nodes"
-                + "Comma separated list of nodes that need to be started";
-    }
-}
-
-class StartNodeConfig extends CommandConfig {
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
-    public String name;
-
-    @Option(name = "-nodes", required = true, usage = "Comma separated list of nodes that need to be started")
-    public String nodes;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopCommand.java
deleted file mode 100644
index 0feff27..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopCommand.java
+++ /dev/null
@@ -1,100 +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.installer.command;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.kohsuke.args4j.Option;
-
-import org.apache.asterix.event.management.AsterixEventServiceClient;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.pattern.Pattern;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.event.util.PatternCreator;
-import org.apache.asterix.installer.driver.InstallerDriver;
-
-public class StopCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        String asterixInstanceName = ((StopConfig) config).name;
-        AsterixInstance asterixInstance = AsterixEventServiceUtil.validateAsterixInstanceExists(asterixInstanceName,
-                State.ACTIVE, State.UNUSABLE);
-        AsterixEventServiceClient client = AsterixEventService.getAsterixEventServiceClient(asterixInstance
-                .getCluster());
-
-        List<Pattern> ncKillPatterns = new ArrayList<Pattern>();
-        for (Node node : asterixInstance.getCluster().getNode()) {
-            ncKillPatterns.add(PatternCreator.INSTANCE.createNCStopPattern(node.getId(), asterixInstanceName + "_"
-                    + node.getId()));
-        }
-
-        List<Pattern> ccKillPatterns = new ArrayList<Pattern>();
-        ccKillPatterns.add(PatternCreator.INSTANCE.createCCStopPattern(asterixInstance.getCluster().getMasterNode()
-                .getId()));
-
-        try {
-            client.submit(new Patterns(ncKillPatterns));
-            client.submit(new Patterns(ccKillPatterns));
-        } catch (Exception e) {
-            // processes are already dead
-            LOGGER.debug("Attempt to kill non-existing processess");
-        }
-
-        asterixInstance.setState(State.INACTIVE);
-        asterixInstance.setStateChangeTimestamp(new Date());
-        ServiceProvider.INSTANCE.getLookupService().updateAsterixInstance(asterixInstance);
-        LOGGER.info("Stopped Asterix instance: " + asterixInstanceName);
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new StopConfig();
-    }
-
-    public String getAsterixInstanceName() {
-        return ((StopConfig) config).name;
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nShuts an ASTERIX instance that is in ACTIVE/UNUSABLE state."
-                + "\nAfter executing the stop command, the ASTERIX instance transits"
-                + "\nto the INACTIVE state, indicating that it is no longer available"
-                + "\nfor executing statements/queries." + "\n\nAvailable arguments/options"
-                + "\n-n name of the ASTERIX instance.";
-
-    }
-
-}
-
-class StopConfig extends CommandConfig {
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
-    public String name;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopNodeCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopNodeCommand.java
deleted file mode 100644
index 1c22f86..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopNodeCommand.java
+++ /dev/null
@@ -1,112 +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.installer.command;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.kohsuke.args4j.Option;
-
-import org.apache.asterix.event.error.VerificationUtil;
-import org.apache.asterix.event.management.AsterixEventServiceClient;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.model.AsterixRuntimeState;
-import org.apache.asterix.event.model.ProcessInfo;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.pattern.Pattern;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.event.util.PatternCreator;
-import org.apache.asterix.installer.driver.InstallerDriver;
-import org.apache.asterix.installer.error.InstallerException;
-
-public class StopNodeCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        String asterixInstanceName = ((StopNodeConfig) config).name;
-        AsterixInstance asterixInstance = AsterixEventServiceUtil.validateAsterixInstanceExists(asterixInstanceName,
-                State.ACTIVE, State.UNUSABLE);
-
-        AsterixEventServiceClient client = AsterixEventService.getAsterixEventServiceClient(asterixInstance
-                .getCluster());
-
-        String[] nodesToStop = ((StopNodeConfig) config).nodeList.split(",");
-        AsterixRuntimeState runtimeState = VerificationUtil.getAsterixRuntimeState(asterixInstance);
-        List<String> aliveNodes = new ArrayList<String>();
-        for (ProcessInfo p : runtimeState.getProcesses()) {
-            aliveNodes.add(p.getNodeId());
-        }
-
-        List<String> validNodeIds = new ArrayList<String>();
-        for (Node node : asterixInstance.getCluster().getNode()) {
-            validNodeIds.add(node.getId());
-        }
-        List<Pattern> ncKillPatterns = new ArrayList<Pattern>();
-        for (String nodeId : nodesToStop) {
-            if (!nodeId.contains(nodeId)) {
-                throw new InstallerException("Invalid nodeId: " + nodeId);
-            }
-            if (!aliveNodes.contains(nodeId)) {
-                throw new InstallerException("Node: " + nodeId + " is not alive");
-            }
-            ncKillPatterns.add(PatternCreator.INSTANCE.createNCStopPattern(nodeId, asterixInstanceName + "_" + nodeId));
-        }
-
-        try {
-            client.submit(new Patterns(ncKillPatterns));
-        } catch (Exception e) {
-            // processes are already dead
-            LOGGER.debug("Attempt to kill non-existing processess");
-        }
-
-        asterixInstance.setStateChangeTimestamp(new Date());
-        ServiceProvider.INSTANCE.getLookupService().updateAsterixInstance(asterixInstance);
-        LOGGER.info("Stopped nodes " + ((StopNodeConfig) config).nodeList + " serving Asterix instance: "
-                + asterixInstanceName);
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new StopNodeConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nStops a specified set of ASTERIX nodes." + "\n\nAvailable arguments/options"
-                + "\n-n name of the ASTERIX instance. "
-                + "\n-nodes Comma separated list of nodes that need to be stopped. ";
-
-    }
-}
-
-class StopNodeConfig extends CommandConfig {
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
-    public String name;
-
-    @Option(name = "-nodes", required = true, usage = "Comma separated list of nodes that need to be stopped")
-    public String nodeList;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/UninstallCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/UninstallCommand.java
deleted file mode 100644
index 8199d4b..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/UninstallCommand.java
+++ /dev/null
@@ -1,78 +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.installer.command;
-
-import org.kohsuke.args4j.Option;
-
-import org.apache.asterix.event.management.AsterixEventServiceClient;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.service.ILookupService;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.event.util.PatternCreator;
-import org.apache.asterix.installer.driver.InstallerDriver;
-
-public class UninstallCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(true);
-        UninstallConfig uninstallConfig = ((UninstallConfig) config);
-        String instanceName = uninstallConfig.name;
-        AsterixEventServiceUtil.validateAsterixInstanceExists(instanceName, State.INACTIVE);
-        ILookupService lookupService = ServiceProvider.INSTANCE.getLookupService();
-        AsterixInstance instance = lookupService.getAsterixInstance(instanceName);
-        PatternCreator pc = PatternCreator.INSTANCE;
-        Patterns patterns = pc.getLibraryUninstallPattern(instance, uninstallConfig.dataverseName,
-                uninstallConfig.libraryName);
-        AsterixEventServiceClient client = AsterixEventService.getAsterixEventServiceClient(instance.getCluster());
-        client.submit(patterns);
-        LOGGER.info("Uninstalled library " + uninstallConfig.libraryName);
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new UninstallConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "Uninstalls a library from an asterix instance." + "\n" + "Arguments/Options\n"
-                + "-n  Name of Asterix Instance\n"
-                + "-d  Name of the dataverse under which the library will be installed\n" + "-l  Name of the library\n"
-                + "-l  Name of the library";
-    }
-
-}
-
-class UninstallConfig extends CommandConfig {
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
-    public String name;
-
-    @Option(name = "-d", required = true, usage = "Name of the dataverse under which the library will be installed")
-    public String dataverseName;
-
-    @Option(name = "-l", required = true, usage = "Name of the library")
-    public String libraryName;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/ValidateCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/ValidateCommand.java
deleted file mode 100644
index 3e079bd..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/ValidateCommand.java
+++ /dev/null
@@ -1,311 +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.installer.command;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.asterix.event.management.EventUtil;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.MasterNode;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.installer.driver.InstallerDriver;
-import org.apache.asterix.installer.schema.conf.Configuration;
-import org.apache.asterix.installer.schema.conf.Zookeeper;
-import org.kohsuke.args4j.Option;
-
-public class ValidateCommand extends AbstractCommand {
-
-    private static final String OK = " [" + "OK" + "]";
-    private static final String ERROR = " [" + "ERROR" + "]";
-    private static final String WARNING = " [" + "WARNING" + "]";
-
-    @Override
-    protected void execCommand() throws Exception {
-        ValidateConfig vConfig = (ValidateConfig) config;
-        logValidationResult("Environment", validateEnvironment());
-        if (((ValidateConfig) config).cluster != null) {
-            logValidationResult("Cluster configuration", validateCluster(vConfig.cluster));
-        } else {
-            logValidationResult("Managix Configuration", validateConfiguration());
-        }
-    }
-
-    private void logValidationResult(String prefix, boolean isValid) {
-        if (!isValid) {
-            LOGGER.fatal(prefix + ERROR);
-        } else {
-            LOGGER.info(prefix + OK);
-        }
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new ValidateConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "\nValidate the installer's configuration or a cluster configuration" + "\nUsage"
-                + "\nFor validating the installer configuration" + "\nuse managix validate"
-                + "\n\nFor validating a cluster configuration"
-                + "\nuse managix validate -c <path to the cluster configuration file>";
-    }
-
-    public boolean validateEnvironment() throws Exception {
-        boolean valid = true;
-        File home = new File(InstallerDriver.getManagixHome());
-        if (!home.exists()) {
-            valid = false;
-            LOGGER.fatal(InstallerDriver.ENV_MANAGIX_HOME + ": " + home.getAbsolutePath() + " does not exist!" + ERROR);
-        }
-        return valid;
-
-    }
-
-    public boolean validateCluster(String clusterPath) throws Exception {
-        boolean valid = true;
-        Cluster cluster = null;
-        File f = new File(clusterPath);
-        List<String> ipAddresses = new ArrayList<String>();
-        if (!f.exists() || !f.isFile()) {
-            LOGGER.error(" Invalid path " + f.getAbsolutePath() + ERROR);
-            valid = false;
-        } else {
-            cluster = EventUtil.getCluster(clusterPath);
-            valid = valid & validateClusterProperties(cluster);
-
-            Set<String> servers = new HashSet<String>();
-            Set<String> serverIds = new HashSet<String>();
-            servers.add(cluster.getMasterNode().getClusterIp());
-            serverIds.add(cluster.getMasterNode().getId());
-
-            MasterNode masterNode = cluster.getMasterNode();
-            Node master = new Node(masterNode.getId(), masterNode.getClusterIp(), masterNode.getJavaHome(),
-                    masterNode.getLogDir(), null, null, null, null, null);
-            ipAddresses.add(masterNode.getClusterIp());
-
-            valid = valid & validateNodeConfiguration(master, cluster);
-
-            for (Node node : cluster.getNode()) {
-                servers.add(node.getClusterIp());
-                if (serverIds.contains(node.getId())) {
-                    valid = false;
-                    LOGGER.error("Duplicate node id :" + node.getId() + ERROR);
-                } else {
-                    valid = valid & validateNodeConfiguration(node, cluster);
-                    if (!ipAddresses.contains(node.getClusterIp())) {
-                        ipAddresses.add(node.getClusterIp());
-                    }
-                }
-            }
-
-            valid = valid & validateReplicationProperties(cluster);
-        }
-
-        if (valid) {
-            String username = cluster.getUsername();
-            if (username == null) {
-                username = System.getProperty("user.name");
-            }
-            valid = checkPasswordLessSSHLogin(username, ipAddresses);
-        }
-        return valid;
-    }
-
-    private boolean checkPasswordLessSSHLogin(String username, List<String> ipAddresses) throws Exception {
-        String script = InstallerDriver.getManagixHome() + File.separator + InstallerDriver.MANAGIX_INTERNAL_DIR
-                + File.separator + "scripts" + File.separator + "validate_ssh.sh";
-        List<String> args = ipAddresses;
-        args.add(0, username);
-        String output = AsterixEventServiceUtil.executeLocalScript(script, args);
-        ipAddresses.remove(0);
-        for (String line : output.split("\n")) {
-            ipAddresses.remove(line);
-        }
-        if (ipAddresses.size() > 0) {
-            LOGGER.error(" Password-less SSH (from user account: " + username + " )"
-                    + " not configured for the following hosts");
-            for (String failedIp : ipAddresses) {
-                System.out.println(failedIp);
-            }
-            return false;
-        }
-        return true;
-    }
-
-    private boolean validateClusterProperties(Cluster cluster) {
-        List<String> tempDirs = new ArrayList<String>();
-        if (cluster.getLogDir() != null && checkTemporaryPath(cluster.getLogDir())) {
-            tempDirs.add("Log directory: " + cluster.getLogDir());
-        }
-        if (cluster.getIodevices() != null && checkTemporaryPath(cluster.getIodevices())) {
-            tempDirs.add("IO Device: " + cluster.getIodevices());
-        }
-
-        if (tempDirs.size() > 0) {
-            StringBuffer msg = new StringBuffer();
-            msg.append("The following paths are subject to be cleaned up by OS");
-            for (String tempDir : tempDirs) {
-                msg.append("\n" + tempDir + WARNING);
-            }
-            LOGGER.warn(msg);
-        }
-
-        if (cluster.getStore() == null || cluster.getStore().length() == 0) {
-            LOGGER.fatal("store not defined at cluster" + ERROR);
-            return false;
-        }
-        return true;
-    }
-
-    private boolean validateNodeConfiguration(Node node, Cluster cluster) {
-        boolean valid = true;
-        if (node.getJavaHome() == null || node.getJavaHome().length() == 0) {
-            if (cluster.getJavaHome() == null || cluster.getJavaHome().length() == 0) {
-                valid = false;
-                LOGGER.fatal("java_home not defined at cluster/node level for node: " + node.getId() + ERROR);
-            }
-        }
-
-        if (node.getLogDir() == null || node.getLogDir().length() == 0) {
-            if (cluster.getLogDir() == null || cluster.getLogDir().length() == 0) {
-                valid = false;
-                LOGGER.fatal("log_dir not defined at cluster/node level for node: " + node.getId() + ERROR);
-            }
-        }
-
-        if (node.getTxnLogDir() == null || node.getTxnLogDir().length() == 0) {
-            if (cluster.getTxnLogDir() == null || cluster.getTxnLogDir().length() == 0) {
-                valid = false;
-                LOGGER.fatal("txn_log_dir not defined at cluster/node level for node: " + node.getId() + ERROR);
-            }
-        }
-
-        if (node.getIodevices() == null || node.getIodevices().length() == 0) {
-            if (!cluster.getMasterNode().getId().equals(node.getId())
-                    && (cluster.getIodevices() == null || cluster.getIodevices().length() == 0)) {
-                valid = false;
-                LOGGER.fatal("iodevice(s) not defined at cluster/node level for node: " + node.getId() + ERROR);
-            }
-        }
-
-        return valid;
-    }
-
-    private boolean checkTemporaryPath(String logdir) {
-        return logdir.startsWith(System.getProperty("java.io.tmpdir"));
-    }
-
-    public boolean validateConfiguration() throws Exception {
-        String managixHome = System.getenv(InstallerDriver.ENV_MANAGIX_HOME);
-        File configFile = new File(managixHome + File.separator + InstallerDriver.MANAGIX_CONF_XML);
-        JAXBContext configCtx = JAXBContext.newInstance(Configuration.class);
-        Unmarshaller unmarshaller = configCtx.createUnmarshaller();
-        Configuration conf = (Configuration) unmarshaller.unmarshal(configFile);
-        return validateZookeeperConfiguration(conf);
-    }
-
-    private boolean validateZookeeperConfiguration(Configuration conf) throws Exception {
-        boolean valid = true;
-        Zookeeper zk = conf.getZookeeper();
-
-        if (zk.getHomeDir() == null || zk.getHomeDir().length() == 0) {
-            valid = false;
-            LOGGER.fatal("Zookeeper home dir not configured" + ERROR);
-        } else if (checkTemporaryPath(zk.getHomeDir())) {
-            LOGGER.warn("Zookeeper home dir is subject to be cleaned up by OS" + WARNING);
-        }
-
-        if (zk.getServers().getServer() == null || zk.getServers().getServer().isEmpty()) {
-            valid = false;
-            LOGGER.fatal("Zookeeper servers not configured" + ERROR);
-        }
-
-        if (zk.getServers().getJavaHome() == null || zk.getServers().getJavaHome().length() == 0) {
-            valid = false;
-            LOGGER.fatal("Java home not set for Zookeeper server in " + InstallerDriver.getManagixHome()
-                    + File.separator + InstallerDriver.MANAGIX_CONF_XML);
-        }
-
-        if (valid) {
-            valid = valid & checkPasswordLessSSHLogin(System.getProperty("user.name"), zk.getServers().getServer());
-        }
-
-        return valid;
-    }
-
-    private boolean validateReplicationProperties(Cluster cluster) {
-        boolean valid = true;
-
-        //if replication is disabled, no need to validate the settings
-        if (cluster.getHighAvailability() != null && cluster.getHighAvailability().getDataReplication() != null) {
-            if (cluster.getHighAvailability().getDataReplication().getReplicationPort() == null || cluster
-                    .getHighAvailability().getDataReplication().getReplicationPort().toString().length() == 0) {
-                valid = false;
-                LOGGER.fatal("Replication data port not defined for data repliaction. " + ERROR);
-            }
-
-            if (cluster.getHighAvailability().getDataReplication().getReplicationTimeOut() == null || String
-                    .valueOf(cluster.getHighAvailability().getDataReplication().getReplicationTimeOut().intValue())
-                    .length() == 0) {
-                LOGGER.warn("Replication maximum wait time not defined. Using default value (60 seconds) " + WARNING);
-            }
-
-            //validate all nodes have the same number of io devices
-            int numOfIODevices = 0;
-            Set<Integer> ioDevicesCount = new HashSet<Integer>();
-            for (int i = 0; i < cluster.getNode().size(); i++) {
-                Node node = cluster.getNode().get(i);
-
-                if (node.getIodevices() != null) {
-                    numOfIODevices = node.getIodevices().length() - node.getIodevices().replace(",", "").length();
-                } else {
-                    numOfIODevices = cluster.getIodevices().length() - cluster.getIodevices().replace(",", "").length();
-                }
-
-                ioDevicesCount.add(numOfIODevices);
-
-                if (ioDevicesCount.size() > 1) {
-                    valid = false;
-                    LOGGER.fatal("Replication requires all nodes to have the same number of IO devices." + ERROR);
-                    break;
-                }
-            }
-
-        }
-
-        return valid;
-    }
-
-}
-
-class ValidateConfig extends CommandConfig {
-
-    @Option(name = "-c", required = false, usage = "Path to the cluster configuration xml")
-    public String cluster;
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/VersionCommand.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/VersionCommand.java
deleted file mode 100644
index b604dc0..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/command/VersionCommand.java
+++ /dev/null
@@ -1,52 +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.installer.command;
-
-import java.io.File;
-
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.installer.driver.InstallerDriver;
-
-public class VersionCommand extends AbstractCommand {
-
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig(false);
-        String asterixZipName = AsterixEventService.getAsterixZip().substring(
-                AsterixEventService.getAsterixZip().lastIndexOf(File.separator) + 1);
-        String asterixVersion = asterixZipName.substring("asterix-server-".length(),
-                asterixZipName.indexOf("-binary-assembly"));
-        LOGGER.info("Asterix/Managix version " + asterixVersion);
-    }
-
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new VersionConfig();
-    }
-
-    @Override
-    protected String getUsageDescription() {
-        return "Provides version of Managix/Asterix";
-    }
-
-}
-
-class VersionConfig extends CommandConfig {
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerDriver.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerDriver.java
deleted file mode 100644
index 61e7916..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerDriver.java
+++ /dev/null
@@ -1,133 +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.installer.driver;
-
-import java.io.File;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.log4j.Logger;
-
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.ILookupService;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.installer.command.CommandHandler;
-import org.apache.asterix.installer.command.ConfigureCommand;
-import org.apache.asterix.installer.schema.conf.Configuration;
-
-public class InstallerDriver {
-
-    private static final Logger LOGGER = Logger.getLogger(InstallerDriver.class.getName());
-
-    public static final String MANAGIX_INTERNAL_DIR = ".installer";
-    public static final String ENV_MANAGIX_HOME = "MANAGIX_HOME";
-    public static final String MANAGIX_CONF_XML = "conf" + File.separator + "managix-conf.xml";
-    public static final String ASTERIX_DIR = "asterix";
-
-    private static String managixHome;
-
-    public static void initConfig(boolean ensureLookupServiceIsRunning) throws Exception {
-        File configFile = new File(managixHome + File.separator + MANAGIX_CONF_XML);
-        JAXBContext configCtx = JAXBContext.newInstance(Configuration.class);
-        Unmarshaller unmarshaller = configCtx.createUnmarshaller();
-        Configuration conf = (Configuration) unmarshaller.unmarshal(configFile);
-        String asterixDir = managixHome + File.separator + ASTERIX_DIR;
-        String eventHome = managixHome + File.separator + MANAGIX_INTERNAL_DIR;
-        AsterixEventService.initialize(conf, asterixDir, eventHome);
-
-        ILookupService lookupService = ServiceProvider.INSTANCE.getLookupService();
-        if (ensureLookupServiceIsRunning) {
-            if (!conf.isConfigured()) {
-                try {
-                    configure();
-                    /* read back the configuration file updated as part of configure command*/
-                    conf = (Configuration) unmarshaller.unmarshal(configFile);
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-            if (!lookupService.isRunning(conf)) {
-                lookupService.startService(conf);
-            }
-        }
-
-    }
-
-    private static void configure() throws Exception {
-        ConfigureCommand cmd = new ConfigureCommand();
-        cmd.execute(new String[] { "configure" });
-    }
-
-    public static String getManagixHome() {
-        return managixHome;
-    }
-
-    public static void setManagixHome(String managixHome) {
-        InstallerDriver.managixHome = managixHome;
-    }
-
-    public static void main(String args[]) {
-        try {
-            if (args.length != 0) {
-                managixHome = System.getenv(ENV_MANAGIX_HOME);
-                CommandHandler cmdHandler = new CommandHandler();
-                cmdHandler.processCommand(args);
-            } else {
-                printUsage();
-            }
-        } catch (IllegalArgumentException iae) {
-            LOGGER.error("Unknown command");
-            printUsage();
-        } catch (Exception e) {
-            LOGGER.error(e.getMessage());
-            if (e.getMessage() == null || e.getMessage().length() < 10) {
-                // less than 10 characters of error message is probably not enough
-                e.printStackTrace();
-            }
-        }
-    }
-
-    private static void printUsage() {
-        StringBuffer buffer = new StringBuffer("managix <command> <options>" + "\n");
-        buffer.append("Commands" + "\n");
-        buffer.append("create   " + ":" + " Creates a new asterix instance" + "\n");
-        buffer.append("delete   " + ":" + " Deletes an asterix instance" + "\n");
-        buffer.append("start    " + ":" + " Starts an  asterix instance" + "\n");
-        buffer.append("stop     " + ":" + " Stops an asterix instance that is in ACTIVE state" + "\n");
-        buffer.append("backup   " + ":" + " Creates a back up for an existing asterix instance" + "\n");
-        buffer.append("restore  " + ":" + " Restores an asterix instance" + "\n");
-        buffer.append("alter    " + ":" + " Alter the instance's configuration settings" + "\n");
-        buffer.append("describe " + ":" + " Describes an existing asterix instance" + "\n");
-        buffer.append("validate " + ":" + " Validates the installer/cluster configuration" + "\n");
-        buffer.append("configure" + ":" + " Auto-generate configuration for local psedu-distributed Asterix instance"
-                + "\n");
-        buffer.append("install  " + ":" + " Installs a library to an asterix instance" + "\n");
-        buffer.append("uninstall" + ":" + " Uninstalls a library from an asterix instance" + "\n");
-        buffer.append("log      " + ":"
-                + " Produce a tar archive contianing log files from the master and worker nodes" + "\n");
-        buffer.append("shutdown " + ":" + " Shutdown the installer service" + "\n");
-        buffer.append("help     " + ":" + " Provides usage description of a command" + "\n");
-        buffer.append("version  " + ":" + " Provides version of Asterix/Managix" + "\n");
-
-        buffer.append("\nTo get more information about a command, use managix help -cmd <command>");
-        LOGGER.info(buffer.toString());
-    }
-
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerUtil.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerUtil.java
deleted file mode 100644
index 1ac60ba..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerUtil.java
+++ /dev/null
@@ -1,77 +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.installer.driver;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.asterix.common.configuration.AsterixConfiguration;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-
-public class InstallerUtil {
-
-    private static final String DEFAULT_ASTERIX_CONFIGURATION_PATH = "conf" + File.separator
-            + "asterix-configuration.xml";
-
-    public static final String TXN_LOG_DIR = "txnLogs";
-    public static final String TXN_LOG_DIR_KEY_SUFFIX = "txnLogDir";
-    public static final String ASTERIX_CONFIGURATION_FILE = "asterix-configuration.xml";
-    public static final String TXN_LOG_CONFIGURATION_FILE = "log.properties";
-    public static final int CLUSTER_NET_PORT_DEFAULT = 1098;
-    public static final int CLIENT_NET_PORT_DEFAULT = 1099;
-    public static final int HTTP_PORT_DEFAULT = 8888;
-    public static final int WEB_INTERFACE_PORT_DEFAULT = 19001;
-
-    public static String getNodeDirectories(String asterixInstanceName, Node node, Cluster cluster) {
-        String storeDataSubDir = asterixInstanceName + File.separator + "data" + File.separator;
-        String[] storeDirs = null;
-        StringBuffer nodeDataStore = new StringBuffer();
-        String storeDirValue = cluster.getStore();
-        if (storeDirValue == null) {
-            throw new IllegalStateException(" Store not defined for node " + node.getId());
-        }
-        storeDataSubDir = node.getId() + File.separator + storeDataSubDir;
-
-        storeDirs = storeDirValue.split(",");
-        for (String ns : storeDirs) {
-            nodeDataStore.append(ns + File.separator + storeDataSubDir.trim());
-            nodeDataStore.append(",");
-        }
-        nodeDataStore.deleteCharAt(nodeDataStore.length() - 1);
-        return nodeDataStore.toString();
-    }
-
-    public static AsterixConfiguration getAsterixConfiguration(String asterixConf)
-            throws FileNotFoundException, IOException, JAXBException {
-        if (asterixConf == null) {
-            asterixConf = InstallerDriver.getManagixHome() + File.separator + DEFAULT_ASTERIX_CONFIGURATION_PATH;
-        }
-        File file = new File(asterixConf);
-        JAXBContext ctx = JAXBContext.newInstance(AsterixConfiguration.class);
-        Unmarshaller unmarshaller = ctx.createUnmarshaller();
-        AsterixConfiguration asterixConfiguration = (AsterixConfiguration) unmarshaller.unmarshal(file);
-        return asterixConfiguration;
-    }
-}
diff --git a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/error/InstallerException.java b/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/error/InstallerException.java
deleted file mode 100644
index dccfd4a..0000000
--- a/asterixdb/asterix-installer/src/main/java/org/apache/asterix/installer/error/InstallerException.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.installer.error;
-
-public class InstallerException extends Exception {
-
-    private static final long serialVersionUID = 1L;
-
-    public InstallerException(String message) {
-        super(message);
-    }
-
-}
diff --git a/asterixdb/asterix-installer/src/main/resources/clusters/demo/demo.xml b/asterixdb/asterix-installer/src/main/resources/clusters/demo/demo.xml
deleted file mode 100644
index 500172c..0000000
--- a/asterixdb/asterix-installer/src/main/resources/clusters/demo/demo.xml
+++ /dev/null
@@ -1,57 +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.
- !-->
-<cluster xmlns="cluster">
-  <!--
-    This defines a cluster that runs 2 worker nodes on a single machine.
-    Also, each worker node is assigned to 2 partitions in the same
-    directory (and thus on the same external storage device).
-    Both of these decisions are usually not advisable for production
-    use.
-  -->
-  <name>demo</name>
-  <working_dir>
-    <dir>/tmp/asterix-installer</dir>
-    <NFS>true</NFS>
-  </working_dir>
-  <log_dir>/tmp/asterix/logs</log_dir>
-  <store>storage</store>
-  <java_home></java_home>
-  <master_node>
-    <id>master</id>
-    <client_ip>127.0.0.1</client_ip>
-    <cluster_ip>127.0.0.1</cluster_ip>
-    <cluster_port>1099</cluster_port>
-    <client_port>1098</client_port>
-    <http_port>8888</http_port>
-  </master_node>
-  <node>
-    <id>node1</id>
-    <cluster_ip>127.0.0.1</cluster_ip>
-    <txn_log_dir>/tmp/asterix/node1/txnLogs</txn_log_dir>
-    <iodevices>/tmp/asterix/node1/1,/tmp/asterix/node1/2</iodevices>
-    <nc_api_port>19004</nc_api_port>
-  </node>
-  <node>
-    <id>node2</id>
-    <cluster_ip>127.0.0.1</cluster_ip>
-    <txn_log_dir>/tmp/asterix/node2/txnLogs</txn_log_dir>
-    <iodevices>/tmp/asterix/node2/1,/tmp/asterix/node2/2</iodevices>
-    <nc_api_port>19005</nc_api_port>
-  </node>
-</cluster>
diff --git a/asterixdb/asterix-installer/src/main/resources/clusters/local/local.xml b/asterixdb/asterix-installer/src/main/resources/clusters/local/local.xml
deleted file mode 100644
index b26d836..0000000
--- a/asterixdb/asterix-installer/src/main/resources/clusters/local/local.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
- ! 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.
- !-->
-<cluster xmlns="cluster">
-  <java_home>/usr/lib/jvm/jdk-8-oracle-x64/jre</java_home>
-  <log_dir>/tmp/asterix/logs</log_dir>
-  <txn_log_dir>/tmp/asterix/txnLogs</txn_log_dir>
-  <store>storage</store>
-  <working_dir>
-    <dir>/tmp/asterix-installer</dir>
-    <NFS>true</NFS>
-  </working_dir>
-  <!-- Sets the time duration between two heartbeats from each node controller in milliseconds (default: 10000) -->
-  <heartbeat_period>10000</heartbeat_period>
-  <!-- Sets the maximum number of missed heartbeats before a node is marked as dead (default: 5) -->
-  <max_heartbeat_lapse_periods>5</max_heartbeat_lapse_periods>
-  <!-- Sets the time duration between two profile dumps from each node controller in milliseconds. 0 to disable. (default: 0) -->
-  <profile_dump_period>0</profile_dump_period>
-  <!-- Limits the number of historical jobs remembered by the system to the specified value. (default: 10) -->
-  <job_history_size>10</job_history_size>
-  <!-- Limits the amount of time results for asynchronous jobs should be retained by the system in milliseconds. (default: 24 hours) -->
-  <result_time_to_live>86400000</result_time_to_live>
-  <!-- The duration within which an instance of the result cleanup should be invoked in milliseconds. (default: 1 minute) -->
-  <result_sweep_threshold>60000</result_sweep_threshold>
-  <master_node>
-    <id>master</id>
-    <client_ip>127.0.0.1</client_ip>
-    <cluster_ip>127.0.0.1</cluster_ip>
-    <client_port>1098</client_port>
-    <cluster_port>1099</cluster_port>
-    <http_port>8888</http_port>
-  </master_node>
-  <node>
-    <id>nc1</id>
-    <cluster_ip>127.0.0.1</cluster_ip>
-    <txn_log_dir>/tmp/asterix/nc1/txnLogs</txn_log_dir>
-    <iodevices>/tmp/asterix/nc1/p1,/tmp/asterix/nc1/p2</iodevices>
-    <nc_api_port>19004</nc_api_port>
-  </node>
-  <node>
-    <id>nc2</id>
-    <cluster_ip>127.0.0.1</cluster_ip>
-    <txn_log_dir>/tmp/asterix/nc2/txnLogs</txn_log_dir>
-    <iodevices>/tmp/asterix/nc2/p1,/tmp/asterix/nc2/p2</iodevices>
-    <nc_api_port>19005</nc_api_port>
-  </node>
-</cluster>
diff --git a/asterixdb/asterix-installer/src/main/resources/clusters/local/local_chained_declustering_rep.xml b/asterixdb/asterix-installer/src/main/resources/clusters/local/local_chained_declustering_rep.xml
deleted file mode 100644
index c445835..0000000
--- a/asterixdb/asterix-installer/src/main/resources/clusters/local/local_chained_declustering_rep.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
- ! 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.
- !-->
-<cluster xmlns="cluster">
-  <java_home>/usr/lib/jvm/jdk-8-oracle-x64/jre</java_home>
-  <log_dir>/tmp/asterix/logs</log_dir>
-  <txn_log_dir>/tmp/asterix/txnLogs</txn_log_dir>
-  <store>storage</store>
-  <working_dir>
-    <dir>/tmp/asterix-installer</dir>
-    <NFS>true</NFS>
-  </working_dir>
-  <!-- Sets the time duration between two heartbeats from each node controller in milliseconds (default: 10000) -->
-  <heartbeat_period>1000</heartbeat_period>
-  <!-- Sets the maximum number of missed heartbeats before a node is marked as dead (default: 5) -->
-  <max_heartbeat_lapse_periods>5</max_heartbeat_lapse_periods>
-  <!-- Sets the time duration between two profile dumps from each node controller in milliseconds. 0 to disable. (default: 0) -->
-  <profile_dump_period>0</profile_dump_period>
-  <!-- Limits the number of historical jobs remembered by the system to the specified value. (default: 10) -->
-  <job_history_size>10</job_history_size>
-  <!-- Limits the amount of time results for asynchronous jobs should be retained by the system in milliseconds. (default: 24 hours) -->
-  <result_time_to_live>86400000</result_time_to_live>
-  <!-- The duration within which an instance of the result cleanup should be invoked in milliseconds. (default: 1 minute) -->
-  <result_sweep_threshold>60000</result_sweep_threshold>
-
-  <metadata_node>nc1</metadata_node>
-
-  <high_availability>
-    <enabled>true</enabled>
-    <data_replication>
-      <strategy>chained_declustering</strategy>
-      <replication_port>2000</replication_port>
-      <replication_factor>2</replication_factor>
-      <replication_time_out>30</replication_time_out>
-    </data_replication>
-    <fault_tolerance>
-       <strategy>auto</strategy>
-    </fault_tolerance>
-  </high_availability>
-
-  <master_node>
-    <id>master</id>
-    <client_ip>127.0.0.1</client_ip>
-    <cluster_ip>127.0.0.1</cluster_ip>
-    <client_port>1098</client_port>
-    <cluster_port>1099</cluster_port>
-    <http_port>8888</http_port>
-  </master_node>
-  <node>
-    <id>nc1</id>
-    <cluster_ip>127.0.0.1</cluster_ip>
-    <txn_log_dir>/tmp/asterix/nc1/txnLogs</txn_log_dir>
-    <iodevices>/tmp/asterix/nc1/p1,/tmp/asterix/nc1/p2</iodevices>
-    <replication_port>2000</replication_port>
-    <nc_api_port>19004</nc_api_port>
-  </node>
-  <node>
-    <id>nc2</id>
-    <cluster_ip>127.0.0.1</cluster_ip>
-    <txn_log_dir>/tmp/asterix/nc2/txnLogs</txn_log_dir>
-    <iodevices>/tmp/asterix/nc2/p1,/tmp/asterix/nc2/p2</iodevices>
-    <replication_port>2001</replication_port>
-    <nc_api_port>19005</nc_api_port>
-  </node>
-</cluster>
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/main/resources/clusters/local/local_metadata_only_rep.xml b/asterixdb/asterix-installer/src/main/resources/clusters/local/local_metadata_only_rep.xml
deleted file mode 100644
index fbe0de8..0000000
--- a/asterixdb/asterix-installer/src/main/resources/clusters/local/local_metadata_only_rep.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
- ! 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.
- !-->
-<cluster xmlns="cluster">
-  <java_home>/usr/lib/jvm/jdk-8-oracle-x64/jre</java_home>
-  <log_dir>/tmp/asterix/logs</log_dir>
-  <txn_log_dir>/tmp/asterix/txnLogs</txn_log_dir>
-  <store>storage</store>
-  <working_dir>
-    <dir>/tmp/asterix-installer</dir>
-    <NFS>true</NFS>
-  </working_dir>
-  <!-- Sets the time duration between two heartbeats from each node controller in milliseconds (default: 10000) -->
-  <heartbeat_period>1000</heartbeat_period>
-  <!-- Sets the maximum number of missed heartbeats before a node is marked as dead (default: 5) -->
-  <max_heartbeat_lapse_periods>5</max_heartbeat_lapse_periods>
-  <!-- Sets the time duration between two profile dumps from each node controller in milliseconds. 0 to disable. (default: 0) -->
-  <profile_dump_period>0</profile_dump_period>
-  <!-- Sets the default number of job attempts allowed if not specified in the job specification. (default: 5) -->
-  <default_max_job_attempts>5</default_max_job_attempts>
-  <!-- Limits the number of historical jobs remembered by the system to the specified value. (default: 10) -->
-  <job_history_size>10</job_history_size>
-  <!-- Limits the amount of time results for asynchronous jobs should be retained by the system in milliseconds. (default: 24 hours) -->
-  <result_time_to_live>86400000</result_time_to_live>
-  <!-- The duration within which an instance of the result cleanup should be invoked in milliseconds. (default: 1 minute) -->
-  <result_sweep_threshold>60000</result_sweep_threshold>
-
-  <metadata_node>nc1</metadata_node>
-
-  <high_availability>
-    <enabled>true</enabled>
-    <data_replication>
-      <strategy>metadata_only</strategy>
-      <replication_port>2000</replication_port>
-      <replication_time_out>30</replication_time_out>
-    </data_replication>
-    <fault_tolerance>
-      <strategy>metadata_node</strategy>
-      <replica>
-        <node_id>nc2</node_id>
-      </replica>
-    </fault_tolerance>
-  </high_availability>
-
-  <master_node>
-    <id>master</id>
-    <client_ip>127.0.0.1</client_ip>
-    <cluster_ip>127.0.0.1</cluster_ip>
-    <client_port>1098</client_port>
-    <cluster_port>1099</cluster_port>
-    <http_port>8888</http_port>
-  </master_node>
-  <node>
-    <id>nc1</id>
-    <cluster_ip>127.0.0.1</cluster_ip>
-    <txn_log_dir>/tmp/asterix/nc1/txnLogs</txn_log_dir>
-    <iodevices>/tmp/asterix/nc1/p1,/tmp/asterix/nc1/p2</iodevices>
-    <replication_port>2000</replication_port>
-    <nc_api_port>19004</nc_api_port>
-  </node>
-  <node>
-    <id>nc2</id>
-    <cluster_ip>127.0.0.1</cluster_ip>
-    <txn_log_dir>/tmp/asterix/nc2/txnLogs</txn_log_dir>
-    <iodevices>/tmp/asterix/nc2/p1,/tmp/asterix/nc2/p2</iodevices>
-    <replication_port>2001</replication_port>
-    <nc_api_port>19005</nc_api_port>
-  </node>
-</cluster>
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/main/resources/conf/asterix-configuration.xml b/asterixdb/asterix-installer/src/main/resources/conf/asterix-configuration.xml
deleted file mode 100644
index 35d114e..0000000
--- a/asterixdb/asterix-installer/src/main/resources/conf/asterix-configuration.xml
+++ /dev/null
@@ -1,268 +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.
- !-->
-<asterixConfiguration xmlns="asterixconf">
-
-  <property>
-    <name>nc.java.opts</name>
-    <value>-Xmx3096m</value>
-    <description>JVM parameters for each Node Contoller (NC)</description>
-  </property>
-
-  <property>
-    <name>cc.java.opts</name>
-    <value>-Xmx1024m</value>
-    <description>JVM parameters for each Cluster Contoller (CC)
-    </description>
-  </property>
-
-  <property>
-    <name>max.wait.active.cluster</name>
-    <value>60</value>
-    <description>Maximum wait (in seconds) for a cluster to be ACTIVE (all nodes are available)
-      before a submitted query/statement can be executed. (Default = 60 seconds)
-    </description>
-  </property>
-
-  <property>
-    <name>storage.buffercache.pagesize</name>
-    <value>128KB</value>
-    <description>The page size in bytes for pages in the buffer cache.
-      (Default = "131072" // 128KB)
-    </description>
-  </property>
-
-  <property>
-    <name>storage.buffercache.size</name>
-    <value>512MB</value>
-    <description>The size of memory allocated to the disk buffer cache.
-      The value should be a multiple of the buffer cache page size(Default
-      = "536870912" // 512MB)
-    </description>
-  </property>
-
-  <property>
-    <name>storage.buffercache.maxopenfiles</name>
-    <value>214748364</value>
-    <description>The maximum number of open files in the buffer cache.
-      (Default = "214748364")
-    </description>
-  </property>
-
-  <property>
-    <name>storage.memorycomponent.pagesize</name>
-    <value>128KB</value>
-    <description>The page size in bytes for pages allocated to memory
-      components. (Default = "131072" // 128KB)
-    </description>
-  </property>
-
-  <property>
-    <name>storage.memorycomponent.numpages</name>
-    <value>256</value>
-    <description>The number of pages to allocate for a memory component.
-      This budget is shared by all the memory components of the primary
-      index and all its secondary indexes across all I/O devices on a node.
-      Note: in-memory components usually has fill factor of 75% since
-      the pages are 75% full and the remaining 25% is un-utilized. (Default = 256)
-    </description>
-  </property>
-
-  <property>
-    <name>storage.metadata.memorycomponent.numpages</name>
-    <value>64</value>
-    <description>The number of pages to allocate for a memory component.
-      (Default = 64)
-    </description>
-  </property>
-
-  <property>
-    <name>storage.memorycomponent.numcomponents</name>
-    <value>2</value>
-    <description>The number of memory components to be used per lsm index.
-      (Default = 2)
-    </description>
-  </property>
-
-  <property>
-    <name>storage.memorycomponent.globalbudget</name>
-    <value>1GB</value>
-    <description>The total size of memory in bytes that the sum of all open memory
-      components cannot exceed. Consider this as the buffer cache for all memory
-      components of all indexes in a node. When this budget is fully used, a victim
-      dataset will be chosen. The chosen dataset must be evicted and closed to make
-      a space for another dataset. (Default = 512MB)
-    </description>
-  </property>
-
-  <property>
-    <name>storage.lsm.bloomfilter.falsepositiverate</name>
-    <value>0.01</value>
-    <description>The maximum acceptable false positive rate for bloom
-      filters associated with LSM indexes. (Default = "0.01" // 1%)
-    </description>
-  </property>
-
-  <property>
-    <name>txn.log.buffer.numpages</name>
-    <value>8</value>
-    <description>The number of in-memory log buffer pages. (Default = "8")
-    </description>
-  </property>
-
-  <property>
-    <name>txn.log.buffer.pagesize</name>
-    <value>512KB</value>
-    <description>The size of pages in the in-memory log buffer. (Default =
-      "524288" // 512KB)
-    </description>
-  </property>
-
-  <property>
-    <name>txn.log.partitionsize</name>
-    <value>2GB</value>
-    <description>The maximum size of a log file partition allowed before
-      rotating the log to the next partition. (Default = "2147483648" //
-      2GB)
-    </description>
-  </property>
-
-  <property>
-    <name>txn.log.checkpoint.lsnthreshold</name>
-    <value>67108864</value>
-    <description>The size of the window that the maximum LSN is allowed to
-      be ahead of the checkpoint LSN by. (Default = ""67108864" // 64M)
-    </description>
-  </property>
-
-  <property>
-    <name>txn.log.checkpoint.pollfrequency</name>
-    <value>120</value>
-    <description>The time in seconds between that the checkpoint thread
-      waits between polls. (Default = "120" // 120s)
-    </description>
-  </property>
-
-  <property>
-    <name>txn.log.checkpoint.history</name>
-    <value>0</value>
-    <description>The number of old log partition files to keep before
-      discarding. (Default = "0")
-    </description>
-  </property>
-
-  <property>
-    <name>txn.lock.escalationthreshold</name>
-    <value>1000</value>
-    <description>The number of entity level locks that need to be acquired
-      before the locks are coalesced and escalated into a dataset level
-      lock. (Default = "1000")
-    </description>
-  </property>
-
-  <property>
-    <name>txn.lock.shrinktimer</name>
-    <value>5000</value>
-    <description>The time in milliseconds to wait before deallocating
-      unused lock manager memory. (Default = "5000" // 5s)
-    </description>
-  </property>
-
-  <property>
-    <name>txn.lock.timeout.waitthreshold</name>
-    <value>60000</value>
-    <description>The time in milliseconds to wait before labeling a
-      transaction which has been waiting for a lock timed-out. (Default =
-      "60000" // 60s)
-    </description>
-  </property>
-
-  <property>
-    <name>txn.lock.timeout.sweepthreshold</name>
-    <value>10000</value>
-    <description>The time in milliseconds the timeout thread waits between
-      sweeps to detect timed-out transactions. (Default = "10000" // 10s)
-    </description>
-  </property>
-
-  <property>
-    <name>txn.job.recovery.memorysize</name>
-    <value>64MB</value>
-    <description>The memory allocated per job during recovery.
-     (Default = "67108864" // 64MB)
-    </description>
-  </property>
-
-  <property>
-    <name>compiler.sortmemory</name>
-    <value>32MB</value>
-    <description>The amount of memory in bytes given to sort operations.
-      (Default = "33554432" // 32MB)
-    </description>
-  </property>
-
-  <property>
-    <name>compiler.joinmemory</name>
-    <value>32MB</value>
-    <description>The amount of memory in bytes given to join operations.
-      (Default = "33554432" // 32MB)
-    </description>
-  </property>
-
-  <property>
-    <name>compiler.framesize</name>
-    <value>128KB</value>
-    <description>The Hyracks frame size that the compiler configures per
-      job. (Default = "131072" // 128KB)
-    </description>
-  </property>
-
-  <property>
-    <name>compiler.pregelix.home</name>
-    <value>~/pregelix</value>
-  </property>
-
-  <property>
-    <name>web.port</name>
-    <value>19001</value>
-    <description>The port for the ASTERIX web interface. (Default = 19001)
-    </description>
-  </property>
-
-  <property>
-    <name>web.queryinterface.port</name>
-    <value>19006</value>
-    <description>The port for the ASTERIX web query interface. (Default = 19006)
-    </description>
-  </property>
-
-  <property>
-    <name>api.port</name>
-    <value>19002</value>
-    <description>The port for the ASTERIX API server. (Default = 19002)
-    </description>
-  </property>
-
-  <property>
-    <name>log.level</name>
-    <value>INFO</value>
-    <description>The minimum log level to be displayed. (Default = INFO)
-    </description>
-  </property>
-
-</asterixConfiguration>
diff --git a/asterixdb/asterix-installer/src/main/resources/conf/log4j.properties b/asterixdb/asterix-installer/src/main/resources/conf/log4j.properties
deleted file mode 100644
index 9d84a21..0000000
--- a/asterixdb/asterix-installer/src/main/resources/conf/log4j.properties
+++ /dev/null
@@ -1,26 +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.
-log4j.rootLogger=info, A1
-
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-# Print the date in ISO 8601 format
-log4j.appender.A1.layout.ConversionPattern=%-p: %m%n
-
-log4j.logger.org.apache.asterix.event.management=error
-log4j.logger.org.apache.zookeeper=error
diff --git a/asterixdb/asterix-installer/src/main/resources/conf/managix-conf.xml b/asterixdb/asterix-installer/src/main/resources/conf/managix-conf.xml
deleted file mode 100644
index 789f546..0000000
--- a/asterixdb/asterix-installer/src/main/resources/conf/managix-conf.xml
+++ /dev/null
@@ -1,35 +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.
- !-->
-<configuration xmlns="installer">
-  <is_configured>false</is_configured>
-  <backup>
-    <hdfs>
-      <version>0.20.2</version>
-      <url></url>
-      <backupDir></backupDir>
-    </hdfs>
-  </backup>
-  <zookeeper>
-    <homeDir>/tmp/zookeeper</homeDir>
-    <clientPort>2900</clientPort>
-    <servers>
-      <server>127.0.0.1</server>
-    </servers>
-  </zookeeper>
-</configuration>
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/create.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/create.aql
deleted file mode 100644
index 87ad2b0..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/create.aql
+++ /dev/null
@@ -1,69 +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.
- */
-drop dataverse TinySocial if exists;
-create dataverse TinySocial;
-use dataverse TinySocial;
-
-create type EmploymentType as open {
-    organization-name: string,
-    start-date: date,
-    end-date: date?
-}
-
-create type MugshotUserType as {
-    id: int32,
-    alias: string,
-    name: string,
-    user-since: datetime,
-    address: {
-        street: string,
-        city: string,
-        state: string,
-        zip: string,
-        country: string
-    },
-    friend-ids: {{ int32 }},
-    employment: [EmploymentType]
-}
-
-create type MugshotMessageType as closed {
-    message-id: int32,
-    author-id: int32,
-    timestamp: datetime,
-    in-response-to: int32?,
-    sender-location: point?,
-    tags: {{ string }},
-    message: string
-}
-
-create dataset MugshotUsers(MugshotUserType)
-    primary key id;
-create dataset MugshotMessages(MugshotMessageType)
-    primary key message-id;
-
-create index msUserSinceIdx
-    on MugshotUsers(user-since);
-create index msTimestampIdx
-    on MugshotMessages(timestamp);
-create index msAuthorIdx
-    on MugshotMessages(author-id) type btree;
-create index msSenderLocIndex
-    on MugshotMessages(sender-location) type rtree;
-create index msMessageIdx
-    on MugshotMessages(message) type keyword;
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/equi-join.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/equi-join.aql
deleted file mode 100644
index 2dab34a..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/equi-join.aql
+++ /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.
- */
-use dataverse TinySocial;
-
-for $user in dataset MugshotUsers
-for $message in dataset MugshotMessages
-where $message.author-id = $user.id
-  and $user.user-since >= datetime('2010-07-22T00:00:00')
-  and $user.user-since <= datetime('2012-07-29T23:59:59')
-return {
-  "uname" : $user.name,
-  "message" : $message.message
-};
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/function-definition.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/function-definition.aql
deleted file mode 100644
index fee9eb0..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/function-definition.aql
+++ /dev/null
@@ -1,31 +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.
- */
-use dataverse TinySocial;
-
-drop function unemployed@0 if exists;
-
-create function unemployed() {
-  for $msu in dataset MugshotUsers
-  where (every $e in $msu.employment
-         satisfies not(is-null($e.end-date)))
-  return {
-    "name" : $msu.name,
-    "address" : $msu.address
-  }
-};
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/function-use.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/function-use.aql
deleted file mode 100644
index 5695b31..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/function-use.aql
+++ /dev/null
@@ -1,23 +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.
- */
-use dataverse TinySocial;
-
-for $un in unemployed()
-where $un.address.zip = "94065"
-return $un
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/group-sort-limit.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/group-sort-limit.aql
deleted file mode 100644
index e0c4cfd..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/group-sort-limit.aql
+++ /dev/null
@@ -1,31 +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.
- */
-use dataverse TinySocial;
-
-for $msg in dataset MugshotMessages
-where $msg.timestamp >= datetime("2014-02-20T00:00:00")
-  and $msg.timestamp <  datetime("2014-03-20T00:00:00")
-group by $aid := $msg.author-id with $msg
-let $cnt := count($msg)
-order by $cnt desc
-limit 3
-return {
-  "author" : $aid,
-  "no messages" : $cnt
-};
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/insert.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/insert.aql
deleted file mode 100644
index 720a34f..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/insert.aql
+++ /dev/null
@@ -1,41 +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.
- */
-use dataverse TinySocial;
-
-insert into dataset MugshotUsers
-(
-  {
-    "id":999,
-    "alias":"John",
-    "name":"JohnDoe",
-    "address":{
-      "street":"789 Jane St",
-      "city":"San Harry",
-      "zip":"98767",
-      "state":"CA",
-      "country":"USA"
-    },
-    "user-since":datetime("2010-08-15T08:10:00"),
-    "friend-ids":{{ 5, 9, 11 }},
-    "employment":[{
-        "organization-name":"Kongreen",
-        "start-date":date("2012-06-05")
-    }]
-  }
-);
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/join-group.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/join-group.aql
deleted file mode 100644
index 255f800..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/join-group.aql
+++ /dev/null
@@ -1,32 +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.
- */
-use dataverse TinySocial;
-
-for $user in dataset MugshotUsers
-for $message in dataset MugshotMessages
-where $message.author-id = $user.id
-group by $name := $user.name with $message
-let $avglen := avg(for $m in $message
-                   return string-length($m.message))
-order by $avglen desc
-limit 10
-return {
-  "uname" : $name,
-  "msg-length" : $avglen
-};
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/left-outer-fuzzy-join.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/left-outer-fuzzy-join.aql
deleted file mode 100644
index ee4e626..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/left-outer-fuzzy-join.aql
+++ /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.
- */
-use dataverse TinySocial;
-
-set simfunction "jaccard";
-set simthreshold "0.3";
-
-for $msg in dataset MugshotMessages
-let $msgsSimilarTags := (
-  for $m2 in dataset MugshotMessages
-    where  $m2.tags ~= $msg.tags
-      and $m2.message-id != $msg.message-id
-    return $m2.message
-  )
-where count($msgsSimilarTags) > 0
-order by count($msgsSimilarTags)
-limit 10
-return {
-  "message" : $msg.message,
-  "similarly tagged" : $msgsSimilarTags
-};
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/left-outer-join-aggr.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/left-outer-join-aggr.aql
deleted file mode 100644
index ff461bc..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/left-outer-join-aggr.aql
+++ /dev/null
@@ -1,32 +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.
- */
-use dataverse TinySocial;
-
-for $user in dataset MugshotUsers
-let $result := {
-    "uname" : $user.name,
-    "msg-length" : avg(
-        for $message in dataset MugshotMessages
-        where $message.author-id = $user.id
-        return string-length($message.message)
-      )
-  }
-order by $result.msg-length desc
-limit 10
-return $result;
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/left-outer-join.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/left-outer-join.aql
deleted file mode 100644
index 04e1ceb..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/left-outer-join.aql
+++ /dev/null
@@ -1,30 +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.
- */
-use dataverse TinySocial;
-
-for $user in dataset MugshotUsers
-where $user.user-since >= datetime('2010-07-22T00:00:00')
-  and $user.user-since <= datetime('2012-07-29T23:59:59')
-return {
-  "uname" : $user.name,
-  "messages" :
-    for $message in dataset MugshotMessages
-    where $message.author-id = $user.id
-    return $message.message
-};
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/load.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/load.aql
deleted file mode 100644
index e85739a..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/load.aql
+++ /dev/null
@@ -1,25 +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.
- */
-use dataverse TinySocial;
-
-load dataset MugshotUsers using localfs
-(("path"="127.0.0.1://../../../examples/mugshot/data/mugshot_users.adm"),("format"="adm"));
-
-load dataset MugshotMessages using localfs
-(("path"="127.0.0.1://../../../examples/mugshot/data/mugshot_messages.adm"),("format"="adm"));
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/lookup.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/lookup.aql
deleted file mode 100644
index ec5cfe8..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/lookup.aql
+++ /dev/null
@@ -1,23 +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.
- */
-use dataverse TinySocial;
-
-for $user in dataset MugshotUsers
-where $user.id = 8
-return $user;
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/range-scan.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/range-scan.aql
deleted file mode 100644
index 788379a..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/range-scan.aql
+++ /dev/null
@@ -1,24 +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.
- */
-use dataverse TinySocial;
-
-for $user in dataset MugshotUsers
-where $user.user-since >= datetime('2010-07-22T00:00:00')
-  and $user.user-since <= datetime('2012-07-29T23:59:59')
-return $user;
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/simple-aggregation.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/simple-aggregation.aql
deleted file mode 100644
index 44e1281..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/simple-aggregation.aql
+++ /dev/null
@@ -1,26 +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.
- */
-use dataverse TinySocial;
-
-avg(
-  for $m in dataset MugshotMessages
-  where $m.timestamp >= datetime("2014-01-01T00:00:00")
-    and $m.timestamp <  datetime("2014-04-01T00:00:00")
-  return string-length($m.message)
-)
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/spatial-join.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/spatial-join.aql
deleted file mode 100644
index eb50cb1..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/spatial-join.aql
+++ /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.
- */
-use dataverse TinySocial;
-
-for $t in dataset MugshotMessages
-return {
-  "message" : $t.message,
-  "nearby-messages":
-    for $t2 in dataset MugshotMessages
-    where spatial-distance($t.sender-location,
-                           $t2.sender-location) <= 1
-    return { "msgtxt" : $t2.message }
-};
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/ten-of-each.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/ten-of-each.aql
deleted file mode 100644
index ec829eb..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/ten-of-each.aql
+++ /dev/null
@@ -1,27 +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.
- */
-use dataverse TinySocial;
-
-for $user in dataset MugshotUsers
-limit 10
-return $user;
-
-for $message in dataset MugshotMessages
-limit 10
-return $message;
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/universal.aql b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/universal.aql
deleted file mode 100644
index ab25894..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/universal.aql
+++ /dev/null
@@ -1,28 +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.
- */
-use dataverse TinySocial;
-
-for $msu in dataset MugshotUsers
-where (every $e in $msu.employment
-      satisfies not(is-null($e.end-date)))
-limit 10
-return {
-  "name" : $msu.name,
-  "address" : $msu.address
-};
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/data/mugshot_messages.adm b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/data/mugshot_messages.adm
deleted file mode 100644
index 339c838..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/data/mugshot_messages.adm
+++ /dev/null
@@ -1,1331 +0,0 @@
-{"message-id": 1, "author-id": 1, "timestamp":datetime("2009-01-17T07:56:52"), "in-response-to": 787, "sender-location":point("34.92,89.38"), "tags":{{"samsung", "3G" }}, "message":" like samsung the 3G is amazing"}
-{"message-id": 2, "author-id": 1, "timestamp":datetime("2012-03-24T04:20:04"), "in-response-to": 2423, "sender-location":point("26.6,85.97"), "tags":{{"verizon", "network" }}, "message":" like verizon the network is awesome:)"}
-{"message-id": 3, "author-id": 1, "timestamp":datetime("2007-03-26T00:43:44"), "in-response-to": 3107, "sender-location":point("44.5,71.87"), "tags":{{"verizon", "voice-command" }}, "message":" can't stand verizon the voice-command is OMG"}
-{"message-id": 4, "author-id": 1, "timestamp":datetime("2010-01-01T19:50:04"), "in-response-to": 101, "sender-location":point("25.67,82.85"), "tags":{{"verizon", "platform" }}, "message":" love verizon its platform is mind-blowing"}
-{"message-id": 5, "author-id": 1, "timestamp":datetime("2013-02-04T12:52:26"), "in-response-to": 3226, "sender-location":point("40.91,71.73"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" like t-mobile its voice-clarity is awesome:)"}
-{"message-id": 6, "author-id": 1, "timestamp":datetime("2005-03-13T00:59:18"), "in-response-to": 317, "sender-location":point("40.04,88.54"), "tags":{{"motorola", "touch-screen" }}, "message":" like motorola the touch-screen is mind-blowing:)"}
-{"message-id": 7, "author-id": 1, "timestamp":datetime("2009-01-16T07:38:49"), "in-response-to": 1472, "sender-location":point("34.31,86.35"), "tags":{{"samsung", "signal" }}, "message":" can't stand samsung its signal is OMG:("}
-{"message-id": 8, "author-id": 1, "timestamp":datetime("2008-05-12T08:44:47"), "in-response-to": 1088, "sender-location":point("32.51,85.9"), "tags":{{"sprint", "plan" }}, "message":" like sprint its plan is awesome"}
-{"message-id": 9, "author-id": 1, "timestamp":datetime("2006-02-22T09:39:54"), "in-response-to": 2712, "sender-location":point("47.95,67.41"), "tags":{{"iphone", "wireless" }}, "message":" dislike iphone its wireless is bad"}
-{"message-id": 10, "author-id": 1, "timestamp":datetime("2012-08-19T02:35:49"), "in-response-to": 2641, "sender-location":point("27.79,91.53"), "tags":{{"iphone", "reachability" }}, "message":" like iphone the reachability is good"}
-{"message-id": 11, "author-id": 1, "timestamp":datetime("2014-01-13T14:44:28"), "in-response-to": 555, "sender-location":point("26.72,95.52"), "tags":{{"at&t", "3G" }}, "message":" like at&t its 3G is mind-blowing:)"}
-{"message-id": 12, "author-id": 1, "timestamp":datetime("2012-04-27T12:11:33"), "in-response-to": 2125, "sender-location":point("26.02,83.77"), "tags":{{"at&t", "customer-service" }}, "message":" dislike at&t its customer-service is terrible"}
-{"message-id": 13, "author-id": 1, "timestamp":datetime("2008-05-19T18:27:43"), "in-response-to": 2115, "sender-location":point("32.88,81.3"), "tags":{{"iphone", "voice-clarity" }}, "message":" like iphone its voice-clarity is mind-blowing"}
-{"message-id": 14, "author-id": 1, "timestamp":datetime("2014-08-25T14:31:02"), "in-response-to": 348, "sender-location":point("26.16,96.18"), "tags":{{"verizon", "customer-service" }}, "message":" like verizon the customer-service is mind-blowing:)"}
-{"message-id": 15, "author-id": 1, "timestamp":datetime("2012-04-06T12:07:16"), "in-response-to": 1496, "sender-location":point("40.32,71.25"), "tags":{{"motorola", "customer-service" }}, "message":" love motorola its customer-service is awesome:)"}
-{"message-id": 16, "author-id": 1, "timestamp":datetime("2014-01-24T21:16:12"), "in-response-to": 1530, "sender-location":point("39.81,79.89"), "tags":{{"t-mobile", "reachability" }}, "message":" like t-mobile the reachability is mind-blowing"}
-{"message-id": 17, "author-id": 1, "timestamp":datetime("2011-11-09T13:23:31"), "in-response-to": 46, "sender-location":point("36.02,95.26"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" love t-mobile the voice-clarity is good"}
-{"message-id": 18, "author-id": 1, "timestamp":datetime("2007-03-11T05:37:27"), "in-response-to": 903, "sender-location":point("48.49,68.79"), "tags":{{"samsung", "voice-clarity" }}, "message":" like samsung its voice-clarity is mind-blowing:)"}
-{"message-id": 19, "author-id": 1, "timestamp":datetime("2005-11-21T13:48:58"), "in-response-to": 1524, "sender-location":point("34.3,77.6"), "tags":{{"t-mobile", "speed" }}, "message":" like t-mobile its speed is good:)"}
-{"message-id": 20, "author-id": 1, "timestamp":datetime("2008-04-07T02:05:42"), "in-response-to": 1986, "sender-location":point("33.21,67.4"), "tags":{{"at&t", "voice-clarity" }}, "message":" can't stand at&t the voice-clarity is horrible:("}
-{"message-id": 21, "author-id": 1, "timestamp":datetime("2010-06-04T03:46:02"), "in-response-to": 2069, "sender-location":point("32.23,97.4"), "tags":{{"at&t", "customer-service" }}, "message":" can't stand at&t the customer-service is horrible"}
-{"message-id": 22, "author-id": 1, "timestamp":datetime("2014-08-16T12:25:29"), "in-response-to": 2043, "sender-location":point("39.4,72.53"), "tags":{{"verizon", "voice-command" }}, "message":" hate verizon its voice-command is OMG"}
-{"message-id": 23, "author-id": 1, "timestamp":datetime("2008-07-21T07:59:04"), "in-response-to": 1583, "sender-location":point("47.25,87.12"), "tags":{{"t-mobile", "signal" }}, "message":" can't stand t-mobile its signal is terrible:("}
-{"message-id": 24, "author-id": 1, "timestamp":datetime("2007-11-12T14:14:07"), "in-response-to": 1082, "sender-location":point("35.17,66.4"), "tags":{{"at&t", "voicemail-service" }}, "message":" love at&t its voicemail-service is amazing:)"}
-{"message-id": 25, "author-id": 1, "timestamp":datetime("2010-01-28T22:46:51"), "in-response-to": 498, "sender-location":point("31.98,71.58"), "tags":{{"sprint", "voice-clarity" }}, "message":" hate sprint the voice-clarity is horrible"}
-{"message-id": 26, "author-id": 1, "timestamp":datetime("2005-08-07T03:11:25"), "in-response-to": 2454, "sender-location":point("35.73,94.53"), "tags":{{"samsung", "voice-clarity" }}, "message":" like samsung its voice-clarity is amazing"}
-{"message-id": 27, "author-id": 1, "timestamp":datetime("2007-03-05T10:38:08"), "in-response-to": 761, "sender-location":point("39.34,86.6"), "tags":{{"iphone", "signal" }}, "message":" dislike iphone its signal is horrible:("}
-{"message-id": 28, "author-id": 1, "timestamp":datetime("2008-07-06T05:43:56"), "in-response-to": 1371, "sender-location":point("31.47,94.45"), "tags":{{"t-mobile", "wireless" }}, "message":" dislike t-mobile its wireless is terrible"}
-{"message-id": 29, "author-id": 2, "timestamp":datetime("2012-12-10T10:20:54"), "in-response-to": 2483, "sender-location":point("35.56,73.91"), "tags":{{"iphone", "3G" }}, "message":" dislike iphone the 3G is OMG"}
-{"message-id": 30, "author-id": 2, "timestamp":datetime("2005-06-09T22:39:37"), "in-response-to": 435, "sender-location":point("42.46,75.84"), "tags":{{"samsung", "shortcut-menu" }}, "message":" love samsung its shortcut-menu is good:)"}
-{"message-id": 31, "author-id": 2, "timestamp":datetime("2013-12-07T12:08:57"), "in-response-to": 3089, "sender-location":point("24.89,89.17"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" dislike t-mobile the shortcut-menu is OMG"}
-{"message-id": 32, "author-id": 2, "timestamp":datetime("2008-06-07T00:34:47"), "in-response-to": 3218, "sender-location":point("43.71,92.88"), "tags":{{"at&t", "shortcut-menu" }}, "message":" like at&t its shortcut-menu is good:)"}
-{"message-id": 33, "author-id": 2, "timestamp":datetime("2011-10-19T13:46:03"), "in-response-to": 1855, "sender-location":point("38.9,94.85"), "tags":{{"samsung", "speed" }}, "message":" can't stand samsung the speed is horrible"}
-{"message-id": 34, "author-id": 2, "timestamp":datetime("2006-05-12T15:15:28"), "in-response-to": 1572, "sender-location":point("47.33,68.25"), "tags":{{"t-mobile", "reachability" }}, "message":" like t-mobile its reachability is good:)"}
-{"message-id": 35, "author-id": 2, "timestamp":datetime("2009-05-06T20:30:54"), "in-response-to": 191, "sender-location":point("33.87,79.95"), "tags":{{"verizon", "customization" }}, "message":" hate verizon its customization is horrible"}
-{"message-id": 36, "author-id": 2, "timestamp":datetime("2012-12-10T22:55:22"), "in-response-to": 3009, "sender-location":point("43.02,74.2"), "tags":{{"t-mobile", "plan" }}, "message":" like t-mobile the plan is good"}
-{"message-id": 37, "author-id": 2, "timestamp":datetime("2007-08-25T16:18:52"), "in-response-to": 2100, "sender-location":point("42.56,78.63"), "tags":{{"sprint", "voice-command" }}, "message":" can't stand sprint the voice-command is bad"}
-{"message-id": 38, "author-id": 2, "timestamp":datetime("2013-02-25T10:20:51"), "in-response-to": 1239, "sender-location":point("37.2,71.82"), "tags":{{"iphone", "voice-command" }}, "message":" like iphone the voice-command is amazing:)"}
-{"message-id": 39, "author-id": 2, "timestamp":datetime("2007-03-10T23:11:44"), "in-response-to": 3176, "sender-location":point("29.28,80.84"), "tags":{{"sprint", "signal" }}, "message":" like sprint the signal is mind-blowing:)"}
-{"message-id": 40, "author-id": 2, "timestamp":datetime("2009-01-09T06:55:02"), "in-response-to": 808, "sender-location":point("36.71,90.6"), "tags":{{"motorola", "shortcut-menu" }}, "message":" can't stand motorola its shortcut-menu is horrible:("}
-{"message-id": 41, "author-id": 2, "timestamp":datetime("2013-05-01T17:28:05"), "in-response-to": 1469, "sender-location":point("25.06,72.91"), "tags":{{"iphone", "customization" }}, "message":" hate iphone the customization is horrible:("}
-{"message-id": 42, "author-id": 2, "timestamp":datetime("2008-03-18T16:28:35"), "in-response-to": 2600, "sender-location":point("37.27,67.58"), "tags":{{"motorola", "voice-command" }}, "message":" like motorola its voice-command is awesome:)"}
-{"message-id": 43, "author-id": 2, "timestamp":datetime("2006-06-08T23:02:11"), "in-response-to": 1102, "sender-location":point("24.3,78.27"), "tags":{{"samsung", "wireless" }}, "message":" like samsung the wireless is awesome"}
-{"message-id": 44, "author-id": 2, "timestamp":datetime("2007-11-17T22:07:41"), "in-response-to": 411, "sender-location":point("44.28,83.01"), "tags":{{"at&t", "reachability" }}, "message":" dislike at&t the reachability is OMG:("}
-{"message-id": 45, "author-id": 2, "timestamp":datetime("2014-03-09T11:35:28"), "in-response-to": 1060, "sender-location":point("29.38,82.39"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" love t-mobile its shortcut-menu is amazing"}
-{"message-id": 46, "author-id": 2, "timestamp":datetime("2006-10-24T17:16:20"), "in-response-to": 2587, "sender-location":point("26.68,77.31"), "tags":{{"at&t", "network" }}, "message":" hate at&t its network is OMG"}
-{"message-id": 47, "author-id": 2, "timestamp":datetime("2010-09-13T04:14:16"), "in-response-to": 2583, "sender-location":point("24.95,78.81"), "tags":{{"sprint", "touch-screen" }}, "message":" dislike sprint its touch-screen is OMG:("}
-{"message-id": 48, "author-id": 2, "timestamp":datetime("2010-01-04T20:08:17"), "in-response-to": 3051, "sender-location":point("42.28,93.32"), "tags":{{"at&t", "shortcut-menu" }}, "message":" can't stand at&t its shortcut-menu is OMG:("}
-{"message-id": 49, "author-id": 3, "timestamp":datetime("2009-10-23T08:19:26"), "in-response-to": 2119, "sender-location":point("36.07,86.23"), "tags":{{"sprint", "3G" }}, "message":" hate sprint the 3G is horrible:("}
-{"message-id": 50, "author-id": 3, "timestamp":datetime("2006-06-15T13:03:35"), "in-response-to": 1528, "sender-location":point("24.13,87.0"), "tags":{{"motorola", "voice-command" }}, "message":" like motorola the voice-command is mind-blowing:)"}
-{"message-id": 51, "author-id": 3, "timestamp":datetime("2011-03-01T08:26:45"), "in-response-to": 836, "sender-location":point("35.1,77.77"), "tags":{{"sprint", "voicemail-service" }}, "message":" love sprint the voicemail-service is awesome"}
-{"message-id": 52, "author-id": 3, "timestamp":datetime("2013-07-15T21:44:48"), "in-response-to": 1042, "sender-location":point("28.62,73.25"), "tags":{{"t-mobile", "voice-command" }}, "message":" dislike t-mobile the voice-command is bad"}
-{"message-id": 53, "author-id": 3, "timestamp":datetime("2005-07-28T04:25:44"), "in-response-to": 1339, "sender-location":point("42.51,72.12"), "tags":{{"at&t", "wireless" }}, "message":" love at&t the wireless is amazing"}
-{"message-id": 54, "author-id": 3, "timestamp":datetime("2006-04-24T05:33:40"), "in-response-to": 1474, "sender-location":point("28.72,94.63"), "tags":{{"verizon", "voice-clarity" }}, "message":" hate verizon the voice-clarity is horrible:("}
-{"message-id": 55, "author-id": 3, "timestamp":datetime("2013-01-12T13:10:40"), "in-response-to": 125, "sender-location":point("35.14,67.35"), "tags":{{"motorola", "reachability" }}, "message":" can't stand motorola the reachability is horrible:("}
-{"message-id": 56, "author-id": 3, "timestamp":datetime("2010-12-05T09:34:32"), "in-response-to": 2873, "sender-location":point("25.76,92.16"), "tags":{{"at&t", "reachability" }}, "message":" hate at&t the reachability is bad"}
-{"message-id": 57, "author-id": 3, "timestamp":datetime("2010-06-17T12:01:16"), "in-response-to": 1261, "sender-location":point("29.36,94.85"), "tags":{{"sprint", "reachability" }}, "message":" can't stand sprint the reachability is terrible"}
-{"message-id": 58, "author-id": 3, "timestamp":datetime("2009-11-06T14:12:13"), "in-response-to": 1993, "sender-location":point("48.73,78.43"), "tags":{{"samsung", "customer-service" }}, "message":" love samsung the customer-service is amazing"}
-{"message-id": 59, "author-id": 3, "timestamp":datetime("2011-12-19T15:48:37"), "in-response-to": 2738, "sender-location":point("31.72,95.12"), "tags":{{"sprint", "shortcut-menu" }}, "message":" love sprint its shortcut-menu is awesome:)"}
-{"message-id": 60, "author-id": 3, "timestamp":datetime("2014-04-06T05:09:01"), "in-response-to": 1800, "sender-location":point("25.04,94.27"), "tags":{{"at&t", "voicemail-service" }}, "message":" hate at&t the voicemail-service is bad:("}
-{"message-id": 61, "author-id": 3, "timestamp":datetime("2006-01-21T09:28:12"), "in-response-to": 2410, "sender-location":point("26.94,76.17"), "tags":{{"motorola", "network" }}, "message":" hate motorola its network is terrible"}
-{"message-id": 62, "author-id": 3, "timestamp":datetime("2008-02-02T16:41:01"), "in-response-to": 2748, "sender-location":point("34.97,76.62"), "tags":{{"t-mobile", "signal" }}, "message":" love t-mobile the signal is mind-blowing"}
-{"message-id": 63, "author-id": 3, "timestamp":datetime("2005-01-23T12:14:50"), "in-response-to": 1602, "sender-location":point("47.43,80.23"), "tags":{{"motorola", "customer-service" }}, "message":" like motorola its customer-service is good"}
-{"message-id": 64, "author-id": 3, "timestamp":datetime("2012-06-06T03:37:09"), "in-response-to": 1500, "sender-location":point("29.18,79.0"), "tags":{{"samsung", "platform" }}, "message":" like samsung its platform is amazing:)"}
-{"message-id": 65, "author-id": 4, "timestamp":datetime("2006-01-09T01:49:33"), "in-response-to": 323, "sender-location":point("31.78,95.63"), "tags":{{"at&t", "voice-clarity" }}, "message":" hate at&t the voice-clarity is horrible:("}
-{"message-id": 66, "author-id": 4, "timestamp":datetime("2012-12-17T14:51:17"), "in-response-to": 2686, "sender-location":point("29.76,74.35"), "tags":{{"motorola", "speed" }}, "message":" can't stand motorola the speed is bad"}
-{"message-id": 67, "author-id": 4, "timestamp":datetime("2013-05-05T09:57:45"), "in-response-to": 2244, "sender-location":point("40.27,76.34"), "tags":{{"verizon", "3G" }}, "message":" dislike verizon its 3G is OMG:("}
-{"message-id": 68, "author-id": 4, "timestamp":datetime("2005-07-21T18:42:06"), "in-response-to": 1400, "sender-location":point("28.74,80.58"), "tags":{{"verizon", "reachability" }}, "message":" can't stand verizon the reachability is terrible"}
-{"message-id": 69, "author-id": 4, "timestamp":datetime("2008-03-10T21:02:37"), "in-response-to": 2652, "sender-location":point("31.75,95.08"), "tags":{{"motorola", "network" }}, "message":" like motorola its network is good:)"}
-{"message-id": 70, "author-id": 4, "timestamp":datetime("2010-09-06T14:06:57"), "in-response-to": 72, "sender-location":point("31.0,71.65"), "tags":{{"sprint", "touch-screen" }}, "message":" like sprint its touch-screen is awesome"}
-{"message-id": 71, "author-id": 4, "timestamp":datetime("2008-12-07T14:41:23"), "in-response-to": 2921, "sender-location":point("46.77,74.84"), "tags":{{"samsung", "signal" }}, "message":" like samsung its signal is awesome:)"}
-{"message-id": 72, "author-id": 4, "timestamp":datetime("2009-10-14T19:49:56"), "in-response-to": 1064, "sender-location":point("40.61,92.04"), "tags":{{"samsung", "network" }}, "message":" hate samsung its network is terrible:("}
-{"message-id": 73, "author-id": 4, "timestamp":datetime("2012-11-12T14:29:58"), "in-response-to": 2831, "sender-location":point("29.0,78.15"), "tags":{{"motorola", "voice-command" }}, "message":" like motorola the voice-command is good:)"}
-{"message-id": 74, "author-id": 4, "timestamp":datetime("2009-03-13T17:37:23"), "in-response-to": 184, "sender-location":point("27.22,91.17"), "tags":{{"iphone", "signal" }}, "message":" hate iphone the signal is bad:("}
-{"message-id": 75, "author-id": 4, "timestamp":datetime("2011-09-15T10:23:16"), "in-response-to": 1249, "sender-location":point("41.67,82.92"), "tags":{{"sprint", "reachability" }}, "message":" love sprint its reachability is mind-blowing:)"}
-{"message-id": 76, "author-id": 4, "timestamp":datetime("2010-06-14T18:49:01"), "in-response-to": 256, "sender-location":point("24.2,78.0"), "tags":{{"sprint", "shortcut-menu" }}, "message":" love sprint its shortcut-menu is mind-blowing"}
-{"message-id": 77, "author-id": 4, "timestamp":datetime("2006-10-01T19:03:56"), "in-response-to": 643, "sender-location":point("41.95,73.19"), "tags":{{"samsung", "network" }}, "message":" love samsung its network is good"}
-{"message-id": 78, "author-id": 4, "timestamp":datetime("2005-08-16T05:19:29"), "in-response-to": 1472, "sender-location":point("28.83,73.22"), "tags":{{"iphone", "speed" }}, "message":" like iphone the speed is good"}
-{"message-id": 79, "author-id": 5, "timestamp":datetime("2008-08-08T13:09:40"), "in-response-to": 1340, "sender-location":point("38.97,89.11"), "tags":{{"sprint", "reachability" }}, "message":" can't stand sprint the reachability is bad:("}
-{"message-id": 80, "author-id": 5, "timestamp":datetime("2011-02-08T12:56:36"), "in-response-to": 3139, "sender-location":point("37.95,82.29"), "tags":{{"t-mobile", "3G" }}, "message":" dislike t-mobile the 3G is horrible:("}
-{"message-id": 81, "author-id": 5, "timestamp":datetime("2007-10-11T20:59:56"), "in-response-to": 1241, "sender-location":point("37.55,93.53"), "tags":{{"samsung", "speed" }}, "message":" hate samsung the speed is terrible:("}
-{"message-id": 82, "author-id": 5, "timestamp":datetime("2005-09-25T00:21:02"), "in-response-to": 2310, "sender-location":point("47.39,68.63"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" can't stand t-mobile the voice-clarity is OMG:("}
-{"message-id": 83, "author-id": 5, "timestamp":datetime("2014-04-17T22:31:34"), "in-response-to": 163, "sender-location":point("30.85,96.21"), "tags":{{"at&t", "touch-screen" }}, "message":" love at&t the touch-screen is awesome"}
-{"message-id": 84, "author-id": 5, "timestamp":datetime("2008-04-25T11:43:18"), "in-response-to": 1505, "sender-location":point("26.74,95.12"), "tags":{{"samsung", "signal" }}, "message":" like samsung the signal is good"}
-{"message-id": 85, "author-id": 5, "timestamp":datetime("2005-06-05T22:43:04"), "in-response-to": 715, "sender-location":point("24.26,66.66"), "tags":{{"motorola", "speed" }}, "message":" like motorola its speed is good"}
-{"message-id": 86, "author-id": 5, "timestamp":datetime("2014-04-15T20:46:02"), "in-response-to": 1186, "sender-location":point("25.59,84.43"), "tags":{{"at&t", "reachability" }}, "message":" can't stand at&t its reachability is OMG:("}
-{"message-id": 87, "author-id": 5, "timestamp":datetime("2007-01-01T23:39:53"), "in-response-to": 237, "sender-location":point("47.53,85.28"), "tags":{{"t-mobile", "customer-service" }}, "message":" like t-mobile the customer-service is mind-blowing:)"}
-{"message-id": 88, "author-id": 5, "timestamp":datetime("2007-09-09T19:49:22"), "in-response-to": 1379, "sender-location":point("43.78,78.85"), "tags":{{"sprint", "reachability" }}, "message":" dislike sprint the reachability is OMG:("}
-{"message-id": 89, "author-id": 5, "timestamp":datetime("2014-02-10T01:35:59"), "in-response-to": 1685, "sender-location":point("34.7,94.27"), "tags":{{"verizon", "network" }}, "message":" like verizon its network is good:)"}
-{"message-id": 90, "author-id": 5, "timestamp":datetime("2007-01-06T17:22:46"), "in-response-to": 1880, "sender-location":point("46.99,81.55"), "tags":{{"motorola", "customization" }}, "message":" can't stand motorola its customization is horrible:("}
-{"message-id": 91, "author-id": 6, "timestamp":datetime("2012-10-11T19:50:57"), "in-response-to": 953, "sender-location":point("45.44,86.22"), "tags":{{"t-mobile", "plan" }}, "message":" like t-mobile its plan is amazing"}
-{"message-id": 92, "author-id": 6, "timestamp":datetime("2010-05-07T11:44:53"), "in-response-to": 1674, "sender-location":point("41.36,84.79"), "tags":{{"at&t", "voice-command" }}, "message":" hate at&t the voice-command is horrible:("}
-{"message-id": 93, "author-id": 6, "timestamp":datetime("2010-11-01T07:54:46"), "in-response-to": 237, "sender-location":point("40.62,90.78"), "tags":{{"iphone", "network" }}, "message":" love iphone the network is mind-blowing"}
-{"message-id": 94, "author-id": 6, "timestamp":datetime("2013-10-26T15:08:00"), "in-response-to": 288, "sender-location":point("27.56,71.19"), "tags":{{"iphone", "voicemail-service" }}, "message":" can't stand iphone the voicemail-service is terrible:("}
-{"message-id": 95, "author-id": 6, "timestamp":datetime("2008-11-14T10:23:24"), "in-response-to": 2261, "sender-location":point("37.92,85.35"), "tags":{{"at&t", "touch-screen" }}, "message":" like at&t its touch-screen is good:)"}
-{"message-id": 96, "author-id": 6, "timestamp":datetime("2013-05-26T21:58:48"), "in-response-to": 280, "sender-location":point("39.87,80.62"), "tags":{{"t-mobile", "customization" }}, "message":" like t-mobile the customization is awesome"}
-{"message-id": 97, "author-id": 6, "timestamp":datetime("2005-07-01T04:06:00"), "in-response-to": 462, "sender-location":point("27.53,67.47"), "tags":{{"sprint", "platform" }}, "message":" love sprint its platform is awesome:)"}
-{"message-id": 98, "author-id": 6, "timestamp":datetime("2014-02-12T22:48:46"), "in-response-to": 996, "sender-location":point("36.86,91.88"), "tags":{{"iphone", "voicemail-service" }}, "message":" can't stand iphone the voicemail-service is bad"}
-{"message-id": 99, "author-id": 6, "timestamp":datetime("2013-10-05T11:15:27"), "in-response-to": 3164, "sender-location":point("27.61,71.67"), "tags":{{"iphone", "signal" }}, "message":" can't stand iphone its signal is OMG:("}
-{"message-id": 100, "author-id": 6, "timestamp":datetime("2012-07-24T09:54:47"), "in-response-to": 365, "sender-location":point("42.22,90.19"), "tags":{{"samsung", "wireless" }}, "message":" love samsung its wireless is mind-blowing"}
-{"message-id": 101, "author-id": 6, "timestamp":datetime("2005-07-09T00:56:29"), "in-response-to": 2184, "sender-location":point("42.77,78.23"), "tags":{{"samsung", "customer-service" }}, "message":" hate samsung its customer-service is horrible:("}
-{"message-id": 102, "author-id": 7, "timestamp":datetime("2005-11-21T09:32:30"), "in-response-to": 3226, "sender-location":point("27.37,80.74"), "tags":{{"motorola", "customization" }}, "message":" dislike motorola its customization is OMG"}
-{"message-id": 103, "author-id": 7, "timestamp":datetime("2008-05-10T03:25:13"), "in-response-to": 980, "sender-location":point("40.35,91.67"), "tags":{{"iphone", "speed" }}, "message":" hate iphone its speed is bad:("}
-{"message-id": 104, "author-id": 7, "timestamp":datetime("2010-04-25T19:49:11"), "in-response-to": 3065, "sender-location":point("46.22,85.23"), "tags":{{"sprint", "wireless" }}, "message":" can't stand sprint its wireless is bad"}
-{"message-id": 105, "author-id": 7, "timestamp":datetime("2012-07-07T17:18:28"), "in-response-to": 366, "sender-location":point("43.61,92.37"), "tags":{{"iphone", "wireless" }}, "message":" like iphone the wireless is awesome"}
-{"message-id": 106, "author-id": 7, "timestamp":datetime("2009-10-07T10:23:13"), "in-response-to": 523, "sender-location":point("34.0,95.86"), "tags":{{"verizon", "voicemail-service" }}, "message":" like verizon its voicemail-service is good:)"}
-{"message-id": 107, "author-id": 7, "timestamp":datetime("2006-05-13T10:12:26"), "in-response-to": 1651, "sender-location":point("30.35,88.76"), "tags":{{"at&t", "shortcut-menu" }}, "message":" hate at&t its shortcut-menu is terrible"}
-{"message-id": 108, "author-id": 7, "timestamp":datetime("2012-02-09T08:03:39"), "in-response-to": 3190, "sender-location":point("37.51,70.13"), "tags":{{"samsung", "plan" }}, "message":" dislike samsung the plan is horrible"}
-{"message-id": 109, "author-id": 7, "timestamp":datetime("2006-05-12T01:04:32"), "in-response-to": 792, "sender-location":point("38.47,94.64"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" hate t-mobile its voicemail-service is OMG:("}
-{"message-id": 110, "author-id": 7, "timestamp":datetime("2013-02-16T14:24:58"), "in-response-to": 562, "sender-location":point("33.04,82.44"), "tags":{{"sprint", "wireless" }}, "message":" hate sprint the wireless is OMG:("}
-{"message-id": 111, "author-id": 7, "timestamp":datetime("2010-02-22T06:39:27"), "in-response-to": 989, "sender-location":point("24.33,84.21"), "tags":{{"verizon", "network" }}, "message":" love verizon the network is good"}
-{"message-id": 112, "author-id": 8, "timestamp":datetime("2007-04-25T21:41:54"), "in-response-to": 1041, "sender-location":point("44.55,92.36"), "tags":{{"t-mobile", "wireless" }}, "message":" hate t-mobile its wireless is horrible"}
-{"message-id": 113, "author-id": 8, "timestamp":datetime("2011-10-05T00:24:52"), "in-response-to": 1681, "sender-location":point("37.17,84.43"), "tags":{{"t-mobile", "customer-service" }}, "message":" love t-mobile its customer-service is awesome:)"}
-{"message-id": 114, "author-id": 8, "timestamp":datetime("2008-08-03T18:35:05"), "in-response-to": 1899, "sender-location":point("43.44,88.9"), "tags":{{"iphone", "customization" }}, "message":" like iphone its customization is awesome"}
-{"message-id": 115, "author-id": 8, "timestamp":datetime("2011-06-13T21:03:51"), "in-response-to": 1537, "sender-location":point("35.82,70.92"), "tags":{{"motorola", "platform" }}, "message":" dislike motorola its platform is horrible"}
-{"message-id": 116, "author-id": 8, "timestamp":datetime("2007-04-03T11:14:40"), "in-response-to": 1006, "sender-location":point("25.65,88.14"), "tags":{{"t-mobile", "plan" }}, "message":" can't stand t-mobile the plan is terrible:("}
-{"message-id": 117, "author-id": 8, "timestamp":datetime("2007-06-13T11:13:36"), "in-response-to": 1261, "sender-location":point("27.19,72.59"), "tags":{{"at&t", "reachability" }}, "message":" like at&t the reachability is awesome"}
-{"message-id": 118, "author-id": 8, "timestamp":datetime("2010-07-25T18:44:45"), "in-response-to": 1991, "sender-location":point("45.68,89.25"), "tags":{{"t-mobile", "voice-command" }}, "message":" can't stand t-mobile its voice-command is terrible:("}
-{"message-id": 119, "author-id": 8, "timestamp":datetime("2007-08-14T14:17:10"), "in-response-to": 677, "sender-location":point("35.67,96.08"), "tags":{{"motorola", "network" }}, "message":" hate motorola the network is OMG:("}
-{"message-id": 120, "author-id": 8, "timestamp":datetime("2007-06-26T14:37:42"), "in-response-to": 2539, "sender-location":point("25.14,94.42"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" love t-mobile the voice-clarity is amazing"}
-{"message-id": 121, "author-id": 8, "timestamp":datetime("2009-05-06T21:10:11"), "in-response-to": 437, "sender-location":point("39.7,69.23"), "tags":{{"t-mobile", "voice-command" }}, "message":" like t-mobile its voice-command is amazing:)"}
-{"message-id": 122, "author-id": 9, "timestamp":datetime("2011-05-09T00:27:25"), "in-response-to": 1833, "sender-location":point("47.56,92.9"), "tags":{{"t-mobile", "plan" }}, "message":" can't stand t-mobile the plan is terrible:("}
-{"message-id": 123, "author-id": 9, "timestamp":datetime("2010-11-25T00:41:48"), "in-response-to": 2096, "sender-location":point("34.31,72.24"), "tags":{{"samsung", "customer-service" }}, "message":" like samsung its customer-service is amazing:)"}
-{"message-id": 124, "author-id": 9, "timestamp":datetime("2012-03-25T06:33:32"), "in-response-to": 1442, "sender-location":point("38.14,73.09"), "tags":{{"t-mobile", "platform" }}, "message":" dislike t-mobile the platform is bad:("}
-{"message-id": 125, "author-id": 9, "timestamp":datetime("2005-04-03T10:50:50"), "in-response-to": 2253, "sender-location":point("42.09,70.45"), "tags":{{"t-mobile", "3G" }}, "message":" hate t-mobile its 3G is horrible:("}
-{"message-id": 126, "author-id": 9, "timestamp":datetime("2008-06-25T01:28:22"), "in-response-to": 563, "sender-location":point("38.52,89.18"), "tags":{{"motorola", "customer-service" }}, "message":" can't stand motorola the customer-service is terrible:("}
-{"message-id": 127, "author-id": 9, "timestamp":datetime("2014-03-26T07:46:45"), "in-response-to": 1666, "sender-location":point("42.08,91.13"), "tags":{{"verizon", "shortcut-menu" }}, "message":" love verizon the shortcut-menu is good:)"}
-{"message-id": 128, "author-id": 9, "timestamp":datetime("2014-02-01T08:44:33"), "in-response-to": 263, "sender-location":point("32.43,72.51"), "tags":{{"sprint", "reachability" }}, "message":" can't stand sprint its reachability is horrible:("}
-{"message-id": 129, "author-id": 9, "timestamp":datetime("2013-06-11T14:57:13"), "in-response-to": 1296, "sender-location":point("29.99,82.29"), "tags":{{"samsung", "shortcut-menu" }}, "message":" hate samsung its shortcut-menu is OMG:("}
-{"message-id": 130, "author-id": 9, "timestamp":datetime("2006-06-20T16:16:17"), "in-response-to": 1171, "sender-location":point("40.78,85.12"), "tags":{{"iphone", "plan" }}, "message":" dislike iphone the plan is horrible"}
-{"message-id": 131, "author-id": 10, "timestamp":datetime("2013-01-09T07:01:46"), "in-response-to": 288, "sender-location":point("24.09,82.75"), "tags":{{"t-mobile", "wireless" }}, "message":" love t-mobile the wireless is good:)"}
-{"message-id": 132, "author-id": 10, "timestamp":datetime("2011-12-03T19:04:06"), "in-response-to": 2569, "sender-location":point("44.15,81.22"), "tags":{{"iphone", "plan" }}, "message":" hate iphone its plan is bad:("}
-{"message-id": 133, "author-id": 10, "timestamp":datetime("2014-01-23T13:41:52"), "in-response-to": 1138, "sender-location":point("36.9,90.01"), "tags":{{"verizon", "voice-command" }}, "message":" can't stand verizon the voice-command is horrible:("}
-{"message-id": 134, "author-id": 10, "timestamp":datetime("2013-07-02T12:39:09"), "in-response-to": 2489, "sender-location":point("33.77,79.74"), "tags":{{"sprint", "network" }}, "message":" like sprint the network is mind-blowing:)"}
-{"message-id": 135, "author-id": 10, "timestamp":datetime("2009-08-11T16:35:59"), "in-response-to": 347, "sender-location":point("46.32,88.84"), "tags":{{"iphone", "voice-command" }}, "message":" like iphone its voice-command is mind-blowing"}
-{"message-id": 136, "author-id": 10, "timestamp":datetime("2006-04-15T08:35:22"), "in-response-to": 2617, "sender-location":point("42.98,68.89"), "tags":{{"samsung", "signal" }}, "message":" love samsung its signal is good:)"}
-{"message-id": 137, "author-id": 10, "timestamp":datetime("2012-02-28T12:11:29"), "in-response-to": 896, "sender-location":point("41.32,87.87"), "tags":{{"t-mobile", "reachability" }}, "message":" dislike t-mobile its reachability is terrible"}
-{"message-id": 138, "author-id": 10, "timestamp":datetime("2012-11-07T22:15:25"), "in-response-to": 2229, "sender-location":point("39.6,85.66"), "tags":{{"iphone", "plan" }}, "message":" like iphone the plan is good:)"}
-{"message-id": 139, "author-id": 10, "timestamp":datetime("2014-04-03T13:27:40"), "in-response-to": 1352, "sender-location":point("28.97,97.46"), "tags":{{"samsung", "platform" }}, "message":" love samsung the platform is awesome"}
-{"message-id": 140, "author-id": 11, "timestamp":datetime("2014-05-06T01:08:42"), "in-response-to": 360, "sender-location":point("24.29,66.25"), "tags":{{"t-mobile", "touch-screen" }}, "message":" can't stand t-mobile its touch-screen is terrible:("}
-{"message-id": 141, "author-id": 11, "timestamp":datetime("2014-03-01T08:11:19"), "in-response-to": 36, "sender-location":point("47.17,82.13"), "tags":{{"iphone", "voice-clarity" }}, "message":" love iphone its voice-clarity is good:)"}
-{"message-id": 142, "author-id": 11, "timestamp":datetime("2011-03-10T22:00:27"), "in-response-to": 248, "sender-location":point("48.04,74.45"), "tags":{{"at&t", "shortcut-menu" }}, "message":" love at&t the shortcut-menu is amazing:)"}
-{"message-id": 143, "author-id": 11, "timestamp":datetime("2014-03-03T16:41:09"), "in-response-to": 2088, "sender-location":point("44.72,97.24"), "tags":{{"iphone", "customization" }}, "message":" like iphone the customization is amazing:)"}
-{"message-id": 144, "author-id": 11, "timestamp":datetime("2013-08-20T20:37:46"), "in-response-to": 2568, "sender-location":point("42.18,78.38"), "tags":{{"iphone", "customer-service" }}, "message":" dislike iphone its customer-service is bad"}
-{"message-id": 145, "author-id": 11, "timestamp":datetime("2014-04-25T16:01:21"), "in-response-to": 2622, "sender-location":point("31.9,88.62"), "tags":{{"iphone", "voicemail-service" }}, "message":" like iphone the voicemail-service is good"}
-{"message-id": 146, "author-id": 11, "timestamp":datetime("2011-05-04T15:00:07"), "in-response-to": 2424, "sender-location":point("37.08,82.62"), "tags":{{"iphone", "3G" }}, "message":" love iphone its 3G is good"}
-{"message-id": 147, "author-id": 11, "timestamp":datetime("2005-05-01T01:03:10"), "in-response-to": 2345, "sender-location":point("30.78,92.37"), "tags":{{"samsung", "3G" }}, "message":" love samsung its 3G is awesome:)"}
-{"message-id": 148, "author-id": 12, "timestamp":datetime("2012-11-03T07:59:42"), "in-response-to": 700, "sender-location":point("44.98,83.31"), "tags":{{"sprint", "network" }}, "message":" dislike sprint its network is horrible"}
-{"message-id": 149, "author-id": 12, "timestamp":datetime("2006-03-27T07:17:05"), "in-response-to": 3240, "sender-location":point("33.3,94.66"), "tags":{{"t-mobile", "wireless" }}, "message":" can't stand t-mobile the wireless is bad"}
-{"message-id": 150, "author-id": 12, "timestamp":datetime("2011-11-08T09:42:45"), "in-response-to": 754, "sender-location":point("42.71,92.39"), "tags":{{"verizon", "touch-screen" }}, "message":" love verizon its touch-screen is good:)"}
-{"message-id": 151, "author-id": 12, "timestamp":datetime("2011-07-04T15:42:15"), "in-response-to": 96, "sender-location":point("32.68,66.74"), "tags":{{"iphone", "touch-screen" }}, "message":" dislike iphone the touch-screen is horrible"}
-{"message-id": 152, "author-id": 12, "timestamp":datetime("2005-12-08T01:30:14"), "in-response-to": 2372, "sender-location":point("34.97,83.72"), "tags":{{"samsung", "network" }}, "message":" hate samsung the network is OMG:("}
-{"message-id": 153, "author-id": 12, "timestamp":datetime("2006-06-02T22:13:01"), "in-response-to": 697, "sender-location":point("34.44,78.13"), "tags":{{"at&t", "customization" }}, "message":" love at&t the customization is good:)"}
-{"message-id": 154, "author-id": 12, "timestamp":datetime("2005-01-06T22:57:44"), "in-response-to": 1660, "sender-location":point("26.59,90.99"), "tags":{{"at&t", "customization" }}, "message":" dislike at&t the customization is terrible"}
-{"message-id": 155, "author-id": 12, "timestamp":datetime("2006-05-05T08:23:02"), "in-response-to": 989, "sender-location":point("26.4,97.95"), "tags":{{"at&t", "voicemail-service" }}, "message":" love at&t the voicemail-service is awesome:)"}
-{"message-id": 156, "author-id": 13, "timestamp":datetime("2011-04-20T21:36:36"), "in-response-to": 549, "sender-location":point("36.23,90.98"), "tags":{{"t-mobile", "speed" }}, "message":" like t-mobile the speed is awesome"}
-{"message-id": 157, "author-id": 13, "timestamp":datetime("2013-07-19T13:22:23"), "in-response-to": 3135, "sender-location":point("44.5,96.23"), "tags":{{"iphone", "shortcut-menu" }}, "message":" can't stand iphone the shortcut-menu is terrible"}
-{"message-id": 158, "author-id": 13, "timestamp":datetime("2006-10-06T06:33:27"), "in-response-to": 1125, "sender-location":point("48.99,82.24"), "tags":{{"at&t", "3G" }}, "message":" like at&t the 3G is good:)"}
-{"message-id": 159, "author-id": 13, "timestamp":datetime("2006-01-25T15:39:31"), "in-response-to": 788, "sender-location":point("24.38,88.86"), "tags":{{"sprint", "voice-clarity" }}, "message":" like sprint the voice-clarity is good"}
-{"message-id": 160, "author-id": 13, "timestamp":datetime("2014-06-02T00:17:39"), "in-response-to": 2307, "sender-location":point("28.05,92.06"), "tags":{{"motorola", "voice-command" }}, "message":" love motorola its voice-command is awesome:)"}
-{"message-id": 161, "author-id": 13, "timestamp":datetime("2011-01-14T01:48:43"), "in-response-to": 2075, "sender-location":point("32.19,81.86"), "tags":{{"samsung", "voice-clarity" }}, "message":" can't stand samsung its voice-clarity is OMG:("}
-{"message-id": 162, "author-id": 13, "timestamp":datetime("2013-05-22T01:25:32"), "in-response-to": 2003, "sender-location":point("25.69,74.54"), "tags":{{"verizon", "touch-screen" }}, "message":" hate verizon the touch-screen is bad"}
-{"message-id": 163, "author-id": 13, "timestamp":datetime("2013-11-25T19:04:12"), "in-response-to": 1493, "sender-location":point("27.52,76.93"), "tags":{{"samsung", "customer-service" }}, "message":" love samsung its customer-service is mind-blowing:)"}
-{"message-id": 164, "author-id": 14, "timestamp":datetime("2006-12-14T10:41:54"), "in-response-to": 2417, "sender-location":point("24.44,68.6"), "tags":{{"verizon", "platform" }}, "message":" hate verizon its platform is OMG:("}
-{"message-id": 165, "author-id": 14, "timestamp":datetime("2014-04-08T06:56:58"), "in-response-to": 1288, "sender-location":point("42.52,76.41"), "tags":{{"iphone", "voice-clarity" }}, "message":" love iphone its voice-clarity is awesome:)"}
-{"message-id": 166, "author-id": 14, "timestamp":datetime("2012-04-09T12:30:44"), "in-response-to": 2800, "sender-location":point("28.68,86.32"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" hate t-mobile the voice-clarity is horrible:("}
-{"message-id": 167, "author-id": 14, "timestamp":datetime("2013-12-23T22:49:59"), "in-response-to": 1390, "sender-location":point("34.84,82.43"), "tags":{{"t-mobile", "plan" }}, "message":" like t-mobile its plan is amazing"}
-{"message-id": 168, "author-id": 14, "timestamp":datetime("2008-11-03T22:57:15"), "in-response-to": 2717, "sender-location":point("38.32,97.97"), "tags":{{"at&t", "customer-service" }}, "message":" can't stand at&t its customer-service is terrible:("}
-{"message-id": 169, "author-id": 14, "timestamp":datetime("2013-02-28T01:20:35"), "in-response-to": 2149, "sender-location":point("29.86,66.26"), "tags":{{"verizon", "customer-service" }}, "message":" dislike verizon the customer-service is bad:("}
-{"message-id": 170, "author-id": 14, "timestamp":datetime("2009-03-04T08:01:06"), "in-response-to": 2606, "sender-location":point("39.06,95.53"), "tags":{{"verizon", "plan" }}, "message":" can't stand verizon the plan is terrible"}
-{"message-id": 171, "author-id": 15, "timestamp":datetime("2013-10-11T17:33:04"), "in-response-to": 1961, "sender-location":point("45.57,97.31"), "tags":{{"motorola", "touch-screen" }}, "message":" dislike motorola its touch-screen is bad"}
-{"message-id": 172, "author-id": 15, "timestamp":datetime("2005-06-27T00:37:40"), "in-response-to": 2519, "sender-location":point("28.92,88.75"), "tags":{{"motorola", "signal" }}, "message":" like motorola the signal is mind-blowing"}
-{"message-id": 173, "author-id": 15, "timestamp":datetime("2008-08-10T13:36:03"), "in-response-to": 2320, "sender-location":point("29.33,97.36"), "tags":{{"verizon", "plan" }}, "message":" love verizon the plan is awesome:)"}
-{"message-id": 174, "author-id": 15, "timestamp":datetime("2011-12-21T07:41:34"), "in-response-to": 2441, "sender-location":point("33.3,80.27"), "tags":{{"motorola", "voicemail-service" }}, "message":" like motorola the voicemail-service is amazing"}
-{"message-id": 175, "author-id": 15, "timestamp":datetime("2012-09-11T15:01:07"), "in-response-to": 3187, "sender-location":point("28.3,85.7"), "tags":{{"iphone", "3G" }}, "message":" dislike iphone the 3G is OMG"}
-{"message-id": 176, "author-id": 15, "timestamp":datetime("2007-05-06T06:09:14"), "in-response-to": 1208, "sender-location":point("27.32,76.71"), "tags":{{"t-mobile", "customization" }}, "message":" hate t-mobile the customization is OMG"}
-{"message-id": 177, "author-id": 15, "timestamp":datetime("2006-05-28T13:24:43"), "in-response-to": 2955, "sender-location":point("25.17,71.73"), "tags":{{"at&t", "network" }}, "message":" hate at&t the network is terrible"}
-{"message-id": 178, "author-id": 16, "timestamp":datetime("2007-04-08T23:47:47"), "in-response-to": 332, "sender-location":point("34.1,80.9"), "tags":{{"iphone", "voice-clarity" }}, "message":" hate iphone the voice-clarity is bad:("}
-{"message-id": 179, "author-id": 16, "timestamp":datetime("2008-05-04T12:01:55"), "in-response-to": 2646, "sender-location":point("36.56,92.16"), "tags":{{"t-mobile", "customization" }}, "message":" love t-mobile its customization is awesome"}
-{"message-id": 180, "author-id": 16, "timestamp":datetime("2010-01-01T12:39:58"), "in-response-to": 1000, "sender-location":point("39.21,76.57"), "tags":{{"sprint", "reachability" }}, "message":" hate sprint the reachability is bad:("}
-{"message-id": 181, "author-id": 16, "timestamp":datetime("2013-12-05T17:09:42"), "in-response-to": 2834, "sender-location":point("33.6,83.59"), "tags":{{"t-mobile", "signal" }}, "message":" dislike t-mobile the signal is terrible:("}
-{"message-id": 182, "author-id": 16, "timestamp":datetime("2009-07-26T01:22:38"), "in-response-to": 2821, "sender-location":point("27.93,86.14"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" like t-mobile its shortcut-menu is mind-blowing"}
-{"message-id": 183, "author-id": 16, "timestamp":datetime("2014-03-22T08:43:25"), "in-response-to": 2768, "sender-location":point("25.58,70.95"), "tags":{{"at&t", "touch-screen" }}, "message":" love at&t its touch-screen is awesome"}
-{"message-id": 184, "author-id": 16, "timestamp":datetime("2006-11-15T06:02:54"), "in-response-to": 3045, "sender-location":point("25.1,67.25"), "tags":{{"samsung", "voice-clarity" }}, "message":" like samsung the voice-clarity is mind-blowing:)"}
-{"message-id": 185, "author-id": 17, "timestamp":datetime("2009-02-20T15:09:48"), "in-response-to": 3171, "sender-location":point("40.21,85.1"), "tags":{{"t-mobile", "3G" }}, "message":" can't stand t-mobile the 3G is terrible"}
-{"message-id": 186, "author-id": 17, "timestamp":datetime("2014-04-05T09:47:04"), "in-response-to": 1943, "sender-location":point("39.77,90.23"), "tags":{{"verizon", "network" }}, "message":" dislike verizon the network is horrible"}
-{"message-id": 187, "author-id": 17, "timestamp":datetime("2014-01-17T04:36:14"), "in-response-to": 2014, "sender-location":point("33.76,88.49"), "tags":{{"verizon", "reachability" }}, "message":" dislike verizon its reachability is OMG"}
-{"message-id": 188, "author-id": 17, "timestamp":datetime("2008-06-26T06:33:56"), "in-response-to": 413, "sender-location":point("38.46,83.09"), "tags":{{"t-mobile", "reachability" }}, "message":" hate t-mobile its reachability is terrible"}
-{"message-id": 189, "author-id": 17, "timestamp":datetime("2008-12-26T15:14:04"), "in-response-to": 3167, "sender-location":point("30.5,83.91"), "tags":{{"at&t", "speed" }}, "message":" like at&t the speed is mind-blowing:)"}
-{"message-id": 190, "author-id": 17, "timestamp":datetime("2007-06-20T07:10:55"), "in-response-to": 2377, "sender-location":point("26.77,67.52"), "tags":{{"iphone", "platform" }}, "message":" like iphone the platform is amazing:)"}
-{"message-id": 191, "author-id": 17, "timestamp":datetime("2014-08-03T08:26:52"), "in-response-to": 2774, "sender-location":point("38.95,73.81"), "tags":{{"samsung", "wireless" }}, "message":" hate samsung the wireless is terrible:("}
-{"message-id": 192, "author-id": 18, "timestamp":datetime("2009-06-23T21:20:17"), "in-response-to": 543, "sender-location":point("42.98,94.4"), "tags":{{"samsung", "platform" }}, "message":" dislike samsung its platform is horrible"}
-{"message-id": 193, "author-id": 18, "timestamp":datetime("2010-03-16T06:14:18"), "in-response-to": 2665, "sender-location":point("41.93,72.74"), "tags":{{"samsung", "voice-clarity" }}, "message":" can't stand samsung the voice-clarity is horrible:("}
-{"message-id": 194, "author-id": 18, "timestamp":datetime("2012-08-10T19:21:24"), "in-response-to": 1281, "sender-location":point("45.31,88.34"), "tags":{{"verizon", "network" }}, "message":" hate verizon the network is bad"}
-{"message-id": 195, "author-id": 18, "timestamp":datetime("2012-07-25T19:42:27"), "in-response-to": 1772, "sender-location":point("48.93,66.5"), "tags":{{"verizon", "shortcut-menu" }}, "message":" hate verizon the shortcut-menu is OMG"}
-{"message-id": 196, "author-id": 18, "timestamp":datetime("2010-12-18T04:31:25"), "in-response-to": 1862, "sender-location":point("28.58,92.44"), "tags":{{"verizon", "platform" }}, "message":" like verizon the platform is good"}
-{"message-id": 197, "author-id": 18, "timestamp":datetime("2010-02-10T10:32:16"), "in-response-to": 3026, "sender-location":point("42.42,91.92"), "tags":{{"motorola", "touch-screen" }}, "message":" love motorola the touch-screen is amazing"}
-{"message-id": 198, "author-id": 19, "timestamp":datetime("2005-05-28T07:22:54"), "in-response-to": 370, "sender-location":point("40.01,77.73"), "tags":{{"at&t", "reachability" }}, "message":" like at&t the reachability is awesome:)"}
-{"message-id": 199, "author-id": 19, "timestamp":datetime("2013-06-17T13:03:19"), "in-response-to": 687, "sender-location":point("48.7,89.85"), "tags":{{"iphone", "touch-screen" }}, "message":" like iphone its touch-screen is awesome:)"}
-{"message-id": 200, "author-id": 19, "timestamp":datetime("2009-09-21T10:53:36"), "in-response-to": 2801, "sender-location":point("44.6,78.39"), "tags":{{"sprint", "customer-service" }}, "message":" hate sprint the customer-service is OMG:("}
-{"message-id": 201, "author-id": 19, "timestamp":datetime("2008-09-26T10:23:11"), "in-response-to": 3066, "sender-location":point("46.98,66.44"), "tags":{{"iphone", "signal" }}, "message":" love iphone its signal is mind-blowing"}
-{"message-id": 202, "author-id": 19, "timestamp":datetime("2014-08-20T10:43:34"), "in-response-to": 1443, "sender-location":point("31.43,78.46"), "tags":{{"at&t", "voice-clarity" }}, "message":" can't stand at&t its voice-clarity is horrible:("}
-{"message-id": 203, "author-id": 19, "timestamp":datetime("2011-06-05T04:44:47"), "in-response-to": 2515, "sender-location":point("31.24,69.02"), "tags":{{"t-mobile", "platform" }}, "message":" can't stand t-mobile its platform is horrible"}
-{"message-id": 204, "author-id": 20, "timestamp":datetime("2010-10-28T07:45:46"), "in-response-to": 603, "sender-location":point("38.15,66.68"), "tags":{{"verizon", "network" }}, "message":" love verizon its network is amazing:)"}
-{"message-id": 205, "author-id": 20, "timestamp":datetime("2010-10-16T18:24:06"), "in-response-to": 2699, "sender-location":point("30.56,70.17"), "tags":{{"sprint", "reachability" }}, "message":" love sprint its reachability is awesome:)"}
-{"message-id": 206, "author-id": 20, "timestamp":datetime("2013-07-01T16:17:32"), "in-response-to": 404, "sender-location":point("28.47,76.57"), "tags":{{"t-mobile", "platform" }}, "message":" hate t-mobile its platform is terrible"}
-{"message-id": 207, "author-id": 20, "timestamp":datetime("2010-12-27T22:02:50"), "in-response-to": 2019, "sender-location":point("45.37,90.31"), "tags":{{"verizon", "platform" }}, "message":" like verizon its platform is awesome"}
-{"message-id": 208, "author-id": 20, "timestamp":datetime("2007-09-06T14:32:47"), "in-response-to": 2345, "sender-location":point("29.6,66.14"), "tags":{{"verizon", "signal" }}, "message":" dislike verizon its signal is terrible"}
-{"message-id": 209, "author-id": 20, "timestamp":datetime("2011-05-19T16:08:36"), "in-response-to": 1706, "sender-location":point("24.63,97.45"), "tags":{{"samsung", "touch-screen" }}, "message":" hate samsung the touch-screen is terrible"}
-{"message-id": 210, "author-id": 21, "timestamp":datetime("2012-02-18T02:12:07"), "in-response-to": 2846, "sender-location":point("38.39,66.11"), "tags":{{"at&t", "speed" }}, "message":" love at&t the speed is good:)"}
-{"message-id": 211, "author-id": 21, "timestamp":datetime("2009-11-11T05:13:34"), "in-response-to": 1669, "sender-location":point("24.49,93.02"), "tags":{{"samsung", "touch-screen" }}, "message":" like samsung its touch-screen is awesome:)"}
-{"message-id": 212, "author-id": 21, "timestamp":datetime("2014-06-12T06:44:16"), "in-response-to": 135, "sender-location":point("41.83,79.91"), "tags":{{"at&t", "signal" }}, "message":" love at&t its signal is amazing:)"}
-{"message-id": 213, "author-id": 21, "timestamp":datetime("2010-06-23T04:26:29"), "in-response-to": 1814, "sender-location":point("31.77,70.51"), "tags":{{"t-mobile", "reachability" }}, "message":" can't stand t-mobile the reachability is terrible"}
-{"message-id": 214, "author-id": 21, "timestamp":datetime("2010-04-12T09:30:40"), "in-response-to": 1670, "sender-location":point("28.93,68.0"), "tags":{{"iphone", "platform" }}, "message":" love iphone the platform is mind-blowing:)"}
-{"message-id": 215, "author-id": 21, "timestamp":datetime("2009-08-01T18:25:39"), "in-response-to": 1776, "sender-location":point("37.2,71.94"), "tags":{{"verizon", "plan" }}, "message":" like verizon the plan is good:)"}
-{"message-id": 216, "author-id": 22, "timestamp":datetime("2008-08-16T03:07:24"), "in-response-to": 2409, "sender-location":point("26.98,69.17"), "tags":{{"motorola", "platform" }}, "message":" dislike motorola the platform is horrible:("}
-{"message-id": 217, "author-id": 22, "timestamp":datetime("2008-12-22T22:05:56"), "in-response-to": 1375, "sender-location":point("39.16,87.45"), "tags":{{"at&t", "3G" }}, "message":" like at&t its 3G is awesome:)"}
-{"message-id": 218, "author-id": 22, "timestamp":datetime("2007-09-13T16:35:45"), "in-response-to": 2932, "sender-location":point("26.73,96.22"), "tags":{{"motorola", "signal" }}, "message":" like motorola its signal is good"}
-{"message-id": 219, "author-id": 22, "timestamp":datetime("2005-07-04T09:36:23"), "in-response-to": 1131, "sender-location":point("25.54,70.06"), "tags":{{"verizon", "3G" }}, "message":" hate verizon the 3G is terrible"}
-{"message-id": 220, "author-id": 22, "timestamp":datetime("2011-02-17T20:26:52"), "in-response-to": 1809, "sender-location":point("41.23,89.99"), "tags":{{"verizon", "voice-command" }}, "message":" like verizon its voice-command is good:)"}
-{"message-id": 221, "author-id": 22, "timestamp":datetime("2014-07-27T03:33:04"), "in-response-to": 2231, "sender-location":point("40.28,71.82"), "tags":{{"motorola", "platform" }}, "message":" dislike motorola its platform is OMG"}
-{"message-id": 222, "author-id": 23, "timestamp":datetime("2007-01-02T12:14:35"), "in-response-to": 1698, "sender-location":point("42.85,80.9"), "tags":{{"motorola", "shortcut-menu" }}, "message":" can't stand motorola the shortcut-menu is horrible"}
-{"message-id": 223, "author-id": 23, "timestamp":datetime("2010-10-25T01:59:50"), "in-response-to": 2589, "sender-location":point("40.1,79.15"), "tags":{{"motorola", "platform" }}, "message":" love motorola the platform is mind-blowing"}
-{"message-id": 224, "author-id": 23, "timestamp":datetime("2006-03-09T04:30:23"), "in-response-to": 2370, "sender-location":point("41.5,94.44"), "tags":{{"sprint", "signal" }}, "message":" can't stand sprint its signal is OMG:("}
-{"message-id": 225, "author-id": 23, "timestamp":datetime("2013-09-03T21:54:36"), "in-response-to": 2794, "sender-location":point("44.58,92.6"), "tags":{{"motorola", "3G" }}, "message":" hate motorola the 3G is bad"}
-{"message-id": 226, "author-id": 23, "timestamp":datetime("2014-04-12T19:59:10"), "in-response-to": 3245, "sender-location":point("40.3,84.61"), "tags":{{"at&t", "customer-service" }}, "message":" hate at&t its customer-service is bad"}
-{"message-id": 227, "author-id": 23, "timestamp":datetime("2009-03-04T11:15:22"), "in-response-to": 3124, "sender-location":point("25.37,78.41"), "tags":{{"sprint", "platform" }}, "message":" like sprint the platform is good:)"}
-{"message-id": 228, "author-id": 24, "timestamp":datetime("2007-10-13T17:58:45"), "in-response-to": 2914, "sender-location":point("35.8,69.7"), "tags":{{"sprint", "wireless" }}, "message":" can't stand sprint its wireless is OMG:("}
-{"message-id": 229, "author-id": 24, "timestamp":datetime("2012-08-17T09:51:30"), "in-response-to": 3088, "sender-location":point("36.42,74.17"), "tags":{{"iphone", "voice-command" }}, "message":" like iphone the voice-command is awesome"}
-{"message-id": 230, "author-id": 24, "timestamp":datetime("2014-06-17T15:06:59"), "in-response-to": 1538, "sender-location":point("48.61,69.4"), "tags":{{"verizon", "3G" }}, "message":" love verizon its 3G is mind-blowing"}
-{"message-id": 231, "author-id": 24, "timestamp":datetime("2009-05-27T20:58:05"), "in-response-to": 101, "sender-location":point("24.99,88.22"), "tags":{{"at&t", "voicemail-service" }}, "message":" love at&t its voicemail-service is awesome"}
-{"message-id": 232, "author-id": 24, "timestamp":datetime("2009-11-06T14:31:06"), "in-response-to": 2697, "sender-location":point("40.47,68.4"), "tags":{{"t-mobile", "platform" }}, "message":" can't stand t-mobile its platform is terrible:("}
-{"message-id": 233, "author-id": 25, "timestamp":datetime("2011-07-11T04:26:17"), "in-response-to": 258, "sender-location":point("36.6,91.85"), "tags":{{"motorola", "customization" }}, "message":" love motorola its customization is mind-blowing"}
-{"message-id": 234, "author-id": 25, "timestamp":datetime("2013-04-19T06:48:04"), "in-response-to": 180, "sender-location":point("36.23,78.06"), "tags":{{"at&t", "voicemail-service" }}, "message":" like at&t its voicemail-service is awesome:)"}
-{"message-id": 235, "author-id": 25, "timestamp":datetime("2013-05-26T10:01:38"), "in-response-to": 2043, "sender-location":point("41.82,78.2"), "tags":{{"samsung", "voice-clarity" }}, "message":" love samsung the voice-clarity is amazing:)"}
-{"message-id": 236, "author-id": 25, "timestamp":datetime("2005-04-26T19:38:31"), "in-response-to": 3110, "sender-location":point("43.36,77.75"), "tags":{{"at&t", "voicemail-service" }}, "message":" can't stand at&t its voicemail-service is horrible"}
-{"message-id": 237, "author-id": 25, "timestamp":datetime("2013-08-21T18:19:32"), "in-response-to": 2718, "sender-location":point("40.41,86.33"), "tags":{{"t-mobile", "platform" }}, "message":" love t-mobile the platform is mind-blowing:)"}
-{"message-id": 238, "author-id": 26, "timestamp":datetime("2013-01-01T00:51:31"), "in-response-to": 692, "sender-location":point("37.86,69.65"), "tags":{{"motorola", "platform" }}, "message":" like motorola the platform is amazing:)"}
-{"message-id": 239, "author-id": 26, "timestamp":datetime("2006-05-17T18:02:33"), "in-response-to": 2276, "sender-location":point("44.12,83.26"), "tags":{{"motorola", "voice-clarity" }}, "message":" love motorola its voice-clarity is mind-blowing:)"}
-{"message-id": 240, "author-id": 26, "timestamp":datetime("2010-04-26T04:33:54"), "in-response-to": 1827, "sender-location":point("25.47,79.6"), "tags":{{"sprint", "reachability" }}, "message":" hate sprint its reachability is terrible:("}
-{"message-id": 241, "author-id": 26, "timestamp":datetime("2012-10-07T16:34:14"), "in-response-to": 3159, "sender-location":point("40.31,69.57"), "tags":{{"iphone", "platform" }}, "message":" can't stand iphone its platform is OMG:("}
-{"message-id": 242, "author-id": 26, "timestamp":datetime("2010-05-07T17:39:13"), "in-response-to": 1930, "sender-location":point("32.18,87.08"), "tags":{{"samsung", "speed" }}, "message":" can't stand samsung the speed is OMG:("}
-{"message-id": 243, "author-id": 27, "timestamp":datetime("2007-02-14T13:26:52"), "in-response-to": 2593, "sender-location":point("34.84,86.54"), "tags":{{"iphone", "speed" }}, "message":" dislike iphone the speed is bad:("}
-{"message-id": 244, "author-id": 27, "timestamp":datetime("2014-08-15T07:08:56"), "in-response-to": 2062, "sender-location":point("41.56,74.83"), "tags":{{"iphone", "signal" }}, "message":" hate iphone the signal is OMG:("}
-{"message-id": 245, "author-id": 27, "timestamp":datetime("2008-12-21T22:53:01"), "in-response-to": 485, "sender-location":point("48.92,96.62"), "tags":{{"verizon", "voice-clarity" }}, "message":" can't stand verizon the voice-clarity is horrible:("}
-{"message-id": 246, "author-id": 27, "timestamp":datetime("2006-04-17T14:27:55"), "in-response-to": 676, "sender-location":point("34.28,78.09"), "tags":{{"samsung", "voicemail-service" }}, "message":" love samsung the voicemail-service is good"}
-{"message-id": 247, "author-id": 27, "timestamp":datetime("2009-07-23T21:46:38"), "in-response-to": 1334, "sender-location":point("44.72,77.32"), "tags":{{"verizon", "speed" }}, "message":" love verizon the speed is good"}
-{"message-id": 248, "author-id": 28, "timestamp":datetime("2013-12-26T18:08:30"), "in-response-to": 1534, "sender-location":point("38.68,66.83"), "tags":{{"iphone", "wireless" }}, "message":" love iphone the wireless is good"}
-{"message-id": 249, "author-id": 28, "timestamp":datetime("2007-05-08T09:02:00"), "in-response-to": 2023, "sender-location":point("38.94,84.95"), "tags":{{"iphone", "platform" }}, "message":" like iphone its platform is mind-blowing"}
-{"message-id": 250, "author-id": 28, "timestamp":datetime("2008-07-02T04:57:59"), "in-response-to": 3028, "sender-location":point("41.12,86.62"), "tags":{{"samsung", "voice-clarity" }}, "message":" hate samsung its voice-clarity is OMG:("}
-{"message-id": 251, "author-id": 28, "timestamp":datetime("2013-01-24T16:37:56"), "in-response-to": 1682, "sender-location":point("32.35,76.37"), "tags":{{"iphone", "customization" }}, "message":" like iphone its customization is mind-blowing"}
-{"message-id": 252, "author-id": 28, "timestamp":datetime("2009-10-03T19:49:12"), "in-response-to": 657, "sender-location":point("27.88,94.24"), "tags":{{"motorola", "voice-command" }}, "message":" dislike motorola the voice-command is bad:("}
-{"message-id": 253, "author-id": 29, "timestamp":datetime("2007-05-24T20:05:29"), "in-response-to": 1155, "sender-location":point("32.45,66.67"), "tags":{{"motorola", "3G" }}, "message":" like motorola the 3G is mind-blowing:)"}
-{"message-id": 254, "author-id": 29, "timestamp":datetime("2011-05-15T07:30:01"), "in-response-to": 809, "sender-location":point("36.35,68.96"), "tags":{{"sprint", "voice-command" }}, "message":" hate sprint the voice-command is OMG"}
-{"message-id": 255, "author-id": 29, "timestamp":datetime("2011-03-27T00:58:52"), "in-response-to": 698, "sender-location":point("29.11,84.27"), "tags":{{"motorola", "reachability" }}, "message":" dislike motorola the reachability is horrible:("}
-{"message-id": 256, "author-id": 29, "timestamp":datetime("2011-06-20T11:54:43"), "in-response-to": 401, "sender-location":point("26.28,90.99"), "tags":{{"samsung", "plan" }}, "message":" can't stand samsung its plan is bad"}
-{"message-id": 257, "author-id": 29, "timestamp":datetime("2006-10-06T01:06:19"), "in-response-to": 2818, "sender-location":point("33.26,88.96"), "tags":{{"verizon", "reachability" }}, "message":" like verizon its reachability is amazing:)"}
-{"message-id": 258, "author-id": 30, "timestamp":datetime("2007-03-16T10:32:36"), "in-response-to": 1398, "sender-location":point("46.81,95.87"), "tags":{{"at&t", "shortcut-menu" }}, "message":" love at&t its shortcut-menu is mind-blowing:)"}
-{"message-id": 259, "author-id": 30, "timestamp":datetime("2013-04-21T12:32:10"), "in-response-to": 2037, "sender-location":point("37.0,91.71"), "tags":{{"sprint", "reachability" }}, "message":" love sprint its reachability is good:)"}
-{"message-id": 260, "author-id": 30, "timestamp":datetime("2009-01-18T19:13:33"), "in-response-to": 3004, "sender-location":point("29.27,70.72"), "tags":{{"samsung", "speed" }}, "message":" hate samsung its speed is bad"}
-{"message-id": 261, "author-id": 30, "timestamp":datetime("2008-01-19T04:31:21"), "in-response-to": 2846, "sender-location":point("40.56,75.97"), "tags":{{"motorola", "reachability" }}, "message":" hate motorola the reachability is OMG:("}
-{"message-id": 262, "author-id": 30, "timestamp":datetime("2008-05-17T06:47:30"), "in-response-to": 3017, "sender-location":point("38.19,71.54"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" hate t-mobile the voice-clarity is terrible:("}
-{"message-id": 263, "author-id": 31, "timestamp":datetime("2012-11-24T17:46:09"), "in-response-to": 1532, "sender-location":point("24.78,93.69"), "tags":{{"motorola", "voice-command" }}, "message":" hate motorola its voice-command is terrible"}
-{"message-id": 264, "author-id": 31, "timestamp":datetime("2008-09-16T18:46:34"), "in-response-to": 577, "sender-location":point("27.49,73.87"), "tags":{{"verizon", "3G" }}, "message":" can't stand verizon the 3G is terrible:("}
-{"message-id": 265, "author-id": 31, "timestamp":datetime("2010-12-19T08:10:25"), "in-response-to": 1301, "sender-location":point("29.62,88.24"), "tags":{{"motorola", "signal" }}, "message":" hate motorola its signal is OMG:("}
-{"message-id": 266, "author-id": 31, "timestamp":datetime("2007-11-12T13:42:30"), "in-response-to": 1879, "sender-location":point("46.41,92.16"), "tags":{{"t-mobile", "platform" }}, "message":" like t-mobile its platform is awesome:)"}
-{"message-id": 267, "author-id": 31, "timestamp":datetime("2011-03-07T22:27:46"), "in-response-to": 987, "sender-location":point("36.66,84.48"), "tags":{{"samsung", "reachability" }}, "message":" hate samsung its reachability is bad:("}
-{"message-id": 268, "author-id": 32, "timestamp":datetime("2005-05-05T16:28:37"), "in-response-to": 1744, "sender-location":point("41.15,75.97"), "tags":{{"samsung", "3G" }}, "message":" like samsung its 3G is mind-blowing:)"}
-{"message-id": 269, "author-id": 32, "timestamp":datetime("2014-08-13T12:38:36"), "in-response-to": 2212, "sender-location":point("35.65,73.44"), "tags":{{"at&t", "voice-clarity" }}, "message":" like at&t the voice-clarity is awesome"}
-{"message-id": 270, "author-id": 32, "timestamp":datetime("2006-05-25T07:07:20"), "in-response-to": 279, "sender-location":point("42.4,75.11"), "tags":{{"motorola", "customer-service" }}, "message":" hate motorola the customer-service is OMG:("}
-{"message-id": 271, "author-id": 32, "timestamp":datetime("2010-09-12T01:53:43"), "in-response-to": 2146, "sender-location":point("40.73,89.12"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" love t-mobile the voice-clarity is good:)"}
-{"message-id": 272, "author-id": 32, "timestamp":datetime("2007-10-04T16:14:26"), "in-response-to": 246, "sender-location":point("35.0,91.16"), "tags":{{"motorola", "network" }}, "message":" love motorola its network is awesome:)"}
-{"message-id": 273, "author-id": 33, "timestamp":datetime("2013-10-27T17:04:33"), "in-response-to": 2893, "sender-location":point("29.26,87.66"), "tags":{{"at&t", "customer-service" }}, "message":" can't stand at&t the customer-service is terrible:("}
-{"message-id": 274, "author-id": 33, "timestamp":datetime("2013-06-27T22:04:09"), "in-response-to": 2007, "sender-location":point("36.19,86.5"), "tags":{{"samsung", "voicemail-service" }}, "message":" dislike samsung the voicemail-service is horrible"}
-{"message-id": 275, "author-id": 33, "timestamp":datetime("2008-08-24T18:31:15"), "in-response-to": 2922, "sender-location":point("26.73,93.49"), "tags":{{"iphone", "voice-command" }}, "message":" can't stand iphone its voice-command is terrible"}
-{"message-id": 276, "author-id": 33, "timestamp":datetime("2010-08-25T17:05:58"), "in-response-to": 2744, "sender-location":point("39.99,88.61"), "tags":{{"t-mobile", "3G" }}, "message":" like t-mobile the 3G is good:)"}
-{"message-id": 277, "author-id": 33, "timestamp":datetime("2013-09-20T06:26:23"), "in-response-to": 2989, "sender-location":point("43.77,92.71"), "tags":{{"iphone", "signal" }}, "message":" dislike iphone its signal is horrible"}
-{"message-id": 278, "author-id": 34, "timestamp":datetime("2010-06-22T13:39:09"), "in-response-to": 1357, "sender-location":point("24.34,66.92"), "tags":{{"iphone", "customer-service" }}, "message":" can't stand iphone the customer-service is OMG"}
-{"message-id": 279, "author-id": 34, "timestamp":datetime("2005-07-02T10:28:17"), "in-response-to": 2159, "sender-location":point("43.9,81.84"), "tags":{{"sprint", "plan" }}, "message":" like sprint the plan is mind-blowing:)"}
-{"message-id": 280, "author-id": 34, "timestamp":datetime("2005-06-17T23:54:43"), "in-response-to": 1904, "sender-location":point("39.25,72.92"), "tags":{{"t-mobile", "voice-command" }}, "message":" hate t-mobile the voice-command is OMG:("}
-{"message-id": 281, "author-id": 34, "timestamp":datetime("2013-06-14T18:06:57"), "in-response-to": 1227, "sender-location":point("35.03,77.64"), "tags":{{"iphone", "voice-clarity" }}, "message":" hate iphone the voice-clarity is bad:("}
-{"message-id": 282, "author-id": 35, "timestamp":datetime("2011-02-13T01:48:21"), "in-response-to": 1282, "sender-location":point("26.41,94.38"), "tags":{{"at&t", "touch-screen" }}, "message":" love at&t the touch-screen is mind-blowing:)"}
-{"message-id": 283, "author-id": 35, "timestamp":datetime("2007-12-12T18:40:38"), "in-response-to": 699, "sender-location":point("39.78,83.42"), "tags":{{"t-mobile", "touch-screen" }}, "message":" hate t-mobile its touch-screen is bad:("}
-{"message-id": 284, "author-id": 35, "timestamp":datetime("2008-11-21T17:24:14"), "in-response-to": 1709, "sender-location":point("45.62,81.91"), "tags":{{"samsung", "customization" }}, "message":" can't stand samsung its customization is bad"}
-{"message-id": 285, "author-id": 35, "timestamp":datetime("2010-11-25T03:50:00"), "in-response-to": 1027, "sender-location":point("28.08,73.35"), "tags":{{"verizon", "voicemail-service" }}, "message":" can't stand verizon the voicemail-service is terrible"}
-{"message-id": 286, "author-id": 36, "timestamp":datetime("2011-05-22T20:42:33"), "in-response-to": 2159, "sender-location":point("39.96,93.07"), "tags":{{"motorola", "voice-command" }}, "message":" like motorola the voice-command is amazing"}
-{"message-id": 287, "author-id": 36, "timestamp":datetime("2009-06-11T07:11:32"), "in-response-to": 2842, "sender-location":point("26.44,75.02"), "tags":{{"samsung", "wireless" }}, "message":" like samsung the wireless is amazing"}
-{"message-id": 288, "author-id": 36, "timestamp":datetime("2008-08-07T03:48:29"), "in-response-to": 711, "sender-location":point("33.92,78.81"), "tags":{{"t-mobile", "plan" }}, "message":" like t-mobile the plan is amazing"}
-{"message-id": 289, "author-id": 36, "timestamp":datetime("2007-06-04T12:07:42"), "in-response-to": 589, "sender-location":point("39.96,73.15"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" like t-mobile the shortcut-menu is awesome:)"}
-{"message-id": 290, "author-id": 37, "timestamp":datetime("2010-03-24T09:15:08"), "in-response-to": 2160, "sender-location":point("39.82,85.11"), "tags":{{"at&t", "customization" }}, "message":" like at&t the customization is awesome:)"}
-{"message-id": 291, "author-id": 37, "timestamp":datetime("2006-01-12T05:21:17"), "in-response-to": 150, "sender-location":point("45.37,68.27"), "tags":{{"samsung", "customer-service" }}, "message":" can't stand samsung its customer-service is OMG"}
-{"message-id": 292, "author-id": 37, "timestamp":datetime("2008-05-05T17:05:13"), "in-response-to": 2000, "sender-location":point("32.3,80.71"), "tags":{{"iphone", "voice-clarity" }}, "message":" hate iphone its voice-clarity is OMG"}
-{"message-id": 293, "author-id": 37, "timestamp":datetime("2013-12-20T03:58:14"), "in-response-to": 1954, "sender-location":point("28.41,97.47"), "tags":{{"samsung", "platform" }}, "message":" dislike samsung its platform is terrible"}
-{"message-id": 294, "author-id": 38, "timestamp":datetime("2010-01-26T16:02:39"), "in-response-to": 1722, "sender-location":point("40.28,69.62"), "tags":{{"iphone", "reachability" }}, "message":" love iphone its reachability is amazing"}
-{"message-id": 295, "author-id": 38, "timestamp":datetime("2011-02-19T00:22:56"), "in-response-to": 282, "sender-location":point("29.36,84.26"), "tags":{{"at&t", "3G" }}, "message":" hate at&t its 3G is horrible:("}
-{"message-id": 296, "author-id": 38, "timestamp":datetime("2014-01-14T06:14:07"), "in-response-to": 196, "sender-location":point("40.89,94.21"), "tags":{{"at&t", "voice-command" }}, "message":" like at&t the voice-command is amazing"}
-{"message-id": 297, "author-id": 38, "timestamp":datetime("2006-12-15T05:59:36"), "in-response-to": 1850, "sender-location":point("36.45,69.14"), "tags":{{"motorola", "shortcut-menu" }}, "message":" like motorola its shortcut-menu is good"}
-{"message-id": 298, "author-id": 39, "timestamp":datetime("2010-09-21T14:09:01"), "in-response-to": 733, "sender-location":point("29.77,82.32"), "tags":{{"iphone", "platform" }}, "message":" love iphone its platform is mind-blowing:)"}
-{"message-id": 299, "author-id": 39, "timestamp":datetime("2006-11-08T23:24:34"), "in-response-to": 2198, "sender-location":point("46.2,74.51"), "tags":{{"t-mobile", "customer-service" }}, "message":" can't stand t-mobile its customer-service is OMG"}
-{"message-id": 300, "author-id": 39, "timestamp":datetime("2014-03-24T04:54:39"), "in-response-to": 1365, "sender-location":point("30.77,70.73"), "tags":{{"motorola", "reachability" }}, "message":" dislike motorola the reachability is OMG"}
-{"message-id": 301, "author-id": 39, "timestamp":datetime("2013-11-18T19:23:02"), "in-response-to": 2465, "sender-location":point("30.4,83.17"), "tags":{{"samsung", "customer-service" }}, "message":" love samsung its customer-service is good:)"}
-{"message-id": 302, "author-id": 40, "timestamp":datetime("2013-04-18T14:48:07"), "in-response-to": 1479, "sender-location":point("37.52,79.4"), "tags":{{"at&t", "voicemail-service" }}, "message":" like at&t its voicemail-service is amazing"}
-{"message-id": 303, "author-id": 40, "timestamp":datetime("2011-06-13T06:50:35"), "in-response-to": 2487, "sender-location":point("28.68,95.68"), "tags":{{"iphone", "speed" }}, "message":" dislike iphone its speed is OMG"}
-{"message-id": 304, "author-id": 40, "timestamp":datetime("2008-06-16T04:26:40"), "in-response-to": 411, "sender-location":point("48.96,70.14"), "tags":{{"motorola", "voice-clarity" }}, "message":" like motorola its voice-clarity is good:)"}
-{"message-id": 305, "author-id": 40, "timestamp":datetime("2010-08-17T21:22:00"), "in-response-to": 1260, "sender-location":point("46.39,94.43"), "tags":{{"verizon", "customer-service" }}, "message":" love verizon its customer-service is mind-blowing:)"}
-{"message-id": 306, "author-id": 41, "timestamp":datetime("2012-08-25T10:03:44"), "in-response-to": 576, "sender-location":point("45.47,69.19"), "tags":{{"motorola", "signal" }}, "message":" love motorola its signal is awesome"}
-{"message-id": 307, "author-id": 41, "timestamp":datetime("2012-07-09T15:49:03"), "in-response-to": 1086, "sender-location":point("42.74,73.23"), "tags":{{"verizon", "platform" }}, "message":" dislike verizon its platform is terrible"}
-{"message-id": 308, "author-id": 41, "timestamp":datetime("2009-10-20T11:54:19"), "in-response-to": 1829, "sender-location":point("26.4,91.22"), "tags":{{"samsung", "shortcut-menu" }}, "message":" can't stand samsung its shortcut-menu is terrible:("}
-{"message-id": 309, "author-id": 41, "timestamp":datetime("2010-08-11T01:32:33"), "in-response-to": 1796, "sender-location":point("38.38,66.31"), "tags":{{"verizon", "speed" }}, "message":" hate verizon its speed is OMG:("}
-{"message-id": 310, "author-id": 42, "timestamp":datetime("2012-11-26T00:52:25"), "in-response-to": 256, "sender-location":point("48.73,93.77"), "tags":{{"samsung", "shortcut-menu" }}, "message":" love samsung its shortcut-menu is awesome"}
-{"message-id": 311, "author-id": 42, "timestamp":datetime("2010-12-11T12:36:29"), "in-response-to": 902, "sender-location":point("30.35,93.83"), "tags":{{"sprint", "customization" }}, "message":" hate sprint the customization is OMG:("}
-{"message-id": 312, "author-id": 42, "timestamp":datetime("2009-06-04T08:49:05"), "in-response-to": 2432, "sender-location":point("27.28,88.99"), "tags":{{"motorola", "3G" }}, "message":" like motorola its 3G is good"}
-{"message-id": 313, "author-id": 42, "timestamp":datetime("2012-04-28T16:45:05"), "in-response-to": 2459, "sender-location":point("35.81,73.62"), "tags":{{"samsung", "3G" }}, "message":" like samsung its 3G is good:)"}
-{"message-id": 314, "author-id": 43, "timestamp":datetime("2007-09-14T09:38:31"), "in-response-to": 260, "sender-location":point("35.01,66.28"), "tags":{{"samsung", "speed" }}, "message":" dislike samsung the speed is OMG:("}
-{"message-id": 315, "author-id": 43, "timestamp":datetime("2005-06-06T18:23:53"), "in-response-to": 580, "sender-location":point("26.28,79.3"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" like t-mobile the voicemail-service is awesome"}
-{"message-id": 316, "author-id": 43, "timestamp":datetime("2013-06-13T17:24:56"), "in-response-to": 208, "sender-location":point("37.07,79.8"), "tags":{{"sprint", "voicemail-service" }}, "message":" hate sprint the voicemail-service is horrible:("}
-{"message-id": 317, "author-id": 43, "timestamp":datetime("2011-11-08T22:08:51"), "in-response-to": 1752, "sender-location":point("41.06,68.81"), "tags":{{"at&t", "plan" }}, "message":" like at&t the plan is good"}
-{"message-id": 318, "author-id": 44, "timestamp":datetime("2007-03-07T18:40:58"), "in-response-to": 1519, "sender-location":point("39.92,96.53"), "tags":{{"sprint", "touch-screen" }}, "message":" hate sprint its touch-screen is horrible"}
-{"message-id": 319, "author-id": 44, "timestamp":datetime("2006-08-12T20:57:13"), "in-response-to": 474, "sender-location":point("32.38,77.12"), "tags":{{"sprint", "touch-screen" }}, "message":" love sprint its touch-screen is awesome"}
-{"message-id": 320, "author-id": 44, "timestamp":datetime("2010-01-22T01:59:10"), "in-response-to": 3092, "sender-location":point("27.39,74.64"), "tags":{{"at&t", "signal" }}, "message":" hate at&t its signal is OMG:("}
-{"message-id": 321, "author-id": 44, "timestamp":datetime("2009-10-17T23:25:49"), "in-response-to": 545, "sender-location":point("28.84,96.53"), "tags":{{"t-mobile", "plan" }}, "message":" love t-mobile the plan is mind-blowing:)"}
-{"message-id": 322, "author-id": 45, "timestamp":datetime("2008-09-10T11:02:56"), "in-response-to": 757, "sender-location":point("47.69,96.41"), "tags":{{"sprint", "shortcut-menu" }}, "message":" like sprint its shortcut-menu is amazing"}
-{"message-id": 323, "author-id": 45, "timestamp":datetime("2011-01-05T18:10:48"), "in-response-to": 1743, "sender-location":point("28.6,85.17"), "tags":{{"sprint", "platform" }}, "message":" like sprint its platform is amazing:)"}
-{"message-id": 324, "author-id": 45, "timestamp":datetime("2008-10-04T02:58:11"), "in-response-to": 2968, "sender-location":point("29.06,78.57"), "tags":{{"verizon", "speed" }}, "message":" dislike verizon its speed is OMG"}
-{"message-id": 325, "author-id": 45, "timestamp":datetime("2006-05-06T16:06:24"), "in-response-to": 137, "sender-location":point("27.64,93.6"), "tags":{{"t-mobile", "3G" }}, "message":" can't stand t-mobile the 3G is OMG:("}
-{"message-id": 326, "author-id": 46, "timestamp":datetime("2011-09-19T05:02:43"), "in-response-to": 1865, "sender-location":point("48.63,78.57"), "tags":{{"at&t", "wireless" }}, "message":" like at&t the wireless is awesome"}
-{"message-id": 327, "author-id": 46, "timestamp":datetime("2009-06-09T04:23:54"), "in-response-to": 1878, "sender-location":point("27.96,76.58"), "tags":{{"sprint", "voicemail-service" }}, "message":" hate sprint its voicemail-service is bad"}
-{"message-id": 328, "author-id": 46, "timestamp":datetime("2010-01-26T21:37:47"), "in-response-to": 2287, "sender-location":point("33.2,80.02"), "tags":{{"sprint", "speed" }}, "message":" can't stand sprint the speed is OMG:("}
-{"message-id": 329, "author-id": 46, "timestamp":datetime("2009-09-09T23:45:53"), "in-response-to": 1086, "sender-location":point("29.39,80.06"), "tags":{{"motorola", "3G" }}, "message":" like motorola its 3G is awesome:)"}
-{"message-id": 330, "author-id": 47, "timestamp":datetime("2008-11-05T16:48:55"), "in-response-to": 1350, "sender-location":point("32.44,93.0"), "tags":{{"at&t", "reachability" }}, "message":" can't stand at&t the reachability is terrible"}
-{"message-id": 331, "author-id": 47, "timestamp":datetime("2010-03-11T06:57:46"), "in-response-to": 1891, "sender-location":point("36.37,92.2"), "tags":{{"verizon", "signal" }}, "message":" love verizon its signal is amazing"}
-{"message-id": 332, "author-id": 47, "timestamp":datetime("2008-02-17T16:13:10"), "in-response-to": 2646, "sender-location":point("38.05,76.8"), "tags":{{"verizon", "customization" }}, "message":" love verizon the customization is awesome:)"}
-{"message-id": 333, "author-id": 47, "timestamp":datetime("2008-03-17T08:45:27"), "in-response-to": 2441, "sender-location":point("40.41,76.16"), "tags":{{"samsung", "shortcut-menu" }}, "message":" can't stand samsung its shortcut-menu is OMG:("}
-{"message-id": 334, "author-id": 48, "timestamp":datetime("2010-01-20T15:14:36"), "in-response-to": 1485, "sender-location":point("26.23,80.39"), "tags":{{"verizon", "customer-service" }}, "message":" hate verizon its customer-service is terrible:("}
-{"message-id": 335, "author-id": 48, "timestamp":datetime("2006-07-07T12:02:34"), "in-response-to": 1618, "sender-location":point("46.9,79.66"), "tags":{{"sprint", "voice-command" }}, "message":" love sprint the voice-command is awesome:)"}
-{"message-id": 336, "author-id": 48, "timestamp":datetime("2008-10-25T17:14:44"), "in-response-to": 884, "sender-location":point("27.1,89.67"), "tags":{{"iphone", "speed" }}, "message":" hate iphone its speed is OMG"}
-{"message-id": 337, "author-id": 48, "timestamp":datetime("2009-04-11T12:25:03"), "in-response-to": 2424, "sender-location":point("36.59,70.62"), "tags":{{"at&t", "platform" }}, "message":" love at&t the platform is amazing:)"}
-{"message-id": 338, "author-id": 49, "timestamp":datetime("2014-02-24T14:55:37"), "in-response-to": 1509, "sender-location":point("45.9,67.07"), "tags":{{"samsung", "voice-clarity" }}, "message":" dislike samsung the voice-clarity is OMG"}
-{"message-id": 339, "author-id": 49, "timestamp":datetime("2010-09-13T22:24:42"), "in-response-to": 2395, "sender-location":point("44.08,83.91"), "tags":{{"samsung", "platform" }}, "message":" can't stand samsung the platform is horrible"}
-{"message-id": 340, "author-id": 49, "timestamp":datetime("2013-06-10T18:29:56"), "in-response-to": 967, "sender-location":point("42.84,67.97"), "tags":{{"verizon", "voice-command" }}, "message":" like verizon the voice-command is awesome:)"}
-{"message-id": 341, "author-id": 49, "timestamp":datetime("2007-02-08T12:13:32"), "in-response-to": 2470, "sender-location":point("30.24,78.17"), "tags":{{"at&t", "shortcut-menu" }}, "message":" can't stand at&t its shortcut-menu is OMG"}
-{"message-id": 342, "author-id": 50, "timestamp":datetime("2010-08-23T04:47:50"), "in-response-to": 1723, "sender-location":point("45.88,96.45"), "tags":{{"verizon", "signal" }}, "message":" like verizon the signal is good:)"}
-{"message-id": 343, "author-id": 50, "timestamp":datetime("2006-07-06T06:13:11"), "in-response-to": 1498, "sender-location":point("27.71,75.88"), "tags":{{"t-mobile", "customization" }}, "message":" love t-mobile its customization is good"}
-{"message-id": 344, "author-id": 50, "timestamp":datetime("2010-11-07T20:16:21"), "in-response-to": 564, "sender-location":point("45.3,88.57"), "tags":{{"samsung", "platform" }}, "message":" like samsung the platform is amazing"}
-{"message-id": 345, "author-id": 50, "timestamp":datetime("2009-05-19T09:18:50"), "in-response-to": 2626, "sender-location":point("30.39,83.52"), "tags":{{"samsung", "customization" }}, "message":" love samsung the customization is good:)"}
-{"message-id": 346, "author-id": 51, "timestamp":datetime("2006-10-06T02:35:46"), "in-response-to": 982, "sender-location":point("37.51,69.92"), "tags":{{"verizon", "signal" }}, "message":" like verizon its signal is good"}
-{"message-id": 347, "author-id": 51, "timestamp":datetime("2007-01-03T18:18:00"), "in-response-to": 2044, "sender-location":point("34.68,92.57"), "tags":{{"t-mobile", "platform" }}, "message":" dislike t-mobile its platform is horrible"}
-{"message-id": 348, "author-id": 51, "timestamp":datetime("2013-06-01T18:06:02"), "in-response-to": 2501, "sender-location":point("39.63,87.88"), "tags":{{"at&t", "voice-command" }}, "message":" like at&t the voice-command is amazing"}
-{"message-id": 349, "author-id": 51, "timestamp":datetime("2007-06-02T02:36:06"), "in-response-to": 3188, "sender-location":point("31.14,88.34"), "tags":{{"verizon", "plan" }}, "message":" like verizon the plan is good:)"}
-{"message-id": 350, "author-id": 52, "timestamp":datetime("2005-09-13T04:06:17"), "in-response-to": 2004, "sender-location":point("42.42,74.06"), "tags":{{"iphone", "voice-clarity" }}, "message":" love iphone the voice-clarity is good:)"}
-{"message-id": 351, "author-id": 52, "timestamp":datetime("2012-02-16T09:35:08"), "in-response-to": 2605, "sender-location":point("46.31,97.96"), "tags":{{"samsung", "voice-command" }}, "message":" love samsung its voice-command is mind-blowing:)"}
-{"message-id": 352, "author-id": 52, "timestamp":datetime("2008-08-19T23:06:41"), "in-response-to": 2572, "sender-location":point("30.45,91.43"), "tags":{{"samsung", "wireless" }}, "message":" can't stand samsung the wireless is terrible"}
-{"message-id": 353, "author-id": 52, "timestamp":datetime("2013-01-12T07:03:22"), "in-response-to": 2553, "sender-location":point("24.95,84.37"), "tags":{{"motorola", "shortcut-menu" }}, "message":" love motorola the shortcut-menu is amazing:)"}
-{"message-id": 354, "author-id": 53, "timestamp":datetime("2011-05-08T10:28:05"), "in-response-to": 641, "sender-location":point("43.55,69.06"), "tags":{{"iphone", "customer-service" }}, "message":" can't stand iphone the customer-service is OMG:("}
-{"message-id": 355, "author-id": 53, "timestamp":datetime("2014-02-11T15:12:15"), "in-response-to": 2292, "sender-location":point("45.14,75.59"), "tags":{{"samsung", "voice-command" }}, "message":" love samsung its voice-command is good:)"}
-{"message-id": 356, "author-id": 53, "timestamp":datetime("2005-05-08T18:10:27"), "in-response-to": 3248, "sender-location":point("40.26,85.74"), "tags":{{"t-mobile", "wireless" }}, "message":" love t-mobile its wireless is good"}
-{"message-id": 357, "author-id": 54, "timestamp":datetime("2007-09-12T20:08:26"), "in-response-to": 1170, "sender-location":point("28.86,66.36"), "tags":{{"sprint", "3G" }}, "message":" hate sprint the 3G is OMG:("}
-{"message-id": 358, "author-id": 54, "timestamp":datetime("2013-06-28T18:49:17"), "in-response-to": 1406, "sender-location":point("37.76,91.78"), "tags":{{"motorola", "touch-screen" }}, "message":" can't stand motorola its touch-screen is horrible"}
-{"message-id": 359, "author-id": 54, "timestamp":datetime("2007-12-02T01:11:34"), "in-response-to": 2855, "sender-location":point("25.39,86.85"), "tags":{{"sprint", "voice-clarity" }}, "message":" hate sprint the voice-clarity is bad"}
-{"message-id": 360, "author-id": 55, "timestamp":datetime("2012-12-16T08:59:10"), "in-response-to": 333, "sender-location":point("46.05,75.65"), "tags":{{"samsung", "plan" }}, "message":" can't stand samsung the plan is OMG:("}
-{"message-id": 361, "author-id": 55, "timestamp":datetime("2007-05-11T00:12:37"), "in-response-to": 1608, "sender-location":point("48.76,82.84"), "tags":{{"motorola", "shortcut-menu" }}, "message":" dislike motorola the shortcut-menu is OMG:("}
-{"message-id": 362, "author-id": 55, "timestamp":datetime("2014-02-01T03:37:50"), "in-response-to": 1671, "sender-location":point("34.85,77.05"), "tags":{{"verizon", "plan" }}, "message":" hate verizon its plan is bad"}
-{"message-id": 363, "author-id": 56, "timestamp":datetime("2005-01-05T18:31:00"), "in-response-to": 2663, "sender-location":point("33.57,79.56"), "tags":{{"iphone", "voice-clarity" }}, "message":" love iphone the voice-clarity is good"}
-{"message-id": 364, "author-id": 56, "timestamp":datetime("2014-07-21T21:06:33"), "in-response-to": 2283, "sender-location":point("26.36,69.53"), "tags":{{"t-mobile", "voice-command" }}, "message":" love t-mobile the voice-command is awesome"}
-{"message-id": 365, "author-id": 56, "timestamp":datetime("2014-05-24T15:46:17"), "in-response-to": 2732, "sender-location":point("45.16,74.3"), "tags":{{"sprint", "plan" }}, "message":" like sprint the plan is awesome"}
-{"message-id": 366, "author-id": 57, "timestamp":datetime("2010-06-20T14:39:56"), "in-response-to": 744, "sender-location":point("32.44,77.49"), "tags":{{"verizon", "shortcut-menu" }}, "message":" hate verizon the shortcut-menu is OMG"}
-{"message-id": 367, "author-id": 57, "timestamp":datetime("2007-09-09T22:26:07"), "in-response-to": 1684, "sender-location":point("43.5,82.71"), "tags":{{"at&t", "network" }}, "message":" like at&t the network is mind-blowing"}
-{"message-id": 368, "author-id": 57, "timestamp":datetime("2010-09-14T08:02:51"), "in-response-to": 2933, "sender-location":point("31.79,85.31"), "tags":{{"iphone", "voice-clarity" }}, "message":" dislike iphone its voice-clarity is horrible"}
-{"message-id": 369, "author-id": 58, "timestamp":datetime("2006-10-27T20:24:46"), "in-response-to": 2833, "sender-location":point("38.41,96.75"), "tags":{{"t-mobile", "voice-command" }}, "message":" love t-mobile its voice-command is good"}
-{"message-id": 370, "author-id": 58, "timestamp":datetime("2013-12-24T04:59:13"), "in-response-to": 3223, "sender-location":point("29.59,83.73"), "tags":{{"samsung", "wireless" }}, "message":" love samsung the wireless is awesome"}
-{"message-id": 371, "author-id": 58, "timestamp":datetime("2006-04-01T17:45:24"), "in-response-to": 614, "sender-location":point("24.89,88.93"), "tags":{{"at&t", "network" }}, "message":" hate at&t its network is horrible"}
-{"message-id": 372, "author-id": 59, "timestamp":datetime("2011-03-28T11:47:28"), "in-response-to": 79, "sender-location":point("37.95,73.59"), "tags":{{"samsung", "voicemail-service" }}, "message":" like samsung its voicemail-service is amazing:)"}
-{"message-id": 373, "author-id": 59, "timestamp":datetime("2008-07-18T06:18:25"), "in-response-to": 1416, "sender-location":point("33.17,76.45"), "tags":{{"t-mobile", "plan" }}, "message":" can't stand t-mobile its plan is terrible"}
-{"message-id": 374, "author-id": 59, "timestamp":datetime("2011-07-20T08:22:57"), "in-response-to": 1697, "sender-location":point("30.41,97.76"), "tags":{{"verizon", "wireless" }}, "message":" love verizon its wireless is mind-blowing:)"}
-{"message-id": 375, "author-id": 60, "timestamp":datetime("2009-07-17T23:53:18"), "in-response-to": 2412, "sender-location":point("37.81,75.84"), "tags":{{"motorola", "customization" }}, "message":" love motorola its customization is mind-blowing"}
-{"message-id": 376, "author-id": 60, "timestamp":datetime("2011-01-02T18:06:53"), "in-response-to": 3101, "sender-location":point("42.75,70.73"), "tags":{{"at&t", "speed" }}, "message":" like at&t the speed is awesome:)"}
-{"message-id": 377, "author-id": 60, "timestamp":datetime("2007-07-09T22:54:10"), "in-response-to": 275, "sender-location":point("29.19,92.2"), "tags":{{"sprint", "signal" }}, "message":" like sprint the signal is amazing"}
-{"message-id": 378, "author-id": 61, "timestamp":datetime("2013-10-19T14:33:12"), "in-response-to": 729, "sender-location":point("48.88,86.95"), "tags":{{"iphone", "voice-clarity" }}, "message":" hate iphone its voice-clarity is bad"}
-{"message-id": 379, "author-id": 61, "timestamp":datetime("2006-07-18T12:55:31"), "in-response-to": 2413, "sender-location":point("44.07,66.54"), "tags":{{"at&t", "wireless" }}, "message":" love at&t the wireless is amazing"}
-{"message-id": 380, "author-id": 61, "timestamp":datetime("2011-02-21T04:30:03"), "in-response-to": 1698, "sender-location":point("35.49,85.47"), "tags":{{"at&t", "signal" }}, "message":" like at&t its signal is awesome:)"}
-{"message-id": 381, "author-id": 62, "timestamp":datetime("2014-08-12T21:09:49"), "in-response-to": 113, "sender-location":point("25.76,79.89"), "tags":{{"iphone", "customer-service" }}, "message":" love iphone its customer-service is good"}
-{"message-id": 382, "author-id": 62, "timestamp":datetime("2007-09-21T04:25:04"), "in-response-to": 1912, "sender-location":point("41.1,96.45"), "tags":{{"motorola", "network" }}, "message":" like motorola its network is mind-blowing"}
-{"message-id": 383, "author-id": 62, "timestamp":datetime("2013-07-23T06:17:22"), "in-response-to": 594, "sender-location":point("47.35,87.46"), "tags":{{"t-mobile", "network" }}, "message":" hate t-mobile its network is bad:("}
-{"message-id": 384, "author-id": 63, "timestamp":datetime("2009-02-14T22:44:44"), "in-response-to": 2873, "sender-location":point("34.12,69.71"), "tags":{{"sprint", "network" }}, "message":" hate sprint its network is horrible:("}
-{"message-id": 385, "author-id": 63, "timestamp":datetime("2005-04-13T10:43:11"), "in-response-to": 911, "sender-location":point("48.33,66.15"), "tags":{{"motorola", "voice-command" }}, "message":" dislike motorola its voice-command is horrible"}
-{"message-id": 386, "author-id": 63, "timestamp":datetime("2011-08-13T18:00:38"), "in-response-to": 728, "sender-location":point("47.27,89.05"), "tags":{{"samsung", "touch-screen" }}, "message":" love samsung its touch-screen is mind-blowing"}
-{"message-id": 387, "author-id": 64, "timestamp":datetime("2011-01-17T20:51:58"), "in-response-to": 1528, "sender-location":point("35.34,88.42"), "tags":{{"sprint", "touch-screen" }}, "message":" love sprint the touch-screen is mind-blowing"}
-{"message-id": 388, "author-id": 64, "timestamp":datetime("2014-07-07T20:28:54"), "in-response-to": 2867, "sender-location":point("28.91,90.33"), "tags":{{"verizon", "customization" }}, "message":" like verizon the customization is awesome"}
-{"message-id": 389, "author-id": 64, "timestamp":datetime("2012-05-24T08:03:00"), "in-response-to": 1087, "sender-location":point("40.7,71.05"), "tags":{{"verizon", "voice-command" }}, "message":" can't stand verizon the voice-command is bad"}
-{"message-id": 390, "author-id": 65, "timestamp":datetime("2006-11-21T12:52:56"), "in-response-to": 262, "sender-location":point("39.89,97.22"), "tags":{{"motorola", "speed" }}, "message":" dislike motorola the speed is terrible:("}
-{"message-id": 391, "author-id": 65, "timestamp":datetime("2012-01-10T21:53:14"), "in-response-to": 2183, "sender-location":point("46.8,70.58"), "tags":{{"iphone", "wireless" }}, "message":" hate iphone its wireless is bad"}
-{"message-id": 392, "author-id": 65, "timestamp":datetime("2009-09-28T18:54:32"), "in-response-to": 2900, "sender-location":point("44.24,73.78"), "tags":{{"verizon", "customer-service" }}, "message":" love verizon the customer-service is mind-blowing:)"}
-{"message-id": 393, "author-id": 66, "timestamp":datetime("2012-08-15T20:19:00"), "in-response-to": 1258, "sender-location":point("47.55,70.58"), "tags":{{"samsung", "customization" }}, "message":" hate samsung the customization is OMG:("}
-{"message-id": 394, "author-id": 66, "timestamp":datetime("2006-02-17T14:45:29"), "in-response-to": 1587, "sender-location":point("41.13,97.37"), "tags":{{"iphone", "voicemail-service" }}, "message":" can't stand iphone the voicemail-service is terrible:("}
-{"message-id": 395, "author-id": 66, "timestamp":datetime("2013-12-18T11:45:43"), "in-response-to": 2062, "sender-location":point("37.55,69.58"), "tags":{{"at&t", "wireless" }}, "message":" dislike at&t its wireless is terrible:("}
-{"message-id": 396, "author-id": 67, "timestamp":datetime("2008-05-20T22:30:47"), "in-response-to": 2887, "sender-location":point("41.06,97.81"), "tags":{{"sprint", "plan" }}, "message":" like sprint the plan is amazing:)"}
-{"message-id": 397, "author-id": 67, "timestamp":datetime("2012-07-21T00:41:46"), "in-response-to": 1075, "sender-location":point("44.22,73.11"), "tags":{{"motorola", "platform" }}, "message":" dislike motorola the platform is terrible:("}
-{"message-id": 398, "author-id": 67, "timestamp":datetime("2012-08-21T03:28:53"), "in-response-to": 62, "sender-location":point("39.0,84.62"), "tags":{{"iphone", "3G" }}, "message":" hate iphone its 3G is bad:("}
-{"message-id": 399, "author-id": 68, "timestamp":datetime("2006-05-21T20:09:27"), "in-response-to": 2226, "sender-location":point("43.97,73.07"), "tags":{{"iphone", "signal" }}, "message":" hate iphone the signal is horrible"}
-{"message-id": 400, "author-id": 68, "timestamp":datetime("2013-03-04T14:10:38"), "in-response-to": 2149, "sender-location":point("42.86,73.57"), "tags":{{"t-mobile", "customer-service" }}, "message":" like t-mobile the customer-service is awesome:)"}
-{"message-id": 401, "author-id": 68, "timestamp":datetime("2005-11-25T16:05:03"), "in-response-to": 480, "sender-location":point("48.82,70.47"), "tags":{{"samsung", "speed" }}, "message":" love samsung its speed is awesome"}
-{"message-id": 402, "author-id": 69, "timestamp":datetime("2009-07-06T04:22:21"), "in-response-to": 1659, "sender-location":point("28.91,80.1"), "tags":{{"at&t", "3G" }}, "message":" can't stand at&t the 3G is terrible"}
-{"message-id": 403, "author-id": 69, "timestamp":datetime("2014-04-01T05:15:32"), "in-response-to": 1019, "sender-location":point("25.89,87.18"), "tags":{{"samsung", "voice-clarity" }}, "message":" can't stand samsung the voice-clarity is OMG:("}
-{"message-id": 404, "author-id": 69, "timestamp":datetime("2005-09-27T21:53:16"), "in-response-to": 789, "sender-location":point("28.52,87.79"), "tags":{{"verizon", "voicemail-service" }}, "message":" like verizon the voicemail-service is good:)"}
-{"message-id": 405, "author-id": 70, "timestamp":datetime("2007-08-23T12:38:10"), "in-response-to": 1025, "sender-location":point("30.85,92.16"), "tags":{{"iphone", "touch-screen" }}, "message":" love iphone the touch-screen is amazing:)"}
-{"message-id": 406, "author-id": 70, "timestamp":datetime("2010-03-26T14:05:33"), "in-response-to": 1603, "sender-location":point("36.04,91.05"), "tags":{{"verizon", "voice-command" }}, "message":" love verizon the voice-command is good"}
-{"message-id": 407, "author-id": 70, "timestamp":datetime("2013-01-19T06:44:59"), "in-response-to": 605, "sender-location":point("38.85,95.46"), "tags":{{"samsung", "platform" }}, "message":" hate samsung its platform is terrible:("}
-{"message-id": 408, "author-id": 71, "timestamp":datetime("2014-04-27T22:07:33"), "in-response-to": 2515, "sender-location":point("47.85,69.68"), "tags":{{"motorola", "platform" }}, "message":" hate motorola the platform is bad"}
-{"message-id": 409, "author-id": 71, "timestamp":datetime("2014-03-01T10:25:35"), "in-response-to": 1276, "sender-location":point("29.73,93.1"), "tags":{{"verizon", "voice-clarity" }}, "message":" hate verizon the voice-clarity is terrible:("}
-{"message-id": 410, "author-id": 71, "timestamp":datetime("2013-08-28T08:02:42"), "in-response-to": 2982, "sender-location":point("26.71,93.52"), "tags":{{"verizon", "shortcut-menu" }}, "message":" love verizon the shortcut-menu is mind-blowing:)"}
-{"message-id": 411, "author-id": 72, "timestamp":datetime("2008-09-10T19:33:26"), "in-response-to": 1778, "sender-location":point("29.4,85.65"), "tags":{{"motorola", "touch-screen" }}, "message":" like motorola the touch-screen is awesome"}
-{"message-id": 412, "author-id": 72, "timestamp":datetime("2010-11-01T12:34:16"), "in-response-to": 429, "sender-location":point("24.58,89.72"), "tags":{{"verizon", "customization" }}, "message":" hate verizon its customization is terrible:("}
-{"message-id": 413, "author-id": 72, "timestamp":datetime("2013-03-23T04:55:43"), "in-response-to": 3107, "sender-location":point("26.22,85.47"), "tags":{{"at&t", "voicemail-service" }}, "message":" love at&t the voicemail-service is amazing:)"}
-{"message-id": 414, "author-id": 73, "timestamp":datetime("2010-05-27T18:38:31"), "in-response-to": 1689, "sender-location":point("48.01,66.11"), "tags":{{"samsung", "customer-service" }}, "message":" can't stand samsung its customer-service is bad"}
-{"message-id": 415, "author-id": 73, "timestamp":datetime("2013-02-03T01:49:42"), "in-response-to": 2581, "sender-location":point("41.13,75.83"), "tags":{{"t-mobile", "network" }}, "message":" dislike t-mobile its network is horrible"}
-{"message-id": 416, "author-id": 73, "timestamp":datetime("2011-03-04T11:13:01"), "in-response-to": 3015, "sender-location":point("36.19,77.87"), "tags":{{"at&t", "customer-service" }}, "message":" dislike at&t the customer-service is bad"}
-{"message-id": 417, "author-id": 74, "timestamp":datetime("2009-10-14T18:47:33"), "in-response-to": 1455, "sender-location":point("31.77,78.92"), "tags":{{"samsung", "customization" }}, "message":" can't stand samsung its customization is horrible"}
-{"message-id": 418, "author-id": 74, "timestamp":datetime("2010-08-14T01:23:47"), "in-response-to": 2910, "sender-location":point("34.94,82.67"), "tags":{{"sprint", "customer-service" }}, "message":" love sprint its customer-service is good:)"}
-{"message-id": 419, "author-id": 74, "timestamp":datetime("2006-11-05T09:53:26"), "in-response-to": 230, "sender-location":point("38.81,68.4"), "tags":{{"verizon", "speed" }}, "message":" hate verizon its speed is OMG:("}
-{"message-id": 420, "author-id": 75, "timestamp":datetime("2014-05-23T18:01:54"), "in-response-to": 1972, "sender-location":point("43.92,93.79"), "tags":{{"samsung", "wireless" }}, "message":" love samsung the wireless is awesome:)"}
-{"message-id": 421, "author-id": 75, "timestamp":datetime("2012-11-27T21:59:57"), "in-response-to": 2379, "sender-location":point("48.57,84.34"), "tags":{{"motorola", "plan" }}, "message":" hate motorola its plan is horrible:("}
-{"message-id": 422, "author-id": 75, "timestamp":datetime("2010-07-21T21:26:21"), "in-response-to": 1216, "sender-location":point("44.79,69.0"), "tags":{{"iphone", "signal" }}, "message":" love iphone the signal is mind-blowing"}
-{"message-id": 423, "author-id": 76, "timestamp":datetime("2011-04-02T06:45:14"), "in-response-to": 2519, "sender-location":point("28.84,85.41"), "tags":{{"motorola", "voicemail-service" }}, "message":" like motorola the voicemail-service is amazing"}
-{"message-id": 424, "author-id": 76, "timestamp":datetime("2014-08-28T10:59:02"), "in-response-to": 1285, "sender-location":point("30.14,69.54"), "tags":{{"t-mobile", "platform" }}, "message":" can't stand t-mobile the platform is horrible"}
-{"message-id": 425, "author-id": 76, "timestamp":datetime("2011-10-02T06:58:08"), "in-response-to": 381, "sender-location":point("41.73,81.29"), "tags":{{"motorola", "speed" }}, "message":" dislike motorola its speed is terrible"}
-{"message-id": 426, "author-id": 77, "timestamp":datetime("2010-05-22T03:17:41"), "in-response-to": 662, "sender-location":point("41.16,96.92"), "tags":{{"at&t", "network" }}, "message":" like at&t the network is amazing"}
-{"message-id": 427, "author-id": 77, "timestamp":datetime("2014-04-07T19:06:07"), "in-response-to": 1193, "sender-location":point("34.0,92.95"), "tags":{{"at&t", "voice-command" }}, "message":" can't stand at&t its voice-command is terrible:("}
-{"message-id": 428, "author-id": 77, "timestamp":datetime("2013-03-12T06:28:22"), "in-response-to": 1616, "sender-location":point("40.93,73.23"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" like t-mobile its shortcut-menu is awesome:)"}
-{"message-id": 429, "author-id": 78, "timestamp":datetime("2008-09-19T01:17:14"), "in-response-to": 2510, "sender-location":point("38.27,70.01"), "tags":{{"at&t", "customization" }}, "message":" like at&t its customization is amazing:)"}
-{"message-id": 430, "author-id": 78, "timestamp":datetime("2007-09-07T18:09:35"), "in-response-to": 1869, "sender-location":point("26.1,89.41"), "tags":{{"samsung", "shortcut-menu" }}, "message":" hate samsung its shortcut-menu is terrible"}
-{"message-id": 431, "author-id": 78, "timestamp":datetime("2010-02-17T02:17:04"), "in-response-to": 36, "sender-location":point("26.82,84.53"), "tags":{{"verizon", "speed" }}, "message":" dislike verizon its speed is horrible"}
-{"message-id": 432, "author-id": 79, "timestamp":datetime("2014-03-17T07:55:45"), "in-response-to": 2813, "sender-location":point("47.6,95.01"), "tags":{{"motorola", "customization" }}, "message":" hate motorola its customization is horrible"}
-{"message-id": 433, "author-id": 79, "timestamp":datetime("2013-12-25T22:39:36"), "in-response-to": 2349, "sender-location":point("35.89,87.93"), "tags":{{"samsung", "voicemail-service" }}, "message":" hate samsung the voicemail-service is bad:("}
-{"message-id": 434, "author-id": 79, "timestamp":datetime("2013-10-04T06:04:50"), "in-response-to": 1256, "sender-location":point("38.89,92.41"), "tags":{{"motorola", "customization" }}, "message":" like motorola its customization is mind-blowing:)"}
-{"message-id": 435, "author-id": 80, "timestamp":datetime("2007-10-19T00:56:04"), "in-response-to": 1143, "sender-location":point("28.55,84.93"), "tags":{{"iphone", "shortcut-menu" }}, "message":" dislike iphone its shortcut-menu is bad:("}
-{"message-id": 436, "author-id": 80, "timestamp":datetime("2014-07-26T20:44:16"), "in-response-to": 2724, "sender-location":point("46.87,97.34"), "tags":{{"motorola", "customization" }}, "message":" can't stand motorola its customization is OMG:("}
-{"message-id": 437, "author-id": 80, "timestamp":datetime("2009-03-15T11:06:22"), "in-response-to": 3143, "sender-location":point("34.59,80.46"), "tags":{{"sprint", "network" }}, "message":" can't stand sprint the network is OMG"}
-{"message-id": 438, "author-id": 81, "timestamp":datetime("2008-07-12T03:14:32"), "in-response-to": 2871, "sender-location":point("47.66,94.44"), "tags":{{"sprint", "platform" }}, "message":" dislike sprint its platform is terrible:("}
-{"message-id": 439, "author-id": 81, "timestamp":datetime("2005-05-18T17:56:04"), "in-response-to": 2718, "sender-location":point("44.28,94.91"), "tags":{{"motorola", "network" }}, "message":" love motorola its network is mind-blowing"}
-{"message-id": 440, "author-id": 81, "timestamp":datetime("2010-08-14T04:11:35"), "in-response-to": 1522, "sender-location":point("27.23,81.81"), "tags":{{"verizon", "customer-service" }}, "message":" can't stand verizon the customer-service is terrible:("}
-{"message-id": 441, "author-id": 82, "timestamp":datetime("2009-09-18T21:12:52"), "in-response-to": 541, "sender-location":point("43.82,86.11"), "tags":{{"motorola", "plan" }}, "message":" love motorola its plan is mind-blowing:)"}
-{"message-id": 442, "author-id": 82, "timestamp":datetime("2006-02-01T13:46:02"), "in-response-to": 3063, "sender-location":point("45.29,79.44"), "tags":{{"sprint", "speed" }}, "message":" love sprint the speed is mind-blowing:)"}
-{"message-id": 443, "author-id": 82, "timestamp":datetime("2007-05-18T03:07:58"), "in-response-to": 961, "sender-location":point("31.68,85.75"), "tags":{{"t-mobile", "speed" }}, "message":" dislike t-mobile the speed is OMG"}
-{"message-id": 444, "author-id": 83, "timestamp":datetime("2009-03-03T00:02:19"), "in-response-to": 2847, "sender-location":point("38.93,67.75"), "tags":{{"at&t", "network" }}, "message":" love at&t its network is good"}
-{"message-id": 445, "author-id": 83, "timestamp":datetime("2010-07-28T00:34:41"), "in-response-to": 2363, "sender-location":point("29.33,91.91"), "tags":{{"sprint", "signal" }}, "message":" like sprint the signal is good"}
-{"message-id": 446, "author-id": 83, "timestamp":datetime("2010-09-10T07:23:02"), "in-response-to": 2002, "sender-location":point("33.55,87.63"), "tags":{{"motorola", "voicemail-service" }}, "message":" like motorola its voicemail-service is amazing"}
-{"message-id": 447, "author-id": 84, "timestamp":datetime("2009-07-15T22:27:00"), "in-response-to": 2170, "sender-location":point("24.42,71.46"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" can't stand t-mobile its voice-clarity is OMG:("}
-{"message-id": 448, "author-id": 84, "timestamp":datetime("2011-05-02T07:19:06"), "in-response-to": 801, "sender-location":point("29.52,77.09"), "tags":{{"sprint", "speed" }}, "message":" love sprint the speed is good:)"}
-{"message-id": 449, "author-id": 84, "timestamp":datetime("2008-11-02T16:31:42"), "in-response-to": 2874, "sender-location":point("26.03,69.64"), "tags":{{"verizon", "voice-command" }}, "message":" like verizon its voice-command is good:)"}
-{"message-id": 450, "author-id": 85, "timestamp":datetime("2012-07-26T13:33:40"), "in-response-to": 2707, "sender-location":point("28.27,83.16"), "tags":{{"samsung", "signal" }}, "message":" like samsung its signal is awesome:)"}
-{"message-id": 451, "author-id": 85, "timestamp":datetime("2007-04-28T22:26:44"), "in-response-to": 175, "sender-location":point("28.47,72.65"), "tags":{{"t-mobile", "reachability" }}, "message":" love t-mobile its reachability is good:)"}
-{"message-id": 452, "author-id": 85, "timestamp":datetime("2005-03-12T07:42:48"), "in-response-to": 1416, "sender-location":point("33.9,94.39"), "tags":{{"sprint", "voicemail-service" }}, "message":" can't stand sprint the voicemail-service is horrible"}
-{"message-id": 453, "author-id": 86, "timestamp":datetime("2006-06-27T03:29:49"), "in-response-to": 2738, "sender-location":point("38.86,71.81"), "tags":{{"at&t", "3G" }}, "message":" can't stand at&t its 3G is bad:("}
-{"message-id": 454, "author-id": 86, "timestamp":datetime("2010-03-02T06:29:03"), "in-response-to": 852, "sender-location":point("34.88,72.45"), "tags":{{"t-mobile", "voice-command" }}, "message":" can't stand t-mobile its voice-command is bad"}
-{"message-id": 455, "author-id": 86, "timestamp":datetime("2006-01-01T17:53:26"), "in-response-to": 2636, "sender-location":point("31.42,66.55"), "tags":{{"at&t", "customization" }}, "message":" love at&t its customization is mind-blowing"}
-{"message-id": 456, "author-id": 87, "timestamp":datetime("2011-07-22T17:21:43"), "in-response-to": 726, "sender-location":point("38.67,72.48"), "tags":{{"sprint", "3G" }}, "message":" love sprint the 3G is good:)"}
-{"message-id": 457, "author-id": 87, "timestamp":datetime("2014-05-12T23:50:00"), "in-response-to": 1978, "sender-location":point("46.37,95.43"), "tags":{{"sprint", "3G" }}, "message":" can't stand sprint its 3G is OMG"}
-{"message-id": 458, "author-id": 87, "timestamp":datetime("2013-03-27T20:00:00"), "in-response-to": 2742, "sender-location":point("34.37,67.85"), "tags":{{"iphone", "voice-command" }}, "message":" can't stand iphone the voice-command is terrible"}
-{"message-id": 459, "author-id": 88, "timestamp":datetime("2010-03-20T19:16:26"), "in-response-to": 1344, "sender-location":point("35.35,81.5"), "tags":{{"samsung", "plan" }}, "message":" like samsung its plan is good:)"}
-{"message-id": 460, "author-id": 88, "timestamp":datetime("2005-04-10T05:27:01"), "in-response-to": 1774, "sender-location":point("41.24,82.6"), "tags":{{"iphone", "voice-command" }}, "message":" dislike iphone its voice-command is OMG:("}
-{"message-id": 461, "author-id": 88, "timestamp":datetime("2005-10-06T15:28:14"), "in-response-to": 106, "sender-location":point("28.98,69.71"), "tags":{{"samsung", "touch-screen" }}, "message":" like samsung its touch-screen is good"}
-{"message-id": 462, "author-id": 89, "timestamp":datetime("2006-06-10T13:10:16"), "in-response-to": 517, "sender-location":point("37.83,96.7"), "tags":{{"verizon", "reachability" }}, "message":" hate verizon the reachability is OMG"}
-{"message-id": 463, "author-id": 89, "timestamp":datetime("2012-01-01T22:48:43"), "in-response-to": 2352, "sender-location":point("31.9,80.18"), "tags":{{"iphone", "network" }}, "message":" love iphone the network is awesome:)"}
-{"message-id": 464, "author-id": 89, "timestamp":datetime("2008-12-22T20:52:45"), "in-response-to": 784, "sender-location":point("34.64,76.36"), "tags":{{"at&t", "platform" }}, "message":" like at&t its platform is awesome:)"}
-{"message-id": 465, "author-id": 90, "timestamp":datetime("2013-09-06T06:43:50"), "in-response-to": 1330, "sender-location":point("35.51,92.06"), "tags":{{"sprint", "plan" }}, "message":" dislike sprint its plan is horrible"}
-{"message-id": 466, "author-id": 90, "timestamp":datetime("2012-12-20T01:04:15"), "in-response-to": 2503, "sender-location":point("45.69,83.87"), "tags":{{"at&t", "network" }}, "message":" love at&t the network is good"}
-{"message-id": 467, "author-id": 90, "timestamp":datetime("2006-01-01T16:33:06"), "in-response-to": 2122, "sender-location":point("40.84,91.11"), "tags":{{"sprint", "reachability" }}, "message":" hate sprint the reachability is horrible"}
-{"message-id": 468, "author-id": 91, "timestamp":datetime("2010-11-19T15:52:22"), "in-response-to": 1088, "sender-location":point("24.85,79.68"), "tags":{{"samsung", "signal" }}, "message":" love samsung its signal is amazing"}
-{"message-id": 469, "author-id": 91, "timestamp":datetime("2010-02-05T23:29:11"), "in-response-to": 1667, "sender-location":point("24.55,81.94"), "tags":{{"t-mobile", "platform" }}, "message":" hate t-mobile the platform is horrible"}
-{"message-id": 470, "author-id": 91, "timestamp":datetime("2006-01-10T00:03:40"), "in-response-to": 162, "sender-location":point("44.66,68.74"), "tags":{{"samsung", "voice-clarity" }}, "message":" love samsung the voice-clarity is amazing"}
-{"message-id": 471, "author-id": 92, "timestamp":datetime("2012-07-04T11:53:37"), "in-response-to": 1420, "sender-location":point("48.26,87.94"), "tags":{{"at&t", "voice-clarity" }}, "message":" like at&t the voice-clarity is good:)"}
-{"message-id": 472, "author-id": 92, "timestamp":datetime("2009-01-06T20:47:37"), "in-response-to": 1379, "sender-location":point("25.18,80.81"), "tags":{{"t-mobile", "customization" }}, "message":" love t-mobile its customization is mind-blowing"}
-{"message-id": 473, "author-id": 92, "timestamp":datetime("2006-07-08T13:50:32"), "in-response-to": 2993, "sender-location":point("31.73,81.38"), "tags":{{"samsung", "voice-clarity" }}, "message":" can't stand samsung its voice-clarity is horrible"}
-{"message-id": 474, "author-id": 93, "timestamp":datetime("2013-10-18T15:54:29"), "in-response-to": 1319, "sender-location":point("35.53,95.18"), "tags":{{"sprint", "shortcut-menu" }}, "message":" can't stand sprint its shortcut-menu is horrible"}
-{"message-id": 475, "author-id": 93, "timestamp":datetime("2011-02-01T21:38:26"), "in-response-to": 1914, "sender-location":point("37.75,82.96"), "tags":{{"at&t", "speed" }}, "message":" hate at&t the speed is horrible:("}
-{"message-id": 476, "author-id": 94, "timestamp":datetime("2011-02-23T01:46:42"), "in-response-to": 48, "sender-location":point("28.26,88.25"), "tags":{{"at&t", "speed" }}, "message":" hate at&t the speed is bad:("}
-{"message-id": 477, "author-id": 94, "timestamp":datetime("2006-12-23T02:06:14"), "in-response-to": 2399, "sender-location":point("38.71,86.7"), "tags":{{"t-mobile", "3G" }}, "message":" can't stand t-mobile its 3G is bad:("}
-{"message-id": 478, "author-id": 95, "timestamp":datetime("2014-02-20T20:04:09"), "in-response-to": 3239, "sender-location":point("26.35,69.9"), "tags":{{"sprint", "customization" }}, "message":" dislike sprint its customization is OMG:("}
-{"message-id": 479, "author-id": 95, "timestamp":datetime("2005-09-05T20:48:15"), "in-response-to": 835, "sender-location":point("35.89,69.72"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" dislike t-mobile the voice-clarity is horrible"}
-{"message-id": 480, "author-id": 96, "timestamp":datetime("2007-10-22T12:09:52"), "in-response-to": 1859, "sender-location":point("42.67,68.97"), "tags":{{"sprint", "touch-screen" }}, "message":" love sprint its touch-screen is amazing:)"}
-{"message-id": 481, "author-id": 96, "timestamp":datetime("2007-07-20T17:44:54"), "in-response-to": 2950, "sender-location":point("48.04,93.9"), "tags":{{"motorola", "customization" }}, "message":" love motorola its customization is amazing:)"}
-{"message-id": 482, "author-id": 97, "timestamp":datetime("2007-09-21T19:26:22"), "in-response-to": 2812, "sender-location":point("32.59,68.19"), "tags":{{"at&t", "customer-service" }}, "message":" love at&t the customer-service is mind-blowing"}
-{"message-id": 483, "author-id": 97, "timestamp":datetime("2012-01-17T23:13:12"), "in-response-to": 166, "sender-location":point("38.39,87.2"), "tags":{{"verizon", "signal" }}, "message":" hate verizon the signal is horrible:("}
-{"message-id": 484, "author-id": 98, "timestamp":datetime("2010-07-19T06:48:41"), "in-response-to": 2411, "sender-location":point("36.8,76.33"), "tags":{{"at&t", "plan" }}, "message":" hate at&t the plan is OMG"}
-{"message-id": 485, "author-id": 98, "timestamp":datetime("2007-01-12T08:20:11"), "in-response-to": 1059, "sender-location":point("41.18,84.98"), "tags":{{"samsung", "wireless" }}, "message":" can't stand samsung the wireless is horrible:("}
-{"message-id": 486, "author-id": 99, "timestamp":datetime("2007-07-04T13:04:04"), "in-response-to": 2715, "sender-location":point("26.08,93.16"), "tags":{{"t-mobile", "3G" }}, "message":" dislike t-mobile the 3G is OMG"}
-{"message-id": 487, "author-id": 99, "timestamp":datetime("2011-08-10T23:47:28"), "in-response-to": 3071, "sender-location":point("33.83,81.48"), "tags":{{"motorola", "platform" }}, "message":" dislike motorola the platform is OMG:("}
-{"message-id": 488, "author-id": 100, "timestamp":datetime("2006-05-22T06:43:22"), "in-response-to": 2294, "sender-location":point("34.22,97.77"), "tags":{{"t-mobile", "touch-screen" }}, "message":" love t-mobile the touch-screen is mind-blowing"}
-{"message-id": 489, "author-id": 100, "timestamp":datetime("2010-04-18T01:14:55"), "in-response-to": 2500, "sender-location":point("37.87,71.04"), "tags":{{"iphone", "plan" }}, "message":" love iphone the plan is awesome"}
-{"message-id": 490, "author-id": 101, "timestamp":datetime("2011-12-07T08:22:04"), "in-response-to": 82, "sender-location":point("29.84,74.52"), "tags":{{"motorola", "touch-screen" }}, "message":" like motorola the touch-screen is amazing:)"}
-{"message-id": 491, "author-id": 101, "timestamp":datetime("2012-05-16T19:31:15"), "in-response-to": 2498, "sender-location":point("43.36,94.0"), "tags":{{"at&t", "touch-screen" }}, "message":" like at&t its touch-screen is good:)"}
-{"message-id": 492, "author-id": 102, "timestamp":datetime("2012-05-12T17:29:27"), "in-response-to": 201, "sender-location":point("26.49,78.11"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" dislike t-mobile the shortcut-menu is OMG"}
-{"message-id": 493, "author-id": 102, "timestamp":datetime("2014-07-17T22:53:36"), "in-response-to": 2696, "sender-location":point("39.03,79.43"), "tags":{{"iphone", "voice-clarity" }}, "message":" like iphone its voice-clarity is amazing:)"}
-{"message-id": 494, "author-id": 103, "timestamp":datetime("2007-06-03T14:37:15"), "in-response-to": 2996, "sender-location":point("40.46,81.7"), "tags":{{"iphone", "3G" }}, "message":" love iphone its 3G is mind-blowing:)"}
-{"message-id": 495, "author-id": 103, "timestamp":datetime("2006-02-10T09:09:18"), "in-response-to": 2700, "sender-location":point("25.01,88.73"), "tags":{{"verizon", "network" }}, "message":" like verizon its network is awesome"}
-{"message-id": 496, "author-id": 104, "timestamp":datetime("2012-06-12T09:02:06"), "in-response-to": 3249, "sender-location":point("24.02,69.02"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" like t-mobile its voice-clarity is mind-blowing:)"}
-{"message-id": 497, "author-id": 104, "timestamp":datetime("2008-12-24T07:26:30"), "in-response-to": 558, "sender-location":point("24.03,73.41"), "tags":{{"verizon", "plan" }}, "message":" love verizon its plan is good:)"}
-{"message-id": 498, "author-id": 105, "timestamp":datetime("2012-03-12T00:44:22"), "in-response-to": 1863, "sender-location":point("28.04,91.15"), "tags":{{"motorola", "3G" }}, "message":" love motorola the 3G is awesome:)"}
-{"message-id": 499, "author-id": 105, "timestamp":datetime("2014-02-10T23:47:09"), "in-response-to": 1179, "sender-location":point("27.95,91.12"), "tags":{{"verizon", "customization" }}, "message":" hate verizon the customization is bad"}
-{"message-id": 500, "author-id": 106, "timestamp":datetime("2011-01-21T17:01:19"), "in-response-to": 715, "sender-location":point("25.3,83.44"), "tags":{{"verizon", "voice-command" }}, "message":" dislike verizon its voice-command is bad:("}
-{"message-id": 501, "author-id": 106, "timestamp":datetime("2014-04-18T03:46:11"), "in-response-to": 1225, "sender-location":point("35.9,93.44"), "tags":{{"iphone", "reachability" }}, "message":" love iphone its reachability is awesome"}
-{"message-id": 502, "author-id": 107, "timestamp":datetime("2005-09-07T14:10:28"), "in-response-to": 531, "sender-location":point("37.01,91.15"), "tags":{{"verizon", "network" }}, "message":" love verizon the network is awesome:)"}
-{"message-id": 503, "author-id": 107, "timestamp":datetime("2010-04-17T12:42:04"), "in-response-to": 1757, "sender-location":point("29.54,77.36"), "tags":{{"iphone", "network" }}, "message":" love iphone its network is awesome"}
-{"message-id": 504, "author-id": 108, "timestamp":datetime("2006-04-20T09:48:01"), "in-response-to": 1098, "sender-location":point("32.81,66.19"), "tags":{{"verizon", "plan" }}, "message":" dislike verizon its plan is horrible"}
-{"message-id": 505, "author-id": 108, "timestamp":datetime("2011-07-18T00:06:17"), "in-response-to": 337, "sender-location":point("25.43,96.08"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" can't stand t-mobile its voicemail-service is OMG"}
-{"message-id": 506, "author-id": 109, "timestamp":datetime("2011-01-26T22:59:08"), "in-response-to": 3079, "sender-location":point("44.39,79.03"), "tags":{{"t-mobile", "touch-screen" }}, "message":" love t-mobile the touch-screen is good:)"}
-{"message-id": 507, "author-id": 109, "timestamp":datetime("2012-02-28T22:36:11"), "in-response-to": 22, "sender-location":point("36.91,73.99"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" can't stand t-mobile its shortcut-menu is bad:("}
-{"message-id": 508, "author-id": 110, "timestamp":datetime("2006-11-10T20:25:29"), "in-response-to": 1758, "sender-location":point("29.38,82.02"), "tags":{{"sprint", "signal" }}, "message":" can't stand sprint the signal is OMG:("}
-{"message-id": 509, "author-id": 110, "timestamp":datetime("2009-02-11T17:19:22"), "in-response-to": 1232, "sender-location":point("25.88,66.83"), "tags":{{"motorola", "3G" }}, "message":" like motorola its 3G is mind-blowing:)"}
-{"message-id": 510, "author-id": 111, "timestamp":datetime("2013-06-10T14:14:12"), "in-response-to": 2544, "sender-location":point("36.85,92.15"), "tags":{{"motorola", "voice-clarity" }}, "message":" can't stand motorola its voice-clarity is OMG:("}
-{"message-id": 511, "author-id": 111, "timestamp":datetime("2009-09-18T23:09:58"), "in-response-to": 345, "sender-location":point("40.74,74.8"), "tags":{{"at&t", "reachability" }}, "message":" love at&t its reachability is awesome:)"}
-{"message-id": 512, "author-id": 112, "timestamp":datetime("2008-04-03T03:58:44"), "in-response-to": 1279, "sender-location":point("27.25,72.12"), "tags":{{"iphone", "wireless" }}, "message":" can't stand iphone its wireless is OMG"}
-{"message-id": 513, "author-id": 112, "timestamp":datetime("2005-10-04T02:20:01"), "in-response-to": 1204, "sender-location":point("42.08,85.42"), "tags":{{"at&t", "signal" }}, "message":" hate at&t the signal is horrible"}
-{"message-id": 514, "author-id": 113, "timestamp":datetime("2006-08-23T23:42:14"), "in-response-to": 3225, "sender-location":point("30.77,94.0"), "tags":{{"samsung", "voice-clarity" }}, "message":" love samsung the voice-clarity is good:)"}
-{"message-id": 515, "author-id": 113, "timestamp":datetime("2005-05-18T09:17:14"), "in-response-to": 908, "sender-location":point("35.89,91.22"), "tags":{{"iphone", "voice-clarity" }}, "message":" dislike iphone its voice-clarity is horrible:("}
-{"message-id": 516, "author-id": 114, "timestamp":datetime("2012-04-15T13:15:26"), "in-response-to": 1035, "sender-location":point("42.19,87.34"), "tags":{{"motorola", "speed" }}, "message":" like motorola its speed is amazing"}
-{"message-id": 517, "author-id": 114, "timestamp":datetime("2009-03-18T10:03:43"), "in-response-to": 2649, "sender-location":point("47.44,67.1"), "tags":{{"iphone", "plan" }}, "message":" like iphone its plan is good"}
-{"message-id": 518, "author-id": 115, "timestamp":datetime("2013-01-14T07:09:54"), "in-response-to": 537, "sender-location":point("27.82,87.62"), "tags":{{"t-mobile", "signal" }}, "message":" like t-mobile its signal is good"}
-{"message-id": 519, "author-id": 115, "timestamp":datetime("2006-02-26T10:59:51"), "in-response-to": 106, "sender-location":point("37.54,79.79"), "tags":{{"t-mobile", "customer-service" }}, "message":" like t-mobile its customer-service is awesome:)"}
-{"message-id": 520, "author-id": 116, "timestamp":datetime("2010-06-18T05:03:58"), "in-response-to": 1459, "sender-location":point("27.07,77.73"), "tags":{{"t-mobile", "voice-command" }}, "message":" like t-mobile the voice-command is good"}
-{"message-id": 521, "author-id": 116, "timestamp":datetime("2011-10-27T21:25:40"), "in-response-to": 643, "sender-location":point("45.17,74.19"), "tags":{{"sprint", "shortcut-menu" }}, "message":" hate sprint the shortcut-menu is terrible:("}
-{"message-id": 522, "author-id": 117, "timestamp":datetime("2012-10-24T11:23:26"), "in-response-to": 1157, "sender-location":point("47.66,75.63"), "tags":{{"sprint", "signal" }}, "message":" dislike sprint its signal is bad:("}
-{"message-id": 523, "author-id": 117, "timestamp":datetime("2010-11-04T05:55:47"), "in-response-to": 3119, "sender-location":point("35.44,93.4"), "tags":{{"motorola", "wireless" }}, "message":" love motorola the wireless is mind-blowing"}
-{"message-id": 524, "author-id": 118, "timestamp":datetime("2012-04-04T07:45:24"), "in-response-to": 1432, "sender-location":point("43.6,89.81"), "tags":{{"samsung", "speed" }}, "message":" dislike samsung its speed is terrible"}
-{"message-id": 525, "author-id": 118, "timestamp":datetime("2014-05-11T20:07:02"), "in-response-to": 470, "sender-location":point("45.99,82.89"), "tags":{{"verizon", "customer-service" }}, "message":" can't stand verizon the customer-service is terrible"}
-{"message-id": 526, "author-id": 119, "timestamp":datetime("2013-10-03T23:13:59"), "in-response-to": 2298, "sender-location":point("45.52,74.44"), "tags":{{"motorola", "shortcut-menu" }}, "message":" can't stand motorola the shortcut-menu is bad"}
-{"message-id": 527, "author-id": 119, "timestamp":datetime("2006-03-25T22:07:14"), "in-response-to": 1529, "sender-location":point("42.61,71.9"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" dislike t-mobile its shortcut-menu is terrible"}
-{"message-id": 528, "author-id": 120, "timestamp":datetime("2008-04-08T17:24:00"), "in-response-to": 1186, "sender-location":point("39.56,79.22"), "tags":{{"t-mobile", "reachability" }}, "message":" love t-mobile its reachability is mind-blowing"}
-{"message-id": 529, "author-id": 120, "timestamp":datetime("2010-03-23T20:39:45"), "in-response-to": 922, "sender-location":point("30.54,91.99"), "tags":{{"samsung", "platform" }}, "message":" love samsung the platform is awesome"}
-{"message-id": 530, "author-id": 121, "timestamp":datetime("2011-03-15T10:29:12"), "in-response-to": 674, "sender-location":point("34.7,85.58"), "tags":{{"verizon", "touch-screen" }}, "message":" dislike verizon its touch-screen is horrible:("}
-{"message-id": 531, "author-id": 121, "timestamp":datetime("2009-10-11T17:44:00"), "in-response-to": 159, "sender-location":point("45.45,80.75"), "tags":{{"verizon", "touch-screen" }}, "message":" hate verizon its touch-screen is OMG:("}
-{"message-id": 532, "author-id": 122, "timestamp":datetime("2014-04-14T01:13:49"), "in-response-to": 2217, "sender-location":point("30.45,87.54"), "tags":{{"iphone", "wireless" }}, "message":" like iphone the wireless is good:)"}
-{"message-id": 533, "author-id": 122, "timestamp":datetime("2010-11-19T23:00:01"), "in-response-to": 2510, "sender-location":point("33.56,74.54"), "tags":{{"motorola", "plan" }}, "message":" dislike motorola the plan is terrible"}
-{"message-id": 534, "author-id": 123, "timestamp":datetime("2013-02-26T19:10:01"), "in-response-to": 290, "sender-location":point("39.07,94.22"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" love t-mobile its shortcut-menu is mind-blowing:)"}
-{"message-id": 535, "author-id": 123, "timestamp":datetime("2009-09-16T16:09:24"), "in-response-to": 891, "sender-location":point("48.04,94.2"), "tags":{{"samsung", "shortcut-menu" }}, "message":" can't stand samsung the shortcut-menu is OMG:("}
-{"message-id": 536, "author-id": 124, "timestamp":datetime("2014-05-27T08:38:57"), "in-response-to": 2984, "sender-location":point("38.78,82.91"), "tags":{{"verizon", "wireless" }}, "message":" like verizon the wireless is amazing"}
-{"message-id": 537, "author-id": 124, "timestamp":datetime("2014-07-02T18:24:43"), "in-response-to": 961, "sender-location":point("46.76,67.89"), "tags":{{"verizon", "voicemail-service" }}, "message":" dislike verizon its voicemail-service is OMG"}
-{"message-id": 538, "author-id": 125, "timestamp":datetime("2010-04-18T18:08:44"), "in-response-to": 2868, "sender-location":point("45.37,94.67"), "tags":{{"samsung", "platform" }}, "message":" like samsung the platform is good"}
-{"message-id": 539, "author-id": 125, "timestamp":datetime("2012-11-28T23:02:35"), "in-response-to": 830, "sender-location":point("31.67,74.93"), "tags":{{"at&t", "customization" }}, "message":" like at&t its customization is good:)"}
-{"message-id": 540, "author-id": 126, "timestamp":datetime("2013-12-08T18:15:17"), "in-response-to": 2941, "sender-location":point("43.61,78.53"), "tags":{{"sprint", "voice-clarity" }}, "message":" love sprint its voice-clarity is mind-blowing"}
-{"message-id": 541, "author-id": 126, "timestamp":datetime("2008-02-28T04:43:38"), "in-response-to": 2588, "sender-location":point("47.07,66.62"), "tags":{{"at&t", "voice-clarity" }}, "message":" dislike at&t its voice-clarity is horrible:("}
-{"message-id": 542, "author-id": 127, "timestamp":datetime("2012-11-23T03:34:33"), "in-response-to": 2243, "sender-location":point("35.7,76.55"), "tags":{{"verizon", "reachability" }}, "message":" can't stand verizon the reachability is OMG:("}
-{"message-id": 543, "author-id": 127, "timestamp":datetime("2011-04-25T05:54:50"), "in-response-to": 2234, "sender-location":point("25.06,79.03"), "tags":{{"t-mobile", "network" }}, "message":" love t-mobile its network is good:)"}
-{"message-id": 544, "author-id": 128, "timestamp":datetime("2011-03-19T00:02:32"), "in-response-to": 1747, "sender-location":point("25.42,88.77"), "tags":{{"motorola", "customization" }}, "message":" like motorola the customization is mind-blowing"}
-{"message-id": 545, "author-id": 128, "timestamp":datetime("2013-06-19T07:05:56"), "in-response-to": 1121, "sender-location":point("42.46,90.21"), "tags":{{"sprint", "signal" }}, "message":" love sprint the signal is mind-blowing:)"}
-{"message-id": 546, "author-id": 129, "timestamp":datetime("2006-11-21T21:00:22"), "in-response-to": 2727, "sender-location":point("39.22,94.96"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" love t-mobile the voicemail-service is good:)"}
-{"message-id": 547, "author-id": 129, "timestamp":datetime("2008-07-09T00:06:24"), "in-response-to": 1628, "sender-location":point("47.34,83.9"), "tags":{{"motorola", "voice-clarity" }}, "message":" like motorola the voice-clarity is amazing:)"}
-{"message-id": 548, "author-id": 130, "timestamp":datetime("2005-06-10T04:16:11"), "in-response-to": 2273, "sender-location":point("34.82,96.22"), "tags":{{"sprint", "voice-command" }}, "message":" like sprint its voice-command is mind-blowing"}
-{"message-id": 549, "author-id": 130, "timestamp":datetime("2006-11-10T13:39:34"), "in-response-to": 2781, "sender-location":point("40.21,86.88"), "tags":{{"samsung", "network" }}, "message":" dislike samsung its network is OMG"}
-{"message-id": 550, "author-id": 131, "timestamp":datetime("2006-10-08T03:04:54"), "in-response-to": 2094, "sender-location":point("38.43,89.3"), "tags":{{"iphone", "wireless" }}, "message":" hate iphone its wireless is horrible:("}
-{"message-id": 551, "author-id": 131, "timestamp":datetime("2011-08-21T21:17:41"), "in-response-to": 2451, "sender-location":point("45.84,81.12"), "tags":{{"sprint", "voicemail-service" }}, "message":" hate sprint the voicemail-service is OMG"}
-{"message-id": 552, "author-id": 132, "timestamp":datetime("2014-08-21T00:51:51"), "in-response-to": 332, "sender-location":point("37.47,80.87"), "tags":{{"sprint", "shortcut-menu" }}, "message":" hate sprint the shortcut-menu is OMG:("}
-{"message-id": 553, "author-id": 132, "timestamp":datetime("2010-01-15T01:40:18"), "in-response-to": 573, "sender-location":point("43.44,85.77"), "tags":{{"verizon", "customer-service" }}, "message":" like verizon the customer-service is good:)"}
-{"message-id": 554, "author-id": 133, "timestamp":datetime("2013-01-07T05:58:27"), "in-response-to": 969, "sender-location":point("47.47,69.31"), "tags":{{"verizon", "customization" }}, "message":" like verizon its customization is good"}
-{"message-id": 555, "author-id": 133, "timestamp":datetime("2009-07-26T02:53:51"), "in-response-to": 2593, "sender-location":point("39.27,72.79"), "tags":{{"motorola", "voicemail-service" }}, "message":" hate motorola the voicemail-service is OMG:("}
-{"message-id": 556, "author-id": 134, "timestamp":datetime("2011-03-05T19:24:06"), "in-response-to": 2202, "sender-location":point("30.18,80.25"), "tags":{{"verizon", "3G" }}, "message":" like verizon the 3G is mind-blowing"}
-{"message-id": 557, "author-id": 134, "timestamp":datetime("2012-04-14T01:47:58"), "in-response-to": 996, "sender-location":point("28.41,69.5"), "tags":{{"motorola", "voicemail-service" }}, "message":" like motorola the voicemail-service is amazing"}
-{"message-id": 558, "author-id": 135, "timestamp":datetime("2011-01-20T22:32:52"), "in-response-to": 2955, "sender-location":point("43.72,79.49"), "tags":{{"t-mobile", "customer-service" }}, "message":" hate t-mobile its customer-service is OMG:("}
-{"message-id": 559, "author-id": 135, "timestamp":datetime("2011-05-04T17:48:02"), "in-response-to": 2982, "sender-location":point("25.57,91.27"), "tags":{{"samsung", "voicemail-service" }}, "message":" love samsung its voicemail-service is amazing:)"}
-{"message-id": 560, "author-id": 136, "timestamp":datetime("2005-10-01T08:38:24"), "in-response-to": 2883, "sender-location":point("36.31,77.01"), "tags":{{"t-mobile", "platform" }}, "message":" hate t-mobile its platform is horrible"}
-{"message-id": 561, "author-id": 136, "timestamp":datetime("2009-05-27T05:29:48"), "in-response-to": 2512, "sender-location":point("27.07,91.11"), "tags":{{"sprint", "voicemail-service" }}, "message":" love sprint the voicemail-service is awesome:)"}
-{"message-id": 562, "author-id": 137, "timestamp":datetime("2007-10-05T02:01:30"), "in-response-to": 1283, "sender-location":point("30.94,78.59"), "tags":{{"at&t", "signal" }}, "message":" hate at&t the signal is OMG"}
-{"message-id": 563, "author-id": 137, "timestamp":datetime("2009-02-01T03:13:45"), "in-response-to": 1501, "sender-location":point("36.49,90.4"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" love t-mobile its voicemail-service is good"}
-{"message-id": 564, "author-id": 138, "timestamp":datetime("2014-08-18T05:33:13"), "in-response-to": 2471, "sender-location":point("46.9,80.35"), "tags":{{"sprint", "customer-service" }}, "message":" like sprint the customer-service is good:)"}
-{"message-id": 565, "author-id": 138, "timestamp":datetime("2012-03-09T07:51:50"), "in-response-to": 2666, "sender-location":point("32.88,68.13"), "tags":{{"verizon", "speed" }}, "message":" like verizon the speed is awesome:)"}
-{"message-id": 566, "author-id": 139, "timestamp":datetime("2012-08-08T02:49:56"), "in-response-to": 2842, "sender-location":point("42.67,96.55"), "tags":{{"iphone", "platform" }}, "message":" like iphone the platform is awesome:)"}
-{"message-id": 567, "author-id": 139, "timestamp":datetime("2013-12-15T06:31:56"), "in-response-to": 2327, "sender-location":point("36.73,94.71"), "tags":{{"motorola", "plan" }}, "message":" can't stand motorola its plan is bad"}
-{"message-id": 568, "author-id": 140, "timestamp":datetime("2009-02-13T12:09:33"), "in-response-to": 646, "sender-location":point("37.93,72.47"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" love t-mobile the shortcut-menu is good"}
-{"message-id": 569, "author-id": 140, "timestamp":datetime("2008-07-27T06:29:37"), "in-response-to": 836, "sender-location":point("44.15,68.64"), "tags":{{"verizon", "platform" }}, "message":" can't stand verizon its platform is OMG:("}
-{"message-id": 570, "author-id": 141, "timestamp":datetime("2013-05-13T23:18:03"), "in-response-to": 2803, "sender-location":point("39.4,94.6"), "tags":{{"verizon", "voicemail-service" }}, "message":" can't stand verizon the voicemail-service is terrible:("}
-{"message-id": 571, "author-id": 141, "timestamp":datetime("2014-03-09T12:48:37"), "in-response-to": 795, "sender-location":point("34.44,84.65"), "tags":{{"verizon", "platform" }}, "message":" can't stand verizon the platform is terrible"}
-{"message-id": 572, "author-id": 142, "timestamp":datetime("2007-12-12T01:50:08"), "in-response-to": 1287, "sender-location":point("37.74,66.02"), "tags":{{"verizon", "voice-command" }}, "message":" like verizon the voice-command is good:)"}
-{"message-id": 573, "author-id": 142, "timestamp":datetime("2006-12-08T15:15:23"), "in-response-to": 2393, "sender-location":point("37.85,97.57"), "tags":{{"verizon", "voice-clarity" }}, "message":" dislike verizon its voice-clarity is bad"}
-{"message-id": 574, "author-id": 143, "timestamp":datetime("2008-02-25T01:14:29"), "in-response-to": 343, "sender-location":point("30.18,80.77"), "tags":{{"iphone", "3G" }}, "message":" hate iphone the 3G is OMG"}
-{"message-id": 575, "author-id": 143, "timestamp":datetime("2011-06-09T01:36:23"), "in-response-to": 3045, "sender-location":point("27.81,92.2"), "tags":{{"iphone", "network" }}, "message":" like iphone its network is amazing:)"}
-{"message-id": 576, "author-id": 144, "timestamp":datetime("2006-01-06T16:44:53"), "in-response-to": 1990, "sender-location":point("26.24,72.25"), "tags":{{"at&t", "voice-command" }}, "message":" can't stand at&t the voice-command is bad:("}
-{"message-id": 577, "author-id": 144, "timestamp":datetime("2014-07-05T10:30:22"), "in-response-to": 1877, "sender-location":point("37.26,66.55"), "tags":{{"at&t", "customization" }}, "message":" can't stand at&t the customization is horrible:("}
-{"message-id": 578, "author-id": 145, "timestamp":datetime("2008-07-03T10:31:20"), "in-response-to": 2312, "sender-location":point("34.3,85.15"), "tags":{{"motorola", "signal" }}, "message":" can't stand motorola the signal is horrible"}
-{"message-id": 579, "author-id": 145, "timestamp":datetime("2011-06-19T00:00:57"), "in-response-to": 1589, "sender-location":point("41.77,92.73"), "tags":{{"iphone", "customization" }}, "message":" love iphone the customization is awesome:)"}
-{"message-id": 580, "author-id": 146, "timestamp":datetime("2005-08-17T09:12:14"), "in-response-to": 3114, "sender-location":point("44.54,75.96"), "tags":{{"iphone", "touch-screen" }}, "message":" can't stand iphone the touch-screen is terrible"}
-{"message-id": 581, "author-id": 146, "timestamp":datetime("2014-03-15T06:24:47"), "in-response-to": 2050, "sender-location":point("42.85,70.97"), "tags":{{"samsung", "plan" }}, "message":" can't stand samsung the plan is OMG"}
-{"message-id": 582, "author-id": 147, "timestamp":datetime("2005-01-27T20:09:18"), "in-response-to": 1904, "sender-location":point("25.7,76.17"), "tags":{{"at&t", "reachability" }}, "message":" love at&t the reachability is amazing:)"}
-{"message-id": 583, "author-id": 147, "timestamp":datetime("2013-05-02T19:33:40"), "in-response-to": 2794, "sender-location":point("32.52,85.36"), "tags":{{"at&t", "shortcut-menu" }}, "message":" can't stand at&t the shortcut-menu is horrible:("}
-{"message-id": 584, "author-id": 148, "timestamp":datetime("2012-02-11T18:46:58"), "in-response-to": 1977, "sender-location":point("46.5,66.99"), "tags":{{"samsung", "voice-clarity" }}, "message":" dislike samsung the voice-clarity is OMG"}
-{"message-id": 585, "author-id": 148, "timestamp":datetime("2009-06-15T02:45:36"), "in-response-to": 2100, "sender-location":point("31.82,95.85"), "tags":{{"sprint", "plan" }}, "message":" like sprint its plan is mind-blowing:)"}
-{"message-id": 586, "author-id": 149, "timestamp":datetime("2007-06-03T19:03:32"), "in-response-to": 361, "sender-location":point("27.3,79.1"), "tags":{{"iphone", "voicemail-service" }}, "message":" dislike iphone the voicemail-service is OMG"}
-{"message-id": 587, "author-id": 149, "timestamp":datetime("2005-06-15T21:37:00"), "in-response-to": 3233, "sender-location":point("31.52,93.65"), "tags":{{"sprint", "shortcut-menu" }}, "message":" love sprint its shortcut-menu is awesome"}
-{"message-id": 588, "author-id": 150, "timestamp":datetime("2007-09-10T01:20:03"), "in-response-to": 759, "sender-location":point("44.58,93.52"), "tags":{{"motorola", "wireless" }}, "message":" like motorola its wireless is amazing:)"}
-{"message-id": 589, "author-id": 150, "timestamp":datetime("2009-05-20T08:44:29"), "in-response-to": 1479, "sender-location":point("28.06,73.74"), "tags":{{"motorola", "network" }}, "message":" like motorola its network is amazing:)"}
-{"message-id": 590, "author-id": 151, "timestamp":datetime("2008-09-11T15:18:05"), "in-response-to": 2720, "sender-location":point("36.43,90.41"), "tags":{{"sprint", "wireless" }}, "message":" dislike sprint the wireless is OMG"}
-{"message-id": 591, "author-id": 151, "timestamp":datetime("2013-04-07T04:00:02"), "in-response-to": 1802, "sender-location":point("32.87,81.93"), "tags":{{"verizon", "voice-command" }}, "message":" dislike verizon its voice-command is terrible"}
-{"message-id": 592, "author-id": 152, "timestamp":datetime("2014-02-11T05:25:23"), "in-response-to": 2166, "sender-location":point("32.57,83.94"), "tags":{{"samsung", "signal" }}, "message":" love samsung its signal is amazing"}
-{"message-id": 593, "author-id": 152, "timestamp":datetime("2013-10-12T08:37:22"), "in-response-to": 2341, "sender-location":point("41.23,96.62"), "tags":{{"motorola", "network" }}, "message":" hate motorola its network is terrible:("}
-{"message-id": 594, "author-id": 153, "timestamp":datetime("2014-06-25T10:36:37"), "in-response-to": 1752, "sender-location":point("28.97,79.43"), "tags":{{"sprint", "voice-clarity" }}, "message":" hate sprint its voice-clarity is bad:("}
-{"message-id": 595, "author-id": 153, "timestamp":datetime("2005-05-19T07:41:19"), "in-response-to": 1323, "sender-location":point("26.51,70.48"), "tags":{{"iphone", "reachability" }}, "message":" like iphone the reachability is mind-blowing"}
-{"message-id": 596, "author-id": 154, "timestamp":datetime("2014-07-20T07:06:21"), "in-response-to": 1249, "sender-location":point("25.62,78.1"), "tags":{{"samsung", "platform" }}, "message":" can't stand samsung the platform is terrible"}
-{"message-id": 597, "author-id": 154, "timestamp":datetime("2008-12-28T06:06:03"), "in-response-to": 358, "sender-location":point("31.35,81.47"), "tags":{{"t-mobile", "signal" }}, "message":" love t-mobile the signal is good"}
-{"message-id": 598, "author-id": 155, "timestamp":datetime("2007-11-21T09:45:03"), "in-response-to": 4, "sender-location":point("47.97,96.27"), "tags":{{"iphone", "network" }}, "message":" dislike iphone the network is bad"}
-{"message-id": 599, "author-id": 155, "timestamp":datetime("2014-07-03T10:22:40"), "in-response-to": 589, "sender-location":point("26.09,94.04"), "tags":{{"at&t", "signal" }}, "message":" hate at&t its signal is terrible:("}
-{"message-id": 600, "author-id": 156, "timestamp":datetime("2005-08-05T18:57:13"), "in-response-to": 1533, "sender-location":point("24.19,87.92"), "tags":{{"sprint", "customization" }}, "message":" hate sprint its customization is horrible"}
-{"message-id": 601, "author-id": 156, "timestamp":datetime("2007-06-23T08:06:44"), "in-response-to": 2075, "sender-location":point("42.32,90.77"), "tags":{{"samsung", "signal" }}, "message":" like samsung the signal is amazing:)"}
-{"message-id": 602, "author-id": 157, "timestamp":datetime("2010-06-03T10:04:40"), "in-response-to": 172, "sender-location":point("33.91,95.01"), "tags":{{"verizon", "speed" }}, "message":" can't stand verizon the speed is OMG"}
-{"message-id": 603, "author-id": 157, "timestamp":datetime("2006-08-12T02:43:38"), "in-response-to": 2504, "sender-location":point("26.73,88.59"), "tags":{{"at&t", "platform" }}, "message":" love at&t its platform is good"}
-{"message-id": 604, "author-id": 158, "timestamp":datetime("2013-08-27T19:51:49"), "in-response-to": 937, "sender-location":point("33.02,74.62"), "tags":{{"verizon", "shortcut-menu" }}, "message":" love verizon its shortcut-menu is amazing"}
-{"message-id": 605, "author-id": 158, "timestamp":datetime("2011-09-10T15:11:22"), "in-response-to": 1032, "sender-location":point("32.85,83.09"), "tags":{{"samsung", "voice-clarity" }}, "message":" can't stand samsung the voice-clarity is terrible:("}
-{"message-id": 606, "author-id": 159, "timestamp":datetime("2009-12-22T11:11:26"), "in-response-to": 2777, "sender-location":point("43.16,70.09"), "tags":{{"samsung", "voice-clarity" }}, "message":" can't stand samsung the voice-clarity is terrible:("}
-{"message-id": 607, "author-id": 159, "timestamp":datetime("2012-06-15T01:06:13"), "in-response-to": 1133, "sender-location":point("38.7,77.96"), "tags":{{"samsung", "speed" }}, "message":" love samsung its speed is amazing"}
-{"message-id": 608, "author-id": 160, "timestamp":datetime("2012-08-16T14:40:11"), "in-response-to": 1854, "sender-location":point("42.82,89.15"), "tags":{{"t-mobile", "platform" }}, "message":" dislike t-mobile the platform is terrible:("}
-{"message-id": 609, "author-id": 160, "timestamp":datetime("2013-01-25T09:43:07"), "in-response-to": 2039, "sender-location":point("36.09,84.19"), "tags":{{"at&t", "voice-clarity" }}, "message":" like at&t the voice-clarity is awesome:)"}
-{"message-id": 610, "author-id": 161, "timestamp":datetime("2008-03-06T18:28:37"), "in-response-to": 1208, "sender-location":point("26.75,90.44"), "tags":{{"t-mobile", "customization" }}, "message":" hate t-mobile its customization is terrible:("}
-{"message-id": 611, "author-id": 161, "timestamp":datetime("2010-06-22T22:07:18"), "in-response-to": 1400, "sender-location":point("45.59,75.86"), "tags":{{"samsung", "voicemail-service" }}, "message":" can't stand samsung the voicemail-service is bad"}
-{"message-id": 612, "author-id": 162, "timestamp":datetime("2012-07-07T14:35:45"), "in-response-to": 1218, "sender-location":point("32.73,80.77"), "tags":{{"iphone", "customer-service" }}, "message":" hate iphone the customer-service is OMG"}
-{"message-id": 613, "author-id": 162, "timestamp":datetime("2009-11-14T08:37:37"), "in-response-to": 981, "sender-location":point("31.14,70.64"), "tags":{{"verizon", "voicemail-service" }}, "message":" like verizon the voicemail-service is mind-blowing:)"}
-{"message-id": 614, "author-id": 163, "timestamp":datetime("2005-04-15T06:52:16"), "in-response-to": 2546, "sender-location":point("28.72,74.82"), "tags":{{"sprint", "wireless" }}, "message":" hate sprint the wireless is OMG:("}
-{"message-id": 615, "author-id": 163, "timestamp":datetime("2013-06-06T09:34:22"), "in-response-to": 921, "sender-location":point("29.15,68.06"), "tags":{{"sprint", "wireless" }}, "message":" hate sprint its wireless is terrible:("}
-{"message-id": 616, "author-id": 164, "timestamp":datetime("2010-08-15T16:29:59"), "in-response-to": 39, "sender-location":point("34.47,96.34"), "tags":{{"samsung", "touch-screen" }}, "message":" like samsung its touch-screen is good:)"}
-{"message-id": 617, "author-id": 164, "timestamp":datetime("2012-01-03T19:54:06"), "in-response-to": 551, "sender-location":point("31.07,80.92"), "tags":{{"verizon", "reachability" }}, "message":" can't stand verizon its reachability is terrible"}
-{"message-id": 618, "author-id": 165, "timestamp":datetime("2010-04-21T00:43:45"), "in-response-to": 2870, "sender-location":point("33.63,75.16"), "tags":{{"verizon", "platform" }}, "message":" hate verizon the platform is horrible:("}
-{"message-id": 619, "author-id": 165, "timestamp":datetime("2012-06-03T18:35:34"), "in-response-to": 3136, "sender-location":point("41.07,90.68"), "tags":{{"verizon", "plan" }}, "message":" hate verizon the plan is terrible"}
-{"message-id": 620, "author-id": 166, "timestamp":datetime("2008-08-16T21:35:00"), "in-response-to": 2887, "sender-location":point("43.81,73.37"), "tags":{{"verizon", "speed" }}, "message":" love verizon the speed is amazing"}
-{"message-id": 621, "author-id": 166, "timestamp":datetime("2005-07-07T22:27:35"), "in-response-to": 3070, "sender-location":point("35.62,70.48"), "tags":{{"samsung", "signal" }}, "message":" dislike samsung its signal is horrible:("}
-{"message-id": 622, "author-id": 167, "timestamp":datetime("2011-05-23T14:51:19"), "in-response-to": 1838, "sender-location":point("45.04,77.95"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" dislike t-mobile its voicemail-service is terrible"}
-{"message-id": 623, "author-id": 167, "timestamp":datetime("2012-03-05T13:51:52"), "in-response-to": 1678, "sender-location":point("32.71,73.54"), "tags":{{"samsung", "voice-clarity" }}, "message":" can't stand samsung its voice-clarity is horrible"}
-{"message-id": 624, "author-id": 168, "timestamp":datetime("2005-11-18T17:59:20"), "in-response-to": 2669, "sender-location":point("28.78,89.01"), "tags":{{"at&t", "plan" }}, "message":" hate at&t its plan is OMG:("}
-{"message-id": 625, "author-id": 168, "timestamp":datetime("2007-06-17T16:15:16"), "in-response-to": 1907, "sender-location":point("42.45,78.91"), "tags":{{"samsung", "touch-screen" }}, "message":" hate samsung the touch-screen is bad:("}
-{"message-id": 626, "author-id": 169, "timestamp":datetime("2014-01-15T14:04:53"), "in-response-to": 585, "sender-location":point("42.82,83.09"), "tags":{{"sprint", "plan" }}, "message":" hate sprint the plan is bad:("}
-{"message-id": 627, "author-id": 169, "timestamp":datetime("2014-05-24T12:57:43"), "in-response-to": 2357, "sender-location":point("35.53,74.74"), "tags":{{"at&t", "3G" }}, "message":" love at&t the 3G is amazing:)"}
-{"message-id": 628, "author-id": 170, "timestamp":datetime("2011-09-21T21:24:23"), "in-response-to": 2167, "sender-location":point("30.29,76.12"), "tags":{{"samsung", "voice-command" }}, "message":" like samsung its voice-command is good"}
-{"message-id": 629, "author-id": 170, "timestamp":datetime("2010-07-13T08:07:20"), "in-response-to": 858, "sender-location":point("33.32,81.88"), "tags":{{"iphone", "3G" }}, "message":" love iphone its 3G is mind-blowing"}
-{"message-id": 630, "author-id": 171, "timestamp":datetime("2006-11-05T03:08:57"), "in-response-to": 2543, "sender-location":point("32.5,89.7"), "tags":{{"sprint", "platform" }}, "message":" hate sprint the platform is horrible"}
-{"message-id": 631, "author-id": 171, "timestamp":datetime("2013-12-12T00:40:12"), "in-response-to": 910, "sender-location":point("35.03,71.2"), "tags":{{"t-mobile", "plan" }}, "message":" like t-mobile its plan is amazing"}
-{"message-id": 632, "author-id": 172, "timestamp":datetime("2014-03-19T20:35:24"), "in-response-to": 1414, "sender-location":point("27.47,83.01"), "tags":{{"t-mobile", "plan" }}, "message":" like t-mobile its plan is amazing"}
-{"message-id": 633, "author-id": 172, "timestamp":datetime("2010-10-16T20:53:02"), "in-response-to": 2034, "sender-location":point("40.52,76.61"), "tags":{{"motorola", "signal" }}, "message":" love motorola its signal is mind-blowing"}
-{"message-id": 634, "author-id": 173, "timestamp":datetime("2007-11-13T23:31:54"), "in-response-to": 1814, "sender-location":point("35.15,72.04"), "tags":{{"verizon", "voicemail-service" }}, "message":" dislike verizon its voicemail-service is bad"}
-{"message-id": 635, "author-id": 173, "timestamp":datetime("2005-10-03T12:50:02"), "in-response-to": 789, "sender-location":point("47.83,91.04"), "tags":{{"samsung", "speed" }}, "message":" love samsung the speed is amazing"}
-{"message-id": 636, "author-id": 174, "timestamp":datetime("2005-08-21T13:30:00"), "in-response-to": 2178, "sender-location":point("35.6,90.85"), "tags":{{"motorola", "wireless" }}, "message":" dislike motorola its wireless is terrible"}
-{"message-id": 637, "author-id": 174, "timestamp":datetime("2013-04-11T00:06:13"), "in-response-to": 175, "sender-location":point("34.48,88.01"), "tags":{{"at&t", "reachability" }}, "message":" love at&t the reachability is good"}
-{"message-id": 638, "author-id": 175, "timestamp":datetime("2006-03-19T21:57:19"), "in-response-to": 1779, "sender-location":point("31.6,90.96"), "tags":{{"at&t", "voice-clarity" }}, "message":" love at&t its voice-clarity is awesome"}
-{"message-id": 639, "author-id": 175, "timestamp":datetime("2005-01-26T15:22:04"), "in-response-to": 2636, "sender-location":point("45.34,80.99"), "tags":{{"samsung", "reachability" }}, "message":" like samsung the reachability is awesome"}
-{"message-id": 640, "author-id": 176, "timestamp":datetime("2009-06-25T06:47:17"), "in-response-to": 3246, "sender-location":point("36.58,69.4"), "tags":{{"verizon", "wireless" }}, "message":" like verizon the wireless is mind-blowing:)"}
-{"message-id": 641, "author-id": 176, "timestamp":datetime("2009-07-25T07:32:44"), "in-response-to": 968, "sender-location":point("28.19,66.21"), "tags":{{"at&t", "platform" }}, "message":" like at&t its platform is mind-blowing:)"}
-{"message-id": 642, "author-id": 177, "timestamp":datetime("2011-03-17T09:11:05"), "in-response-to": 2645, "sender-location":point("35.24,92.55"), "tags":{{"motorola", "wireless" }}, "message":" dislike motorola its wireless is horrible:("}
-{"message-id": 643, "author-id": 177, "timestamp":datetime("2006-11-11T22:08:38"), "in-response-to": 404, "sender-location":point("32.88,80.94"), "tags":{{"t-mobile", "voice-command" }}, "message":" dislike t-mobile its voice-command is bad:("}
-{"message-id": 644, "author-id": 178, "timestamp":datetime("2010-03-08T17:29:30"), "in-response-to": 1471, "sender-location":point("35.31,75.2"), "tags":{{"t-mobile", "customer-service" }}, "message":" love t-mobile its customer-service is awesome:)"}
-{"message-id": 645, "author-id": 178, "timestamp":datetime("2011-06-05T08:23:05"), "in-response-to": 815, "sender-location":point("38.15,68.74"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" like t-mobile its voice-clarity is awesome:)"}
-{"message-id": 646, "author-id": 179, "timestamp":datetime("2005-10-04T05:05:40"), "in-response-to": 2918, "sender-location":point("26.88,83.5"), "tags":{{"motorola", "network" }}, "message":" like motorola its network is amazing:)"}
-{"message-id": 647, "author-id": 179, "timestamp":datetime("2005-07-12T03:06:49"), "in-response-to": 854, "sender-location":point("40.24,83.23"), "tags":{{"samsung", "customization" }}, "message":" dislike samsung the customization is terrible"}
-{"message-id": 648, "author-id": 180, "timestamp":datetime("2006-10-20T21:23:14"), "in-response-to": 2962, "sender-location":point("43.03,96.56"), "tags":{{"sprint", "reachability" }}, "message":" dislike sprint its reachability is bad"}
-{"message-id": 649, "author-id": 180, "timestamp":datetime("2014-04-07T07:08:01"), "in-response-to": 782, "sender-location":point("45.78,93.81"), "tags":{{"sprint", "voice-clarity" }}, "message":" love sprint the voice-clarity is mind-blowing:)"}
-{"message-id": 650, "author-id": 181, "timestamp":datetime("2007-04-12T10:06:10"), "in-response-to": 2609, "sender-location":point("46.75,83.76"), "tags":{{"motorola", "wireless" }}, "message":" dislike motorola the wireless is bad"}
-{"message-id": 651, "author-id": 181, "timestamp":datetime("2013-09-03T22:00:24"), "in-response-to": 1701, "sender-location":point("28.21,66.67"), "tags":{{"motorola", "touch-screen" }}, "message":" can't stand motorola the touch-screen is horrible"}
-{"message-id": 652, "author-id": 182, "timestamp":datetime("2009-09-22T03:39:54"), "in-response-to": 2895, "sender-location":point("46.02,81.29"), "tags":{{"at&t", "speed" }}, "message":" hate at&t the speed is terrible"}
-{"message-id": 653, "author-id": 182, "timestamp":datetime("2014-04-14T23:56:20"), "in-response-to": 2371, "sender-location":point("28.92,80.36"), "tags":{{"motorola", "customer-service" }}, "message":" can't stand motorola its customer-service is OMG:("}
-{"message-id": 654, "author-id": 183, "timestamp":datetime("2010-08-26T16:44:40"), "in-response-to": 1111, "sender-location":point("28.56,69.51"), "tags":{{"sprint", "voice-command" }}, "message":" hate sprint its voice-command is OMG:("}
-{"message-id": 655, "author-id": 183, "timestamp":datetime("2008-07-06T06:40:33"), "in-response-to": 893, "sender-location":point("40.86,71.02"), "tags":{{"motorola", "wireless" }}, "message":" dislike motorola the wireless is bad:("}
-{"message-id": 656, "author-id": 184, "timestamp":datetime("2008-10-06T10:47:12"), "in-response-to": 2212, "sender-location":point("40.49,72.43"), "tags":{{"at&t", "shortcut-menu" }}, "message":" can't stand at&t its shortcut-menu is bad"}
-{"message-id": 657, "author-id": 184, "timestamp":datetime("2013-04-19T00:20:16"), "in-response-to": 3176, "sender-location":point("33.22,88.03"), "tags":{{"sprint", "shortcut-menu" }}, "message":" can't stand sprint the shortcut-menu is terrible:("}
-{"message-id": 658, "author-id": 185, "timestamp":datetime("2007-10-16T12:23:46"), "in-response-to": 1503, "sender-location":point("33.97,78.06"), "tags":{{"motorola", "customer-service" }}, "message":" dislike motorola its customer-service is horrible"}
-{"message-id": 659, "author-id": 185, "timestamp":datetime("2008-09-14T03:08:53"), "in-response-to": 1128, "sender-location":point("27.68,73.55"), "tags":{{"iphone", "voice-command" }}, "message":" can't stand iphone the voice-command is bad"}
-{"message-id": 660, "author-id": 186, "timestamp":datetime("2005-04-24T17:15:30"), "in-response-to": 2390, "sender-location":point("39.9,67.84"), "tags":{{"iphone", "platform" }}, "message":" like iphone the platform is mind-blowing"}
-{"message-id": 661, "author-id": 186, "timestamp":datetime("2012-03-02T03:06:37"), "in-response-to": 456, "sender-location":point("33.67,95.11"), "tags":{{"t-mobile", "reachability" }}, "message":" can't stand t-mobile the reachability is OMG:("}
-{"message-id": 662, "author-id": 187, "timestamp":datetime("2012-12-15T21:04:47"), "in-response-to": 691, "sender-location":point("44.05,84.83"), "tags":{{"motorola", "plan" }}, "message":" love motorola the plan is awesome:)"}
-{"message-id": 663, "author-id": 187, "timestamp":datetime("2005-12-25T19:05:36"), "in-response-to": 501, "sender-location":point("47.47,97.78"), "tags":{{"motorola", "shortcut-menu" }}, "message":" love motorola the shortcut-menu is mind-blowing:)"}
-{"message-id": 664, "author-id": 188, "timestamp":datetime("2005-12-15T01:37:35"), "in-response-to": 1948, "sender-location":point("25.18,94.71"), "tags":{{"t-mobile", "wireless" }}, "message":" can't stand t-mobile its wireless is terrible:("}
-{"message-id": 665, "author-id": 188, "timestamp":datetime("2012-05-19T22:16:31"), "in-response-to": 58, "sender-location":point("44.66,79.67"), "tags":{{"at&t", "3G" }}, "message":" love at&t the 3G is mind-blowing"}
-{"message-id": 666, "author-id": 189, "timestamp":datetime("2013-11-06T02:34:46"), "in-response-to": 1268, "sender-location":point("38.22,95.05"), "tags":{{"verizon", "network" }}, "message":" like verizon the network is amazing"}
-{"message-id": 667, "author-id": 189, "timestamp":datetime("2008-07-15T14:17:12"), "in-response-to": 1188, "sender-location":point("37.09,86.12"), "tags":{{"verizon", "voice-clarity" }}, "message":" love verizon the voice-clarity is awesome"}
-{"message-id": 668, "author-id": 190, "timestamp":datetime("2007-03-09T12:30:33"), "in-response-to": 2996, "sender-location":point("27.97,81.26"), "tags":{{"iphone", "voice-command" }}, "message":" like iphone its voice-command is awesome:)"}
-{"message-id": 669, "author-id": 190, "timestamp":datetime("2005-02-14T06:53:40"), "in-response-to": 2004, "sender-location":point("48.65,88.18"), "tags":{{"sprint", "reachability" }}, "message":" love sprint the reachability is amazing:)"}
-{"message-id": 670, "author-id": 191, "timestamp":datetime("2009-08-20T19:12:29"), "in-response-to": 1111, "sender-location":point("47.99,91.54"), "tags":{{"samsung", "network" }}, "message":" love samsung its network is good:)"}
-{"message-id": 671, "author-id": 191, "timestamp":datetime("2012-11-19T16:46:05"), "in-response-to": 2343, "sender-location":point("25.88,72.48"), "tags":{{"motorola", "platform" }}, "message":" love motorola its platform is amazing"}
-{"message-id": 672, "author-id": 192, "timestamp":datetime("2005-03-09T21:20:12"), "in-response-to": 1258, "sender-location":point("42.8,81.23"), "tags":{{"motorola", "platform" }}, "message":" dislike motorola the platform is horrible:("}
-{"message-id": 673, "author-id": 192, "timestamp":datetime("2007-07-15T00:37:24"), "in-response-to": 3170, "sender-location":point("30.63,79.94"), "tags":{{"verizon", "reachability" }}, "message":" like verizon the reachability is amazing"}
-{"message-id": 674, "author-id": 193, "timestamp":datetime("2009-08-09T10:55:12"), "in-response-to": 2368, "sender-location":point("43.23,78.65"), "tags":{{"samsung", "wireless" }}, "message":" like samsung the wireless is good"}
-{"message-id": 675, "author-id": 193, "timestamp":datetime("2011-06-18T19:38:54"), "in-response-to": 1595, "sender-location":point("40.99,88.4"), "tags":{{"samsung", "plan" }}, "message":" hate samsung its plan is OMG:("}
-{"message-id": 676, "author-id": 194, "timestamp":datetime("2005-11-18T20:38:27"), "in-response-to": 696, "sender-location":point("42.15,79.18"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" like t-mobile the voicemail-service is mind-blowing:)"}
-{"message-id": 677, "author-id": 194, "timestamp":datetime("2014-01-15T02:13:00"), "in-response-to": 1701, "sender-location":point("36.29,70.38"), "tags":{{"iphone", "voice-clarity" }}, "message":" love iphone the voice-clarity is good"}
-{"message-id": 678, "author-id": 195, "timestamp":datetime("2011-10-25T21:32:45"), "in-response-to": 509, "sender-location":point("28.82,91.76"), "tags":{{"at&t", "speed" }}, "message":" dislike at&t its speed is horrible:("}
-{"message-id": 679, "author-id": 195, "timestamp":datetime("2006-04-17T06:39:27"), "in-response-to": 2179, "sender-location":point("31.44,97.63"), "tags":{{"samsung", "speed" }}, "message":" dislike samsung its speed is bad:("}
-{"message-id": 680, "author-id": 196, "timestamp":datetime("2012-06-16T22:40:02"), "in-response-to": 2438, "sender-location":point("40.97,93.83"), "tags":{{"samsung", "3G" }}, "message":" like samsung its 3G is good"}
-{"message-id": 681, "author-id": 196, "timestamp":datetime("2010-09-18T12:28:36"), "in-response-to": 2443, "sender-location":point("28.6,75.52"), "tags":{{"iphone", "plan" }}, "message":" love iphone its plan is awesome:)"}
-{"message-id": 682, "author-id": 197, "timestamp":datetime("2008-05-08T11:27:30"), "in-response-to": 2742, "sender-location":point("47.82,80.39"), "tags":{{"at&t", "reachability" }}, "message":" love at&t its reachability is amazing"}
-{"message-id": 683, "author-id": 197, "timestamp":datetime("2009-06-09T12:11:16"), "in-response-to": 3141, "sender-location":point("30.38,91.27"), "tags":{{"iphone", "shortcut-menu" }}, "message":" hate iphone its shortcut-menu is OMG"}
-{"message-id": 684, "author-id": 198, "timestamp":datetime("2007-08-25T06:25:44"), "in-response-to": 966, "sender-location":point("25.9,81.51"), "tags":{{"motorola", "voice-command" }}, "message":" like motorola the voice-command is mind-blowing:)"}
-{"message-id": 685, "author-id": 198, "timestamp":datetime("2011-03-22T22:06:28"), "in-response-to": 970, "sender-location":point("45.08,72.51"), "tags":{{"samsung", "customer-service" }}, "message":" like samsung its customer-service is awesome:)"}
-{"message-id": 686, "author-id": 199, "timestamp":datetime("2005-08-22T08:31:56"), "in-response-to": 1301, "sender-location":point("33.94,71.82"), "tags":{{"verizon", "shortcut-menu" }}, "message":" like verizon the shortcut-menu is mind-blowing"}
-{"message-id": 687, "author-id": 199, "timestamp":datetime("2011-08-15T20:33:46"), "in-response-to": 2313, "sender-location":point("38.75,86.4"), "tags":{{"verizon", "wireless" }}, "message":" hate verizon the wireless is terrible"}
-{"message-id": 688, "author-id": 200, "timestamp":datetime("2008-12-23T20:46:55"), "in-response-to": 258, "sender-location":point("45.83,78.0"), "tags":{{"verizon", "speed" }}, "message":" dislike verizon its speed is terrible"}
-{"message-id": 689, "author-id": 200, "timestamp":datetime("2008-10-10T14:18:58"), "in-response-to": 2668, "sender-location":point("25.17,96.21"), "tags":{{"sprint", "touch-screen" }}, "message":" hate sprint its touch-screen is bad"}
-{"message-id": 690, "author-id": 201, "timestamp":datetime("2009-10-19T22:41:56"), "in-response-to": 1821, "sender-location":point("41.63,73.73"), "tags":{{"verizon", "shortcut-menu" }}, "message":" can't stand verizon the shortcut-menu is OMG"}
-{"message-id": 691, "author-id": 201, "timestamp":datetime("2007-05-04T10:02:16"), "in-response-to": 2478, "sender-location":point("29.06,83.23"), "tags":{{"t-mobile", "voice-command" }}, "message":" dislike t-mobile the voice-command is terrible"}
-{"message-id": 692, "author-id": 202, "timestamp":datetime("2014-01-09T00:19:58"), "in-response-to": 571, "sender-location":point("26.05,92.35"), "tags":{{"at&t", "voice-command" }}, "message":" like at&t its voice-command is good"}
-{"message-id": 693, "author-id": 202, "timestamp":datetime("2014-04-26T09:16:41"), "in-response-to": 247, "sender-location":point("24.57,82.2"), "tags":{{"samsung", "reachability" }}, "message":" hate samsung its reachability is terrible:("}
-{"message-id": 694, "author-id": 203, "timestamp":datetime("2006-01-05T01:15:12"), "in-response-to": 2584, "sender-location":point("30.11,87.51"), "tags":{{"sprint", "voice-clarity" }}, "message":" love sprint the voice-clarity is amazing"}
-{"message-id": 695, "author-id": 203, "timestamp":datetime("2008-06-10T09:35:53"), "in-response-to": 133, "sender-location":point("37.58,77.83"), "tags":{{"t-mobile", "plan" }}, "message":" dislike t-mobile the plan is OMG:("}
-{"message-id": 696, "author-id": 204, "timestamp":datetime("2005-02-01T02:30:45"), "in-response-to": 2222, "sender-location":point("36.15,91.36"), "tags":{{"sprint", "platform" }}, "message":" can't stand sprint its platform is terrible:("}
-{"message-id": 697, "author-id": 204, "timestamp":datetime("2012-09-24T11:01:10"), "in-response-to": 790, "sender-location":point("32.55,70.6"), "tags":{{"motorola", "customer-service" }}, "message":" love motorola the customer-service is awesome:)"}
-{"message-id": 698, "author-id": 205, "timestamp":datetime("2008-10-26T14:02:36"), "in-response-to": 109, "sender-location":point("40.52,96.69"), "tags":{{"motorola", "signal" }}, "message":" dislike motorola its signal is terrible:("}
-{"message-id": 699, "author-id": 205, "timestamp":datetime("2006-12-05T05:41:49"), "in-response-to": 1455, "sender-location":point("46.53,86.38"), "tags":{{"samsung", "voice-clarity" }}, "message":" like samsung the voice-clarity is mind-blowing"}
-{"message-id": 700, "author-id": 206, "timestamp":datetime("2014-07-11T10:09:29"), "in-response-to": 3194, "sender-location":point("39.4,70.45"), "tags":{{"verizon", "voice-clarity" }}, "message":" like verizon the voice-clarity is awesome:)"}
-{"message-id": 701, "author-id": 206, "timestamp":datetime("2011-06-27T20:19:57"), "in-response-to": 1674, "sender-location":point("44.89,74.98"), "tags":{{"verizon", "speed" }}, "message":" like verizon its speed is mind-blowing"}
-{"message-id": 702, "author-id": 207, "timestamp":datetime("2005-11-13T01:16:47"), "in-response-to": 3010, "sender-location":point("34.77,73.86"), "tags":{{"sprint", "reachability" }}, "message":" can't stand sprint the reachability is OMG"}
-{"message-id": 703, "author-id": 207, "timestamp":datetime("2012-03-05T01:31:59"), "in-response-to": 316, "sender-location":point("28.32,77.91"), "tags":{{"samsung", "speed" }}, "message":" like samsung its speed is awesome:)"}
-{"message-id": 704, "author-id": 208, "timestamp":datetime("2011-01-28T22:39:31"), "in-response-to": 580, "sender-location":point("24.05,96.97"), "tags":{{"at&t", "network" }}, "message":" like at&t its network is awesome:)"}
-{"message-id": 705, "author-id": 208, "timestamp":datetime("2013-04-27T00:13:12"), "in-response-to": 3094, "sender-location":point("37.61,78.18"), "tags":{{"at&t", "customization" }}, "message":" hate at&t its customization is bad"}
-{"message-id": 706, "author-id": 209, "timestamp":datetime("2014-05-24T18:29:06"), "in-response-to": 1656, "sender-location":point("28.92,95.94"), "tags":{{"verizon", "3G" }}, "message":" hate verizon the 3G is OMG"}
-{"message-id": 707, "author-id": 210, "timestamp":datetime("2005-05-19T21:25:01"), "in-response-to": 9, "sender-location":point("28.76,77.84"), "tags":{{"sprint", "voicemail-service" }}, "message":" hate sprint the voicemail-service is bad:("}
-{"message-id": 708, "author-id": 211, "timestamp":datetime("2009-02-08T18:28:08"), "in-response-to": 528, "sender-location":point("27.02,85.66"), "tags":{{"sprint", "touch-screen" }}, "message":" hate sprint the touch-screen is terrible:("}
-{"message-id": 709, "author-id": 212, "timestamp":datetime("2005-10-27T19:09:27"), "in-response-to": 543, "sender-location":point("31.11,84.45"), "tags":{{"t-mobile", "wireless" }}, "message":" love t-mobile its wireless is good"}
-{"message-id": 710, "author-id": 213, "timestamp":datetime("2012-07-25T11:34:22"), "in-response-to": 321, "sender-location":point("39.96,96.01"), "tags":{{"iphone", "touch-screen" }}, "message":" can't stand iphone its touch-screen is OMG:("}
-{"message-id": 711, "author-id": 214, "timestamp":datetime("2011-10-09T21:52:15"), "in-response-to": 2658, "sender-location":point("47.22,94.69"), "tags":{{"at&t", "plan" }}, "message":" love at&t the plan is awesome:)"}
-{"message-id": 712, "author-id": 215, "timestamp":datetime("2013-12-09T23:07:03"), "in-response-to": 2701, "sender-location":point("33.25,76.02"), "tags":{{"at&t", "customer-service" }}, "message":" love at&t its customer-service is mind-blowing"}
-{"message-id": 713, "author-id": 216, "timestamp":datetime("2007-02-01T18:57:01"), "in-response-to": 3250, "sender-location":point("42.48,78.94"), "tags":{{"motorola", "customer-service" }}, "message":" dislike motorola the customer-service is terrible"}
-{"message-id": 714, "author-id": 217, "timestamp":datetime("2010-10-05T08:49:35"), "in-response-to": 330, "sender-location":point("35.7,71.32"), "tags":{{"t-mobile", "wireless" }}, "message":" love t-mobile its wireless is mind-blowing"}
-{"message-id": 715, "author-id": 218, "timestamp":datetime("2009-07-28T18:37:02"), "in-response-to": 1496, "sender-location":point("44.73,83.39"), "tags":{{"motorola", "customization" }}, "message":" hate motorola its customization is horrible"}
-{"message-id": 716, "author-id": 219, "timestamp":datetime("2005-04-09T04:20:20"), "in-response-to": 2059, "sender-location":point("31.69,89.68"), "tags":{{"motorola", "wireless" }}, "message":" can't stand motorola the wireless is terrible"}
-{"message-id": 717, "author-id": 220, "timestamp":datetime("2011-02-10T06:59:52"), "in-response-to": 2721, "sender-location":point("35.27,89.01"), "tags":{{"motorola", "speed" }}, "message":" like motorola the speed is mind-blowing:)"}
-{"message-id": 718, "author-id": 221, "timestamp":datetime("2014-02-12T00:31:47"), "in-response-to": 2744, "sender-location":point("31.07,82.95"), "tags":{{"samsung", "touch-screen" }}, "message":" dislike samsung its touch-screen is horrible"}
-{"message-id": 719, "author-id": 222, "timestamp":datetime("2008-06-09T10:32:47"), "in-response-to": 418, "sender-location":point("27.71,67.65"), "tags":{{"sprint", "customization" }}, "message":" dislike sprint the customization is horrible:("}
-{"message-id": 720, "author-id": 223, "timestamp":datetime("2012-12-18T15:48:34"), "in-response-to": 1706, "sender-location":point("35.43,77.31"), "tags":{{"samsung", "voicemail-service" }}, "message":" like samsung its voicemail-service is mind-blowing:)"}
-{"message-id": 721, "author-id": 224, "timestamp":datetime("2005-07-13T05:19:49"), "in-response-to": 2960, "sender-location":point("25.47,90.54"), "tags":{{"at&t", "signal" }}, "message":" can't stand at&t the signal is bad"}
-{"message-id": 722, "author-id": 225, "timestamp":datetime("2013-01-11T02:57:06"), "in-response-to": 396, "sender-location":point("31.8,77.59"), "tags":{{"iphone", "voice-clarity" }}, "message":" like iphone the voice-clarity is good"}
-{"message-id": 723, "author-id": 226, "timestamp":datetime("2005-04-26T22:54:47"), "in-response-to": 1276, "sender-location":point("41.39,69.97"), "tags":{{"iphone", "plan" }}, "message":" like iphone the plan is amazing"}
-{"message-id": 724, "author-id": 227, "timestamp":datetime("2008-01-01T08:18:57"), "in-response-to": 1758, "sender-location":point("26.03,92.05"), "tags":{{"verizon", "touch-screen" }}, "message":" like verizon the touch-screen is amazing"}
-{"message-id": 725, "author-id": 228, "timestamp":datetime("2006-01-02T23:52:02"), "in-response-to": 301, "sender-location":point("46.58,93.77"), "tags":{{"iphone", "customer-service" }}, "message":" dislike iphone the customer-service is horrible:("}
-{"message-id": 726, "author-id": 229, "timestamp":datetime("2014-05-18T07:17:39"), "in-response-to": 2840, "sender-location":point("33.88,88.93"), "tags":{{"iphone", "signal" }}, "message":" hate iphone its signal is OMG:("}
-{"message-id": 727, "author-id": 230, "timestamp":datetime("2006-07-25T20:37:38"), "in-response-to": 2493, "sender-location":point("37.0,79.18"), "tags":{{"sprint", "touch-screen" }}, "message":" love sprint the touch-screen is mind-blowing:)"}
-{"message-id": 728, "author-id": 231, "timestamp":datetime("2014-07-28T23:06:51"), "in-response-to": 627, "sender-location":point("35.59,93.64"), "tags":{{"sprint", "network" }}, "message":" like sprint its network is mind-blowing:)"}
-{"message-id": 729, "author-id": 232, "timestamp":datetime("2006-09-19T19:42:51"), "in-response-to": 343, "sender-location":point("45.62,72.84"), "tags":{{"sprint", "customer-service" }}, "message":" can't stand sprint its customer-service is terrible:("}
-{"message-id": 730, "author-id": 233, "timestamp":datetime("2012-03-24T04:28:02"), "in-response-to": 2180, "sender-location":point("26.16,77.39"), "tags":{{"verizon", "reachability" }}, "message":" love verizon its reachability is amazing"}
-{"message-id": 731, "author-id": 234, "timestamp":datetime("2007-12-26T12:00:58"), "in-response-to": 2103, "sender-location":point("32.59,96.82"), "tags":{{"samsung", "voicemail-service" }}, "message":" hate samsung the voicemail-service is terrible:("}
-{"message-id": 732, "author-id": 235, "timestamp":datetime("2010-03-12T11:55:42"), "in-response-to": 291, "sender-location":point("34.93,95.75"), "tags":{{"verizon", "customer-service" }}, "message":" hate verizon the customer-service is horrible:("}
-{"message-id": 733, "author-id": 236, "timestamp":datetime("2010-04-18T01:32:47"), "in-response-to": 1754, "sender-location":point("28.67,80.61"), "tags":{{"motorola", "customization" }}, "message":" can't stand motorola the customization is OMG"}
-{"message-id": 734, "author-id": 237, "timestamp":datetime("2014-02-26T02:04:03"), "in-response-to": 1320, "sender-location":point("31.77,72.81"), "tags":{{"iphone", "customer-service" }}, "message":" like iphone the customer-service is amazing"}
-{"message-id": 735, "author-id": 238, "timestamp":datetime("2009-09-12T14:18:27"), "in-response-to": 2478, "sender-location":point("46.67,76.85"), "tags":{{"sprint", "signal" }}, "message":" love sprint its signal is awesome"}
-{"message-id": 736, "author-id": 239, "timestamp":datetime("2011-12-11T19:01:44"), "in-response-to": 1544, "sender-location":point("27.69,66.37"), "tags":{{"at&t", "customization" }}, "message":" can't stand at&t its customization is horrible:("}
-{"message-id": 737, "author-id": 240, "timestamp":datetime("2010-06-28T09:00:11"), "in-response-to": 133, "sender-location":point("28.62,67.04"), "tags":{{"t-mobile", "reachability" }}, "message":" like t-mobile its reachability is awesome:)"}
-{"message-id": 738, "author-id": 241, "timestamp":datetime("2012-01-01T01:18:29"), "in-response-to": 1925, "sender-location":point("30.32,70.73"), "tags":{{"iphone", "signal" }}, "message":" love iphone its signal is amazing"}
-{"message-id": 739, "author-id": 242, "timestamp":datetime("2009-02-24T18:54:06"), "in-response-to": 1087, "sender-location":point("24.8,89.8"), "tags":{{"samsung", "voice-clarity" }}, "message":" like samsung the voice-clarity is awesome:)"}
-{"message-id": 740, "author-id": 243, "timestamp":datetime("2005-08-27T16:10:28"), "in-response-to": 196, "sender-location":point("40.55,75.08"), "tags":{{"verizon", "plan" }}, "message":" like verizon its plan is awesome:)"}
-{"message-id": 741, "author-id": 244, "timestamp":datetime("2009-10-19T02:37:41"), "in-response-to": 1092, "sender-location":point("36.91,79.26"), "tags":{{"verizon", "voicemail-service" }}, "message":" dislike verizon its voicemail-service is OMG:("}
-{"message-id": 742, "author-id": 245, "timestamp":datetime("2008-03-04T15:40:42"), "in-response-to": 599, "sender-location":point("40.75,85.52"), "tags":{{"t-mobile", "signal" }}, "message":" can't stand t-mobile the signal is bad"}
-{"message-id": 743, "author-id": 246, "timestamp":datetime("2010-07-19T06:33:12"), "in-response-to": 2239, "sender-location":point("39.19,70.73"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" dislike t-mobile its shortcut-menu is OMG:("}
-{"message-id": 744, "author-id": 247, "timestamp":datetime("2005-08-04T16:27:18"), "in-response-to": 312, "sender-location":point("30.48,75.59"), "tags":{{"iphone", "signal" }}, "message":" hate iphone its signal is horrible:("}
-{"message-id": 745, "author-id": 248, "timestamp":datetime("2007-07-20T03:51:29"), "in-response-to": 395, "sender-location":point("28.75,78.83"), "tags":{{"motorola", "customization" }}, "message":" can't stand motorola the customization is horrible:("}
-{"message-id": 746, "author-id": 249, "timestamp":datetime("2005-10-07T13:00:00"), "in-response-to": 1234, "sender-location":point("38.54,73.67"), "tags":{{"at&t", "reachability" }}, "message":" like at&t the reachability is amazing:)"}
-{"message-id": 747, "author-id": 250, "timestamp":datetime("2012-07-03T02:57:31"), "in-response-to": 3184, "sender-location":point("24.54,94.45"), "tags":{{"samsung", "network" }}, "message":" love samsung the network is amazing"}
-{"message-id": 748, "author-id": 251, "timestamp":datetime("2007-11-16T04:47:15"), "in-response-to": 1829, "sender-location":point("33.1,94.39"), "tags":{{"sprint", "voice-command" }}, "message":" love sprint the voice-command is mind-blowing"}
-{"message-id": 749, "author-id": 252, "timestamp":datetime("2006-05-04T13:09:14"), "in-response-to": 2400, "sender-location":point("36.37,93.04"), "tags":{{"iphone", "shortcut-menu" }}, "message":" dislike iphone its shortcut-menu is horrible"}
-{"message-id": 750, "author-id": 253, "timestamp":datetime("2009-05-24T10:42:10"), "in-response-to": 1580, "sender-location":point("35.26,83.39"), "tags":{{"iphone", "3G" }}, "message":" hate iphone its 3G is bad"}
-{"message-id": 751, "author-id": 254, "timestamp":datetime("2011-10-25T06:12:01"), "in-response-to": 104, "sender-location":point("29.21,69.04"), "tags":{{"t-mobile", "reachability" }}, "message":" hate t-mobile its reachability is OMG:("}
-{"message-id": 752, "author-id": 255, "timestamp":datetime("2006-12-09T01:54:04"), "in-response-to": 2293, "sender-location":point("24.9,79.8"), "tags":{{"sprint", "voice-command" }}, "message":" like sprint the voice-command is amazing:)"}
-{"message-id": 753, "author-id": 256, "timestamp":datetime("2006-07-10T05:39:37"), "in-response-to": 700, "sender-location":point("29.83,75.41"), "tags":{{"motorola", "customization" }}, "message":" dislike motorola the customization is bad:("}
-{"message-id": 754, "author-id": 257, "timestamp":datetime("2005-09-12T13:52:34"), "in-response-to": 2349, "sender-location":point("27.15,83.79"), "tags":{{"sprint", "reachability" }}, "message":" can't stand sprint the reachability is horrible:("}
-{"message-id": 755, "author-id": 258, "timestamp":datetime("2009-11-07T02:38:17"), "in-response-to": 2364, "sender-location":point("34.14,75.01"), "tags":{{"at&t", "reachability" }}, "message":" dislike at&t its reachability is terrible"}
-{"message-id": 756, "author-id": 259, "timestamp":datetime("2012-08-04T18:47:46"), "in-response-to": 438, "sender-location":point("29.24,89.65"), "tags":{{"verizon", "3G" }}, "message":" can't stand verizon its 3G is bad"}
-{"message-id": 757, "author-id": 260, "timestamp":datetime("2006-06-22T05:06:20"), "in-response-to": 1066, "sender-location":point("25.45,82.31"), "tags":{{"t-mobile", "customization" }}, "message":" love t-mobile the customization is mind-blowing:)"}
-{"message-id": 758, "author-id": 261, "timestamp":datetime("2012-09-02T22:13:37"), "in-response-to": 2547, "sender-location":point("33.7,77.77"), "tags":{{"samsung", "wireless" }}, "message":" dislike samsung its wireless is horrible:("}
-{"message-id": 759, "author-id": 262, "timestamp":datetime("2011-02-19T04:45:08"), "in-response-to": 927, "sender-location":point("33.0,70.28"), "tags":{{"t-mobile", "speed" }}, "message":" love t-mobile its speed is awesome"}
-{"message-id": 760, "author-id": 263, "timestamp":datetime("2008-01-15T03:13:44"), "in-response-to": 2031, "sender-location":point("32.57,90.26"), "tags":{{"samsung", "voice-command" }}, "message":" can't stand samsung the voice-command is terrible"}
-{"message-id": 761, "author-id": 264, "timestamp":datetime("2012-03-10T11:38:39"), "in-response-to": 1949, "sender-location":point("33.12,92.05"), "tags":{{"samsung", "platform" }}, "message":" like samsung the platform is amazing"}
-{"message-id": 762, "author-id": 265, "timestamp":datetime("2010-08-14T20:05:57"), "in-response-to": 1978, "sender-location":point("40.51,94.52"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" dislike t-mobile the voice-clarity is OMG"}
-{"message-id": 763, "author-id": 266, "timestamp":datetime("2006-05-25T04:30:44"), "in-response-to": 2434, "sender-location":point("32.36,78.69"), "tags":{{"samsung", "customization" }}, "message":" dislike samsung its customization is OMG:("}
-{"message-id": 764, "author-id": 267, "timestamp":datetime("2009-03-08T14:52:34"), "in-response-to": 1595, "sender-location":point("34.33,90.64"), "tags":{{"iphone", "voice-clarity" }}, "message":" dislike iphone the voice-clarity is terrible"}
-{"message-id": 765, "author-id": 268, "timestamp":datetime("2013-04-12T00:14:18"), "in-response-to": 1139, "sender-location":point("44.0,92.82"), "tags":{{"verizon", "platform" }}, "message":" love verizon its platform is awesome"}
-{"message-id": 766, "author-id": 269, "timestamp":datetime("2013-06-10T07:41:15"), "in-response-to": 455, "sender-location":point("46.75,82.3"), "tags":{{"samsung", "network" }}, "message":" love samsung the network is awesome"}
-{"message-id": 767, "author-id": 270, "timestamp":datetime("2007-02-16T18:16:34"), "in-response-to": 2201, "sender-location":point("44.13,75.81"), "tags":{{"samsung", "reachability" }}, "message":" love samsung its reachability is awesome:)"}
-{"message-id": 768, "author-id": 271, "timestamp":datetime("2013-06-07T09:29:39"), "in-response-to": 1821, "sender-location":point("46.19,67.92"), "tags":{{"at&t", "signal" }}, "message":" like at&t its signal is amazing:)"}
-{"message-id": 769, "author-id": 272, "timestamp":datetime("2008-03-13T09:42:24"), "in-response-to": 1508, "sender-location":point("39.1,70.85"), "tags":{{"t-mobile", "wireless" }}, "message":" like t-mobile the wireless is good:)"}
-{"message-id": 770, "author-id": 273, "timestamp":datetime("2005-03-07T07:20:46"), "in-response-to": 2616, "sender-location":point("34.06,86.46"), "tags":{{"t-mobile", "customization" }}, "message":" like t-mobile its customization is good:)"}
-{"message-id": 771, "author-id": 274, "timestamp":datetime("2006-06-05T21:52:29"), "in-response-to": 2939, "sender-location":point("31.1,67.09"), "tags":{{"at&t", "customization" }}, "message":" dislike at&t its customization is OMG:("}
-{"message-id": 772, "author-id": 275, "timestamp":datetime("2010-04-26T05:29:27"), "in-response-to": 2717, "sender-location":point("44.23,76.61"), "tags":{{"t-mobile", "touch-screen" }}, "message":" love t-mobile the touch-screen is good:)"}
-{"message-id": 773, "author-id": 276, "timestamp":datetime("2014-01-07T00:53:40"), "in-response-to": 647, "sender-location":point("42.53,88.98"), "tags":{{"iphone", "shortcut-menu" }}, "message":" dislike iphone its shortcut-menu is bad"}
-{"message-id": 774, "author-id": 277, "timestamp":datetime("2014-06-28T02:35:25"), "in-response-to": 261, "sender-location":point("39.37,86.1"), "tags":{{"sprint", "customer-service" }}, "message":" love sprint the customer-service is good"}
-{"message-id": 775, "author-id": 278, "timestamp":datetime("2009-03-01T13:07:00"), "in-response-to": 879, "sender-location":point("44.1,70.88"), "tags":{{"iphone", "voice-command" }}, "message":" can't stand iphone the voice-command is OMG:("}
-{"message-id": 776, "author-id": 279, "timestamp":datetime("2007-03-11T16:09:56"), "in-response-to": 2624, "sender-location":point("43.78,85.82"), "tags":{{"samsung", "customer-service" }}, "message":" love samsung the customer-service is awesome:)"}
-{"message-id": 777, "author-id": 280, "timestamp":datetime("2012-06-03T11:36:59"), "in-response-to": 763, "sender-location":point("37.96,67.5"), "tags":{{"iphone", "touch-screen" }}, "message":" can't stand iphone its touch-screen is OMG:("}
-{"message-id": 778, "author-id": 281, "timestamp":datetime("2011-04-05T17:07:36"), "in-response-to": 559, "sender-location":point("27.08,72.05"), "tags":{{"sprint", "shortcut-menu" }}, "message":" love sprint its shortcut-menu is good:)"}
-{"message-id": 779, "author-id": 282, "timestamp":datetime("2014-03-02T17:31:55"), "in-response-to": 2380, "sender-location":point("36.74,86.25"), "tags":{{"sprint", "3G" }}, "message":" hate sprint its 3G is OMG:("}
-{"message-id": 780, "author-id": 283, "timestamp":datetime("2005-04-23T18:39:28"), "in-response-to": 859, "sender-location":point("35.25,71.25"), "tags":{{"at&t", "customization" }}, "message":" dislike at&t its customization is bad:("}
-{"message-id": 781, "author-id": 284, "timestamp":datetime("2013-10-26T02:49:19"), "in-response-to": 26, "sender-location":point("27.25,93.95"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" hate t-mobile its shortcut-menu is bad:("}
-{"message-id": 782, "author-id": 285, "timestamp":datetime("2012-12-28T02:41:23"), "in-response-to": 1749, "sender-location":point("33.68,84.74"), "tags":{{"at&t", "voice-command" }}, "message":" like at&t its voice-command is good:)"}
-{"message-id": 783, "author-id": 286, "timestamp":datetime("2005-04-01T09:56:09"), "in-response-to": 1954, "sender-location":point("39.46,89.41"), "tags":{{"iphone", "network" }}, "message":" love iphone its network is good"}
-{"message-id": 784, "author-id": 287, "timestamp":datetime("2005-12-28T03:49:05"), "in-response-to": 1414, "sender-location":point("38.31,83.29"), "tags":{{"samsung", "voice-clarity" }}, "message":" hate samsung its voice-clarity is bad"}
-{"message-id": 785, "author-id": 288, "timestamp":datetime("2008-10-19T05:40:16"), "in-response-to": 3173, "sender-location":point("39.86,76.23"), "tags":{{"verizon", "speed" }}, "message":" can't stand verizon the speed is terrible:("}
-{"message-id": 786, "author-id": 289, "timestamp":datetime("2014-02-10T22:21:33"), "in-response-to": 1994, "sender-location":point("32.53,90.14"), "tags":{{"t-mobile", "platform" }}, "message":" dislike t-mobile its platform is OMG"}
-{"message-id": 787, "author-id": 290, "timestamp":datetime("2008-12-05T12:18:41"), "in-response-to": 3033, "sender-location":point("25.88,97.6"), "tags":{{"at&t", "signal" }}, "message":" can't stand at&t the signal is OMG:("}
-{"message-id": 788, "author-id": 291, "timestamp":datetime("2010-01-16T18:04:10"), "in-response-to": 1002, "sender-location":point("39.06,77.31"), "tags":{{"verizon", "voice-command" }}, "message":" hate verizon the voice-command is bad:("}
-{"message-id": 789, "author-id": 292, "timestamp":datetime("2012-01-18T18:20:05"), "in-response-to": 1961, "sender-location":point("28.83,66.6"), "tags":{{"sprint", "voicemail-service" }}, "message":" hate sprint the voicemail-service is terrible:("}
-{"message-id": 790, "author-id": 293, "timestamp":datetime("2007-05-02T20:14:37"), "in-response-to": 1814, "sender-location":point("47.52,93.24"), "tags":{{"motorola", "reachability" }}, "message":" love motorola its reachability is good:)"}
-{"message-id": 791, "author-id": 294, "timestamp":datetime("2014-08-13T02:28:05"), "in-response-to": 159, "sender-location":point("27.7,83.0"), "tags":{{"t-mobile", "platform" }}, "message":" can't stand t-mobile its platform is OMG:("}
-{"message-id": 792, "author-id": 295, "timestamp":datetime("2007-05-27T14:45:39"), "in-response-to": 1149, "sender-location":point("29.42,91.47"), "tags":{{"at&t", "network" }}, "message":" love at&t its network is mind-blowing"}
-{"message-id": 793, "author-id": 296, "timestamp":datetime("2013-08-02T18:46:07"), "in-response-to": 3088, "sender-location":point("45.77,94.5"), "tags":{{"samsung", "voice-clarity" }}, "message":" love samsung its voice-clarity is mind-blowing:)"}
-{"message-id": 794, "author-id": 297, "timestamp":datetime("2014-06-16T03:50:50"), "in-response-to": 1709, "sender-location":point("42.0,81.91"), "tags":{{"motorola", "reachability" }}, "message":" love motorola the reachability is amazing"}
-{"message-id": 795, "author-id": 298, "timestamp":datetime("2006-09-25T02:34:45"), "in-response-to": 2316, "sender-location":point("48.19,84.19"), "tags":{{"motorola", "shortcut-menu" }}, "message":" can't stand motorola its shortcut-menu is bad"}
-{"message-id": 796, "author-id": 299, "timestamp":datetime("2010-09-19T16:34:20"), "in-response-to": 788, "sender-location":point("39.0,69.51"), "tags":{{"at&t", "3G" }}, "message":" can't stand at&t the 3G is horrible"}
-{"message-id": 797, "author-id": 300, "timestamp":datetime("2013-06-19T20:39:08"), "in-response-to": 2232, "sender-location":point("28.19,79.38"), "tags":{{"motorola", "shortcut-menu" }}, "message":" can't stand motorola the shortcut-menu is terrible:("}
-{"message-id": 798, "author-id": 301, "timestamp":datetime("2014-06-10T11:11:10"), "in-response-to": 2421, "sender-location":point("35.76,68.26"), "tags":{{"verizon", "3G" }}, "message":" love verizon its 3G is awesome:)"}
-{"message-id": 799, "author-id": 302, "timestamp":datetime("2007-01-05T04:39:56"), "in-response-to": 2455, "sender-location":point("35.77,72.12"), "tags":{{"verizon", "shortcut-menu" }}, "message":" love verizon its shortcut-menu is awesome"}
-{"message-id": 800, "author-id": 303, "timestamp":datetime("2013-02-26T22:18:41"), "in-response-to": 162, "sender-location":point("38.23,67.21"), "tags":{{"verizon", "signal" }}, "message":" like verizon its signal is good"}
-{"message-id": 801, "author-id": 304, "timestamp":datetime("2006-03-15T16:57:16"), "in-response-to": 273, "sender-location":point("42.68,94.36"), "tags":{{"sprint", "customer-service" }}, "message":" can't stand sprint its customer-service is horrible:("}
-{"message-id": 802, "author-id": 305, "timestamp":datetime("2008-11-05T03:46:26"), "in-response-to": 1344, "sender-location":point("40.91,75.38"), "tags":{{"iphone", "platform" }}, "message":" can't stand iphone the platform is OMG:("}
-{"message-id": 803, "author-id": 306, "timestamp":datetime("2009-01-22T07:43:31"), "in-response-to": 2091, "sender-location":point("44.79,83.69"), "tags":{{"sprint", "touch-screen" }}, "message":" dislike sprint its touch-screen is bad:("}
-{"message-id": 804, "author-id": 307, "timestamp":datetime("2008-03-22T16:52:44"), "in-response-to": 772, "sender-location":point("38.25,74.05"), "tags":{{"verizon", "customization" }}, "message":" like verizon the customization is amazing:)"}
-{"message-id": 805, "author-id": 308, "timestamp":datetime("2006-09-12T20:38:03"), "in-response-to": 330, "sender-location":point("43.06,80.45"), "tags":{{"motorola", "network" }}, "message":" love motorola the network is amazing"}
-{"message-id": 806, "author-id": 309, "timestamp":datetime("2013-09-08T03:50:15"), "in-response-to": 3118, "sender-location":point("26.5,89.15"), "tags":{{"at&t", "platform" }}, "message":" love at&t its platform is good"}
-{"message-id": 807, "author-id": 310, "timestamp":datetime("2009-01-24T03:37:30"), "in-response-to": 351, "sender-location":point("38.76,90.86"), "tags":{{"iphone", "network" }}, "message":" can't stand iphone its network is bad:("}
-{"message-id": 808, "author-id": 311, "timestamp":datetime("2014-02-23T06:58:53"), "in-response-to": 473, "sender-location":point("27.82,78.36"), "tags":{{"verizon", "signal" }}, "message":" like verizon the signal is mind-blowing:)"}
-{"message-id": 809, "author-id": 312, "timestamp":datetime("2014-02-07T01:47:15"), "in-response-to": 2041, "sender-location":point("30.99,91.28"), "tags":{{"samsung", "reachability" }}, "message":" love samsung its reachability is awesome"}
-{"message-id": 810, "author-id": 313, "timestamp":datetime("2014-05-07T11:22:51"), "in-response-to": 2668, "sender-location":point("25.24,70.58"), "tags":{{"samsung", "3G" }}, "message":" love samsung its 3G is good"}
-{"message-id": 811, "author-id": 314, "timestamp":datetime("2014-03-06T23:48:17"), "in-response-to": 270, "sender-location":point("28.21,94.8"), "tags":{{"sprint", "3G" }}, "message":" can't stand sprint the 3G is OMG:("}
-{"message-id": 812, "author-id": 315, "timestamp":datetime("2012-07-11T23:31:24"), "in-response-to": 3019, "sender-location":point("40.71,68.49"), "tags":{{"iphone", "reachability" }}, "message":" hate iphone the reachability is terrible"}
-{"message-id": 813, "author-id": 316, "timestamp":datetime("2005-05-17T14:45:10"), "in-response-to": 1078, "sender-location":point("26.83,82.88"), "tags":{{"at&t", "network" }}, "message":" like at&t its network is awesome"}
-{"message-id": 814, "author-id": 317, "timestamp":datetime("2014-01-12T17:34:23"), "in-response-to": 1660, "sender-location":point("28.76,76.55"), "tags":{{"iphone", "voice-clarity" }}, "message":" love iphone the voice-clarity is good"}
-{"message-id": 815, "author-id": 318, "timestamp":datetime("2014-06-14T03:41:31"), "in-response-to": 2037, "sender-location":point("27.74,68.09"), "tags":{{"sprint", "voice-clarity" }}, "message":" hate sprint its voice-clarity is bad"}
-{"message-id": 816, "author-id": 319, "timestamp":datetime("2010-01-28T02:16:00"), "in-response-to": 2410, "sender-location":point("29.55,97.11"), "tags":{{"samsung", "network" }}, "message":" dislike samsung its network is OMG:("}
-{"message-id": 817, "author-id": 320, "timestamp":datetime("2007-06-01T11:58:01"), "in-response-to": 2014, "sender-location":point("48.19,72.35"), "tags":{{"motorola", "plan" }}, "message":" can't stand motorola the plan is terrible:("}
-{"message-id": 818, "author-id": 321, "timestamp":datetime("2014-08-29T06:57:06"), "in-response-to": 3155, "sender-location":point("27.37,82.27"), "tags":{{"sprint", "plan" }}, "message":" can't stand sprint the plan is bad:("}
-{"message-id": 819, "author-id": 322, "timestamp":datetime("2007-08-15T14:02:32"), "in-response-to": 2168, "sender-location":point("38.36,84.25"), "tags":{{"t-mobile", "wireless" }}, "message":" dislike t-mobile its wireless is horrible:("}
-{"message-id": 820, "author-id": 323, "timestamp":datetime("2009-06-12T16:29:36"), "in-response-to": 1288, "sender-location":point("40.44,95.2"), "tags":{{"sprint", "voicemail-service" }}, "message":" like sprint its voicemail-service is amazing:)"}
-{"message-id": 821, "author-id": 324, "timestamp":datetime("2009-11-27T14:23:57"), "in-response-to": 177, "sender-location":point("36.35,92.0"), "tags":{{"at&t", "signal" }}, "message":" can't stand at&t the signal is OMG"}
-{"message-id": 822, "author-id": 325, "timestamp":datetime("2010-06-10T08:35:19"), "in-response-to": 151, "sender-location":point("39.76,82.66"), "tags":{{"iphone", "customer-service" }}, "message":" love iphone its customer-service is amazing"}
-{"message-id": 823, "author-id": 326, "timestamp":datetime("2014-06-28T15:57:40"), "in-response-to": 1539, "sender-location":point("30.83,88.99"), "tags":{{"samsung", "speed" }}, "message":" hate samsung its speed is horrible"}
-{"message-id": 824, "author-id": 327, "timestamp":datetime("2007-07-15T07:49:29"), "in-response-to": 2667, "sender-location":point("34.73,78.66"), "tags":{{"verizon", "voicemail-service" }}, "message":" hate verizon its voicemail-service is bad:("}
-{"message-id": 825, "author-id": 328, "timestamp":datetime("2013-12-22T08:54:57"), "in-response-to": 11, "sender-location":point("27.56,93.73"), "tags":{{"iphone", "voice-clarity" }}, "message":" hate iphone the voice-clarity is OMG"}
-{"message-id": 826, "author-id": 329, "timestamp":datetime("2006-06-14T08:56:18"), "in-response-to": 1410, "sender-location":point("28.72,93.49"), "tags":{{"motorola", "platform" }}, "message":" love motorola its platform is good"}
-{"message-id": 827, "author-id": 330, "timestamp":datetime("2009-08-21T15:18:01"), "in-response-to": 3127, "sender-location":point("48.49,95.43"), "tags":{{"motorola", "signal" }}, "message":" like motorola its signal is good"}
-{"message-id": 828, "author-id": 331, "timestamp":datetime("2013-02-23T00:45:41"), "in-response-to": 3113, "sender-location":point("29.93,77.08"), "tags":{{"verizon", "voice-clarity" }}, "message":" dislike verizon its voice-clarity is OMG"}
-{"message-id": 829, "author-id": 332, "timestamp":datetime("2009-07-06T00:25:00"), "in-response-to": 1834, "sender-location":point("33.05,88.76"), "tags":{{"at&t", "reachability" }}, "message":" can't stand at&t its reachability is OMG"}
-{"message-id": 830, "author-id": 333, "timestamp":datetime("2007-05-10T21:53:27"), "in-response-to": 1684, "sender-location":point("28.68,82.8"), "tags":{{"iphone", "wireless" }}, "message":" like iphone the wireless is mind-blowing:)"}
-{"message-id": 831, "author-id": 334, "timestamp":datetime("2014-02-18T05:15:35"), "in-response-to": 2648, "sender-location":point("34.8,89.61"), "tags":{{"verizon", "touch-screen" }}, "message":" love verizon the touch-screen is amazing"}
-{"message-id": 832, "author-id": 335, "timestamp":datetime("2007-09-03T01:47:45"), "in-response-to": 2389, "sender-location":point("39.62,95.21"), "tags":{{"sprint", "touch-screen" }}, "message":" dislike sprint the touch-screen is bad"}
-{"message-id": 833, "author-id": 336, "timestamp":datetime("2009-09-01T05:53:31"), "in-response-to": 919, "sender-location":point("41.4,76.21"), "tags":{{"at&t", "3G" }}, "message":" like at&t the 3G is mind-blowing"}
-{"message-id": 834, "author-id": 337, "timestamp":datetime("2012-01-12T06:33:04"), "in-response-to": 2657, "sender-location":point("47.26,95.56"), "tags":{{"verizon", "plan" }}, "message":" like verizon its plan is good:)"}
-{"message-id": 835, "author-id": 338, "timestamp":datetime("2014-06-01T08:25:19"), "in-response-to": 129, "sender-location":point("45.79,84.04"), "tags":{{"verizon", "plan" }}, "message":" can't stand verizon the plan is OMG:("}
-{"message-id": 836, "author-id": 339, "timestamp":datetime("2006-05-02T10:15:27"), "in-response-to": 1777, "sender-location":point("27.62,66.51"), "tags":{{"samsung", "plan" }}, "message":" love samsung its plan is good:)"}
-{"message-id": 837, "author-id": 340, "timestamp":datetime("2012-04-05T23:47:59"), "in-response-to": 721, "sender-location":point("33.97,87.93"), "tags":{{"verizon", "signal" }}, "message":" love verizon the signal is mind-blowing"}
-{"message-id": 838, "author-id": 341, "timestamp":datetime("2014-06-01T11:17:54"), "in-response-to": 3251, "sender-location":point("44.37,95.69"), "tags":{{"t-mobile", "speed" }}, "message":" love t-mobile the speed is awesome"}
-{"message-id": 839, "author-id": 342, "timestamp":datetime("2013-05-23T23:31:06"), "in-response-to": 2728, "sender-location":point("35.56,81.82"), "tags":{{"samsung", "voicemail-service" }}, "message":" dislike samsung its voicemail-service is terrible:("}
-{"message-id": 840, "author-id": 343, "timestamp":datetime("2008-11-19T02:17:36"), "in-response-to": 122, "sender-location":point("46.72,89.73"), "tags":{{"sprint", "wireless" }}, "message":" hate sprint the wireless is horrible"}
-{"message-id": 841, "author-id": 344, "timestamp":datetime("2007-01-11T22:25:19"), "in-response-to": 1552, "sender-location":point("30.81,86.72"), "tags":{{"t-mobile", "platform" }}, "message":" love t-mobile the platform is amazing:)"}
-{"message-id": 842, "author-id": 345, "timestamp":datetime("2012-08-26T11:54:16"), "in-response-to": 2735, "sender-location":point("37.99,67.49"), "tags":{{"at&t", "voice-command" }}, "message":" dislike at&t its voice-command is terrible:("}
-{"message-id": 843, "author-id": 346, "timestamp":datetime("2006-03-06T11:14:30"), "in-response-to": 1555, "sender-location":point("43.42,69.13"), "tags":{{"at&t", "signal" }}, "message":" hate at&t its signal is bad"}
-{"message-id": 844, "author-id": 347, "timestamp":datetime("2009-01-20T02:12:34"), "in-response-to": 2577, "sender-location":point("34.31,90.52"), "tags":{{"iphone", "network" }}, "message":" can't stand iphone its network is OMG"}
-{"message-id": 845, "author-id": 348, "timestamp":datetime("2006-07-08T17:41:35"), "in-response-to": 2562, "sender-location":point("46.44,68.63"), "tags":{{"samsung", "touch-screen" }}, "message":" love samsung the touch-screen is amazing:)"}
-{"message-id": 846, "author-id": 349, "timestamp":datetime("2014-01-21T22:22:49"), "in-response-to": 2452, "sender-location":point("36.75,80.7"), "tags":{{"sprint", "platform" }}, "message":" like sprint the platform is mind-blowing:)"}
-{"message-id": 847, "author-id": 350, "timestamp":datetime("2005-04-27T03:07:24"), "in-response-to": 1386, "sender-location":point("39.99,86.6"), "tags":{{"at&t", "voice-clarity" }}, "message":" love at&t its voice-clarity is good"}
-{"message-id": 848, "author-id": 351, "timestamp":datetime("2006-06-17T09:39:49"), "in-response-to": 2006, "sender-location":point("42.89,91.2"), "tags":{{"at&t", "customer-service" }}, "message":" love at&t its customer-service is mind-blowing"}
-{"message-id": 849, "author-id": 352, "timestamp":datetime("2006-06-15T07:20:21"), "in-response-to": 2938, "sender-location":point("26.15,95.38"), "tags":{{"at&t", "platform" }}, "message":" like at&t its platform is amazing"}
-{"message-id": 850, "author-id": 353, "timestamp":datetime("2014-04-12T04:22:06"), "in-response-to": 865, "sender-location":point("35.23,84.23"), "tags":{{"motorola", "voice-clarity" }}, "message":" love motorola the voice-clarity is mind-blowing:)"}
-{"message-id": 851, "author-id": 354, "timestamp":datetime("2013-03-25T21:12:30"), "in-response-to": 510, "sender-location":point("39.27,68.61"), "tags":{{"iphone", "signal" }}, "message":" like iphone the signal is awesome:)"}
-{"message-id": 852, "author-id": 355, "timestamp":datetime("2006-12-04T13:23:29"), "in-response-to": 728, "sender-location":point("36.2,93.03"), "tags":{{"samsung", "speed" }}, "message":" love samsung the speed is amazing:)"}
-{"message-id": 853, "author-id": 356, "timestamp":datetime("2013-12-24T08:11:43"), "in-response-to": 1682, "sender-location":point("27.97,82.7"), "tags":{{"t-mobile", "wireless" }}, "message":" can't stand t-mobile its wireless is bad:("}
-{"message-id": 854, "author-id": 357, "timestamp":datetime("2014-05-07T19:53:56"), "in-response-to": 2453, "sender-location":point("41.9,71.06"), "tags":{{"verizon", "shortcut-menu" }}, "message":" can't stand verizon the shortcut-menu is OMG:("}
-{"message-id": 855, "author-id": 358, "timestamp":datetime("2014-03-16T19:05:13"), "in-response-to": 727, "sender-location":point("42.82,86.48"), "tags":{{"iphone", "network" }}, "message":" love iphone the network is amazing"}
-{"message-id": 856, "author-id": 359, "timestamp":datetime("2006-04-03T15:50:49"), "in-response-to": 873, "sender-location":point("30.79,86.44"), "tags":{{"t-mobile", "voice-command" }}, "message":" like t-mobile its voice-command is mind-blowing:)"}
-{"message-id": 857, "author-id": 360, "timestamp":datetime("2007-01-02T20:59:41"), "in-response-to": 2801, "sender-location":point("31.33,92.02"), "tags":{{"motorola", "platform" }}, "message":" like motorola its platform is mind-blowing"}
-{"message-id": 858, "author-id": 361, "timestamp":datetime("2012-03-13T12:14:01"), "in-response-to": 3119, "sender-location":point("39.26,69.77"), "tags":{{"sprint", "reachability" }}, "message":" can't stand sprint its reachability is terrible:("}
-{"message-id": 859, "author-id": 362, "timestamp":datetime("2009-09-13T02:42:39"), "in-response-to": 509, "sender-location":point("30.41,84.74"), "tags":{{"verizon", "signal" }}, "message":" dislike verizon the signal is terrible"}
-{"message-id": 860, "author-id": 363, "timestamp":datetime("2014-04-16T06:44:29"), "in-response-to": 954, "sender-location":point("41.73,77.6"), "tags":{{"motorola", "touch-screen" }}, "message":" can't stand motorola the touch-screen is horrible"}
-{"message-id": 861, "author-id": 364, "timestamp":datetime("2008-10-05T01:24:59"), "in-response-to": 879, "sender-location":point("33.57,90.13"), "tags":{{"iphone", "3G" }}, "message":" hate iphone the 3G is bad"}
-{"message-id": 862, "author-id": 365, "timestamp":datetime("2013-06-16T13:52:54"), "in-response-to": 3105, "sender-location":point("33.54,90.69"), "tags":{{"iphone", "voice-clarity" }}, "message":" dislike iphone its voice-clarity is bad:("}
-{"message-id": 863, "author-id": 366, "timestamp":datetime("2012-07-11T04:19:54"), "in-response-to": 880, "sender-location":point("29.29,79.13"), "tags":{{"motorola", "network" }}, "message":" dislike motorola the network is horrible"}
-{"message-id": 864, "author-id": 367, "timestamp":datetime("2006-07-07T18:20:08"), "in-response-to": 1508, "sender-location":point("25.19,72.68"), "tags":{{"sprint", "platform" }}, "message":" dislike sprint the platform is horrible"}
-{"message-id": 865, "author-id": 368, "timestamp":datetime("2010-05-27T16:37:20"), "in-response-to": 2403, "sender-location":point("34.39,66.65"), "tags":{{"samsung", "signal" }}, "message":" hate samsung the signal is bad:("}
-{"message-id": 866, "author-id": 369, "timestamp":datetime("2012-03-15T15:05:01"), "in-response-to": 2983, "sender-location":point("31.0,91.45"), "tags":{{"at&t", "plan" }}, "message":" love at&t the plan is good:)"}
-{"message-id": 867, "author-id": 370, "timestamp":datetime("2008-06-19T15:45:37"), "in-response-to": 392, "sender-location":point("31.09,81.29"), "tags":{{"motorola", "customer-service" }}, "message":" like motorola the customer-service is mind-blowing:)"}
-{"message-id": 868, "author-id": 371, "timestamp":datetime("2012-08-07T18:48:53"), "in-response-to": 597, "sender-location":point("34.93,77.52"), "tags":{{"sprint", "customer-service" }}, "message":" can't stand sprint the customer-service is terrible"}
-{"message-id": 869, "author-id": 372, "timestamp":datetime("2005-06-14T00:05:19"), "in-response-to": 2029, "sender-location":point("48.83,79.61"), "tags":{{"sprint", "voice-clarity" }}, "message":" love sprint the voice-clarity is amazing"}
-{"message-id": 870, "author-id": 373, "timestamp":datetime("2012-10-18T01:01:53"), "in-response-to": 2733, "sender-location":point("42.67,70.51"), "tags":{{"sprint", "platform" }}, "message":" love sprint its platform is mind-blowing:)"}
-{"message-id": 871, "author-id": 374, "timestamp":datetime("2011-04-27T10:34:17"), "in-response-to": 843, "sender-location":point("35.83,75.16"), "tags":{{"motorola", "voice-command" }}, "message":" dislike motorola the voice-command is OMG:("}
-{"message-id": 872, "author-id": 375, "timestamp":datetime("2006-02-16T22:47:01"), "in-response-to": 642, "sender-location":point("41.05,69.52"), "tags":{{"verizon", "signal" }}, "message":" hate verizon its signal is horrible"}
-{"message-id": 873, "author-id": 376, "timestamp":datetime("2014-04-11T09:09:48"), "in-response-to": 1048, "sender-location":point("48.62,77.47"), "tags":{{"sprint", "voice-clarity" }}, "message":" love sprint its voice-clarity is amazing:)"}
-{"message-id": 874, "author-id": 377, "timestamp":datetime("2012-10-17T10:51:52"), "in-response-to": 1041, "sender-location":point("43.33,83.67"), "tags":{{"iphone", "speed" }}, "message":" like iphone the speed is awesome:)"}
-{"message-id": 875, "author-id": 378, "timestamp":datetime("2012-05-15T22:49:41"), "in-response-to": 1801, "sender-location":point("32.74,66.69"), "tags":{{"verizon", "voice-command" }}, "message":" hate verizon the voice-command is OMG:("}
-{"message-id": 876, "author-id": 379, "timestamp":datetime("2005-10-04T04:45:55"), "in-response-to": 1776, "sender-location":point("35.74,87.01"), "tags":{{"sprint", "voice-command" }}, "message":" can't stand sprint the voice-command is horrible:("}
-{"message-id": 877, "author-id": 380, "timestamp":datetime("2011-04-24T18:50:51"), "in-response-to": 72, "sender-location":point("42.95,78.09"), "tags":{{"samsung", "voicemail-service" }}, "message":" like samsung its voicemail-service is amazing:)"}
-{"message-id": 878, "author-id": 381, "timestamp":datetime("2005-11-26T02:11:02"), "in-response-to": 963, "sender-location":point("33.04,72.2"), "tags":{{"sprint", "voicemail-service" }}, "message":" love sprint its voicemail-service is awesome:)"}
-{"message-id": 879, "author-id": 382, "timestamp":datetime("2005-01-01T09:05:24"), "in-response-to": 267, "sender-location":point("24.64,75.13"), "tags":{{"motorola", "signal" }}, "message":" dislike motorola the signal is horrible:("}
-{"message-id": 880, "author-id": 383, "timestamp":datetime("2012-05-18T21:47:53"), "in-response-to": 1140, "sender-location":point("47.37,74.08"), "tags":{{"at&t", "network" }}, "message":" hate at&t the network is horrible"}
-{"message-id": 881, "author-id": 384, "timestamp":datetime("2011-11-10T02:30:11"), "in-response-to": 607, "sender-location":point("40.05,73.95"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" love t-mobile the shortcut-menu is amazing:)"}
-{"message-id": 882, "author-id": 385, "timestamp":datetime("2010-04-11T16:04:24"), "in-response-to": 2151, "sender-location":point("35.12,74.93"), "tags":{{"t-mobile", "signal" }}, "message":" like t-mobile the signal is good"}
-{"message-id": 883, "author-id": 386, "timestamp":datetime("2011-08-16T19:33:30"), "in-response-to": 2537, "sender-location":point("25.88,97.24"), "tags":{{"at&t", "voicemail-service" }}, "message":" like at&t the voicemail-service is mind-blowing"}
-{"message-id": 884, "author-id": 387, "timestamp":datetime("2010-01-25T17:41:24"), "in-response-to": 1735, "sender-location":point("33.14,72.21"), "tags":{{"at&t", "plan" }}, "message":" like at&t its plan is mind-blowing"}
-{"message-id": 885, "author-id": 388, "timestamp":datetime("2009-11-22T09:34:31"), "in-response-to": 1330, "sender-location":point("24.62,88.7"), "tags":{{"verizon", "shortcut-menu" }}, "message":" love verizon its shortcut-menu is good:)"}
-{"message-id": 886, "author-id": 389, "timestamp":datetime("2010-05-17T13:51:04"), "in-response-to": 1745, "sender-location":point("30.35,94.72"), "tags":{{"sprint", "wireless" }}, "message":" dislike sprint the wireless is bad"}
-{"message-id": 887, "author-id": 390, "timestamp":datetime("2007-03-04T13:35:26"), "in-response-to": 1526, "sender-location":point("31.12,86.11"), "tags":{{"samsung", "speed" }}, "message":" love samsung the speed is amazing"}
-{"message-id": 888, "author-id": 391, "timestamp":datetime("2005-08-05T06:07:12"), "in-response-to": 249, "sender-location":point("37.03,91.2"), "tags":{{"verizon", "plan" }}, "message":" like verizon its plan is mind-blowing"}
-{"message-id": 889, "author-id": 392, "timestamp":datetime("2006-10-07T14:13:52"), "in-response-to": 88, "sender-location":point("27.61,86.66"), "tags":{{"verizon", "wireless" }}, "message":" can't stand verizon the wireless is terrible:("}
-{"message-id": 890, "author-id": 393, "timestamp":datetime("2013-06-05T06:33:37"), "in-response-to": 2295, "sender-location":point("29.79,97.08"), "tags":{{"sprint", "voicemail-service" }}, "message":" like sprint the voicemail-service is mind-blowing"}
-{"message-id": 891, "author-id": 394, "timestamp":datetime("2005-09-18T20:43:00"), "in-response-to": 1903, "sender-location":point("42.52,86.95"), "tags":{{"t-mobile", "touch-screen" }}, "message":" like t-mobile the touch-screen is amazing:)"}
-{"message-id": 892, "author-id": 395, "timestamp":datetime("2010-03-17T04:16:59"), "in-response-to": 2011, "sender-location":point("44.99,97.31"), "tags":{{"sprint", "3G" }}, "message":" hate sprint the 3G is bad:("}
-{"message-id": 893, "author-id": 396, "timestamp":datetime("2009-08-21T17:55:44"), "in-response-to": 1799, "sender-location":point("43.15,72.04"), "tags":{{"motorola", "wireless" }}, "message":" hate motorola its wireless is horrible"}
-{"message-id": 894, "author-id": 397, "timestamp":datetime("2005-09-13T21:32:33"), "in-response-to": 2497, "sender-location":point("30.63,78.04"), "tags":{{"t-mobile", "reachability" }}, "message":" dislike t-mobile its reachability is terrible"}
-{"message-id": 895, "author-id": 398, "timestamp":datetime("2014-08-17T18:11:03"), "in-response-to": 822, "sender-location":point("41.24,87.72"), "tags":{{"iphone", "voice-clarity" }}, "message":" like iphone its voice-clarity is amazing:)"}
-{"message-id": 896, "author-id": 399, "timestamp":datetime("2008-07-28T18:46:37"), "in-response-to": 649, "sender-location":point("27.79,79.84"), "tags":{{"sprint", "customization" }}, "message":" like sprint the customization is mind-blowing"}
-{"message-id": 897, "author-id": 400, "timestamp":datetime("2010-08-19T10:30:07"), "in-response-to": 1810, "sender-location":point("28.57,74.92"), "tags":{{"samsung", "customization" }}, "message":" dislike samsung the customization is OMG"}
-{"message-id": 898, "author-id": 401, "timestamp":datetime("2005-10-07T23:21:53"), "in-response-to": 1340, "sender-location":point("35.52,68.53"), "tags":{{"verizon", "3G" }}, "message":" like verizon its 3G is awesome"}
-{"message-id": 899, "author-id": 402, "timestamp":datetime("2013-04-06T20:01:07"), "in-response-to": 6, "sender-location":point("36.89,90.73"), "tags":{{"iphone", "signal" }}, "message":" like iphone the signal is awesome"}
-{"message-id": 900, "author-id": 403, "timestamp":datetime("2013-03-20T01:48:58"), "in-response-to": 2708, "sender-location":point("48.99,81.99"), "tags":{{"motorola", "platform" }}, "message":" hate motorola its platform is OMG"}
-{"message-id": 901, "author-id": 404, "timestamp":datetime("2014-08-29T08:59:41"), "in-response-to": 1130, "sender-location":point("45.03,94.71"), "tags":{{"t-mobile", "3G" }}, "message":" hate t-mobile the 3G is bad:("}
-{"message-id": 902, "author-id": 405, "timestamp":datetime("2012-06-16T22:02:29"), "in-response-to": 1263, "sender-location":point("31.51,85.66"), "tags":{{"t-mobile", "network" }}, "message":" like t-mobile the network is mind-blowing"}
-{"message-id": 903, "author-id": 406, "timestamp":datetime("2006-02-27T03:46:47"), "in-response-to": 458, "sender-location":point("31.92,92.85"), "tags":{{"iphone", "reachability" }}, "message":" dislike iphone the reachability is OMG:("}
-{"message-id": 904, "author-id": 407, "timestamp":datetime("2005-06-25T23:27:33"), "in-response-to": 2027, "sender-location":point("31.21,97.85"), "tags":{{"samsung", "speed" }}, "message":" hate samsung its speed is OMG"}
-{"message-id": 905, "author-id": 408, "timestamp":datetime("2009-10-01T19:00:32"), "in-response-to": 853, "sender-location":point("31.13,75.68"), "tags":{{"sprint", "voicemail-service" }}, "message":" love sprint the voicemail-service is good:)"}
-{"message-id": 906, "author-id": 409, "timestamp":datetime("2012-02-05T16:20:34"), "in-response-to": 367, "sender-location":point("32.77,78.27"), "tags":{{"motorola", "3G" }}, "message":" love motorola the 3G is awesome:)"}
-{"message-id": 907, "author-id": 410, "timestamp":datetime("2011-10-16T15:52:11"), "in-response-to": 609, "sender-location":point("44.96,88.03"), "tags":{{"verizon", "network" }}, "message":" hate verizon the network is horrible"}
-{"message-id": 908, "author-id": 411, "timestamp":datetime("2007-09-18T05:47:54"), "in-response-to": 438, "sender-location":point("25.87,97.97"), "tags":{{"iphone", "customer-service" }}, "message":" hate iphone the customer-service is terrible:("}
-{"message-id": 909, "author-id": 412, "timestamp":datetime("2014-05-12T09:59:13"), "in-response-to": 2681, "sender-location":point("46.45,94.98"), "tags":{{"samsung", "voicemail-service" }}, "message":" hate samsung its voicemail-service is terrible"}
-{"message-id": 910, "author-id": 413, "timestamp":datetime("2007-12-08T12:49:50"), "in-response-to": 2983, "sender-location":point("40.76,89.96"), "tags":{{"verizon", "wireless" }}, "message":" like verizon its wireless is mind-blowing"}
-{"message-id": 911, "author-id": 414, "timestamp":datetime("2009-02-20T06:24:18"), "in-response-to": 2628, "sender-location":point("33.19,71.69"), "tags":{{"at&t", "signal" }}, "message":" love at&t the signal is awesome"}
-{"message-id": 912, "author-id": 415, "timestamp":datetime("2007-06-23T09:35:16"), "in-response-to": 599, "sender-location":point("35.77,85.54"), "tags":{{"t-mobile", "reachability" }}, "message":" hate t-mobile its reachability is bad:("}
-{"message-id": 913, "author-id": 416, "timestamp":datetime("2009-08-25T19:13:32"), "in-response-to": 2558, "sender-location":point("46.86,82.07"), "tags":{{"iphone", "wireless" }}, "message":" dislike iphone the wireless is OMG:("}
-{"message-id": 914, "author-id": 417, "timestamp":datetime("2011-01-07T12:26:32"), "in-response-to": 256, "sender-location":point("46.56,74.38"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" dislike t-mobile its voicemail-service is bad:("}
-{"message-id": 915, "author-id": 418, "timestamp":datetime("2010-07-07T16:31:44"), "in-response-to": 3124, "sender-location":point("48.4,82.49"), "tags":{{"sprint", "signal" }}, "message":" like sprint the signal is good"}
-{"message-id": 916, "author-id": 419, "timestamp":datetime("2008-01-23T11:32:54"), "in-response-to": 2221, "sender-location":point("42.39,71.37"), "tags":{{"at&t", "voice-clarity" }}, "message":" hate at&t the voice-clarity is OMG:("}
-{"message-id": 917, "author-id": 420, "timestamp":datetime("2006-12-13T16:07:58"), "in-response-to": 1293, "sender-location":point("41.86,67.53"), "tags":{{"sprint", "voice-command" }}, "message":" dislike sprint the voice-command is horrible:("}
-{"message-id": 918, "author-id": 421, "timestamp":datetime("2012-03-11T13:54:34"), "in-response-to": 1318, "sender-location":point("27.42,77.29"), "tags":{{"sprint", "speed" }}, "message":" love sprint the speed is mind-blowing:)"}
-{"message-id": 919, "author-id": 422, "timestamp":datetime("2014-01-28T05:04:40"), "in-response-to": 2094, "sender-location":point("30.81,97.82"), "tags":{{"sprint", "voice-clarity" }}, "message":" hate sprint its voice-clarity is horrible:("}
-{"message-id": 920, "author-id": 423, "timestamp":datetime("2014-01-26T02:44:37"), "in-response-to": 970, "sender-location":point("46.98,95.23"), "tags":{{"motorola", "shortcut-menu" }}, "message":" like motorola its shortcut-menu is mind-blowing"}
-{"message-id": 921, "author-id": 424, "timestamp":datetime("2005-01-12T15:55:33"), "in-response-to": 93, "sender-location":point("45.19,92.76"), "tags":{{"samsung", "voice-command" }}, "message":" hate samsung its voice-command is OMG:("}
-{"message-id": 922, "author-id": 425, "timestamp":datetime("2007-11-17T07:40:17"), "in-response-to": 532, "sender-location":point("24.86,89.46"), "tags":{{"iphone", "network" }}, "message":" hate iphone its network is terrible:("}
-{"message-id": 923, "author-id": 426, "timestamp":datetime("2005-11-12T21:44:15"), "in-response-to": 817, "sender-location":point("42.49,97.7"), "tags":{{"verizon", "plan" }}, "message":" can't stand verizon its plan is horrible"}
-{"message-id": 924, "author-id": 427, "timestamp":datetime("2006-03-27T23:08:47"), "in-response-to": 2681, "sender-location":point("41.27,85.64"), "tags":{{"sprint", "voicemail-service" }}, "message":" like sprint its voicemail-service is mind-blowing"}
-{"message-id": 925, "author-id": 428, "timestamp":datetime("2006-08-22T08:23:24"), "in-response-to": 3159, "sender-location":point("28.77,73.3"), "tags":{{"at&t", "speed" }}, "message":" love at&t its speed is good"}
-{"message-id": 926, "author-id": 429, "timestamp":datetime("2010-07-12T02:47:13"), "in-response-to": 2900, "sender-location":point("33.34,78.33"), "tags":{{"sprint", "network" }}, "message":" dislike sprint the network is bad:("}
-{"message-id": 927, "author-id": 430, "timestamp":datetime("2014-08-06T06:00:46"), "in-response-to": 1948, "sender-location":point("43.95,89.0"), "tags":{{"verizon", "reachability" }}, "message":" like verizon the reachability is mind-blowing"}
-{"message-id": 928, "author-id": 431, "timestamp":datetime("2012-05-18T09:33:13"), "in-response-to": 507, "sender-location":point("47.26,90.92"), "tags":{{"at&t", "signal" }}, "message":" can't stand at&t the signal is terrible:("}
-{"message-id": 929, "author-id": 432, "timestamp":datetime("2012-06-14T11:27:01"), "in-response-to": 767, "sender-location":point("24.33,68.05"), "tags":{{"verizon", "customer-service" }}, "message":" hate verizon the customer-service is terrible:("}
-{"message-id": 930, "author-id": 433, "timestamp":datetime("2012-09-19T14:09:43"), "in-response-to": 1676, "sender-location":point("30.71,81.83"), "tags":{{"at&t", "voice-clarity" }}, "message":" can't stand at&t its voice-clarity is terrible:("}
-{"message-id": 931, "author-id": 434, "timestamp":datetime("2006-09-22T08:57:46"), "in-response-to": 1644, "sender-location":point("43.84,67.63"), "tags":{{"iphone", "customization" }}, "message":" dislike iphone the customization is terrible:("}
-{"message-id": 932, "author-id": 435, "timestamp":datetime("2013-12-26T14:18:09"), "in-response-to": 1911, "sender-location":point("46.11,80.41"), "tags":{{"iphone", "shortcut-menu" }}, "message":" like iphone its shortcut-menu is good"}
-{"message-id": 933, "author-id": 436, "timestamp":datetime("2012-05-07T23:58:05"), "in-response-to": 96, "sender-location":point("29.06,75.99"), "tags":{{"motorola", "3G" }}, "message":" can't stand motorola its 3G is OMG:("}
-{"message-id": 934, "author-id": 437, "timestamp":datetime("2013-08-18T09:43:41"), "in-response-to": 1615, "sender-location":point("29.9,84.65"), "tags":{{"verizon", "speed" }}, "message":" hate verizon the speed is OMG:("}
-{"message-id": 935, "author-id": 438, "timestamp":datetime("2010-02-27T19:26:07"), "in-response-to": 1003, "sender-location":point("35.96,78.81"), "tags":{{"iphone", "touch-screen" }}, "message":" dislike iphone its touch-screen is OMG"}
-{"message-id": 936, "author-id": 439, "timestamp":datetime("2012-02-15T07:34:36"), "in-response-to": 181, "sender-location":point("47.47,75.01"), "tags":{{"sprint", "speed" }}, "message":" can't stand sprint the speed is horrible:("}
-{"message-id": 937, "author-id": 440, "timestamp":datetime("2012-06-06T03:53:35"), "in-response-to": 1232, "sender-location":point("26.71,88.19"), "tags":{{"t-mobile", "plan" }}, "message":" hate t-mobile the plan is horrible"}
-{"message-id": 938, "author-id": 441, "timestamp":datetime("2010-09-21T12:13:46"), "in-response-to": 1113, "sender-location":point("47.19,93.29"), "tags":{{"t-mobile", "speed" }}, "message":" love t-mobile its speed is good:)"}
-{"message-id": 939, "author-id": 442, "timestamp":datetime("2013-02-06T06:23:43"), "in-response-to": 3214, "sender-location":point("42.72,87.76"), "tags":{{"samsung", "reachability" }}, "message":" can't stand samsung the reachability is horrible:("}
-{"message-id": 940, "author-id": 443, "timestamp":datetime("2005-10-16T11:14:52"), "in-response-to": 1478, "sender-location":point("37.83,72.87"), "tags":{{"at&t", "voice-clarity" }}, "message":" dislike at&t its voice-clarity is bad:("}
-{"message-id": 941, "author-id": 444, "timestamp":datetime("2008-12-25T07:53:54"), "in-response-to": 2032, "sender-location":point("31.5,84.69"), "tags":{{"at&t", "customization" }}, "message":" can't stand at&t its customization is bad"}
-{"message-id": 942, "author-id": 445, "timestamp":datetime("2011-11-19T05:51:24"), "in-response-to": 3137, "sender-location":point("43.1,94.31"), "tags":{{"verizon", "voicemail-service" }}, "message":" hate verizon its voicemail-service is bad:("}
-{"message-id": 943, "author-id": 446, "timestamp":datetime("2006-08-10T09:23:43"), "in-response-to": 3085, "sender-location":point("48.44,95.59"), "tags":{{"iphone", "voice-command" }}, "message":" can't stand iphone the voice-command is OMG"}
-{"message-id": 944, "author-id": 447, "timestamp":datetime("2007-06-17T18:20:49"), "in-response-to": 2617, "sender-location":point("31.54,78.18"), "tags":{{"sprint", "touch-screen" }}, "message":" can't stand sprint its touch-screen is horrible:("}
-{"message-id": 945, "author-id": 448, "timestamp":datetime("2008-02-09T11:36:59"), "in-response-to": 3072, "sender-location":point("37.89,96.01"), "tags":{{"samsung", "customization" }}, "message":" hate samsung its customization is OMG"}
-{"message-id": 946, "author-id": 449, "timestamp":datetime("2007-05-04T21:01:20"), "in-response-to": 1447, "sender-location":point("24.98,96.69"), "tags":{{"t-mobile", "touch-screen" }}, "message":" dislike t-mobile the touch-screen is OMG:("}
-{"message-id": 947, "author-id": 450, "timestamp":datetime("2007-09-07T11:38:17"), "in-response-to": 2858, "sender-location":point("43.46,80.8"), "tags":{{"verizon", "voice-command" }}, "message":" love verizon its voice-command is amazing"}
-{"message-id": 948, "author-id": 451, "timestamp":datetime("2011-03-21T11:32:27"), "in-response-to": 364, "sender-location":point("30.39,86.96"), "tags":{{"sprint", "plan" }}, "message":" like sprint the plan is awesome"}
-{"message-id": 949, "author-id": 452, "timestamp":datetime("2013-05-08T13:16:32"), "in-response-to": 1156, "sender-location":point("48.16,78.07"), "tags":{{"samsung", "reachability" }}, "message":" can't stand samsung the reachability is horrible"}
-{"message-id": 950, "author-id": 453, "timestamp":datetime("2009-02-05T19:53:10"), "in-response-to": 3083, "sender-location":point("32.28,80.37"), "tags":{{"samsung", "3G" }}, "message":" love samsung the 3G is awesome:)"}
-{"message-id": 951, "author-id": 454, "timestamp":datetime("2014-03-01T12:59:06"), "in-response-to": 679, "sender-location":point("38.4,70.54"), "tags":{{"at&t", "shortcut-menu" }}, "message":" dislike at&t its shortcut-menu is horrible:("}
-{"message-id": 952, "author-id": 455, "timestamp":datetime("2007-10-08T06:02:29"), "in-response-to": 2952, "sender-location":point("43.24,73.24"), "tags":{{"t-mobile", "3G" }}, "message":" love t-mobile its 3G is awesome:)"}
-{"message-id": 953, "author-id": 456, "timestamp":datetime("2006-02-18T22:30:05"), "in-response-to": 40, "sender-location":point("38.96,87.65"), "tags":{{"samsung", "reachability" }}, "message":" dislike samsung its reachability is bad:("}
-{"message-id": 954, "author-id": 457, "timestamp":datetime("2006-11-10T14:32:59"), "in-response-to": 2181, "sender-location":point("44.0,80.33"), "tags":{{"sprint", "speed" }}, "message":" can't stand sprint the speed is horrible"}
-{"message-id": 955, "author-id": 458, "timestamp":datetime("2009-07-18T19:18:56"), "in-response-to": 472, "sender-location":point("36.89,81.92"), "tags":{{"sprint", "platform" }}, "message":" love sprint its platform is good:)"}
-{"message-id": 956, "author-id": 459, "timestamp":datetime("2011-02-09T01:36:30"), "in-response-to": 2542, "sender-location":point("27.07,90.19"), "tags":{{"motorola", "network" }}, "message":" like motorola its network is amazing"}
-{"message-id": 957, "author-id": 460, "timestamp":datetime("2007-03-23T05:31:58"), "in-response-to": 2934, "sender-location":point("27.2,89.82"), "tags":{{"sprint", "signal" }}, "message":" like sprint the signal is good"}
-{"message-id": 958, "author-id": 461, "timestamp":datetime("2008-03-26T06:24:44"), "in-response-to": 3191, "sender-location":point("30.67,82.94"), "tags":{{"sprint", "voice-command" }}, "message":" can't stand sprint its voice-command is horrible:("}
-{"message-id": 959, "author-id": 462, "timestamp":datetime("2011-07-27T08:17:32"), "in-response-to": 747, "sender-location":point("41.59,91.56"), "tags":{{"samsung", "voicemail-service" }}, "message":" love samsung the voicemail-service is mind-blowing"}
-{"message-id": 960, "author-id": 463, "timestamp":datetime("2010-11-24T14:52:27"), "in-response-to": 1693, "sender-location":point("44.79,83.78"), "tags":{{"sprint", "voice-clarity" }}, "message":" love sprint its voice-clarity is mind-blowing"}
-{"message-id": 961, "author-id": 464, "timestamp":datetime("2014-07-10T02:29:50"), "in-response-to": 3249, "sender-location":point("40.31,76.2"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" can't stand t-mobile the voice-clarity is horrible:("}
-{"message-id": 962, "author-id": 465, "timestamp":datetime("2010-01-12T02:42:59"), "in-response-to": 1970, "sender-location":point("39.29,87.51"), "tags":{{"iphone", "platform" }}, "message":" like iphone the platform is mind-blowing:)"}
-{"message-id": 963, "author-id": 466, "timestamp":datetime("2009-08-18T10:22:24"), "in-response-to": 1115, "sender-location":point("45.17,69.44"), "tags":{{"iphone", "platform" }}, "message":" dislike iphone the platform is horrible:("}
-{"message-id": 964, "author-id": 467, "timestamp":datetime("2011-03-16T18:31:11"), "in-response-to": 1994, "sender-location":point("47.22,93.85"), "tags":{{"iphone", "customization" }}, "message":" love iphone its customization is amazing"}
-{"message-id": 965, "author-id": 468, "timestamp":datetime("2012-03-14T04:41:52"), "in-response-to": 1831, "sender-location":point("28.55,66.46"), "tags":{{"t-mobile", "network" }}, "message":" love t-mobile its network is awesome"}
-{"message-id": 966, "author-id": 469, "timestamp":datetime("2012-01-21T11:08:14"), "in-response-to": 16, "sender-location":point("43.15,89.93"), "tags":{{"t-mobile", "voice-command" }}, "message":" love t-mobile the voice-command is awesome:)"}
-{"message-id": 967, "author-id": 470, "timestamp":datetime("2010-04-09T01:22:13"), "in-response-to": 1516, "sender-location":point("27.06,94.19"), "tags":{{"t-mobile", "network" }}, "message":" can't stand t-mobile the network is OMG"}
-{"message-id": 968, "author-id": 471, "timestamp":datetime("2005-07-25T06:11:44"), "in-response-to": 2885, "sender-location":point("25.36,67.55"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" hate t-mobile its shortcut-menu is OMG:("}
-{"message-id": 969, "author-id": 472, "timestamp":datetime("2006-05-09T18:37:24"), "in-response-to": 2856, "sender-location":point("39.11,78.98"), "tags":{{"iphone", "speed" }}, "message":" love iphone the speed is mind-blowing:)"}
-{"message-id": 970, "author-id": 473, "timestamp":datetime("2005-06-10T06:59:17"), "in-response-to": 2272, "sender-location":point("42.44,80.66"), "tags":{{"iphone", "touch-screen" }}, "message":" dislike iphone the touch-screen is terrible:("}
-{"message-id": 971, "author-id": 474, "timestamp":datetime("2014-04-24T20:03:10"), "in-response-to": 2392, "sender-location":point("33.03,94.35"), "tags":{{"at&t", "network" }}, "message":" hate at&t the network is horrible"}
-{"message-id": 972, "author-id": 475, "timestamp":datetime("2011-02-14T17:08:24"), "in-response-to": 1449, "sender-location":point("48.38,87.12"), "tags":{{"iphone", "signal" }}, "message":" like iphone its signal is mind-blowing:)"}
-{"message-id": 973, "author-id": 476, "timestamp":datetime("2006-08-02T19:43:06"), "in-response-to": 1276, "sender-location":point("48.29,70.58"), "tags":{{"iphone", "speed" }}, "message":" love iphone its speed is awesome:)"}
-{"message-id": 974, "author-id": 477, "timestamp":datetime("2009-04-06T13:14:16"), "in-response-to": 1313, "sender-location":point("44.35,81.53"), "tags":{{"motorola", "voice-command" }}, "message":" can't stand motorola its voice-command is bad"}
-{"message-id": 975, "author-id": 478, "timestamp":datetime("2007-09-02T19:39:34"), "in-response-to": 333, "sender-location":point("36.76,83.23"), "tags":{{"motorola", "voice-clarity" }}, "message":" like motorola its voice-clarity is mind-blowing:)"}
-{"message-id": 976, "author-id": 479, "timestamp":datetime("2008-04-24T18:25:16"), "in-response-to": 553, "sender-location":point("31.31,67.45"), "tags":{{"at&t", "network" }}, "message":" like at&t the network is mind-blowing:)"}
-{"message-id": 977, "author-id": 480, "timestamp":datetime("2013-04-01T17:48:05"), "in-response-to": 2871, "sender-location":point("30.51,80.58"), "tags":{{"sprint", "customer-service" }}, "message":" love sprint the customer-service is awesome"}
-{"message-id": 978, "author-id": 481, "timestamp":datetime("2007-03-05T05:04:05"), "in-response-to": 1999, "sender-location":point("41.67,96.1"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" like t-mobile its shortcut-menu is amazing"}
-{"message-id": 979, "author-id": 482, "timestamp":datetime("2005-01-23T05:29:12"), "in-response-to": 1630, "sender-location":point("45.5,76.06"), "tags":{{"motorola", "voicemail-service" }}, "message":" love motorola its voicemail-service is good"}
-{"message-id": 980, "author-id": 483, "timestamp":datetime("2014-06-11T02:16:25"), "in-response-to": 252, "sender-location":point("44.33,88.82"), "tags":{{"motorola", "speed" }}, "message":" hate motorola the speed is bad"}
-{"message-id": 981, "author-id": 484, "timestamp":datetime("2006-11-23T09:37:52"), "in-response-to": 316, "sender-location":point("34.56,88.47"), "tags":{{"iphone", "customer-service" }}, "message":" can't stand iphone the customer-service is OMG:("}
-{"message-id": 982, "author-id": 485, "timestamp":datetime("2013-09-09T00:40:25"), "in-response-to": 2809, "sender-location":point("43.93,90.51"), "tags":{{"at&t", "voice-clarity" }}, "message":" love at&t the voice-clarity is amazing"}
-{"message-id": 983, "author-id": 486, "timestamp":datetime("2009-07-26T10:29:09"), "in-response-to": 2991, "sender-location":point("30.89,91.18"), "tags":{{"motorola", "voice-command" }}, "message":" love motorola its voice-command is awesome:)"}
-{"message-id": 984, "author-id": 487, "timestamp":datetime("2011-05-03T08:41:11"), "in-response-to": 829, "sender-location":point("37.39,91.0"), "tags":{{"at&t", "plan" }}, "message":" like at&t its plan is amazing"}
-{"message-id": 985, "author-id": 488, "timestamp":datetime("2010-10-09T04:05:48"), "in-response-to": 2641, "sender-location":point("24.95,73.17"), "tags":{{"samsung", "network" }}, "message":" can't stand samsung the network is OMG"}
-{"message-id": 986, "author-id": 489, "timestamp":datetime("2007-06-11T20:48:47"), "in-response-to": 3015, "sender-location":point("33.04,85.64"), "tags":{{"samsung", "voice-command" }}, "message":" can't stand samsung its voice-command is OMG:("}
-{"message-id": 987, "author-id": 490, "timestamp":datetime("2010-06-24T17:52:36"), "in-response-to": 697, "sender-location":point("48.75,95.93"), "tags":{{"at&t", "shortcut-menu" }}, "message":" love at&t its shortcut-menu is amazing:)"}
-{"message-id": 988, "author-id": 491, "timestamp":datetime("2005-03-28T02:37:04"), "in-response-to": 3057, "sender-location":point("25.28,81.37"), "tags":{{"sprint", "speed" }}, "message":" like sprint its speed is awesome:)"}
-{"message-id": 989, "author-id": 492, "timestamp":datetime("2011-04-04T01:43:22"), "in-response-to": 2312, "sender-location":point("26.27,73.93"), "tags":{{"iphone", "speed" }}, "message":" like iphone its speed is good:)"}
-{"message-id": 990, "author-id": 493, "timestamp":datetime("2011-02-25T09:37:46"), "in-response-to": 2904, "sender-location":point("48.19,93.84"), "tags":{{"sprint", "customization" }}, "message":" can't stand sprint its customization is bad:("}
-{"message-id": 991, "author-id": 494, "timestamp":datetime("2012-10-07T17:43:40"), "in-response-to": 1296, "sender-location":point("45.5,96.18"), "tags":{{"iphone", "speed" }}, "message":" dislike iphone the speed is terrible:("}
-{"message-id": 992, "author-id": 495, "timestamp":datetime("2009-06-15T01:12:04"), "in-response-to": 828, "sender-location":point("47.5,91.38"), "tags":{{"at&t", "shortcut-menu" }}, "message":" like at&t its shortcut-menu is good:)"}
-{"message-id": 993, "author-id": 496, "timestamp":datetime("2008-08-11T00:43:49"), "in-response-to": 3117, "sender-location":point("34.04,82.54"), "tags":{{"verizon", "customization" }}, "message":" hate verizon the customization is terrible:("}
-{"message-id": 994, "author-id": 497, "timestamp":datetime("2014-01-01T06:15:06"), "in-response-to": 964, "sender-location":point("42.36,95.5"), "tags":{{"samsung", "wireless" }}, "message":" dislike samsung the wireless is horrible:("}
-{"message-id": 995, "author-id": 498, "timestamp":datetime("2013-06-15T19:04:53"), "in-response-to": 1173, "sender-location":point("44.05,96.27"), "tags":{{"t-mobile", "plan" }}, "message":" dislike t-mobile its plan is bad"}
-{"message-id": 996, "author-id": 499, "timestamp":datetime("2008-09-15T04:09:19"), "in-response-to": 2702, "sender-location":point("45.67,73.03"), "tags":{{"sprint", "platform" }}, "message":" love sprint its platform is amazing:)"}
-{"message-id": 997, "author-id": 500, "timestamp":datetime("2010-06-02T07:01:57"), "in-response-to": 949, "sender-location":point("47.59,85.31"), "tags":{{"sprint", "voice-clarity" }}, "message":" can't stand sprint the voice-clarity is OMG"}
-{"message-id": 998, "author-id": 501, "timestamp":datetime("2014-01-24T19:42:19"), "in-response-to": 2079, "sender-location":point("45.38,89.97"), "tags":{{"iphone", "speed" }}, "message":" like iphone the speed is mind-blowing"}
-{"message-id": 999, "author-id": 502, "timestamp":datetime("2014-02-10T06:35:34"), "in-response-to": 905, "sender-location":point("34.02,97.15"), "tags":{{"motorola", "wireless" }}, "message":" can't stand motorola the wireless is OMG"}
-{"message-id": 1000, "author-id": 503, "timestamp":datetime("2007-03-20T11:19:04"), "in-response-to": 113, "sender-location":point("38.15,88.36"), "tags":{{"motorola", "voice-clarity" }}, "message":" dislike motorola its voice-clarity is OMG:("}
-{"message-id": 1001, "author-id": 504, "timestamp":datetime("2014-07-19T23:31:28"), "in-response-to": 1488, "sender-location":point("48.66,71.9"), "tags":{{"motorola", "touch-screen" }}, "message":" dislike motorola its touch-screen is OMG"}
-{"message-id": 1002, "author-id": 505, "timestamp":datetime("2006-02-04T15:22:47"), "in-response-to": 129, "sender-location":point("31.16,75.78"), "tags":{{"iphone", "3G" }}, "message":" hate iphone the 3G is OMG:("}
-{"message-id": 1003, "author-id": 506, "timestamp":datetime("2007-04-07T17:32:35"), "in-response-to": 809, "sender-location":point("24.57,89.41"), "tags":{{"samsung", "voice-command" }}, "message":" hate samsung the voice-command is OMG:("}
-{"message-id": 1004, "author-id": 507, "timestamp":datetime("2006-01-09T21:32:31"), "in-response-to": 243, "sender-location":point("47.34,69.75"), "tags":{{"iphone", "voicemail-service" }}, "message":" dislike iphone its voicemail-service is bad:("}
-{"message-id": 1005, "author-id": 508, "timestamp":datetime("2009-02-08T06:18:04"), "in-response-to": 1455, "sender-location":point("47.38,96.42"), "tags":{{"samsung", "wireless" }}, "message":" dislike samsung its wireless is horrible"}
-{"message-id": 1006, "author-id": 509, "timestamp":datetime("2006-09-01T02:01:23"), "in-response-to": 1978, "sender-location":point("43.79,68.44"), "tags":{{"sprint", "reachability" }}, "message":" like sprint its reachability is good:)"}
-{"message-id": 1007, "author-id": 510, "timestamp":datetime("2013-01-14T03:39:35"), "in-response-to": 2849, "sender-location":point("47.22,82.38"), "tags":{{"iphone", "customer-service" }}, "message":" hate iphone the customer-service is bad:("}
-{"message-id": 1008, "author-id": 511, "timestamp":datetime("2009-09-27T17:23:02"), "in-response-to": 527, "sender-location":point("38.81,82.31"), "tags":{{"samsung", "network" }}, "message":" hate samsung the network is bad:("}
-{"message-id": 1009, "author-id": 512, "timestamp":datetime("2006-07-06T14:09:41"), "in-response-to": 1495, "sender-location":point("29.79,91.41"), "tags":{{"samsung", "platform" }}, "message":" hate samsung its platform is horrible:("}
-{"message-id": 1010, "author-id": 513, "timestamp":datetime("2011-07-18T04:24:46"), "in-response-to": 1521, "sender-location":point("39.78,89.71"), "tags":{{"at&t", "network" }}, "message":" love at&t the network is good"}
-{"message-id": 1011, "author-id": 514, "timestamp":datetime("2011-04-16T13:17:34"), "in-response-to": 1381, "sender-location":point("34.38,77.86"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" love t-mobile its shortcut-menu is mind-blowing"}
-{"message-id": 1012, "author-id": 515, "timestamp":datetime("2007-03-06T00:48:03"), "in-response-to": 525, "sender-location":point("35.65,73.74"), "tags":{{"verizon", "voicemail-service" }}, "message":" like verizon the voicemail-service is good:)"}
-{"message-id": 1013, "author-id": 516, "timestamp":datetime("2008-08-03T04:55:51"), "in-response-to": 1312, "sender-location":point("39.39,70.86"), "tags":{{"verizon", "platform" }}, "message":" love verizon the platform is mind-blowing"}
-{"message-id": 1014, "author-id": 517, "timestamp":datetime("2013-09-28T19:57:03"), "in-response-to": 347, "sender-location":point("29.08,71.39"), "tags":{{"samsung", "speed" }}, "message":" hate samsung its speed is terrible:("}
-{"message-id": 1015, "author-id": 518, "timestamp":datetime("2005-09-12T14:53:40"), "in-response-to": 321, "sender-location":point("25.65,93.35"), "tags":{{"motorola", "3G" }}, "message":" love motorola its 3G is amazing:)"}
-{"message-id": 1016, "author-id": 519, "timestamp":datetime("2009-02-06T00:56:51"), "in-response-to": 730, "sender-location":point("34.5,66.34"), "tags":{{"t-mobile", "reachability" }}, "message":" like t-mobile its reachability is awesome"}
-{"message-id": 1017, "author-id": 520, "timestamp":datetime("2013-12-16T09:20:16"), "in-response-to": 3212, "sender-location":point("44.21,78.9"), "tags":{{"iphone", "voice-clarity" }}, "message":" like iphone the voice-clarity is good:)"}
-{"message-id": 1018, "author-id": 521, "timestamp":datetime("2005-11-01T08:29:46"), "in-response-to": 1810, "sender-location":point("31.19,86.29"), "tags":{{"motorola", "signal" }}, "message":" hate motorola its signal is OMG"}
-{"message-id": 1019, "author-id": 522, "timestamp":datetime("2009-12-15T21:55:27"), "in-response-to": 1689, "sender-location":point("24.92,66.96"), "tags":{{"motorola", "customization" }}, "message":" dislike motorola the customization is horrible:("}
-{"message-id": 1020, "author-id": 523, "timestamp":datetime("2009-07-19T09:11:16"), "in-response-to": 1864, "sender-location":point("35.08,68.98"), "tags":{{"motorola", "3G" }}, "message":" dislike motorola the 3G is horrible"}
-{"message-id": 1021, "author-id": 524, "timestamp":datetime("2008-04-18T11:48:10"), "in-response-to": 1888, "sender-location":point("40.47,94.74"), "tags":{{"at&t", "voicemail-service" }}, "message":" hate at&t the voicemail-service is bad:("}
-{"message-id": 1022, "author-id": 525, "timestamp":datetime("2006-08-05T02:54:46"), "in-response-to": 2140, "sender-location":point("42.94,80.57"), "tags":{{"verizon", "reachability" }}, "message":" can't stand verizon the reachability is horrible"}
-{"message-id": 1023, "author-id": 526, "timestamp":datetime("2008-03-27T01:33:55"), "in-response-to": 1065, "sender-location":point("31.8,76.66"), "tags":{{"sprint", "wireless" }}, "message":" love sprint the wireless is mind-blowing:)"}
-{"message-id": 1024, "author-id": 527, "timestamp":datetime("2011-08-02T11:56:39"), "in-response-to": 1556, "sender-location":point("29.36,87.01"), "tags":{{"iphone", "plan" }}, "message":" love iphone its plan is amazing"}
-{"message-id": 1025, "author-id": 528, "timestamp":datetime("2005-09-04T04:13:18"), "in-response-to": 2062, "sender-location":point("43.64,68.95"), "tags":{{"verizon", "touch-screen" }}, "message":" like verizon its touch-screen is amazing:)"}
-{"message-id": 1026, "author-id": 529, "timestamp":datetime("2013-02-19T16:17:00"), "in-response-to": 1410, "sender-location":point("47.35,84.0"), "tags":{{"t-mobile", "customization" }}, "message":" love t-mobile its customization is good:)"}
-{"message-id": 1027, "author-id": 530, "timestamp":datetime("2008-06-04T19:14:52"), "in-response-to": 1174, "sender-location":point("48.12,90.09"), "tags":{{"verizon", "voice-command" }}, "message":" dislike verizon the voice-command is terrible"}
-{"message-id": 1028, "author-id": 531, "timestamp":datetime("2009-09-02T21:04:05"), "in-response-to": 395, "sender-location":point("25.83,86.0"), "tags":{{"motorola", "voice-command" }}, "message":" can't stand motorola its voice-command is bad:("}
-{"message-id": 1029, "author-id": 532, "timestamp":datetime("2006-05-10T17:53:29"), "in-response-to": 776, "sender-location":point("39.93,94.63"), "tags":{{"iphone", "signal" }}, "message":" love iphone the signal is mind-blowing:)"}
-{"message-id": 1030, "author-id": 533, "timestamp":datetime("2013-07-04T02:57:01"), "in-response-to": 916, "sender-location":point("44.45,90.38"), "tags":{{"samsung", "touch-screen" }}, "message":" hate samsung the touch-screen is bad:("}
-{"message-id": 1031, "author-id": 534, "timestamp":datetime("2006-12-05T17:37:54"), "in-response-to": 671, "sender-location":point("28.5,67.34"), "tags":{{"at&t", "customization" }}, "message":" love at&t its customization is mind-blowing:)"}
-{"message-id": 1032, "author-id": 535, "timestamp":datetime("2010-02-24T06:45:22"), "in-response-to": 857, "sender-location":point("47.8,95.64"), "tags":{{"verizon", "plan" }}, "message":" can't stand verizon the plan is horrible"}
-{"message-id": 1033, "author-id": 536, "timestamp":datetime("2013-06-23T10:25:06"), "in-response-to": 1279, "sender-location":point("32.47,84.09"), "tags":{{"motorola", "voicemail-service" }}, "message":" like motorola its voicemail-service is awesome:)"}
-{"message-id": 1034, "author-id": 537, "timestamp":datetime("2006-09-22T07:41:47"), "in-response-to": 2572, "sender-location":point("41.3,91.64"), "tags":{{"verizon", "signal" }}, "message":" dislike verizon the signal is bad"}
-{"message-id": 1035, "author-id": 538, "timestamp":datetime("2007-02-22T04:53:39"), "in-response-to": 671, "sender-location":point("38.33,67.57"), "tags":{{"sprint", "wireless" }}, "message":" hate sprint its wireless is OMG"}
-{"message-id": 1036, "author-id": 539, "timestamp":datetime("2014-03-28T23:35:40"), "in-response-to": 2327, "sender-location":point("39.14,71.41"), "tags":{{"at&t", "signal" }}, "message":" like at&t the signal is amazing"}
-{"message-id": 1037, "author-id": 540, "timestamp":datetime("2011-07-07T16:46:24"), "in-response-to": 2227, "sender-location":point("33.9,68.57"), "tags":{{"verizon", "network" }}, "message":" can't stand verizon its network is terrible:("}
-{"message-id": 1038, "author-id": 541, "timestamp":datetime("2008-07-25T23:20:16"), "in-response-to": 1266, "sender-location":point("38.2,74.11"), "tags":{{"t-mobile", "customer-service" }}, "message":" dislike t-mobile the customer-service is OMG"}
-{"message-id": 1039, "author-id": 542, "timestamp":datetime("2013-11-18T18:51:19"), "in-response-to": 2509, "sender-location":point("37.87,92.04"), "tags":{{"samsung", "shortcut-menu" }}, "message":" like samsung its shortcut-menu is awesome"}
-{"message-id": 1040, "author-id": 543, "timestamp":datetime("2011-12-10T06:22:59"), "in-response-to": 1871, "sender-location":point("39.78,86.71"), "tags":{{"sprint", "touch-screen" }}, "message":" can't stand sprint its touch-screen is terrible"}
-{"message-id": 1041, "author-id": 544, "timestamp":datetime("2010-06-04T17:17:28"), "in-response-to": 3004, "sender-location":point("45.34,82.43"), "tags":{{"iphone", "customization" }}, "message":" like iphone its customization is amazing"}
-{"message-id": 1042, "author-id": 545, "timestamp":datetime("2012-10-24T09:04:04"), "in-response-to": 2213, "sender-location":point("24.23,70.85"), "tags":{{"t-mobile", "plan" }}, "message":" love t-mobile its plan is good"}
-{"message-id": 1043, "author-id": 546, "timestamp":datetime("2008-02-22T20:45:11"), "in-response-to": 128, "sender-location":point("40.59,83.93"), "tags":{{"at&t", "reachability" }}, "message":" like at&t the reachability is mind-blowing:)"}
-{"message-id": 1044, "author-id": 547, "timestamp":datetime("2006-08-10T12:17:19"), "in-response-to": 144, "sender-location":point("43.44,77.12"), "tags":{{"samsung", "platform" }}, "message":" dislike samsung the platform is horrible:("}
-{"message-id": 1045, "author-id": 548, "timestamp":datetime("2011-12-15T21:22:56"), "in-response-to": 2703, "sender-location":point("37.45,67.27"), "tags":{{"verizon", "reachability" }}, "message":" can't stand verizon its reachability is bad"}
-{"message-id": 1046, "author-id": 549, "timestamp":datetime("2011-01-08T05:57:35"), "in-response-to": 484, "sender-location":point("48.17,75.34"), "tags":{{"at&t", "touch-screen" }}, "message":" can't stand at&t the touch-screen is OMG:("}
-{"message-id": 1047, "author-id": 550, "timestamp":datetime("2013-02-03T08:56:52"), "in-response-to": 1323, "sender-location":point("35.96,79.24"), "tags":{{"sprint", "reachability" }}, "message":" love sprint the reachability is mind-blowing"}
-{"message-id": 1048, "author-id": 551, "timestamp":datetime("2008-02-05T15:35:47"), "in-response-to": 1965, "sender-location":point("40.54,68.3"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" hate t-mobile its shortcut-menu is horrible"}
-{"message-id": 1049, "author-id": 552, "timestamp":datetime("2006-01-03T20:52:00"), "in-response-to": 1099, "sender-location":point("33.86,94.71"), "tags":{{"iphone", "voice-clarity" }}, "message":" hate iphone the voice-clarity is bad"}
-{"message-id": 1050, "author-id": 553, "timestamp":datetime("2013-11-19T19:30:39"), "in-response-to": 717, "sender-location":point("33.88,82.84"), "tags":{{"iphone", "reachability" }}, "message":" hate iphone the reachability is bad:("}
-{"message-id": 1051, "author-id": 554, "timestamp":datetime("2013-12-15T23:30:40"), "in-response-to": 278, "sender-location":point("36.63,82.37"), "tags":{{"t-mobile", "wireless" }}, "message":" love t-mobile its wireless is amazing"}
-{"message-id": 1052, "author-id": 555, "timestamp":datetime("2013-05-10T23:01:58"), "in-response-to": 553, "sender-location":point("33.47,77.69"), "tags":{{"motorola", "reachability" }}, "message":" love motorola its reachability is mind-blowing:)"}
-{"message-id": 1053, "author-id": 556, "timestamp":datetime("2008-06-17T04:18:11"), "in-response-to": 1632, "sender-location":point("39.7,86.38"), "tags":{{"motorola", "customization" }}, "message":" love motorola the customization is mind-blowing"}
-{"message-id": 1054, "author-id": 557, "timestamp":datetime("2012-11-01T01:16:57"), "in-response-to": 1439, "sender-location":point("29.39,89.85"), "tags":{{"iphone", "platform" }}, "message":" can't stand iphone the platform is bad"}
-{"message-id": 1055, "author-id": 558, "timestamp":datetime("2007-10-19T15:48:28"), "in-response-to": 2318, "sender-location":point("31.2,67.81"), "tags":{{"t-mobile", "voice-command" }}, "message":" dislike t-mobile the voice-command is OMG"}
-{"message-id": 1056, "author-id": 559, "timestamp":datetime("2013-05-02T19:49:25"), "in-response-to": 3046, "sender-location":point("31.04,70.74"), "tags":{{"motorola", "platform" }}, "message":" like motorola its platform is amazing:)"}
-{"message-id": 1057, "author-id": 560, "timestamp":datetime("2008-05-22T06:49:34"), "in-response-to": 1035, "sender-location":point("42.06,75.98"), "tags":{{"samsung", "platform" }}, "message":" love samsung the platform is amazing:)"}
-{"message-id": 1058, "author-id": 561, "timestamp":datetime("2014-05-17T08:40:16"), "in-response-to": 1693, "sender-location":point("45.92,82.08"), "tags":{{"t-mobile", "network" }}, "message":" hate t-mobile the network is bad"}
-{"message-id": 1059, "author-id": 562, "timestamp":datetime("2005-08-02T09:24:58"), "in-response-to": 3183, "sender-location":point("29.77,67.17"), "tags":{{"verizon", "speed" }}, "message":" like verizon the speed is mind-blowing:)"}
-{"message-id": 1060, "author-id": 563, "timestamp":datetime("2012-08-22T04:15:55"), "in-response-to": 1778, "sender-location":point("48.37,72.12"), "tags":{{"at&t", "wireless" }}, "message":" love at&t the wireless is awesome:)"}
-{"message-id": 1061, "author-id": 564, "timestamp":datetime("2009-09-07T01:22:03"), "in-response-to": 2823, "sender-location":point("40.62,90.33"), "tags":{{"iphone", "platform" }}, "message":" dislike iphone the platform is OMG"}
-{"message-id": 1062, "author-id": 565, "timestamp":datetime("2011-03-20T15:19:19"), "in-response-to": 308, "sender-location":point("39.89,67.99"), "tags":{{"iphone", "3G" }}, "message":" like iphone the 3G is amazing"}
-{"message-id": 1063, "author-id": 566, "timestamp":datetime("2009-10-11T11:15:28"), "in-response-to": 1940, "sender-location":point("34.75,74.08"), "tags":{{"verizon", "wireless" }}, "message":" love verizon the wireless is mind-blowing:)"}
-{"message-id": 1064, "author-id": 567, "timestamp":datetime("2009-07-15T17:19:30"), "in-response-to": 1538, "sender-location":point("25.92,96.14"), "tags":{{"samsung", "3G" }}, "message":" like samsung its 3G is good:)"}
-{"message-id": 1065, "author-id": 568, "timestamp":datetime("2014-01-06T13:47:10"), "in-response-to": 2777, "sender-location":point("36.14,66.75"), "tags":{{"iphone", "reachability" }}, "message":" dislike iphone the reachability is horrible"}
-{"message-id": 1066, "author-id": 569, "timestamp":datetime("2011-01-04T05:01:34"), "in-response-to": 2112, "sender-location":point("36.54,67.85"), "tags":{{"t-mobile", "network" }}, "message":" hate t-mobile its network is OMG:("}
-{"message-id": 1067, "author-id": 570, "timestamp":datetime("2009-12-18T14:23:57"), "in-response-to": 1311, "sender-location":point("30.39,73.28"), "tags":{{"t-mobile", "plan" }}, "message":" love t-mobile its plan is good"}
-{"message-id": 1068, "author-id": 571, "timestamp":datetime("2013-05-20T00:32:51"), "in-response-to": 1381, "sender-location":point("42.72,94.53"), "tags":{{"at&t", "platform" }}, "message":" love at&t its platform is awesome:)"}
-{"message-id": 1069, "author-id": 572, "timestamp":datetime("2013-11-17T00:53:03"), "in-response-to": 2291, "sender-location":point("39.72,75.41"), "tags":{{"motorola", "customer-service" }}, "message":" love motorola the customer-service is mind-blowing"}
-{"message-id": 1070, "author-id": 573, "timestamp":datetime("2013-04-17T10:24:04"), "in-response-to": 2478, "sender-location":point("45.81,80.72"), "tags":{{"verizon", "network" }}, "message":" hate verizon its network is terrible"}
-{"message-id": 1071, "author-id": 574, "timestamp":datetime("2012-12-19T16:32:22"), "in-response-to": 2254, "sender-location":point("28.82,97.76"), "tags":{{"t-mobile", "plan" }}, "message":" dislike t-mobile its plan is terrible"}
-{"message-id": 1072, "author-id": 575, "timestamp":datetime("2009-02-06T10:29:54"), "in-response-to": 3051, "sender-location":point("46.5,92.26"), "tags":{{"t-mobile", "customization" }}, "message":" dislike t-mobile the customization is terrible:("}
-{"message-id": 1073, "author-id": 576, "timestamp":datetime("2014-03-14T11:43:17"), "in-response-to": 867, "sender-location":point("30.91,68.99"), "tags":{{"samsung", "voicemail-service" }}, "message":" can't stand samsung the voicemail-service is terrible"}
-{"message-id": 1074, "author-id": 577, "timestamp":datetime("2006-04-27T05:17:13"), "in-response-to": 2203, "sender-location":point("25.67,94.87"), "tags":{{"samsung", "voicemail-service" }}, "message":" love samsung its voicemail-service is good:)"}
-{"message-id": 1075, "author-id": 578, "timestamp":datetime("2011-02-16T17:34:06"), "in-response-to": 1635, "sender-location":point("36.99,84.39"), "tags":{{"samsung", "network" }}, "message":" love samsung its network is mind-blowing:)"}
-{"message-id": 1076, "author-id": 579, "timestamp":datetime("2010-05-22T06:31:53"), "in-response-to": 164, "sender-location":point("45.9,68.93"), "tags":{{"iphone", "speed" }}, "message":" hate iphone the speed is terrible:("}
-{"message-id": 1077, "author-id": 580, "timestamp":datetime("2012-06-20T05:21:47"), "in-response-to": 2622, "sender-location":point("26.25,67.94"), "tags":{{"at&t", "customization" }}, "message":" can't stand at&t the customization is horrible:("}
-{"message-id": 1078, "author-id": 581, "timestamp":datetime("2010-07-05T06:51:01"), "in-response-to": 2769, "sender-location":point("28.33,71.44"), "tags":{{"t-mobile", "touch-screen" }}, "message":" love t-mobile the touch-screen is amazing:)"}
-{"message-id": 1079, "author-id": 582, "timestamp":datetime("2009-05-02T17:53:23"), "in-response-to": 2038, "sender-location":point("31.85,95.38"), "tags":{{"samsung", "shortcut-menu" }}, "message":" dislike samsung the shortcut-menu is bad:("}
-{"message-id": 1080, "author-id": 583, "timestamp":datetime("2013-09-10T12:23:48"), "in-response-to": 523, "sender-location":point("39.86,86.22"), "tags":{{"sprint", "platform" }}, "message":" like sprint the platform is awesome"}
-{"message-id": 1081, "author-id": 584, "timestamp":datetime("2008-09-23T21:17:34"), "in-response-to": 1250, "sender-location":point("48.89,77.34"), "tags":{{"motorola", "speed" }}, "message":" can't stand motorola the speed is horrible:("}
-{"message-id": 1082, "author-id": 585, "timestamp":datetime("2013-05-17T20:52:11"), "in-response-to": 2548, "sender-location":point("30.8,70.02"), "tags":{{"t-mobile", "3G" }}, "message":" dislike t-mobile the 3G is OMG:("}
-{"message-id": 1083, "author-id": 586, "timestamp":datetime("2014-08-07T00:10:31"), "in-response-to": 3062, "sender-location":point("28.33,74.53"), "tags":{{"at&t", "3G" }}, "message":" like at&t its 3G is awesome"}
-{"message-id": 1084, "author-id": 587, "timestamp":datetime("2006-02-14T03:16:03"), "in-response-to": 1517, "sender-location":point("30.68,82.26"), "tags":{{"at&t", "voice-clarity" }}, "message":" love at&t the voice-clarity is awesome:)"}
-{"message-id": 1085, "author-id": 588, "timestamp":datetime("2008-03-24T11:00:24"), "in-response-to": 2999, "sender-location":point("43.52,72.4"), "tags":{{"samsung", "voice-command" }}, "message":" love samsung its voice-command is mind-blowing"}
-{"message-id": 1086, "author-id": 589, "timestamp":datetime("2010-06-02T23:14:10"), "in-response-to": 3233, "sender-location":point("37.46,67.67"), "tags":{{"at&t", "customer-service" }}, "message":" like at&t the customer-service is amazing"}
-{"message-id": 1087, "author-id": 590, "timestamp":datetime("2012-12-08T12:32:16"), "in-response-to": 2010, "sender-location":point("41.59,73.54"), "tags":{{"sprint", "3G" }}, "message":" hate sprint the 3G is terrible"}
-{"message-id": 1088, "author-id": 591, "timestamp":datetime("2013-12-14T18:14:17"), "in-response-to": 158, "sender-location":point("41.51,77.58"), "tags":{{"at&t", "customer-service" }}, "message":" can't stand at&t its customer-service is horrible:("}
-{"message-id": 1089, "author-id": 592, "timestamp":datetime("2008-07-16T23:08:48"), "in-response-to": 2566, "sender-location":point("37.26,74.59"), "tags":{{"t-mobile", "3G" }}, "message":" can't stand t-mobile the 3G is horrible:("}
-{"message-id": 1090, "author-id": 593, "timestamp":datetime("2014-07-28T07:11:54"), "in-response-to": 215, "sender-location":point("31.43,94.78"), "tags":{{"samsung", "network" }}, "message":" dislike samsung its network is horrible:("}
-{"message-id": 1091, "author-id": 594, "timestamp":datetime("2006-06-28T21:35:34"), "in-response-to": 437, "sender-location":point("48.84,83.31"), "tags":{{"at&t", "customization" }}, "message":" love at&t the customization is good:)"}
-{"message-id": 1092, "author-id": 595, "timestamp":datetime("2006-10-02T10:15:06"), "in-response-to": 303, "sender-location":point("47.9,85.14"), "tags":{{"samsung", "network" }}, "message":" dislike samsung the network is horrible"}
-{"message-id": 1093, "author-id": 596, "timestamp":datetime("2008-05-16T08:47:20"), "in-response-to": 2891, "sender-location":point("42.26,84.42"), "tags":{{"t-mobile", "touch-screen" }}, "message":" hate t-mobile the touch-screen is OMG:("}
-{"message-id": 1094, "author-id": 597, "timestamp":datetime("2013-06-21T02:47:06"), "in-response-to": 57, "sender-location":point("24.88,81.42"), "tags":{{"iphone", "speed" }}, "message":" love iphone the speed is good"}
-{"message-id": 1095, "author-id": 598, "timestamp":datetime("2005-07-10T19:49:48"), "in-response-to": 1711, "sender-location":point("47.84,82.76"), "tags":{{"iphone", "reachability" }}, "message":" like iphone the reachability is awesome"}
-{"message-id": 1096, "author-id": 599, "timestamp":datetime("2007-11-04T01:01:41"), "in-response-to": 1419, "sender-location":point("35.23,69.14"), "tags":{{"t-mobile", "plan" }}, "message":" dislike t-mobile its plan is OMG"}
-{"message-id": 1097, "author-id": 600, "timestamp":datetime("2012-08-06T13:02:10"), "in-response-to": 3031, "sender-location":point("31.96,90.95"), "tags":{{"samsung", "plan" }}, "message":" dislike samsung its plan is bad:("}
-{"message-id": 1098, "author-id": 601, "timestamp":datetime("2011-01-27T17:57:31"), "in-response-to": 275, "sender-location":point("45.29,80.8"), "tags":{{"t-mobile", "touch-screen" }}, "message":" dislike t-mobile its touch-screen is terrible"}
-{"message-id": 1099, "author-id": 602, "timestamp":datetime("2005-03-06T14:53:50"), "in-response-to": 3090, "sender-location":point("48.04,74.65"), "tags":{{"motorola", "touch-screen" }}, "message":" hate motorola its touch-screen is bad"}
-{"message-id": 1100, "author-id": 603, "timestamp":datetime("2012-11-13T15:53:18"), "in-response-to": 1981, "sender-location":point("25.44,74.84"), "tags":{{"motorola", "signal" }}, "message":" dislike motorola its signal is horrible:("}
-{"message-id": 1101, "author-id": 604, "timestamp":datetime("2007-09-17T22:18:09"), "in-response-to": 1157, "sender-location":point("48.21,72.17"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" hate t-mobile its voicemail-service is terrible:("}
-{"message-id": 1102, "author-id": 605, "timestamp":datetime("2012-08-06T11:57:22"), "in-response-to": 3093, "sender-location":point("33.67,70.79"), "tags":{{"t-mobile", "network" }}, "message":" dislike t-mobile its network is bad"}
-{"message-id": 1103, "author-id": 606, "timestamp":datetime("2013-11-20T04:18:43"), "in-response-to": 1928, "sender-location":point("29.56,97.03"), "tags":{{"verizon", "3G" }}, "message":" love verizon the 3G is awesome:)"}
-{"message-id": 1104, "author-id": 607, "timestamp":datetime("2014-03-22T04:24:47"), "in-response-to": 2155, "sender-location":point("37.2,80.23"), "tags":{{"motorola", "3G" }}, "message":" hate motorola its 3G is terrible"}
-{"message-id": 1105, "author-id": 608, "timestamp":datetime("2005-06-16T03:33:05"), "in-response-to": 2179, "sender-location":point("35.59,92.38"), "tags":{{"motorola", "shortcut-menu" }}, "message":" like motorola its shortcut-menu is amazing"}
-{"message-id": 1106, "author-id": 609, "timestamp":datetime("2010-12-22T15:14:05"), "in-response-to": 826, "sender-location":point("42.94,67.54"), "tags":{{"t-mobile", "voice-command" }}, "message":" like t-mobile the voice-command is good:)"}
-{"message-id": 1107, "author-id": 610, "timestamp":datetime("2013-04-14T13:59:27"), "in-response-to": 125, "sender-location":point("32.5,67.07"), "tags":{{"t-mobile", "network" }}, "message":" like t-mobile the network is good:)"}
-{"message-id": 1108, "author-id": 611, "timestamp":datetime("2006-11-22T23:05:58"), "in-response-to": 3133, "sender-location":point("24.34,88.36"), "tags":{{"samsung", "network" }}, "message":" love samsung the network is good:)"}
-{"message-id": 1109, "author-id": 612, "timestamp":datetime("2005-06-18T11:36:01"), "in-response-to": 1638, "sender-location":point("36.16,68.12"), "tags":{{"at&t", "reachability" }}, "message":" love at&t its reachability is amazing"}
-{"message-id": 1110, "author-id": 613, "timestamp":datetime("2008-07-02T05:56:30"), "in-response-to": 1474, "sender-location":point("36.31,83.6"), "tags":{{"t-mobile", "signal" }}, "message":" can't stand t-mobile the signal is horrible"}
-{"message-id": 1111, "author-id": 614, "timestamp":datetime("2005-03-25T01:45:01"), "in-response-to": 3063, "sender-location":point("30.16,67.6"), "tags":{{"samsung", "3G" }}, "message":" like samsung its 3G is awesome"}
-{"message-id": 1112, "author-id": 615, "timestamp":datetime("2005-10-18T08:04:41"), "in-response-to": 2986, "sender-location":point("44.6,73.23"), "tags":{{"samsung", "plan" }}, "message":" dislike samsung the plan is bad:("}
-{"message-id": 1113, "author-id": 616, "timestamp":datetime("2006-03-04T21:18:26"), "in-response-to": 1080, "sender-location":point("26.82,73.43"), "tags":{{"motorola", "voicemail-service" }}, "message":" like motorola its voicemail-service is mind-blowing"}
-{"message-id": 1114, "author-id": 617, "timestamp":datetime("2013-01-04T20:26:53"), "in-response-to": 95, "sender-location":point("47.78,66.86"), "tags":{{"samsung", "signal" }}, "message":" like samsung its signal is amazing:)"}
-{"message-id": 1115, "author-id": 618, "timestamp":datetime("2005-07-15T23:54:13"), "in-response-to": 2780, "sender-location":point("46.73,68.12"), "tags":{{"iphone", "wireless" }}, "message":" hate iphone its wireless is horrible:("}
-{"message-id": 1116, "author-id": 619, "timestamp":datetime("2005-05-15T14:31:03"), "in-response-to": 2037, "sender-location":point("38.12,75.54"), "tags":{{"sprint", "plan" }}, "message":" love sprint the plan is good:)"}
-{"message-id": 1117, "author-id": 620, "timestamp":datetime("2005-06-23T09:47:10"), "in-response-to": 1808, "sender-location":point("30.24,67.13"), "tags":{{"verizon", "customer-service" }}, "message":" like verizon the customer-service is good"}
-{"message-id": 1118, "author-id": 621, "timestamp":datetime("2005-03-23T20:13:02"), "in-response-to": 268, "sender-location":point("33.92,75.88"), "tags":{{"sprint", "customer-service" }}, "message":" like sprint the customer-service is mind-blowing"}
-{"message-id": 1119, "author-id": 622, "timestamp":datetime("2007-12-22T15:44:07"), "in-response-to": 781, "sender-location":point("25.36,69.42"), "tags":{{"iphone", "voice-clarity" }}, "message":" hate iphone its voice-clarity is terrible"}
-{"message-id": 1120, "author-id": 623, "timestamp":datetime("2008-09-23T08:31:16"), "in-response-to": 117, "sender-location":point("38.89,77.48"), "tags":{{"samsung", "shortcut-menu" }}, "message":" dislike samsung the shortcut-menu is bad:("}
-{"message-id": 1121, "author-id": 624, "timestamp":datetime("2014-02-10T15:04:25"), "in-response-to": 2833, "sender-location":point("30.41,68.59"), "tags":{{"t-mobile", "signal" }}, "message":" dislike t-mobile the signal is terrible"}
-{"message-id": 1122, "author-id": 625, "timestamp":datetime("2012-02-19T12:14:51"), "in-response-to": 1170, "sender-location":point("41.97,79.71"), "tags":{{"iphone", "speed" }}, "message":" hate iphone its speed is horrible:("}
-{"message-id": 1123, "author-id": 626, "timestamp":datetime("2010-05-02T00:06:45"), "in-response-to": 1768, "sender-location":point("28.86,78.25"), "tags":{{"verizon", "touch-screen" }}, "message":" like verizon its touch-screen is amazing:)"}
-{"message-id": 1124, "author-id": 627, "timestamp":datetime("2011-09-15T22:03:12"), "in-response-to": 1407, "sender-location":point("32.29,87.83"), "tags":{{"verizon", "shortcut-menu" }}, "message":" love verizon the shortcut-menu is mind-blowing:)"}
-{"message-id": 1125, "author-id": 628, "timestamp":datetime("2008-11-26T21:29:11"), "in-response-to": 1902, "sender-location":point("36.71,91.33"), "tags":{{"samsung", "touch-screen" }}, "message":" love samsung the touch-screen is good"}
-{"message-id": 1126, "author-id": 629, "timestamp":datetime("2014-04-06T05:23:33"), "in-response-to": 392, "sender-location":point("43.22,95.11"), "tags":{{"at&t", "voicemail-service" }}, "message":" love at&t its voicemail-service is amazing:)"}
-{"message-id": 1127, "author-id": 630, "timestamp":datetime("2012-06-14T02:16:27"), "in-response-to": 2917, "sender-location":point("46.74,85.62"), "tags":{{"verizon", "voice-command" }}, "message":" love verizon the voice-command is amazing"}
-{"message-id": 1128, "author-id": 631, "timestamp":datetime("2013-05-09T16:44:19"), "in-response-to": 1620, "sender-location":point("31.92,82.53"), "tags":{{"samsung", "voicemail-service" }}, "message":" like samsung its voicemail-service is amazing"}
-{"message-id": 1129, "author-id": 632, "timestamp":datetime("2009-03-19T12:37:23"), "in-response-to": 2936, "sender-location":point("42.65,68.54"), "tags":{{"samsung", "voice-clarity" }}, "message":" hate samsung its voice-clarity is horrible"}
-{"message-id": 1130, "author-id": 633, "timestamp":datetime("2011-11-26T12:25:14"), "in-response-to": 463, "sender-location":point("40.1,72.61"), "tags":{{"t-mobile", "wireless" }}, "message":" love t-mobile its wireless is awesome:)"}
-{"message-id": 1131, "author-id": 634, "timestamp":datetime("2013-06-15T04:03:25"), "in-response-to": 2979, "sender-location":point("26.56,85.25"), "tags":{{"sprint", "signal" }}, "message":" can't stand sprint its signal is horrible:("}
-{"message-id": 1132, "author-id": 635, "timestamp":datetime("2008-12-22T13:06:58"), "in-response-to": 1919, "sender-location":point("43.63,93.89"), "tags":{{"samsung", "touch-screen" }}, "message":" dislike samsung its touch-screen is OMG"}
-{"message-id": 1133, "author-id": 636, "timestamp":datetime("2012-01-24T03:59:01"), "in-response-to": 610, "sender-location":point("37.89,71.67"), "tags":{{"sprint", "touch-screen" }}, "message":" like sprint the touch-screen is awesome"}
-{"message-id": 1134, "author-id": 637, "timestamp":datetime("2007-06-08T03:22:03"), "in-response-to": 432, "sender-location":point("25.25,86.25"), "tags":{{"sprint", "network" }}, "message":" like sprint its network is good"}
-{"message-id": 1135, "author-id": 638, "timestamp":datetime("2005-12-06T22:40:19"), "in-response-to": 2401, "sender-location":point("42.17,83.96"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" dislike t-mobile its shortcut-menu is terrible"}
-{"message-id": 1136, "author-id": 639, "timestamp":datetime("2011-05-03T21:08:20"), "in-response-to": 95, "sender-location":point("27.53,82.18"), "tags":{{"t-mobile", "network" }}, "message":" love t-mobile its network is good:)"}
-{"message-id": 1137, "author-id": 640, "timestamp":datetime("2005-03-15T10:11:11"), "in-response-to": 1802, "sender-location":point("41.53,66.55"), "tags":{{"iphone", "signal" }}, "message":" dislike iphone the signal is horrible:("}
-{"message-id": 1138, "author-id": 641, "timestamp":datetime("2006-02-01T15:03:51"), "in-response-to": 1226, "sender-location":point("25.55,86.29"), "tags":{{"sprint", "network" }}, "message":" like sprint its network is good"}
-{"message-id": 1139, "author-id": 642, "timestamp":datetime("2011-09-21T23:57:39"), "in-response-to": 136, "sender-location":point("29.75,76.41"), "tags":{{"motorola", "voice-command" }}, "message":" like motorola the voice-command is mind-blowing:)"}
-{"message-id": 1140, "author-id": 643, "timestamp":datetime("2007-08-07T07:19:41"), "in-response-to": 1983, "sender-location":point("34.08,79.42"), "tags":{{"verizon", "speed" }}, "message":" can't stand verizon the speed is horrible"}
-{"message-id": 1141, "author-id": 644, "timestamp":datetime("2009-06-08T15:32:42"), "in-response-to": 33, "sender-location":point("29.69,75.41"), "tags":{{"iphone", "signal" }}, "message":" can't stand iphone the signal is horrible"}
-{"message-id": 1142, "author-id": 645, "timestamp":datetime("2006-10-19T02:55:38"), "in-response-to": 547, "sender-location":point("40.92,86.58"), "tags":{{"iphone", "voice-clarity" }}, "message":" like iphone its voice-clarity is mind-blowing"}
-{"message-id": 1143, "author-id": 646, "timestamp":datetime("2010-11-05T15:07:45"), "in-response-to": 735, "sender-location":point("27.9,95.19"), "tags":{{"iphone", "wireless" }}, "message":" can't stand iphone its wireless is horrible:("}
-{"message-id": 1144, "author-id": 647, "timestamp":datetime("2005-01-03T18:53:59"), "in-response-to": 493, "sender-location":point("46.24,91.87"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" hate t-mobile the shortcut-menu is OMG"}
-{"message-id": 1145, "author-id": 648, "timestamp":datetime("2013-07-21T19:31:57"), "in-response-to": 3242, "sender-location":point("25.42,67.71"), "tags":{{"iphone", "customization" }}, "message":" like iphone its customization is mind-blowing:)"}
-{"message-id": 1146, "author-id": 649, "timestamp":datetime("2014-08-14T02:53:38"), "in-response-to": 1382, "sender-location":point("34.35,87.17"), "tags":{{"at&t", "voicemail-service" }}, "message":" love at&t the voicemail-service is amazing"}
-{"message-id": 1147, "author-id": 650, "timestamp":datetime("2012-11-08T21:07:42"), "in-response-to": 825, "sender-location":point("43.68,94.49"), "tags":{{"iphone", "voice-command" }}, "message":" can't stand iphone the voice-command is terrible:("}
-{"message-id": 1148, "author-id": 651, "timestamp":datetime("2013-11-24T15:50:37"), "in-response-to": 208, "sender-location":point("34.82,92.53"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" like t-mobile its voice-clarity is amazing"}
-{"message-id": 1149, "author-id": 652, "timestamp":datetime("2006-07-27T21:50:35"), "in-response-to": 2778, "sender-location":point("40.27,80.88"), "tags":{{"at&t", "signal" }}, "message":" love at&t its signal is good"}
-{"message-id": 1150, "author-id": 653, "timestamp":datetime("2010-02-21T07:20:40"), "in-response-to": 1366, "sender-location":point("46.85,77.71"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" love t-mobile the voice-clarity is mind-blowing"}
-{"message-id": 1151, "author-id": 654, "timestamp":datetime("2009-11-04T09:04:39"), "in-response-to": 183, "sender-location":point("28.47,97.28"), "tags":{{"motorola", "reachability" }}, "message":" hate motorola the reachability is horrible:("}
-{"message-id": 1152, "author-id": 655, "timestamp":datetime("2012-09-28T12:38:13"), "in-response-to": 2070, "sender-location":point("37.93,81.01"), "tags":{{"sprint", "plan" }}, "message":" can't stand sprint the plan is OMG:("}
-{"message-id": 1153, "author-id": 656, "timestamp":datetime("2009-06-01T21:49:29"), "in-response-to": 1115, "sender-location":point("25.63,88.78"), "tags":{{"iphone", "customization" }}, "message":" can't stand iphone its customization is bad"}
-{"message-id": 1154, "author-id": 657, "timestamp":datetime("2005-02-07T16:30:54"), "in-response-to": 565, "sender-location":point("46.65,68.07"), "tags":{{"verizon", "signal" }}, "message":" like verizon its signal is awesome:)"}
-{"message-id": 1155, "author-id": 658, "timestamp":datetime("2007-03-09T10:42:22"), "in-response-to": 2613, "sender-location":point("33.7,66.92"), "tags":{{"at&t", "voice-clarity" }}, "message":" hate at&t the voice-clarity is horrible:("}
-{"message-id": 1156, "author-id": 659, "timestamp":datetime("2010-12-08T17:40:41"), "in-response-to": 662, "sender-location":point("40.15,94.02"), "tags":{{"at&t", "voice-command" }}, "message":" love at&t the voice-command is awesome"}
-{"message-id": 1157, "author-id": 660, "timestamp":datetime("2010-03-24T17:15:25"), "in-response-to": 605, "sender-location":point("31.76,77.79"), "tags":{{"samsung", "customer-service" }}, "message":" can't stand samsung the customer-service is OMG"}
-{"message-id": 1158, "author-id": 661, "timestamp":datetime("2011-08-04T13:07:49"), "in-response-to": 1052, "sender-location":point("28.22,66.95"), "tags":{{"motorola", "wireless" }}, "message":" like motorola the wireless is amazing:)"}
-{"message-id": 1159, "author-id": 662, "timestamp":datetime("2005-11-10T07:44:12"), "in-response-to": 944, "sender-location":point("33.24,71.15"), "tags":{{"t-mobile", "touch-screen" }}, "message":" like t-mobile its touch-screen is mind-blowing:)"}
-{"message-id": 1160, "author-id": 663, "timestamp":datetime("2009-06-26T22:59:14"), "in-response-to": 2376, "sender-location":point("36.75,78.46"), "tags":{{"iphone", "voice-command" }}, "message":" dislike iphone the voice-command is horrible:("}
-{"message-id": 1161, "author-id": 664, "timestamp":datetime("2012-01-12T18:25:03"), "in-response-to": 657, "sender-location":point("39.44,70.39"), "tags":{{"verizon", "voice-command" }}, "message":" like verizon the voice-command is amazing"}
-{"message-id": 1162, "author-id": 665, "timestamp":datetime("2013-11-14T06:22:44"), "in-response-to": 161, "sender-location":point("37.62,92.89"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" can't stand t-mobile its voicemail-service is bad:("}
-{"message-id": 1163, "author-id": 666, "timestamp":datetime("2006-03-04T17:14:27"), "in-response-to": 2947, "sender-location":point("42.86,80.03"), "tags":{{"at&t", "voicemail-service" }}, "message":" love at&t the voicemail-service is awesome:)"}
-{"message-id": 1164, "author-id": 667, "timestamp":datetime("2012-03-15T02:20:34"), "in-response-to": 1823, "sender-location":point("29.96,71.29"), "tags":{{"samsung", "speed" }}, "message":" like samsung its speed is awesome"}
-{"message-id": 1165, "author-id": 668, "timestamp":datetime("2011-04-25T23:40:47"), "in-response-to": 1015, "sender-location":point("30.63,78.71"), "tags":{{"at&t", "customization" }}, "message":" like at&t its customization is awesome:)"}
-{"message-id": 1166, "author-id": 669, "timestamp":datetime("2006-11-02T01:32:47"), "in-response-to": 1360, "sender-location":point("43.72,84.45"), "tags":{{"t-mobile", "wireless" }}, "message":" can't stand t-mobile the wireless is bad:("}
-{"message-id": 1167, "author-id": 670, "timestamp":datetime("2011-12-20T07:11:45"), "in-response-to": 368, "sender-location":point("33.35,93.8"), "tags":{{"iphone", "customer-service" }}, "message":" can't stand iphone the customer-service is horrible"}
-{"message-id": 1168, "author-id": 671, "timestamp":datetime("2005-02-01T20:32:30"), "in-response-to": 1634, "sender-location":point("35.48,68.04"), "tags":{{"samsung", "signal" }}, "message":" love samsung the signal is amazing:)"}
-{"message-id": 1169, "author-id": 672, "timestamp":datetime("2007-04-22T15:38:16"), "in-response-to": 2343, "sender-location":point("28.74,96.47"), "tags":{{"iphone", "wireless" }}, "message":" can't stand iphone the wireless is horrible"}
-{"message-id": 1170, "author-id": 673, "timestamp":datetime("2007-07-01T07:30:00"), "in-response-to": 2154, "sender-location":point("47.07,74.09"), "tags":{{"samsung", "customization" }}, "message":" dislike samsung its customization is horrible:("}
-{"message-id": 1171, "author-id": 674, "timestamp":datetime("2012-04-28T16:19:25"), "in-response-to": 1661, "sender-location":point("44.87,87.22"), "tags":{{"iphone", "wireless" }}, "message":" hate iphone its wireless is bad"}
-{"message-id": 1172, "author-id": 675, "timestamp":datetime("2014-02-17T05:58:11"), "in-response-to": 2310, "sender-location":point("42.93,92.42"), "tags":{{"motorola", "voice-command" }}, "message":" dislike motorola its voice-command is bad:("}
-{"message-id": 1173, "author-id": 676, "timestamp":datetime("2012-03-14T02:49:33"), "in-response-to": 899, "sender-location":point("26.08,75.08"), "tags":{{"at&t", "reachability" }}, "message":" hate at&t the reachability is horrible:("}
-{"message-id": 1174, "author-id": 677, "timestamp":datetime("2013-03-17T14:41:16"), "in-response-to": 2926, "sender-location":point("24.52,85.67"), "tags":{{"at&t", "voice-clarity" }}, "message":" love at&t its voice-clarity is awesome"}
-{"message-id": 1175, "author-id": 678, "timestamp":datetime("2009-06-10T11:56:40"), "in-response-to": 2705, "sender-location":point("47.83,97.9"), "tags":{{"iphone", "shortcut-menu" }}, "message":" like iphone its shortcut-menu is mind-blowing:)"}
-{"message-id": 1176, "author-id": 679, "timestamp":datetime("2012-11-25T11:10:32"), "in-response-to": 1877, "sender-location":point("46.91,75.74"), "tags":{{"sprint", "customization" }}, "message":" hate sprint the customization is OMG:("}
-{"message-id": 1177, "author-id": 680, "timestamp":datetime("2006-02-06T08:37:26"), "in-response-to": 690, "sender-location":point("39.92,72.93"), "tags":{{"sprint", "shortcut-menu" }}, "message":" love sprint the shortcut-menu is mind-blowing:)"}
-{"message-id": 1178, "author-id": 681, "timestamp":datetime("2012-06-08T15:12:13"), "in-response-to": 1433, "sender-location":point("27.02,74.74"), "tags":{{"motorola", "speed" }}, "message":" like motorola the speed is mind-blowing"}
-{"message-id": 1179, "author-id": 682, "timestamp":datetime("2010-09-14T09:16:25"), "in-response-to": 2738, "sender-location":point("43.25,92.44"), "tags":{{"sprint", "shortcut-menu" }}, "message":" can't stand sprint its shortcut-menu is bad"}
-{"message-id": 1180, "author-id": 683, "timestamp":datetime("2008-07-14T14:14:49"), "in-response-to": 1332, "sender-location":point("46.98,97.5"), "tags":{{"verizon", "reachability" }}, "message":" hate verizon its reachability is terrible:("}
-{"message-id": 1181, "author-id": 684, "timestamp":datetime("2012-08-20T00:01:55"), "in-response-to": 2070, "sender-location":point("42.16,83.89"), "tags":{{"t-mobile", "customization" }}, "message":" love t-mobile its customization is amazing"}
-{"message-id": 1182, "author-id": 685, "timestamp":datetime("2006-08-07T17:56:32"), "in-response-to": 1880, "sender-location":point("25.08,85.41"), "tags":{{"motorola", "voice-command" }}, "message":" dislike motorola the voice-command is bad"}
-{"message-id": 1183, "author-id": 686, "timestamp":datetime("2006-12-14T01:13:47"), "in-response-to": 2767, "sender-location":point("24.81,76.77"), "tags":{{"verizon", "customer-service" }}, "message":" hate verizon its customer-service is terrible"}
-{"message-id": 1184, "author-id": 687, "timestamp":datetime("2007-04-06T06:44:57"), "in-response-to": 2926, "sender-location":point("43.51,93.32"), "tags":{{"motorola", "voicemail-service" }}, "message":" like motorola its voicemail-service is amazing:)"}
-{"message-id": 1185, "author-id": 688, "timestamp":datetime("2014-02-21T01:06:35"), "in-response-to": 2249, "sender-location":point("30.63,71.95"), "tags":{{"sprint", "shortcut-menu" }}, "message":" like sprint its shortcut-menu is awesome:)"}
-{"message-id": 1186, "author-id": 689, "timestamp":datetime("2010-08-11T03:26:48"), "in-response-to": 2888, "sender-location":point("28.76,84.21"), "tags":{{"samsung", "reachability" }}, "message":" dislike samsung its reachability is bad:("}
-{"message-id": 1187, "author-id": 690, "timestamp":datetime("2010-12-17T18:03:33"), "in-response-to": 1748, "sender-location":point("47.25,73.86"), "tags":{{"sprint", "voicemail-service" }}, "message":" hate sprint its voicemail-service is OMG"}
-{"message-id": 1188, "author-id": 691, "timestamp":datetime("2007-05-18T02:29:04"), "in-response-to": 1015, "sender-location":point("37.87,92.24"), "tags":{{"t-mobile", "wireless" }}, "message":" love t-mobile the wireless is awesome"}
-{"message-id": 1189, "author-id": 692, "timestamp":datetime("2005-10-02T19:06:09"), "in-response-to": 2512, "sender-location":point("39.35,80.12"), "tags":{{"at&t", "touch-screen" }}, "message":" dislike at&t its touch-screen is bad"}
-{"message-id": 1190, "author-id": 693, "timestamp":datetime("2014-01-11T20:28:29"), "in-response-to": 3181, "sender-location":point("37.73,82.85"), "tags":{{"verizon", "touch-screen" }}, "message":" like verizon the touch-screen is good"}
-{"message-id": 1191, "author-id": 694, "timestamp":datetime("2010-03-19T03:48:00"), "in-response-to": 223, "sender-location":point("40.39,89.87"), "tags":{{"verizon", "voice-command" }}, "message":" can't stand verizon the voice-command is OMG"}
-{"message-id": 1192, "author-id": 695, "timestamp":datetime("2014-08-08T10:11:45"), "in-response-to": 139, "sender-location":point("45.45,91.3"), "tags":{{"iphone", "shortcut-menu" }}, "message":" like iphone the shortcut-menu is awesome:)"}
-{"message-id": 1193, "author-id": 696, "timestamp":datetime("2013-01-22T06:33:22"), "in-response-to": 2044, "sender-location":point("29.94,69.27"), "tags":{{"samsung", "shortcut-menu" }}, "message":" hate samsung the shortcut-menu is terrible"}
-{"message-id": 1194, "author-id": 697, "timestamp":datetime("2007-06-06T14:24:49"), "in-response-to": 385, "sender-location":point("45.57,89.6"), "tags":{{"samsung", "voicemail-service" }}, "message":" love samsung its voicemail-service is amazing:)"}
-{"message-id": 1195, "author-id": 698, "timestamp":datetime("2014-03-18T05:34:03"), "in-response-to": 292, "sender-location":point("40.22,83.0"), "tags":{{"sprint", "voice-clarity" }}, "message":" like sprint its voice-clarity is mind-blowing"}
-{"message-id": 1196, "author-id": 699, "timestamp":datetime("2007-04-25T13:14:31"), "in-response-to": 1427, "sender-location":point("37.92,77.15"), "tags":{{"at&t", "signal" }}, "message":" love at&t the signal is mind-blowing"}
-{"message-id": 1197, "author-id": 700, "timestamp":datetime("2011-06-09T01:58:56"), "in-response-to": 582, "sender-location":point("44.91,97.94"), "tags":{{"sprint", "customer-service" }}, "message":" dislike sprint its customer-service is OMG:("}
-{"message-id": 1198, "author-id": 701, "timestamp":datetime("2010-10-24T14:50:05"), "in-response-to": 1860, "sender-location":point("36.07,75.8"), "tags":{{"motorola", "plan" }}, "message":" love motorola the plan is good:)"}
-{"message-id": 1199, "author-id": 702, "timestamp":datetime("2005-11-11T06:30:09"), "in-response-to": 1441, "sender-location":point("34.37,93.58"), "tags":{{"t-mobile", "wireless" }}, "message":" love t-mobile the wireless is amazing:)"}
-{"message-id": 1200, "author-id": 703, "timestamp":datetime("2005-10-27T18:41:35"), "in-response-to": 2861, "sender-location":point("28.86,91.65"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" love t-mobile the voicemail-service is mind-blowing:)"}
-{"message-id": 1201, "author-id": 704, "timestamp":datetime("2005-10-26T11:09:31"), "in-response-to": 313, "sender-location":point("30.09,91.93"), "tags":{{"motorola", "customization" }}, "message":" dislike motorola the customization is horrible"}
-{"message-id": 1202, "author-id": 705, "timestamp":datetime("2009-02-22T12:48:43"), "in-response-to": 87, "sender-location":point("32.13,77.25"), "tags":{{"motorola", "voice-clarity" }}, "message":" can't stand motorola the voice-clarity is bad:("}
-{"message-id": 1203, "author-id": 706, "timestamp":datetime("2007-10-20T23:58:58"), "in-response-to": 932, "sender-location":point("37.65,75.06"), "tags":{{"motorola", "touch-screen" }}, "message":" love motorola its touch-screen is mind-blowing:)"}
-{"message-id": 1204, "author-id": 707, "timestamp":datetime("2010-10-23T17:49:39"), "in-response-to": 1647, "sender-location":point("32.13,81.65"), "tags":{{"motorola", "3G" }}, "message":" love motorola the 3G is amazing"}
-{"message-id": 1205, "author-id": 708, "timestamp":datetime("2013-11-17T04:22:55"), "in-response-to": 1139, "sender-location":point("38.14,97.94"), "tags":{{"at&t", "wireless" }}, "message":" love at&t its wireless is amazing"}
-{"message-id": 1206, "author-id": 709, "timestamp":datetime("2012-11-16T00:09:36"), "in-response-to": 1850, "sender-location":point("27.37,96.19"), "tags":{{"t-mobile", "network" }}, "message":" love t-mobile the network is good"}
-{"message-id": 1207, "author-id": 710, "timestamp":datetime("2011-03-14T22:19:53"), "in-response-to": 1257, "sender-location":point("46.22,67.06"), "tags":{{"verizon", "shortcut-menu" }}, "message":" can't stand verizon its shortcut-menu is bad:("}
-{"message-id": 1208, "author-id": 711, "timestamp":datetime("2008-04-11T02:32:00"), "in-response-to": 845, "sender-location":point("48.44,72.95"), "tags":{{"verizon", "network" }}, "message":" hate verizon its network is OMG"}
-{"message-id": 1209, "author-id": 712, "timestamp":datetime("2007-07-04T12:20:26"), "in-response-to": 652, "sender-location":point("29.21,69.58"), "tags":{{"verizon", "network" }}, "message":" dislike verizon its network is horrible:("}
-{"message-id": 1210, "author-id": 713, "timestamp":datetime("2007-10-25T18:00:11"), "in-response-to": 2978, "sender-location":point("43.43,69.34"), "tags":{{"motorola", "reachability" }}, "message":" like motorola its reachability is good:)"}
-{"message-id": 1211, "author-id": 714, "timestamp":datetime("2006-09-24T20:26:26"), "in-response-to": 1328, "sender-location":point("36.45,68.59"), "tags":{{"motorola", "wireless" }}, "message":" like motorola the wireless is amazing:)"}
-{"message-id": 1212, "author-id": 715, "timestamp":datetime("2005-02-08T20:23:44"), "in-response-to": 409, "sender-location":point("46.77,97.05"), "tags":{{"at&t", "voicemail-service" }}, "message":" dislike at&t the voicemail-service is terrible:("}
-{"message-id": 1213, "author-id": 716, "timestamp":datetime("2010-10-25T01:09:45"), "in-response-to": 1230, "sender-location":point("44.44,76.66"), "tags":{{"motorola", "plan" }}, "message":" can't stand motorola its plan is bad"}
-{"message-id": 1214, "author-id": 717, "timestamp":datetime("2010-04-02T01:57:48"), "in-response-to": 1263, "sender-location":point("31.65,85.29"), "tags":{{"verizon", "voicemail-service" }}, "message":" like verizon its voicemail-service is good"}
-{"message-id": 1215, "author-id": 718, "timestamp":datetime("2005-08-14T23:42:13"), "in-response-to": 394, "sender-location":point("26.74,89.49"), "tags":{{"sprint", "voicemail-service" }}, "message":" dislike sprint its voicemail-service is horrible"}
-{"message-id": 1216, "author-id": 719, "timestamp":datetime("2014-04-24T23:23:08"), "in-response-to": 1824, "sender-location":point("42.0,69.34"), "tags":{{"verizon", "voice-command" }}, "message":" can't stand verizon its voice-command is bad"}
-{"message-id": 1217, "author-id": 720, "timestamp":datetime("2008-12-17T04:28:31"), "in-response-to": 711, "sender-location":point("36.97,80.66"), "tags":{{"motorola", "platform" }}, "message":" hate motorola the platform is horrible:("}
-{"message-id": 1218, "author-id": 721, "timestamp":datetime("2012-09-08T03:39:53"), "in-response-to": 1772, "sender-location":point("34.01,94.33"), "tags":{{"samsung", "voice-command" }}, "message":" dislike samsung the voice-command is bad:("}
-{"message-id": 1219, "author-id": 722, "timestamp":datetime("2007-03-09T16:16:16"), "in-response-to": 355, "sender-location":point("43.71,76.95"), "tags":{{"iphone", "plan" }}, "message":" dislike iphone the plan is horrible"}
-{"message-id": 1220, "author-id": 723, "timestamp":datetime("2007-04-04T02:47:34"), "in-response-to": 2446, "sender-location":point("43.9,93.16"), "tags":{{"at&t", "reachability" }}, "message":" hate at&t its reachability is terrible"}
-{"message-id": 1221, "author-id": 724, "timestamp":datetime("2010-03-14T12:13:12"), "in-response-to": 704, "sender-location":point("36.28,89.54"), "tags":{{"iphone", "speed" }}, "message":" can't stand iphone the speed is terrible"}
-{"message-id": 1222, "author-id": 725, "timestamp":datetime("2005-03-09T02:18:38"), "in-response-to": 2652, "sender-location":point("29.06,94.34"), "tags":{{"iphone", "shortcut-menu" }}, "message":" dislike iphone its shortcut-menu is bad:("}
-{"message-id": 1223, "author-id": 726, "timestamp":datetime("2012-10-24T13:00:39"), "in-response-to": 770, "sender-location":point("40.98,88.65"), "tags":{{"sprint", "voice-clarity" }}, "message":" can't stand sprint the voice-clarity is OMG"}
-{"message-id": 1224, "author-id": 727, "timestamp":datetime("2014-07-10T04:43:58"), "in-response-to": 2443, "sender-location":point("24.1,97.33"), "tags":{{"at&t", "customer-service" }}, "message":" love at&t its customer-service is mind-blowing"}
-{"message-id": 1225, "author-id": 728, "timestamp":datetime("2005-12-28T17:54:51"), "in-response-to": 875, "sender-location":point("44.74,72.17"), "tags":{{"sprint", "customer-service" }}, "message":" dislike sprint its customer-service is horrible:("}
-{"message-id": 1226, "author-id": 729, "timestamp":datetime("2008-03-15T04:26:16"), "in-response-to": 1474, "sender-location":point("44.18,89.33"), "tags":{{"verizon", "plan" }}, "message":" love verizon its plan is mind-blowing"}
-{"message-id": 1227, "author-id": 730, "timestamp":datetime("2013-12-20T15:30:14"), "in-response-to": 528, "sender-location":point("36.49,76.19"), "tags":{{"motorola", "voicemail-service" }}, "message":" can't stand motorola the voicemail-service is horrible"}
-{"message-id": 1228, "author-id": 731, "timestamp":datetime("2012-04-03T14:13:16"), "in-response-to": 374, "sender-location":point("47.26,84.72"), "tags":{{"samsung", "plan" }}, "message":" love samsung its plan is good:)"}
-{"message-id": 1229, "author-id": 732, "timestamp":datetime("2006-06-19T01:40:35"), "in-response-to": 2457, "sender-location":point("28.98,93.08"), "tags":{{"iphone", "3G" }}, "message":" love iphone the 3G is mind-blowing:)"}
-{"message-id": 1230, "author-id": 733, "timestamp":datetime("2013-08-15T17:20:41"), "in-response-to": 3159, "sender-location":point("42.43,83.82"), "tags":{{"verizon", "reachability" }}, "message":" dislike verizon its reachability is OMG"}
-{"message-id": 1231, "author-id": 734, "timestamp":datetime("2005-12-26T20:17:48"), "in-response-to": 1153, "sender-location":point("24.09,69.58"), "tags":{{"motorola", "plan" }}, "message":" love motorola its plan is awesome:)"}
-{"message-id": 1232, "author-id": 735, "timestamp":datetime("2014-03-05T22:43:11"), "in-response-to": 2504, "sender-location":point("32.26,83.84"), "tags":{{"motorola", "shortcut-menu" }}, "message":" can't stand motorola its shortcut-menu is terrible:("}
-{"message-id": 1233, "author-id": 736, "timestamp":datetime("2012-08-26T13:41:49"), "in-response-to": 1855, "sender-location":point("43.19,92.94"), "tags":{{"at&t", "touch-screen" }}, "message":" love at&t its touch-screen is amazing:)"}
-{"message-id": 1234, "author-id": 737, "timestamp":datetime("2013-04-19T16:11:05"), "in-response-to": 45, "sender-location":point("32.33,66.82"), "tags":{{"verizon", "shortcut-menu" }}, "message":" like verizon its shortcut-menu is mind-blowing:)"}
-{"message-id": 1235, "author-id": 738, "timestamp":datetime("2005-11-08T13:53:22"), "in-response-to": 1997, "sender-location":point("38.7,73.99"), "tags":{{"iphone", "voice-command" }}, "message":" hate iphone its voice-command is OMG:("}
-{"message-id": 1236, "author-id": 739, "timestamp":datetime("2010-03-21T04:17:46"), "in-response-to": 2116, "sender-location":point("32.31,78.91"), "tags":{{"verizon", "voice-clarity" }}, "message":" dislike verizon its voice-clarity is bad:("}
-{"message-id": 1237, "author-id": 740, "timestamp":datetime("2006-02-28T04:27:15"), "in-response-to": 1288, "sender-location":point("31.87,87.1"), "tags":{{"iphone", "voice-clarity" }}, "message":" like iphone its voice-clarity is awesome"}
-{"message-id": 1238, "author-id": 741, "timestamp":datetime("2011-09-23T09:36:43"), "in-response-to": 1787, "sender-location":point("33.3,73.61"), "tags":{{"samsung", "shortcut-menu" }}, "message":" can't stand samsung the shortcut-menu is OMG:("}
-{"message-id": 1239, "author-id": 742, "timestamp":datetime("2013-07-04T00:49:37"), "in-response-to": 292, "sender-location":point("39.03,79.18"), "tags":{{"at&t", "voicemail-service" }}, "message":" hate at&t the voicemail-service is bad"}
-{"message-id": 1240, "author-id": 743, "timestamp":datetime("2007-06-13T16:27:30"), "in-response-to": 2342, "sender-location":point("45.36,66.79"), "tags":{{"verizon", "voicemail-service" }}, "message":" dislike verizon the voicemail-service is terrible:("}
-{"message-id": 1241, "author-id": 744, "timestamp":datetime("2007-07-15T14:19:53"), "in-response-to": 1384, "sender-location":point("26.48,72.34"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" like t-mobile the voicemail-service is mind-blowing:)"}
-{"message-id": 1242, "author-id": 745, "timestamp":datetime("2010-01-18T20:12:04"), "in-response-to": 3182, "sender-location":point("31.68,70.33"), "tags":{{"samsung", "signal" }}, "message":" like samsung its signal is awesome:)"}
-{"message-id": 1243, "author-id": 746, "timestamp":datetime("2005-09-14T13:05:30"), "in-response-to": 1046, "sender-location":point("40.51,69.67"), "tags":{{"iphone", "plan" }}, "message":" love iphone its plan is amazing"}
-{"message-id": 1244, "author-id": 747, "timestamp":datetime("2008-03-23T09:20:50"), "in-response-to": 849, "sender-location":point("40.43,94.23"), "tags":{{"iphone", "shortcut-menu" }}, "message":" like iphone the shortcut-menu is awesome"}
-{"message-id": 1245, "author-id": 748, "timestamp":datetime("2005-08-11T17:30:14"), "in-response-to": 2160, "sender-location":point("39.78,91.16"), "tags":{{"iphone", "wireless" }}, "message":" love iphone the wireless is awesome"}
-{"message-id": 1246, "author-id": 749, "timestamp":datetime("2011-11-01T07:25:29"), "in-response-to": 1074, "sender-location":point("26.81,79.35"), "tags":{{"samsung", "shortcut-menu" }}, "message":" like samsung the shortcut-menu is good"}
-{"message-id": 1247, "author-id": 750, "timestamp":datetime("2014-08-01T05:04:53"), "in-response-to": 1165, "sender-location":point("39.93,66.42"), "tags":{{"samsung", "speed" }}, "message":" like samsung its speed is mind-blowing:)"}
-{"message-id": 1248, "author-id": 751, "timestamp":datetime("2011-05-07T15:43:56"), "in-response-to": 1629, "sender-location":point("24.79,88.26"), "tags":{{"motorola", "voicemail-service" }}, "message":" can't stand motorola its voicemail-service is terrible"}
-{"message-id": 1249, "author-id": 752, "timestamp":datetime("2012-06-22T14:10:14"), "in-response-to": 3215, "sender-location":point("36.7,83.52"), "tags":{{"t-mobile", "voice-clarity" }}, "message":" love t-mobile its voice-clarity is amazing:)"}
-{"message-id": 1250, "author-id": 753, "timestamp":datetime("2006-08-09T11:29:16"), "in-response-to": 1055, "sender-location":point("32.69,90.92"), "tags":{{"iphone", "platform" }}, "message":" love iphone the platform is good:)"}
-{"message-id": 1251, "author-id": 754, "timestamp":datetime("2011-01-06T13:01:48"), "in-response-to": 1309, "sender-location":point("24.7,97.82"), "tags":{{"t-mobile", "network" }}, "message":" love t-mobile the network is awesome:)"}
-{"message-id": 1252, "author-id": 755, "timestamp":datetime("2012-10-15T08:33:50"), "in-response-to": 1450, "sender-location":point("41.91,85.82"), "tags":{{"samsung", "network" }}, "message":" love samsung the network is awesome:)"}
-{"message-id": 1253, "author-id": 756, "timestamp":datetime("2006-11-13T04:57:26"), "in-response-to": 2124, "sender-location":point("39.92,72.52"), "tags":{{"samsung", "shortcut-menu" }}, "message":" can't stand samsung its shortcut-menu is horrible:("}
-{"message-id": 1254, "author-id": 757, "timestamp":datetime("2013-03-05T22:24:35"), "in-response-to": 2442, "sender-location":point("34.38,94.57"), "tags":{{"samsung", "wireless" }}, "message":" dislike samsung its wireless is terrible"}
-{"message-id": 1255, "author-id": 758, "timestamp":datetime("2009-07-22T14:09:12"), "in-response-to": 1802, "sender-location":point("25.5,81.05"), "tags":{{"samsung", "customization" }}, "message":" like samsung the customization is awesome:)"}
-{"message-id": 1256, "author-id": 759, "timestamp":datetime("2012-11-25T06:20:25"), "in-response-to": 347, "sender-location":point("30.65,68.26"), "tags":{{"at&t", "wireless" }}, "message":" love at&t the wireless is mind-blowing:)"}
-{"message-id": 1257, "author-id": 760, "timestamp":datetime("2013-05-11T10:03:03"), "in-response-to": 2099, "sender-location":point("25.13,85.61"), "tags":{{"t-mobile", "3G" }}, "message":" hate t-mobile its 3G is terrible"}
-{"message-id": 1258, "author-id": 761, "timestamp":datetime("2007-11-09T17:08:14"), "in-response-to": 3108, "sender-location":point("40.13,85.25"), "tags":{{"motorola", "3G" }}, "message":" dislike motorola its 3G is OMG:("}
-{"message-id": 1259, "author-id": 762, "timestamp":datetime("2006-08-07T07:02:07"), "in-response-to": 2450, "sender-location":point("38.75,67.41"), "tags":{{"sprint", "3G" }}, "message":" can't stand sprint its 3G is OMG"}
-{"message-id": 1260, "author-id": 763, "timestamp":datetime("2009-03-02T06:56:54"), "in-response-to": 1925, "sender-location":point("35.03,87.43"), "tags":{{"t-mobile", "speed" }}, "message":" dislike t-mobile its speed is terrible"}
-{"message-id": 1261, "author-id": 764, "timestamp":datetime("2005-12-13T00:47:05"), "in-response-to": 2023, "sender-location":point("46.56,97.36"), "tags":{{"iphone", "shortcut-menu" }}, "message":" love iphone its shortcut-menu is amazing"}
-{"message-id": 1262, "author-id": 765, "timestamp":datetime("2014-06-15T19:52:48"), "in-response-to": 985, "sender-location":point("48.11,97.18"), "tags":{{"sprint", "shortcut-menu" }}, "message":" hate sprint the shortcut-menu is terrible"}
-{"message-id": 1263, "author-id": 766, "timestamp":datetime("2008-04-26T01:42:10"), "in-response-to": 521, "sender-location":point("31.71,94.13"), "tags":{{"sprint", "reachability" }}, "message":" like sprint its reachability is awesome"}
-{"message-id": 1264, "author-id": 767, "timestamp":datetime("2009-05-04T17:44:01"), "in-response-to": 2947, "sender-location":point("44.01,92.09"), "tags":{{"samsung", "voice-clarity" }}, "message":" hate samsung its voice-clarity is horrible"}
-{"message-id": 1265, "author-id": 768, "timestamp":datetime("2010-11-15T22:30:33"), "in-response-to": 1414, "sender-location":point("39.55,78.45"), "tags":{{"t-mobile", "customization" }}, "message":" dislike t-mobile the customization is OMG:("}
-{"message-id": 1266, "author-id": 769, "timestamp":datetime("2011-09-28T11:11:29"), "in-response-to": 975, "sender-location":point("35.32,77.78"), "tags":{{"t-mobile", "voicemail-service" }}, "message":" can't stand t-mobile its voicemail-service is OMG"}
-{"message-id": 1267, "author-id": 770, "timestamp":datetime("2011-02-05T17:48:51"), "in-response-to": 1688, "sender-location":point("26.73,85.0"), "tags":{{"verizon", "shortcut-menu" }}, "message":" dislike verizon the shortcut-menu is horrible"}
-{"message-id": 1268, "author-id": 771, "timestamp":datetime("2009-10-21T14:18:40"), "in-response-to": 2825, "sender-location":point("38.43,84.63"), "tags":{{"sprint", "voicemail-service" }}, "message":" can't stand sprint its voicemail-service is bad:("}
-{"message-id": 1269, "author-id": 772, "timestamp":datetime("2010-11-20T19:29:29"), "in-response-to": 4, "sender-location":point("39.14,69.36"), "tags":{{"t-mobile", "wireless" }}, "message":" like t-mobile the wireless is mind-blowing:)"}
-{"message-id": 1270, "author-id": 773, "timestamp":datetime("2009-06-10T01:49:53"), "in-response-to": 2361, "sender-location":point("29.89,81.58"), "tags":{{"verizon", "3G" }}, "message":" can't stand verizon the 3G is terrible"}
-{"message-id": 1271, "author-id": 774, "timestamp":datetime("2014-06-18T00:45:59"), "in-response-to": 54, "sender-location":point("25.67,94.99"), "tags":{{"motorola", "plan" }}, "message":" dislike motorola its plan is bad"}
-{"message-id": 1272, "author-id": 775, "timestamp":datetime("2014-01-21T13:22:47"), "in-response-to": 2450, "sender-location":point("35.7,91.29"), "tags":{{"iphone", "plan" }}, "message":" like iphone its plan is mind-blowing:)"}
-{"message-id": 1273, "author-id": 776, "timestamp":datetime("2010-10-14T14:30:37"), "in-response-to": 1339, "sender-location":point("33.02,67.32"), "tags":{{"verizon", "signal" }}, "message":" like verizon its signal is awesome"}
-{"message-id": 1274, "author-id": 777, "timestamp":datetime("2014-02-15T12:25:14"), "in-response-to": 47, "sender-location":point("31.78,81.73"), "tags":{{"verizon", "3G" }}, "message":" hate verizon the 3G is terrible:("}
-{"message-id": 1275, "author-id": 778, "timestamp":datetime("2008-02-13T13:59:09"), "in-response-to": 724, "sender-location":point("31.48,84.9"), "tags":{{"iphone", "reachability" }}, "message":" like iphone the reachability is mind-blowing:)"}
-{"message-id": 1276, "author-id": 779, "timestamp":datetime("2010-03-18T20:42:10"), "in-response-to": 2771, "sender-location":point("27.59,70.52"), "tags":{{"motorola", "customer-service" }}, "message":" can't stand motorola its customer-service is horrible"}
-{"message-id": 1277, "author-id": 780, "timestamp":datetime("2008-11-13T23:51:17"), "in-response-to": 968, "sender-location":point("38.63,91.26"), "tags":{{"motorola", "plan" }}, "message":" dislike motorola the plan is horrible"}
-{"message-id": 1278, "author-id": 781, "timestamp":datetime("2008-05-20T12:31:37"), "in-response-to": 1341, "sender-location":point("39.92,76.77"), "tags":{{"t-mobile", "speed" }}, "message":" hate t-mobile its speed is horrible"}
-{"message-id": 1279, "author-id": 782, "timestamp":datetime("2010-11-21T08:54:20"), "in-response-to": 2317, "sender-location":point("46.47,72.27"), "tags":{{"samsung", "touch-screen" }}, "message":" love samsung the touch-screen is good:)"}
-{"message-id": 1280, "author-id": 783, "timestamp":datetime("2014-05-10T21:15:20"), "in-response-to": 2557, "sender-location":point("37.77,86.13"), "tags":{{"t-mobile", "reachability" }}, "message":" dislike t-mobile the reachability is terrible"}
-{"message-id": 1281, "author-id": 784, "timestamp":datetime("2005-03-07T22:53:52"), "in-response-to": 424, "sender-location":point("35.18,85.09"), "tags":{{"sprint", "speed" }}, "message":" like sprint its speed is amazing:)"}
-{"message-id": 1282, "author-id": 785, "timestamp":datetime("2005-06-23T17:51:57"), "in-response-to": 3092, "sender-location":point("28.95,76.93"), "tags":{{"at&t", "shortcut-menu" }}, "message":" love at&t its shortcut-menu is amazing:)"}
-{"message-id": 1283, "author-id": 786, "timestamp":datetime("2014-05-27T00:55:03"), "in-response-to": 557, "sender-location":point("30.57,78.64"), "tags":{{"samsung", "touch-screen" }}, "message":" love samsung its touch-screen is awesome:)"}
-{"message-id": 1284, "author-id": 787, "timestamp":datetime("2005-06-26T21:44:40"), "in-response-to": 1957, "sender-location":point("38.55,77.15"), "tags":{{"verizon", "touch-screen" }}, "message":" dislike verizon its touch-screen is horrible"}
-{"message-id": 1285, "author-id": 788, "timestamp":datetime("2010-05-01T10:25:29"), "in-response-to": 3236, "sender-location":point("47.86,78.64"), "tags":{{"iphone", "customer-service" }}, "message":" dislike iphone its customer-service is bad:("}
-{"message-id": 1286, "author-id": 789, "timestamp":datetime("2011-09-08T01:10:49"), "in-response-to": 196, "sender-location":point("43.28,97.99"), "tags":{{"t-mobile", "plan" }}, "message":" hate t-mobile its plan is terrible:("}
-{"message-id": 1287, "author-id": 790, "timestamp":datetime("2010-10-24T05:19:11"), "in-response-to": 1308, "sender-location":point("35.98,80.16"), "tags":{{"iphone", "plan" }}, "message":" hate iphone the plan is terrible:("}
-{"message-id": 1288, "author-id": 791, "timestamp":datetime("2005-10-28T05:41:43"), "in-response-to": 890, "sender-location":point("26.43,81.29"), "tags":{{"sprint", "network" }}, "message":" dislike sprint the network is bad"}
-{"message-id": 1289, "author-id": 792, "timestamp":datetime("2008-01-18T18:57:49"), "in-response-to": 1902, "sender-location":point("46.3,88.48"), "tags":{{"samsung", "plan" }}, "message":" like samsung its plan is awesome"}
-{"message-id": 1290, "author-id": 793, "timestamp":datetime("2011-01-22T13:23:10"), "in-response-to": 436, "sender-location":point("37.07,81.23"), "tags":{{"sprint", "plan" }}, "message":" dislike sprint its plan is bad:("}
-{"message-id": 1291, "author-id": 794, "timestamp":datetime("2008-11-02T14:59:19"), "in-response-to": 2515, "sender-location":point("32.11,82.62"), "tags":{{"verizon", "voice-command" }}, "message":" like verizon the voice-command is mind-blowing"}
-{"message-id": 1292, "author-id": 795, "timestamp":datetime("2010-12-10T12:00:12"), "in-response-to": 1698, "sender-location":point("37.91,84.53"), "tags":{{"motorola", "touch-screen" }}, "message":" like motorola the touch-screen is awesome:)"}
-{"message-id": 1293, "author-id": 796, "timestamp":datetime("2006-01-23T06:50:26"), "in-response-to": 1543, "sender-location":point("27.56,71.26"), "tags":{{"samsung", "customization" }}, "message":" love samsung its customization is mind-blowing"}
-{"message-id": 1294, "author-id": 797, "timestamp":datetime("2013-02-22T03:27:49"), "in-response-to": 1611, "sender-location":point("31.0,84.36"), "tags":{{"motorola", "customization" }}, "message":" love motorola the customization is mind-blowing"}
-{"message-id": 1295, "author-id": 798, "timestamp":datetime("2005-02-26T11:38:18"), "in-response-to": 2511, "sender-location":point("25.56,74.83"), "tags":{{"samsung", "touch-screen" }}, "message":" dislike samsung the touch-screen is terrible:("}
-{"message-id": 1296, "author-id": 799, "timestamp":datetime("2005-09-20T10:51:01"), "in-response-to": 2569, "sender-location":point("26.1,80.97"), "tags":{{"iphone", "network" }}, "message":" dislike iphone its network is horrible"}
-{"message-id": 1297, "author-id": 800, "timestamp":datetime("2008-10-04T21:39:48"), "in-response-to": 2982, "sender-location":point("24.74,92.79"), "tags":{{"verizon", "voice-command" }}, "message":" hate verizon the voice-command is bad"}
-{"message-id": 1298, "author-id": 801, "timestamp":datetime("2006-08-26T20:23:28"), "in-response-to": 2837, "sender-location":point("24.54,68.09"), "tags":{{"at&t", "voice-clarity" }}, "message":" love at&t its voice-clarity is amazing"}
-{"message-id": 1299, "author-id": 802, "timestamp":datetime("2008-11-15T04:33:56"), "in-response-to": 1622, "sender-location":point("48.23,80.27"), "tags":{{"iphone", "signal" }}, "message":" can't stand iphone the signal is bad"}
-{"message-id": 1300, "author-id": 803, "timestamp":datetime("2010-03-16T06:51:40"), "in-response-to": 2901, "sender-location":point("25.78,86.33"), "tags":{{"at&t", "customization" }}, "message":" like at&t its customization is awesome"}
-{"message-id": 1301, "author-id": 804, "timestamp":datetime("2013-02-01T08:40:14"), "in-response-to": 861, "sender-location":point("37.48,84.01"), "tags":{{"t-mobile", "customization" }}, "message":" love t-mobile its customization is awesome"}
-{"message-id": 1302, "author-id": 805, "timestamp":datetime("2012-01-27T07:25:13"), "in-response-to": 2134, "sender-location":point("32.66,90.57"), "tags":{{"motorola", "voice-command" }}, "message":" love motorola the voice-command is awesome"}
-{"message-id": 1303, "author-id": 806, "timestamp":datetime("2007-06-28T22:04:48"), "in-response-to": 3000, "sender-location":point("36.1,86.99"), "tags":{{"samsung", "speed" }}, "message":" like samsung its speed is mind-blowing"}
-{"message-id": 1304, "author-id": 807, "timestamp":datetime("2005-12-12T07:21:22"), "in-response-to": 1466, "sender-location":point("40.07,88.78"), "tags":{{"t-mobile", "customization" }}, "message":" love t-mobile its customization is good"}
-{"message-id": 1305, "author-id": 808, "timestamp":datetime("2013-06-25T05:06:25"), "in-response-to": 123, "sender-location":point("42.91,73.88"), "tags":{{"sprint", "plan" }}, "message":" dislike sprint the plan is bad:("}
-{"message-id": 1306, "author-id": 809, "timestamp":datetime("2012-01-02T03:47:08"), "in-response-to": 609, "sender-location":point("46.68,69.77"), "tags":{{"samsung", "customization" }}, "message":" hate samsung the customization is horrible"}
-{"message-id": 1307, "author-id": 810, "timestamp":datetime("2010-10-17T11:19:58"), "in-response-to": 1312, "sender-location":point("25.99,77.8"), "tags":{{"motorola", "customization" }}, "message":" can't stand motorola its customization is horrible:("}
-{"message-id": 1308, "author-id": 811, "timestamp":datetime("2008-01-21T22:16:20"), "in-response-to": 1531, "sender-location":point("42.34,69.55"), "tags":{{"at&t", "plan" }}, "message":" like at&t the plan is awesome"}
-{"message-id": 1309, "author-id": 812, "timestamp":datetime("2013-01-15T12:29:47"), "in-response-to": 1857, "sender-location":point("39.54,70.53"), "tags":{{"verizon", "voicemail-service" }}, "message":" like verizon the voicemail-service is mind-blowing"}
-{"message-id": 1310, "author-id": 813, "timestamp":datetime("2005-01-09T16:57:52"), "in-response-to": 120, "sender-location":point("47.41,73.56"), "tags":{{"motorola", "voice-clarity" }}, "message":" like motorola the voice-clarity is amazing"}
-{"message-id": 1311, "author-id": 814, "timestamp":datetime("2012-07-22T18:45:25"), "in-response-to": 1736, "sender-location":point("48.63,84.74"), "tags":{{"samsung", "3G" }}, "message":" dislike samsung its 3G is terrible"}
-{"message-id": 1312, "author-id": 815, "timestamp":datetime("2012-07-10T09:36:09"), "in-response-to": 2578, "sender-location":point("30.14,91.02"), "tags":{{"motorola", "voice-command" }}, "message":" hate motorola the voice-command is bad"}
-{"message-id": 1313, "author-id": 816, "timestamp":datetime("2014-08-24T20:20:32"), "in-response-to": 3185, "sender-location":point("42.12,92.64"), "tags":{{"sprint", "customer-service" }}, "message":" hate sprint the customer-service is bad"}
-{"message-id": 1314, "author-id": 817, "timestamp":datetime("2008-06-25T21:01:21"), "in-response-to": 1698, "sender-location":point("48.36,82.81"), "tags":{{"at&t", "network" }}, "message":" like at&t the network is mind-blowing"}
-{"message-id": 1315, "author-id": 818, "timestamp":datetime("2013-12-21T10:09:45"), "in-response-to": 1457, "sender-location":point("29.5,74.4"), "tags":{{"t-mobile", "signal" }}, "message":" like t-mobile the signal is amazing:)"}
-{"message-id": 1316, "author-id": 819, "timestamp":datetime("2008-05-06T16:43:05"), "in-response-to": 306, "sender-location":point("34.05,91.03"), "tags":{{"sprint", "plan" }}, "message":" dislike sprint the plan is bad:("}
-{"message-id": 1317, "author-id": 820, "timestamp":datetime("2011-02-10T22:29:44"), "in-response-to": 3169, "sender-location":point("31.67,73.38"), "tags":{{"sprint", "shortcut-menu" }}, "message":" hate sprint its shortcut-menu is terrible:("}
-{"message-id": 1318, "author-id": 821, "timestamp":datetime("2012-06-25T10:01:39"), "in-response-to": 1340, "sender-location":point("41.64,96.35"), "tags":{{"samsung", "customer-service" }}, "message":" dislike samsung the customer-service is horrible:("}
-{"message-id": 1319, "author-id": 822, "timestamp":datetime("2014-03-23T19:49:17"), "in-response-to": 2937, "sender-location":point("37.15,66.46"), "tags":{{"t-mobile", "wireless" }}, "message":" love t-mobile its wireless is awesome"}
-{"message-id": 1320, "author-id": 823, "timestamp":datetime("2006-11-28T03:31:24"), "in-response-to": 890, "sender-location":point("28.91,82.27"), "tags":{{"sprint", "customization" }}, "message":" can't stand sprint the customization is horrible:("}
-{"message-id": 1321, "author-id": 824, "timestamp":datetime("2009-11-14T00:19:37"), "in-response-to": 1013, "sender-location":point("40.57,92.42"), "tags":{{"at&t", "network" }}, "message":" dislike at&t the network is terrible"}
-{"message-id": 1322, "author-id": 825, "timestamp":datetime("2006-06-25T07:15:08"), "in-response-to": 678, "sender-location":point("38.48,85.87"), "tags":{{"samsung", "touch-screen" }}, "message":" can't stand samsung its touch-screen is horrible"}
-{"message-id": 1323, "author-id": 826, "timestamp":datetime("2008-08-22T12:37:41"), "in-response-to": 664, "sender-location":point("44.3,79.68"), "tags":{{"motorola", "customer-service" }}, "message":" love motorola its customer-service is mind-blowing"}
-{"message-id": 1324, "author-id": 827, "timestamp":datetime("2014-01-22T01:28:27"), "in-response-to": 2077, "sender-location":point("36.69,96.57"), "tags":{{"motorola", "voicemail-service" }}, "message":" dislike motorola its voicemail-service is OMG"}
-{"message-id": 1325, "author-id": 828, "timestamp":datetime("2008-04-18T18:54:09"), "in-response-to": 1744, "sender-location":point("42.78,75.39"), "tags":{{"sprint", "3G" }}, "message":" like sprint the 3G is amazing"}
-{"message-id": 1326, "author-id": 829, "timestamp":datetime("2013-04-27T02:07:21"), "in-response-to": 1287, "sender-location":point("26.57,76.69"), "tags":{{"at&t", "wireless" }}, "message":" dislike at&t the wireless is OMG:("}
-{"message-id": 1327, "author-id": 830, "timestamp":datetime("2007-06-23T13:07:05"), "in-response-to": 804, "sender-location":point("32.63,67.55"), "tags":{{"sprint", "customization" }}, "message":" dislike sprint the customization is horrible:("}
-{"message-id": 1328, "author-id": 831, "timestamp":datetime("2005-10-04T02:34:24"), "in-response-to": 542, "sender-location":point("39.13,93.36"), "tags":{{"samsung", "customer-service" }}, "message":" can't stand samsung its customer-service is bad:("}
-{"message-id": 1329, "author-id": 832, "timestamp":datetime("2010-11-14T19:28:25"), "in-response-to": 1018, "sender-location":point("40.59,89.39"), "tags":{{"at&t", "voice-command" }}, "message":" love at&t the voice-command is mind-blowing"}
-{"message-id": 1330, "author-id": 833, "timestamp":datetime("2008-01-12T12:48:45"), "in-response-to": 1253, "sender-location":point("25.38,66.18"), "tags":{{"t-mobile", "shortcut-menu" }}, "message":" love t-mobile the shortcut-menu is amazing"}
-{"message-id": 1331, "author-id": 834, "timestamp":datetime("2007-11-05T05:13:39"), "in-response-to": 104, "sender-location":point("29.63,92.0"), "tags":{{"samsung", "wireless" }}, "message":" like samsung the wireless is mind-blowing"}
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/data/mugshot_users.adm b/asterixdb/asterix-installer/src/main/resources/examples/mugshot/data/mugshot_users.adm
deleted file mode 100644
index 554412a..0000000
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/data/mugshot_users.adm
+++ /dev/null
@@ -1,901 +0,0 @@
-{"id": 1, "alias": "Dewitt000001", "name": "Dewitt Faqua", "user-since": datetime("2005-01-23T01:49:01"), "address": {"street":"2 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{358 }}, "employment":[{"organization-name":"Newcom","start-date":date("2012-05-08"),"end-date":date("2012-07-11")}]}
-{"id": 2, "alias": "Irene000002", "name": "Irene Sybilla", "user-since": datetime("2005-02-14T19:43:51"), "address": {"street":"50 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{822, 210, 884, 773, 493, 5, 553, 75, 666, 68, 271, 889, 643, 196, 100, 266 }}, "employment":[{"organization-name":"goldendexon","start-date":date("2004-05-06"),"end-date":date("2006-04-10")}]}
-{"id": 3, "alias": "Teodoro000003", "name": "Teodoro Baskett", "user-since": datetime("2008-01-06T16:26:17"), "address": {"street":"24 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{857, 449, 203, 881, 179, 507, 143, 637, 767, 395 }}, "employment":[{"organization-name":"silfind","start-date":date("2002-04-16")}]}
-{"id": 4, "alias": "Austin000004", "name": "Austin Cox", "user-since": datetime("2012-08-06T14:52:05"), "address": {"street":"5 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{395, 26, 624, 724, 234, 341, 309, 202, 571, 10, 516, 245, 413, 53, 890, 512, 22, 261, 486 }}, "employment":[{"organization-name":"Lexicone","start-date":date("2005-07-09"),"end-date":date("2007-12-14")}]}
-{"id": 5, "alias": "Devon000005", "name": "Devon Newman", "user-since": datetime("2012-03-18T17:48:55"), "address": {"street":"26 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{677, 397, 822, 641, 71, 521, 653, 169, 803, 197, 159, 307, 358, 208, 415, 774, 361, 681, 522, 369, 273, 532 }}, "employment":[{"organization-name":"Doncare","start-date":date("2007-06-17")}]}
-{"id": 6, "alias": "Clinton000006", "name": "Clinton Barkley", "user-since": datetime("2007-11-12T17:48:48"), "address": {"street":"19 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"goldendexon","start-date":date("2004-07-12")}]}
-{"id": 7, "alias": "Cal000007", "name": "Cal Widaman", "user-since": datetime("2013-04-09T14:53:54"), "address": {"street":"25 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{407, 296, 428, 160 }}, "employment":[{"organization-name":"overtech","start-date":date("2006-08-24"),"end-date":date("2010-10-07")}]}
-{"id": 8, "alias": "Karly000008", "name": "Karly Kimple", "user-since": datetime("2007-08-27T20:26:02"), "address": {"street":"31 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{452, 835, 351, 786, 770, 134, 157, 395, 190, 47, 138, 66, 651, 630, 674, 517, 610 }}, "employment":[{"organization-name":"Villa-dox","start-date":date("2000-03-03")}]}
-{"id": 9, "alias": "Lea000009", "name": "Lea Burns", "user-since": datetime("2014-01-21T05:36:07"), "address": {"street":"79 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{789, 536, 595, 581, 259 }}, "employment":[{"organization-name":"Codetechno","start-date":date("2002-02-06")}]}
-{"id": 10, "alias": "Rick000010", "name": "Rick Bloise", "user-since": datetime("2013-03-19T10:26:10"), "address": {"street":"68 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{89, 834, 690, 638, 612, 207, 230, 761, 807, 861, 759, 576, 234, 850, 675, 33, 9 }}, "employment":[{"organization-name":"Newhotplus","start-date":date("2002-11-06"),"end-date":date("2004-03-22")}]}
-{"id": 11, "alias": "Caris000011", "name": "Caris Sholl", "user-since": datetime("2006-04-22T07:05:17"), "address": {"street":"45 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{484, 62, 212, 272, 641, 760, 786, 279, 765, 844, 550, 461, 354, 746, 82, 866 }}, "employment":[{"organization-name":"U-electrics","start-date":date("2008-08-26"),"end-date":date("2011-12-21")}]}
-{"id": 12, "alias": "Walker000012", "name": "Walker Overholt", "user-since": datetime("2013-12-02T13:13:25"), "address": {"street":"83 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{224, 725, 271, 649 }}, "employment":[{"organization-name":"Doublezone","start-date":date("2012-02-27"),"end-date":date("2012-05-25")}]}
-{"id": 13, "alias": "Alwyn000013", "name": "Alwyn Gilman", "user-since": datetime("2010-04-11T12:04:29"), "address": {"street":"59 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{452, 547, 856, 700, 688, 574 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2003-10-07")}]}
-{"id": 14, "alias": "Tomoko000014", "name": "Tomoko Barth", "user-since": datetime("2010-01-02T22:53:29"), "address": {"street":"86 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{546, 173, 831, 143, 271, 54, 231, 490, 564, 459 }}, "employment":[{"organization-name":"Lexicone","start-date":date("2002-08-09")}]}
-{"id": 15, "alias": "Val000015", "name": "Val Mang", "user-since": datetime("2012-03-18T02:51:26"), "address": {"street":"43 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{116, 86, 537, 42, 448, 875, 211, 155, 198, 518, 879, 417, 283, 362, 668, 349, 882, 673, 134 }}, "employment":[{"organization-name":"linedexon","start-date":date("2009-09-19")}]}
-{"id": 16, "alias": "Tatiana000016", "name": "Tatiana Berry", "user-since": datetime("2005-03-22T09:51:15"), "address": {"street":"27 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{87, 547, 94, 373, 396, 400, 863 }}, "employment":[{"organization-name":"Solophase","start-date":date("2005-06-02")}]}
-{"id": 17, "alias": "Rowland000017", "name": "Rowland Dennis", "user-since": datetime("2007-03-21T02:46:48"), "address": {"street":"31 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{441, 460, 195, 92, 601 }}, "employment":[{"organization-name":"Unijobam","start-date":date("2005-02-11"),"end-date":date("2009-05-19")}]}
-{"id": 18, "alias": "Lewella000018", "name": "Lewella Wain", "user-since": datetime("2012-01-22T20:27:24"), "address": {"street":"5 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{74, 82, 553, 370, 364, 504, 26, 386, 868, 338 }}, "employment":[{"organization-name":"Greencare","start-date":date("2011-08-19")}]}
-{"id": 19, "alias": "Logan000019", "name": "Logan Carr", "user-since": datetime("2014-03-22T20:39:30"), "address": {"street":"65 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{352, 68, 883, 509, 282, 44, 537, 504, 295, 808, 866, 854, 363, 304, 578, 0, 585, 503, 115, 74 }}, "employment":[{"organization-name":"Vaiatech","start-date":date("2001-08-12"),"end-date":date("2001-12-07")}]}
-{"id": 20, "alias": "Sloan000020", "name": "Sloan Mingle", "user-since": datetime("2011-03-27T08:11:34"), "address": {"street":"88 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{850, 511, 429, 243, 326, 494, 452, 50, 112, 305, 719, 859, 352, 504, 566, 558, 206, 473, 849 }}, "employment":[{"organization-name":"Dancode","start-date":date("2000-09-26"),"end-date":date("2000-11-18")}]}
-{"id": 21, "alias": "Jacquelyn000021", "name": "Jacquelyn Berkheimer", "user-since": datetime("2009-02-11T02:33:59"), "address": {"street":"65 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{673, 69, 94, 170, 740, 38, 361, 573, 682, 369 }}, "employment":[{"organization-name":"Ronholdings","start-date":date("2009-12-09")}]}
-{"id": 22, "alias": "Rachel000022", "name": "Rachel Drumm", "user-since": datetime("2008-12-04T15:23:42"), "address": {"street":"97 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{611, 867, 279, 441, 215, 32, 59 }}, "employment":[{"organization-name":"Quoline","start-date":date("2010-10-11")}]}
-{"id": 23, "alias": "Tonya000023", "name": "Tonya Caldwell", "user-since": datetime("2011-12-10T18:12:02"), "address": {"street":"80 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{207, 566, 1, 671, 370, 116, 738, 77, 681, 214, 697, 558, 616, 415, 39, 453, 457, 305, 521, 732 }}, "employment":[{"organization-name":"Inchdox","start-date":date("2009-06-25")}]}
-{"id": 24, "alias": "Quinton000024", "name": "Quinton Light", "user-since": datetime("2005-09-08T10:51:31"), "address": {"street":"42 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{669, 672, 800, 453, 454, 406, 207, 248, 683, 589, 527, 725, 349, 65, 587, 659, 274, 640, 846, 425, 445, 107 }}, "employment":[{"organization-name":"jaydax","start-date":date("2002-03-17"),"end-date":date("2003-06-04")}]}
-{"id": 25, "alias": "Madalyn000025", "name": "Madalyn Overstreet", "user-since": datetime("2006-04-27T19:57:58"), "address": {"street":"84 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{17, 383 }}, "employment":[{"organization-name":"Sancone","start-date":date("2002-06-07")}]}
-{"id": 26, "alias": "Jalisa000026", "name": "Jalisa Foster", "user-since": datetime("2012-11-03T13:31:03"), "address": {"street":"34 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{28, 268, 617, 495, 101, 408, 64, 363, 111, 289, 694, 661, 747, 375 }}, "employment":[{"organization-name":"Scotcity","start-date":date("2012-05-25"),"end-date":date("2012-06-07")}]}
-{"id": 27, "alias": "Scotty000027", "name": "Scotty Cross", "user-since": datetime("2006-08-08T19:09:49"), "address": {"street":"60 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{292, 332, 751, 521, 457, 628, 504, 402, 229, 264, 112, 49, 124, 282 }}, "employment":[{"organization-name":"Sancone","start-date":date("2011-07-22"),"end-date":date("2011-12-20")}]}
-{"id": 28, "alias": "Kalyn000028", "name": "Kalyn Bynum", "user-since": datetime("2009-03-23T13:34:50"), "address": {"street":"99 Elm Blvd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{609, 483, 785, 105, 827, 65 }}, "employment":[{"organization-name":"Labzatron","start-date":date("2007-11-23")}]}
-{"id": 29, "alias": "Esmaralda000029", "name": "Esmaralda Shaffer", "user-since": datetime("2013-01-22T15:52:00"), "address": {"street":"95 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{307, 212, 736, 540, 340, 129, 631, 396, 478, 514, 265, 14, 782, 877, 459, 897, 541, 191, 799, 71, 473, 326 }}, "employment":[{"organization-name":"Medflex","start-date":date("2000-04-06")}]}
-{"id": 30, "alias": "Amos000030", "name": "Amos Millard", "user-since": datetime("2009-11-28T10:27:02"), "address": {"street":"57 Third Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{178, 711, 605, 681, 325, 720, 328, 721, 487, 628, 66, 6, 259, 765, 10, 210, 395, 690, 879, 100, 425, 138, 660 }}, "employment":[{"organization-name":"Hexsanhex","start-date":date("2001-06-28"),"end-date":date("2007-01-22")}]}
-{"id": 31, "alias": "Ann000031", "name": "Ann Bennett", "user-since": datetime("2007-01-08T02:11:22"), "address": {"street":"49 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{792, 832, 54, 73, 390, 689, 686, 848, 157, 584, 752, 850, 205 }}, "employment":[{"organization-name":"Xx-technology","start-date":date("2003-04-23"),"end-date":date("2006-11-07")}]}
-{"id": 32, "alias": "Filiberto000032", "name": "Filiberto Harris", "user-since": datetime("2012-05-02T12:27:47"), "address": {"street":"43 Park Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{212, 505, 647, 193, 882, 457, 771, 813, 558, 836, 694, 590, 318, 339, 98, 754 }}, "employment":[{"organization-name":"U-ron","start-date":date("2003-06-15")}]}
-{"id": 33, "alias": "Harriett000033", "name": "Harriett Marshall", "user-since": datetime("2007-07-24T02:06:40"), "address": {"street":"47 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{81, 707, 88, 901, 440, 68 }}, "employment":[{"organization-name":"Doublezone","start-date":date("2008-06-21")}]}
-{"id": 34, "alias": "Jacinto000034", "name": "Jacinto Simpson", "user-since": datetime("2013-07-03T06:37:05"), "address": {"street":"37 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{209, 861, 408, 269, 9, 519, 580, 138, 7, 452, 82, 676, 371, 691, 375, 364, 290, 620, 271, 265, 467, 291, 723 }}, "employment":[{"organization-name":"Tranzap","start-date":date("2000-03-14")}]}
-{"id": 35, "alias": "Wendell000035", "name": "Wendell Fields", "user-since": datetime("2010-11-17T23:09:25"), "address": {"street":"16 Maple St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{746, 89, 156 }}, "employment":[{"organization-name":"itlab","start-date":date("2008-03-21"),"end-date":date("2009-05-24")}]}
-{"id": 36, "alias": "Sommer000036", "name": "Sommer Johnson", "user-since": datetime("2013-11-09T12:55:59"), "address": {"street":"85 Third Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{733, 588, 368, 730, 429, 314, 798, 513, 580 }}, "employment":[{"organization-name":"Fix-touch","start-date":date("2002-07-12")}]}
-{"id": 37, "alias": "Sharlene000037", "name": "Sharlene Maclagan", "user-since": datetime("2006-08-16T06:56:25"), "address": {"street":"60 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{862, 69, 465, 481, 612, 759, 353, 530, 251, 803, 348, 133, 847, 192, 156, 883 }}, "employment":[{"organization-name":"Whitemedia","start-date":date("2003-09-27"),"end-date":date("2007-07-24")}]}
-{"id": 38, "alias": "Pat000038", "name": "Pat Cox", "user-since": datetime("2011-04-17T13:14:19"), "address": {"street":"71 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{520, 555, 714, 796, 843, 466, 598, 493, 61, 384, 189, 562, 178, 20, 285, 422, 267 }}, "employment":[{"organization-name":"Vivaace","start-date":date("2008-07-18"),"end-date":date("2010-11-08")}]}
-{"id": 39, "alias": "Lillie000039", "name": "Lillie Miller", "user-since": datetime("2010-12-19T23:52:12"), "address": {"street":"11 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{492, 113, 313, 171, 269, 445, 887, 340, 398, 652, 190, 260, 758, 93, 125, 165, 659, 164, 614, 384, 86 }}, "employment":[{"organization-name":"Greencare","start-date":date("2003-01-08")}]}
-{"id": 40, "alias": "Indiana000040", "name": "Indiana Crom", "user-since": datetime("2008-02-28T21:30:52"), "address": {"street":"29 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{518, 483, 434, 176, 589, 601, 478, 362, 355, 147, 242 }}, "employment":[{"organization-name":"Icerunin","start-date":date("2007-04-12"),"end-date":date("2010-06-24")}]}
-{"id": 41, "alias": "Unice000041", "name": "Unice Zaun", "user-since": datetime("2011-07-07T05:56:33"), "address": {"street":"20 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{532, 188, 802, 113, 565, 573, 610, 718, 115, 327, 872, 669, 494, 146, 631, 66, 743, 863, 822, 893 }}, "employment":[{"organization-name":"Fixelectrics","start-date":date("2005-12-10"),"end-date":date("2007-08-17")}]}
-{"id": 42, "alias": "Dane000042", "name": "Dane Compton", "user-since": datetime("2010-03-26T10:46:37"), "address": {"street":"70 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{235, 414, 26, 732 }}, "employment":[{"organization-name":"Canline","start-date":date("2011-03-12")}]}
-{"id": 43, "alias": "Alberic000043", "name": "Alberic Archibald", "user-since": datetime("2010-11-25T00:38:56"), "address": {"street":"54 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{84, 431, 35, 407, 121, 254, 720, 87, 245, 131, 452, 677, 105, 498, 896, 240, 873 }}, "employment":[{"organization-name":"Viatechi","start-date":date("2012-08-21")}]}
-{"id": 44, "alias": "Allegria000044", "name": "Allegria Mccallum", "user-since": datetime("2005-01-01T19:48:19"), "address": {"street":"82 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{273, 823, 395, 386, 194, 789, 699, 360, 862, 717, 518, 812, 879, 173, 22 }}, "employment":[{"organization-name":"Tripplelane","start-date":date("2007-01-25")}]}
-{"id": 45, "alias": "Calanthe000045", "name": "Calanthe Wortman", "user-since": datetime("2013-09-16T21:23:02"), "address": {"street":"70 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{124, 465, 742, 116, 477, 102, 229, 383, 820, 51, 63, 523, 8, 753 }}, "employment":[{"organization-name":"Mathtech","start-date":date("2010-10-14"),"end-date":date("2011-02-08")}]}
-{"id": 46, "alias": "Avelina000046", "name": "Avelina Moore", "user-since": datetime("2013-01-08T23:34:04"), "address": {"street":"14 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{208, 176, 331, 598, 682, 313, 251, 741, 244, 584, 895, 612, 177, 841, 348 }}, "employment":[{"organization-name":"Strongtone","start-date":date("2007-02-22"),"end-date":date("2009-10-05")}]}
-{"id": 47, "alias": "Sheri000047", "name": "Sheri Monahan", "user-since": datetime("2010-05-18T07:13:41"), "address": {"street":"71 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{850, 249, 867, 489, 833, 842, 809, 162, 276, 405, 640, 625 }}, "employment":[{"organization-name":"Codetechno","start-date":date("2011-06-04"),"end-date":date("2011-03-21")}]}
-{"id": 48, "alias": "Garrick000048", "name": "Garrick Mcfall", "user-since": datetime("2007-04-22T08:59:58"), "address": {"street":"91 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{185, 254, 48 }}, "employment":[{"organization-name":"Unijobam","start-date":date("2001-11-20"),"end-date":date("2004-11-21")}]}
-{"id": 49, "alias": "Leola000049", "name": "Leola Wilkerson", "user-since": datetime("2010-05-19T06:10:52"), "address": {"street":"85 Maple St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{569, 104, 854, 720, 601, 666, 458, 739, 883, 215, 361, 827, 736, 4, 379, 773 }}, "employment":[{"organization-name":"Scotcity","start-date":date("2008-05-17")}]}
-{"id": 50, "alias": "Audie000050", "name": "Audie Agg", "user-since": datetime("2009-06-19T19:23:59"), "address": {"street":"44 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Trustbam","start-date":date("2002-06-02")}]}
-{"id": 51, "alias": "Debra000051", "name": "Debra Baird", "user-since": datetime("2013-01-21T10:21:43"), "address": {"street":"98 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{596, 25, 379, 470, 261, 522, 559, 268, 395, 740, 773, 501, 591, 126 }}, "employment":[{"organization-name":"highfax","start-date":date("2000-04-02")}]}
-{"id": 52, "alias": "Lyda000052", "name": "Lyda Reed", "user-since": datetime("2005-09-17T13:18:58"), "address": {"street":"97 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{414, 729, 453, 447, 409, 660, 765, 183, 466, 136 }}, "employment":[{"organization-name":"Canline","start-date":date("2011-06-26"),"end-date":date("2011-11-24")}]}
-{"id": 53, "alias": "Denzil000053", "name": "Denzil Giesler", "user-since": datetime("2009-04-20T03:04:22"), "address": {"street":"21 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{109, 432, 777, 228 }}, "employment":[{"organization-name":"Zimcone","start-date":date("2001-01-12")}]}
-{"id": 54, "alias": "Felix000054", "name": "Felix Draudy", "user-since": datetime("2012-12-19T17:16:59"), "address": {"street":"52 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{30, 697, 43, 662, 427, 324, 438, 312, 873 }}, "employment":[{"organization-name":"whitestreet","start-date":date("2007-08-23"),"end-date":date("2009-03-28")}]}
-{"id": 55, "alias": "Freeda000055", "name": "Freeda Stall", "user-since": datetime("2010-05-09T03:15:30"), "address": {"street":"30 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{853, 275, 269, 331, 41, 105, 260, 161, 644, 92, 457, 246, 743, 761, 737, 481, 379, 228 }}, "employment":[{"organization-name":"Zimcone","start-date":date("2010-11-24"),"end-date":date("2010-01-03")}]}
-{"id": 56, "alias": "Byron000056", "name": "Byron Eckhardstein", "user-since": datetime("2006-06-26T15:46:39"), "address": {"street":"19 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{422, 342, 808, 893, 87, 1, 537, 697, 452, 521, 235, 93, 587, 614, 138, 864, 583, 554, 23, 204, 823, 374, 143 }}, "employment":[{"organization-name":"Hexsanhex","start-date":date("2001-01-01")}]}
-{"id": 57, "alias": "Adrian000057", "name": "Adrian Schuth", "user-since": datetime("2014-02-08T13:49:51"), "address": {"street":"96 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{659, 660, 732, 456, 877, 280, 498 }}, "employment":[{"organization-name":"Freshfix","start-date":date("2011-03-10")}]}
-{"id": 58, "alias": "Willy000058", "name": "Willy Zoucks", "user-since": datetime("2008-09-12T01:41:36"), "address": {"street":"40 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{590, 791, 19, 64, 624, 131, 44, 610, 221, 48, 656 }}, "employment":[{"organization-name":"highfax","start-date":date("2008-04-23"),"end-date":date("2009-07-23")}]}
-{"id": 59, "alias": "Delora000059", "name": "Delora Sanders", "user-since": datetime("2007-11-15T06:12:26"), "address": {"street":"24 Elm Blvd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{80, 869, 823, 891, 325, 398, 629, 840, 892, 100, 719, 267, 248, 189, 615, 718, 33, 873, 688, 192, 440, 50 }}, "employment":[{"organization-name":"Solophase","start-date":date("2010-11-05")}]}
-{"id": 60, "alias": "Carolina000060", "name": "Carolina Herrold", "user-since": datetime("2013-10-26T02:49:14"), "address": {"street":"55 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{294, 416, 659, 544, 865, 757, 502, 578, 307, 322, 326, 295, 572, 219, 565 }}, "employment":[{"organization-name":"overtech","start-date":date("2007-09-15")}]}
-{"id": 61, "alias": "Drew000061", "name": "Drew Eisenman", "user-since": datetime("2006-08-22T15:48:29"), "address": {"street":"98 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{100 }}, "employment":[{"organization-name":"Vaiatech","start-date":date("2001-09-23")}]}
-{"id": 62, "alias": "Wisdom000062", "name": "Wisdom Wilson", "user-since": datetime("2009-07-13T15:09:40"), "address": {"street":"49 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{193, 414, 518, 866, 16, 541, 419, 397, 134, 575 }}, "employment":[{"organization-name":"Unijobam","start-date":date("2008-09-22"),"end-date":date("2011-10-03")}]}
-{"id": 63, "alias": "Antony000063", "name": "Antony Johns", "user-since": datetime("2014-05-07T22:57:12"), "address": {"street":"46 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{334, 98, 848, 465, 352 }}, "employment":[{"organization-name":"jaydax","start-date":date("2005-06-03")}]}
-{"id": 64, "alias": "Luke000064", "name": "Luke Sanders", "user-since": datetime("2013-08-07T19:31:37"), "address": {"street":"9 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{408, 569 }}, "employment":[{"organization-name":"Strongtone","start-date":date("2000-06-01")}]}
-{"id": 65, "alias": "Dora000065", "name": "Dora Steiner", "user-since": datetime("2013-02-21T05:31:14"), "address": {"street":"98 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{684, 120, 292, 829, 785, 55, 568, 138, 475, 602, 775, 581, 196 }}, "employment":[{"organization-name":"Labzatron","start-date":date("2010-12-08"),"end-date":date("2010-06-03")}]}
-{"id": 66, "alias": "Kathi000066", "name": "Kathi Catherina", "user-since": datetime("2009-05-02T08:37:06"), "address": {"street":"15 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{713, 785, 546, 256, 312, 233, 446, 63, 547, 483, 143, 152, 643, 258, 12, 570, 489 }}, "employment":[{"organization-name":"Villa-tech","start-date":date("2012-05-04")}]}
-{"id": 67, "alias": "Adan000067", "name": "Adan Weldy", "user-since": datetime("2005-11-12T08:47:55"), "address": {"street":"32 Park Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{415, 564, 328, 118, 871, 458, 708, 782, 684, 572, 319 }}, "employment":[{"organization-name":"Dandamace","start-date":date("2012-03-27")}]}
-{"id": 68, "alias": "Corrie000068", "name": "Corrie Pittman", "user-since": datetime("2012-05-15T11:21:54"), "address": {"street":"11 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{304, 634, 145, 371, 207, 530, 101, 348, 891, 706, 305, 323, 854, 219, 794, 523, 503, 636 }}, "employment":[{"organization-name":"Keytech","start-date":date("2003-08-10"),"end-date":date("2005-10-24")}]}
-{"id": 69, "alias": "Alayna000069", "name": "Alayna Wardle", "user-since": datetime("2013-06-21T02:52:31"), "address": {"street":"85 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{887, 554, 818, 171, 360, 340, 153 }}, "employment":[{"organization-name":"Y-geohex","start-date":date("2008-02-13")}]}
-{"id": 70, "alias": "Carolee000070", "name": "Carolee Ewing", "user-since": datetime("2008-03-16T16:52:16"), "address": {"street":"44 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{138, 252, 466 }}, "employment":[{"organization-name":"Unijobam","start-date":date("2009-01-04")}]}
-{"id": 71, "alias": "Channing000071", "name": "Channing Lane", "user-since": datetime("2012-08-07T08:06:25"), "address": {"street":"43 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{719, 856, 847, 238, 203, 507, 871, 42, 587, 839, 644, 882, 827, 514, 887, 486 }}, "employment":[{"organization-name":"ganjalax","start-date":date("2011-02-05"),"end-date":date("2011-10-23")}]}
-{"id": 72, "alias": "Gyles000072", "name": "Gyles Northey", "user-since": datetime("2012-04-13T09:27:47"), "address": {"street":"28 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{829, 554 }}, "employment":[{"organization-name":"Vivaace","start-date":date("2011-02-09")}]}
-{"id": 73, "alias": "Griselda000073", "name": "Griselda Mens", "user-since": datetime("2008-07-23T19:39:20"), "address": {"street":"49 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{695, 554, 882, 755, 330, 336, 493, 633, 595, 310, 236, 896, 463, 404, 694, 105, 159 }}, "employment":[{"organization-name":"Voltbam","start-date":date("2009-07-22")}]}
-{"id": 74, "alias": "Scottie000074", "name": "Scottie Handyside", "user-since": datetime("2012-10-06T10:36:56"), "address": {"street":"70 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{606, 9, 655, 258, 475, 558, 880, 639, 397, 804, 218 }}, "employment":[{"organization-name":"Newcom","start-date":date("2012-04-07"),"end-date":date("2012-05-25")}]}
-{"id": 75, "alias": "Debby000075", "name": "Debby Painter", "user-since": datetime("2009-04-10T09:13:09"), "address": {"street":"64 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{496, 675, 305, 842, 880, 0, 151, 563, 104, 804, 180, 447, 173, 234, 531, 763, 183 }}, "employment":[{"organization-name":"U-ron","start-date":date("2009-12-12")}]}
-{"id": 76, "alias": "Stefan000076", "name": "Stefan Frankenberger", "user-since": datetime("2011-10-22T15:04:02"), "address": {"street":"66 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{173, 392, 185, 848, 489, 766, 367, 771, 706, 225, 745 }}, "employment":[{"organization-name":"highfax","start-date":date("2000-05-27")}]}
-{"id": 77, "alias": "Tad000077", "name": "Tad Hiles", "user-since": datetime("2006-10-10T04:37:17"), "address": {"street":"39 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{267, 400, 658, 806, 870 }}, "employment":[{"organization-name":"Keytech","start-date":date("2006-10-08")}]}
-{"id": 78, "alias": "Andera000078", "name": "Andera Wells", "user-since": datetime("2011-09-08T11:29:44"), "address": {"street":"8 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{77, 143, 799, 882, 125, 209, 847, 736, 631, 90, 217, 512, 318, 299, 267, 564, 52, 449, 70, 181 }}, "employment":[{"organization-name":"Freshfix","start-date":date("2002-01-11")}]}
-{"id": 79, "alias": "Bradley000079", "name": "Bradley Ward", "user-since": datetime("2014-01-12T08:12:22"), "address": {"street":"39 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{273, 278, 189, 787, 144, 420, 372, 296, 264, 220, 295, 699, 439, 886, 448, 43, 201, 251, 92, 532 }}, "employment":[{"organization-name":"Greencare","start-date":date("2001-04-23")}]}
-{"id": 80, "alias": "Janice000080", "name": "Janice Hatherly", "user-since": datetime("2011-05-17T02:48:45"), "address": {"street":"46 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{41, 690, 99, 819, 794, 548, 179, 155, 585, 137, 647, 362, 442, 418, 229, 737, 597, 789, 741, 657 }}, "employment":[{"organization-name":"Icerunin","start-date":date("2011-01-02")}]}
-{"id": 81, "alias": "So000081", "name": "So Beedell", "user-since": datetime("2009-06-18T00:29:46"), "address": {"street":"99 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{642, 15, 475, 517, 755, 208, 576, 493, 392, 656 }}, "employment":[{"organization-name":"Mathtech","start-date":date("2003-06-04")}]}
-{"id": 82, "alias": "Lesley000082", "name": "Lesley Read", "user-since": datetime("2005-05-14T15:00:06"), "address": {"street":"48 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{310 }}, "employment":[{"organization-name":"Unijobam","start-date":date("2000-03-17"),"end-date":date("2005-11-15")}]}
-{"id": 83, "alias": "Molly000083", "name": "Molly Bonner", "user-since": datetime("2007-11-09T01:24:02"), "address": {"street":"17 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{533, 652, 260, 97, 342, 880, 792, 454, 300, 320, 5 }}, "employment":[{"organization-name":"highfax","start-date":date("2005-02-03"),"end-date":date("2006-06-08")}]}
-{"id": 84, "alias": "Adolph000084", "name": "Adolph Hair", "user-since": datetime("2010-08-18T13:45:25"), "address": {"street":"30 Third Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{489, 578, 463, 277, 53, 636, 189, 349, 405, 406, 778, 530, 104, 380, 579, 55, 266, 628, 849, 142, 521, 164 }}, "employment":[{"organization-name":"Technohow","start-date":date("2008-01-27"),"end-date":date("2011-11-10")}]}
-{"id": 85, "alias": "Numbers000085", "name": "Numbers Stroble", "user-since": datetime("2013-07-07T04:20:03"), "address": {"street":"53 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{250, 823, 244, 23 }}, "employment":[{"organization-name":"Ontohothex","start-date":date("2012-04-24"),"end-date":date("2012-06-18")}]}
-{"id": 86, "alias": "Patti000086", "name": "Patti Wall", "user-since": datetime("2010-01-05T17:12:27"), "address": {"street":"71 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{470, 149, 899, 423, 75, 563, 286, 644, 106, 12, 831, 25, 86, 270, 875 }}, "employment":[{"organization-name":"subtam","start-date":date("2001-12-09")}]}
-{"id": 87, "alias": "Zavia000087", "name": "Zavia Holtzer", "user-since": datetime("2008-05-10T07:33:07"), "address": {"street":"88 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{534, 88, 791, 378, 323, 9, 448, 716, 437, 348, 617, 621, 695, 122 }}, "employment":[{"organization-name":"Hexsanhex","start-date":date("2002-11-19")}]}
-{"id": 88, "alias": "Galen000088", "name": "Galen Fiscina", "user-since": datetime("2006-01-09T13:00:51"), "address": {"street":"95 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{312, 404, 764, 299, 289, 806, 753, 357, 537, 592, 486, 545, 57, 603, 256, 664, 582, 838, 198, 440, 826 }}, "employment":[{"organization-name":"Ranhotfan","start-date":date("2004-05-19")}]}
-{"id": 89, "alias": "Alfred000089", "name": "Alfred Van", "user-since": datetime("2011-10-22T04:29:40"), "address": {"street":"97 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{608, 664, 521, 719, 695, 22, 331, 753, 362, 66, 815, 528, 493 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2000-07-07"),"end-date":date("2011-09-14")}]}
-{"id": 90, "alias": "Troy000090", "name": "Troy Appleby", "user-since": datetime("2012-10-08T22:02:23"), "address": {"street":"5 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{228, 269, 299, 775 }}, "employment":[{"organization-name":"Mathtech","start-date":date("2002-01-26"),"end-date":date("2002-11-05")}]}
-{"id": 91, "alias": "Mackenzie000091", "name": "Mackenzie Eve", "user-since": datetime("2010-07-02T15:46:34"), "address": {"street":"86 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{571, 71, 51, 191 }}, "employment":[{"organization-name":"Newphase","start-date":date("2011-04-05")}]}
-{"id": 92, "alias": "Casey000092", "name": "Casey Reade", "user-since": datetime("2007-08-10T22:44:33"), "address": {"street":"1 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{1, 76, 193 }}, "employment":[{"organization-name":"Tanzumbam","start-date":date("2007-06-25")}]}
-{"id": 93, "alias": "Leif000093", "name": "Leif Burnett", "user-since": datetime("2007-10-22T03:25:25"), "address": {"street":"20 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Statcode","start-date":date("2003-02-12")}]}
-{"id": 94, "alias": "Dave000094", "name": "Dave Bennett", "user-since": datetime("2014-08-15T23:46:55"), "address": {"street":"99 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{733, 152, 681, 371, 479, 640, 92, 759, 287, 503, 31, 406, 422, 7, 151, 123, 666, 488 }}, "employment":[{"organization-name":"Solophase","start-date":date("2006-06-13")}]}
-{"id": 95, "alias": "James000095", "name": "James Wiggins", "user-since": datetime("2013-12-04T02:18:05"), "address": {"street":"58 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{658, 848, 255, 470, 600, 106, 611, 277, 546, 147, 289, 428, 834, 328, 813, 811, 641, 190 }}, "employment":[{"organization-name":"Hexviafind","start-date":date("2004-01-28")}]}
-{"id": 96, "alias": "Theresa000096", "name": "Theresa Compton", "user-since": datetime("2007-07-04T05:51:44"), "address": {"street":"21 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Streettax","start-date":date("2003-09-14")}]}
-{"id": 97, "alias": "Wesley000097", "name": "Wesley Stroh", "user-since": datetime("2007-05-22T11:34:52"), "address": {"street":"34 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Qvohouse","start-date":date("2004-07-08")}]}
-{"id": 98, "alias": "Birdie000098", "name": "Birdie Snyder", "user-since": datetime("2009-07-11T22:57:39"), "address": {"street":"51 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{581, 186, 104 }}, "employment":[{"organization-name":"Newphase","start-date":date("2004-08-15"),"end-date":date("2010-03-20")}]}
-{"id": 99, "alias": "Remona000099", "name": "Remona Robinson", "user-since": datetime("2010-11-23T08:48:45"), "address": {"street":"61 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{61, 505, 599, 186, 706, 887, 842, 137, 540, 248, 210, 261, 489, 604, 326, 335, 646, 826, 657, 109 }}, "employment":[{"organization-name":"Latsonity","start-date":date("2011-12-11")}]}
-{"id": 100, "alias": "Kimberlee000100", "name": "Kimberlee Warren", "user-since": datetime("2007-05-14T04:58:27"), "address": {"street":"26 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{272, 466, 897, 885, 784, 108, 175, 779, 530, 734, 210, 483, 196, 801, 414, 200, 323, 820, 563, 853 }}, "employment":[{"organization-name":"Unijobam","start-date":date("2010-06-09"),"end-date":date("2011-02-08")}]}
-{"id": 101, "alias": "Aubrey000101", "name": "Aubrey Swarner", "user-since": datetime("2008-01-23T20:38:50"), "address": {"street":"28 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{268, 727, 819, 92, 816, 25, 757, 692, 449, 648, 805, 260, 222, 285, 225, 705, 666, 829, 662 }}, "employment":[{"organization-name":"Quadlane","start-date":date("2008-03-17")}]}
-{"id": 102, "alias": "Amaryllis000102", "name": "Amaryllis Osteen", "user-since": datetime("2012-08-12T10:42:34"), "address": {"street":"8 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{217, 467, 237, 157, 109, 26, 159, 509, 375, 153, 864, 393, 729 }}, "employment":[{"organization-name":"Ronholdings","start-date":date("2007-12-16")}]}
-{"id": 103, "alias": "Taylor000103", "name": "Taylor Ropes", "user-since": datetime("2011-01-04T02:48:01"), "address": {"street":"78 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{137, 417, 659, 893, 800, 871, 781 }}, "employment":[{"organization-name":"Techitechi","start-date":date("2003-02-19")}]}
-{"id": 104, "alias": "Porter000104", "name": "Porter Wilson", "user-since": datetime("2014-05-14T20:20:29"), "address": {"street":"36 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{205, 34, 553, 30, 225, 159, 733 }}, "employment":[{"organization-name":"Solfix","start-date":date("2000-05-27")}]}
-{"id": 105, "alias": "Rudyard000105", "name": "Rudyard Swift", "user-since": datetime("2012-09-26T12:41:37"), "address": {"street":"46 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{732, 708, 432, 415, 670, 449, 462, 455, 695, 885, 77, 73, 5, 716, 139 }}, "employment":[{"organization-name":"zoomplus","start-date":date("2000-09-05")}]}
-{"id": 106, "alias": "Jaycob000106", "name": "Jaycob Thorley", "user-since": datetime("2012-07-24T11:27:32"), "address": {"street":"3 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{217, 655, 801, 109, 224, 8, 373 }}, "employment":[{"organization-name":"Hexsanhex","start-date":date("2001-09-23"),"end-date":date("2004-09-10")}]}
-{"id": 107, "alias": "Odell000107", "name": "Odell Nehling", "user-since": datetime("2008-07-23T14:20:51"), "address": {"street":"69 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{661, 42, 780, 732, 143, 817, 309, 282, 719, 503, 538, 397, 717, 27 }}, "employment":[{"organization-name":"physcane","start-date":date("2011-03-22")}]}
-{"id": 108, "alias": "Lydia000108", "name": "Lydia Berry", "user-since": datetime("2005-08-26T09:52:56"), "address": {"street":"78 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{463, 796, 241, 239, 153, 140, 652, 90, 7, 712, 242 }}, "employment":[{"organization-name":"Freshfix","start-date":date("2003-03-14"),"end-date":date("2011-05-01")}]}
-{"id": 109, "alias": "Richie000109", "name": "Richie Bullard", "user-since": datetime("2008-11-18T07:25:50"), "address": {"street":"42 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{520, 310, 364, 665, 587, 483, 825, 14, 260, 819, 259, 438, 564, 282, 641, 625, 287, 24, 724, 28 }}, "employment":[{"organization-name":"Freshfix","start-date":date("2004-03-26"),"end-date":date("2009-11-24")}]}
-{"id": 110, "alias": "Anderson000110", "name": "Anderson Northey", "user-since": datetime("2012-12-25T20:04:08"), "address": {"street":"18 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{458, 486, 426, 479, 713, 612, 323, 493, 412, 380, 309, 460, 748, 621, 463, 634 }}, "employment":[{"organization-name":"Ronholdings","start-date":date("2010-07-21")}]}
-{"id": 111, "alias": "Jasmine000111", "name": "Jasmine Buttermore", "user-since": datetime("2007-02-03T03:37:30"), "address": {"street":"65 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{813 }}, "employment":[{"organization-name":"Newphase","start-date":date("2001-11-21"),"end-date":date("2003-02-19")}]}
-{"id": 112, "alias": "Lallie000112", "name": "Lallie Munson", "user-since": datetime("2008-05-03T19:14:45"), "address": {"street":"22 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{364, 58, 353, 588, 97, 64, 518, 308, 402, 694, 2, 732, 846, 855, 101, 284, 464, 314, 893, 621 }}, "employment":[{"organization-name":"Vaiatech","start-date":date("2005-02-03")}]}
-{"id": 113, "alias": "Brittni000113", "name": "Brittni Vorrasi", "user-since": datetime("2010-12-03T23:48:38"), "address": {"street":"100 Park Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{427, 438, 476, 670, 579, 157, 419, 518, 668, 90, 111, 140, 170, 204, 209, 855, 726, 402, 370, 435 }}, "employment":[{"organization-name":"kin-ron","start-date":date("2009-10-17")}]}
-{"id": 114, "alias": "Renea000114", "name": "Renea Houser", "user-since": datetime("2007-11-13T10:03:23"), "address": {"street":"76 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{180, 800, 499, 719, 851, 437, 510, 379, 862, 865, 575, 60, 850, 130, 122, 613, 253, 549 }}, "employment":[{"organization-name":"Techitechi","start-date":date("2008-10-23")}]}
-{"id": 115, "alias": "Bunny000115", "name": "Bunny Vanleer", "user-since": datetime("2011-11-22T02:02:12"), "address": {"street":"79 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Codetechno","start-date":date("2003-12-13")}]}
-{"id": 116, "alias": "Ralphina000116", "name": "Ralphina Evans", "user-since": datetime("2013-02-12T03:35:01"), "address": {"street":"94 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{12, 404, 427, 732, 165, 695, 332, 179, 81, 277, 853, 640, 705, 731, 158, 444, 458, 322, 557, 714, 499, 417 }}, "employment":[{"organization-name":"Fix-touch","start-date":date("2007-05-04"),"end-date":date("2007-09-09")}]}
-{"id": 117, "alias": "Zola000117", "name": "Zola James", "user-since": datetime("2006-04-14T19:40:31"), "address": {"street":"26 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{583, 8, 290, 467, 78, 48, 331, 302, 97, 442, 684, 157, 738, 73, 795, 481, 88, 210, 514, 142, 794 }}, "employment":[{"organization-name":"Roundhex","start-date":date("2011-07-26")}]}
-{"id": 118, "alias": "Cathy000118", "name": "Cathy Moulton", "user-since": datetime("2010-02-08T02:28:12"), "address": {"street":"26 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{504, 184, 142, 238, 218, 254, 814, 489, 84, 712, 274, 450 }}, "employment":[{"organization-name":"Dandamace","start-date":date("2007-02-08"),"end-date":date("2009-12-27")}]}
-{"id": 119, "alias": "Jep000119", "name": "Jep Napier", "user-since": datetime("2011-08-25T20:31:40"), "address": {"street":"66 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{273, 531, 438, 63, 555, 872, 312, 712, 293, 376, 373, 257, 734, 647, 482, 390 }}, "employment":[{"organization-name":"Ontohothex","start-date":date("2000-01-12"),"end-date":date("2010-11-04")}]}
-{"id": 120, "alias": "Joandra000120", "name": "Joandra Wall", "user-since": datetime("2008-10-20T13:14:20"), "address": {"street":"74 Park Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{489, 344, 312, 625, 288, 518, 176, 533, 385, 610 }}, "employment":[{"organization-name":"Striptaxon","start-date":date("2004-07-28")}]}
-{"id": 121, "alias": "Terresa000121", "name": "Terresa Gibson", "user-since": datetime("2010-09-03T03:30:37"), "address": {"street":"89 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{142, 223, 564, 716, 56, 325, 379, 549, 897, 78, 862, 143 }}, "employment":[{"organization-name":"Fixdintex","start-date":date("2003-01-22"),"end-date":date("2010-11-06")}]}
-{"id": 122, "alias": "Damion000122", "name": "Damion Newlove", "user-since": datetime("2011-10-27T06:38:31"), "address": {"street":"97 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{491, 719, 733, 295, 219, 704, 509 }}, "employment":[{"organization-name":"Techitechi","start-date":date("2008-01-16")}]}
-{"id": 123, "alias": "Stuart000123", "name": "Stuart Garneis", "user-since": datetime("2011-02-25T08:05:27"), "address": {"street":"62 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{41, 840, 540, 345, 416, 510, 832, 153, 582, 773, 339, 572, 625, 370, 117, 475, 412, 479 }}, "employment":[{"organization-name":"Quadlane","start-date":date("2006-01-27"),"end-date":date("2007-11-24")}]}
-{"id": 124, "alias": "Crofton000124", "name": "Crofton Tomco", "user-since": datetime("2010-10-12T13:08:51"), "address": {"street":"26 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{638, 668, 466, 602, 693 }}, "employment":[{"organization-name":"Newcom","start-date":date("2002-12-25")}]}
-{"id": 125, "alias": "Berry000125", "name": "Berry Baer", "user-since": datetime("2005-04-05T00:06:55"), "address": {"street":"14 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{293, 384, 487, 379, 480, 611, 331, 865, 825, 342, 214, 712, 117, 53 }}, "employment":[{"organization-name":"kin-ron","start-date":date("2012-08-11")}]}
-{"id": 126, "alias": "Sidney000126", "name": "Sidney Fiscina", "user-since": datetime("2005-12-13T14:56:23"), "address": {"street":"45 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{536, 633, 506, 557, 24, 531, 64, 7, 12, 145, 197, 710, 51 }}, "employment":[{"organization-name":"Technohow","start-date":date("2011-04-21")}]}
-{"id": 127, "alias": "Bertram000127", "name": "Bertram Lineman", "user-since": datetime("2007-02-02T04:56:16"), "address": {"street":"65 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{181, 29, 333, 616, 402, 398, 105, 186, 435, 640, 41, 403, 43, 793, 702, 150, 789, 456, 258, 489, 766, 161, 51, 472 }}, "employment":[{"organization-name":"Villa-tech","start-date":date("2009-06-23"),"end-date":date("2009-12-03")}]}
-{"id": 128, "alias": "Gawain000128", "name": "Gawain Higgens", "user-since": datetime("2005-04-22T12:41:26"), "address": {"street":"48 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{205, 265 }}, "employment":[{"organization-name":"strongex","start-date":date("2002-06-19")}]}
-{"id": 129, "alias": "Madalyn000129", "name": "Madalyn Blatenberger", "user-since": datetime("2011-05-25T21:13:28"), "address": {"street":"7 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{390, 212, 90, 476, 113, 734, 161, 27, 798, 57, 183, 214, 800, 581, 788, 156, 249, 279, 512 }}, "employment":[{"organization-name":"Viatechi","start-date":date("2004-04-22")}]}
-{"id": 130, "alias": "Wilton000130", "name": "Wilton Isemann", "user-since": datetime("2011-03-10T16:24:49"), "address": {"street":"94 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{73, 371, 98, 257, 210, 739, 324, 166, 730, 488, 544, 715, 723 }}, "employment":[{"organization-name":"linedexon","start-date":date("2010-11-08")}]}
-{"id": 131, "alias": "Millard000131", "name": "Millard Robinson", "user-since": datetime("2006-10-11T00:36:34"), "address": {"street":"99 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{498, 693, 447, 5, 182, 188, 137, 281, 140, 301, 713, 567, 170, 99 }}, "employment":[{"organization-name":"Hot-tech","start-date":date("2005-02-18"),"end-date":date("2010-04-21")}]}
-{"id": 132, "alias": "Buddy000132", "name": "Buddy Earhart", "user-since": datetime("2007-02-04T18:47:36"), "address": {"street":"23 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{151, 27, 202, 692 }}, "employment":[{"organization-name":"Solfix","start-date":date("2002-06-15")}]}
-{"id": 133, "alias": "Jennifer000133", "name": "Jennifer Mang", "user-since": datetime("2006-05-07T10:47:28"), "address": {"street":"89 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{514, 799, 432 }}, "employment":[{"organization-name":"goldendexon","start-date":date("2007-04-11")}]}
-{"id": 134, "alias": "Franchesca000134", "name": "Franchesca Bauerle", "user-since": datetime("2006-05-06T10:38:49"), "address": {"street":"90 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{647, 632, 31, 165, 688, 573, 294, 312, 405, 742, 173, 215, 482, 770 }}, "employment":[{"organization-name":"Transhigh","start-date":date("2006-08-14"),"end-date":date("2009-06-01")}]}
-{"id": 135, "alias": "Calanthe000135", "name": "Calanthe Painter", "user-since": datetime("2009-11-11T00:03:58"), "address": {"street":"71 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{231, 732, 324, 223, 333, 29, 130, 750, 796, 209, 44, 330 }}, "employment":[{"organization-name":"Zimcone","start-date":date("2012-01-02"),"end-date":date("2012-02-14")}]}
-{"id": 136, "alias": "Erna000136", "name": "Erna Buck", "user-since": datetime("2009-09-06T03:45:00"), "address": {"street":"81 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{367, 815, 159, 869, 718, 24, 505, 441, 530, 837, 526, 613, 792, 175, 136 }}, "employment":[{"organization-name":"Tanzimcare","start-date":date("2004-09-21")}]}
-{"id": 137, "alias": "Aurora000137", "name": "Aurora Burris", "user-since": datetime("2005-04-07T05:41:23"), "address": {"street":"51 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{551, 124, 693, 168, 333, 799, 390, 504, 308, 517, 193, 862, 584, 452, 377, 497, 725, 95, 211, 37, 360, 238, 613 }}, "employment":[{"organization-name":"Xx-drill","start-date":date("2004-06-26")}]}
-{"id": 138, "alias": "Eladia000138", "name": "Eladia Berkheimer", "user-since": datetime("2006-11-10T21:17:14"), "address": {"street":"30 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{585, 193, 139, 591, 313, 7, 555, 37, 50, 21, 660, 454, 698, 100, 306, 818, 632, 218, 433, 2 }}, "employment":[{"organization-name":"Coneflex","start-date":date("2007-10-09")}]}
-{"id": 139, "alias": "Darby000139", "name": "Darby Bishop", "user-since": datetime("2013-03-25T08:53:23"), "address": {"street":"10 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{131, 109, 369, 337, 609 }}, "employment":[{"organization-name":"freshdox","start-date":date("2010-04-16"),"end-date":date("2010-08-15")}]}
-{"id": 140, "alias": "Katherin000140", "name": "Katherin Sheets", "user-since": datetime("2011-08-23T04:22:52"), "address": {"street":"26 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{489, 528, 415, 273, 93, 247, 757, 594, 816, 680, 768, 67, 834, 788, 73, 157, 709, 588, 155, 92, 702 }}, "employment":[{"organization-name":"Roundhex","start-date":date("2010-11-06")}]}
-{"id": 141, "alias": "Merla000141", "name": "Merla Quinn", "user-since": datetime("2013-06-28T17:59:30"), "address": {"street":"42 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{823, 862, 715, 90, 418, 781, 670, 427, 166 }}, "employment":[{"organization-name":"Technohow","start-date":date("2003-12-11")}]}
-{"id": 142, "alias": "Junior000142", "name": "Junior Kemerer", "user-since": datetime("2008-02-03T09:05:51"), "address": {"street":"26 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{187, 546, 427, 436, 821, 473, 108, 880, 25, 527 }}, "employment":[{"organization-name":"Solophase","start-date":date("2012-06-24"),"end-date":date("2012-06-11")}]}
-{"id": 143, "alias": "Gonzalo000143", "name": "Gonzalo Jackson", "user-since": datetime("2010-02-21T23:26:20"), "address": {"street":"65 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Doublezone","start-date":date("2012-04-05"),"end-date":date("2012-07-25")}]}
-{"id": 144, "alias": "Anselm000144", "name": "Anselm Wylie", "user-since": datetime("2005-12-20T12:01:39"), "address": {"street":"98 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{520, 820, 330, 785, 68, 754, 321, 606, 435, 203, 405, 62, 279, 233, 63, 617, 318, 775, 420, 643, 473 }}, "employment":[{"organization-name":"Y-geohex","start-date":date("2008-04-17")}]}
-{"id": 145, "alias": "Laura000145", "name": "Laura Stall", "user-since": datetime("2005-07-04T17:38:27"), "address": {"street":"76 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{30, 485, 365, 840, 14, 135 }}, "employment":[{"organization-name":"Goldcity","start-date":date("2004-06-08")}]}
-{"id": 146, "alias": "Sinclair000146", "name": "Sinclair Thorley", "user-since": datetime("2006-06-24T13:23:38"), "address": {"street":"45 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{75, 635, 305, 185, 388, 539, 750, 216, 164, 842, 748, 154, 586, 899, 255, 308, 379, 583, 251, 841, 391, 442, 453 }}, "employment":[{"organization-name":"Whitemedia","start-date":date("2010-10-12"),"end-date":date("2011-07-11")}]}
-{"id": 147, "alias": "Kolour000147", "name": "Kolour Hooker", "user-since": datetime("2010-10-09T23:22:14"), "address": {"street":"56 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{381, 133, 597, 479, 675, 794, 844, 359, 423, 471, 575, 759, 280, 664, 496, 681 }}, "employment":[{"organization-name":"Plexlane","start-date":date("2012-03-18")}]}
-{"id": 148, "alias": "Lenora000148", "name": "Lenora Lazzo", "user-since": datetime("2010-03-14T14:07:16"), "address": {"street":"18 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{135 }}, "employment":[{"organization-name":"Indiex","start-date":date("2008-08-20"),"end-date":date("2010-09-21")}]}
-{"id": 149, "alias": "Roscoe000149", "name": "Roscoe Jackson", "user-since": datetime("2011-01-17T04:39:27"), "address": {"street":"3 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{393, 761, 760, 594, 736, 765, 200, 488, 410, 311 }}, "employment":[{"organization-name":"Freshfix","start-date":date("2010-09-20"),"end-date":date("2011-03-09")}]}
-{"id": 150, "alias": "Canute000150", "name": "Canute Wire", "user-since": datetime("2005-01-20T22:24:49"), "address": {"street":"42 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{638, 493, 27, 848, 758, 205, 21, 12, 249, 608, 332, 585, 25, 321, 341, 870, 170, 456 }}, "employment":[{"organization-name":"Quoline","start-date":date("2004-09-02")}]}
-{"id": 151, "alias": "Amabel000151", "name": "Amabel Jelliman", "user-since": datetime("2007-04-12T17:00:05"), "address": {"street":"61 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{396, 220, 164, 398, 825, 293, 276, 535, 358, 692, 271 }}, "employment":[{"organization-name":"U-electrics","start-date":date("2005-12-22")}]}
-{"id": 152, "alias": "Kenton000152", "name": "Kenton Hoffhants", "user-since": datetime("2013-08-15T03:21:31"), "address": {"street":"40 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{12, 870, 390, 861, 553, 341, 193, 271, 359, 195, 789, 708, 490, 703, 68, 827, 194, 225 }}, "employment":[{"organization-name":"Kongreen","start-date":date("2004-06-09"),"end-date":date("2004-06-17")}]}
-{"id": 153, "alias": "Donella000153", "name": "Donella Weeks", "user-since": datetime("2013-07-13T16:17:03"), "address": {"street":"38 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{880, 238, 616, 874 }}, "employment":[{"organization-name":"whitestreet","start-date":date("2009-10-27"),"end-date":date("2010-06-26")}]}
-{"id": 154, "alias": "Alexia000154", "name": "Alexia Kline", "user-since": datetime("2013-11-05T04:18:45"), "address": {"street":"10 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{894, 336, 365, 811, 556, 100, 406, 275 }}, "employment":[{"organization-name":"Plexlane","start-date":date("2002-08-22")}]}
-{"id": 155, "alias": "Desmond000155", "name": "Desmond Osteen", "user-since": datetime("2007-10-21T19:39:05"), "address": {"street":"28 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{473, 183, 762, 391, 469, 170, 136, 270 }}, "employment":[{"organization-name":"Alphadax","start-date":date("2001-08-22")}]}
-{"id": 156, "alias": "Peyton000156", "name": "Peyton Bell", "user-since": datetime("2008-03-21T18:29:12"), "address": {"street":"57 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{824 }}, "employment":[{"organization-name":"Solophase","start-date":date("2006-06-23")}]}
-{"id": 157, "alias": "Leia000157", "name": "Leia Brindle", "user-since": datetime("2008-01-10T08:27:21"), "address": {"street":"83 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{796, 683, 341, 583, 144, 794, 18, 334, 305, 107, 399, 319, 191, 545, 103, 83, 732, 43 }}, "employment":[{"organization-name":"over-it","start-date":date("2008-05-12"),"end-date":date("2009-11-13")}]}
-{"id": 158, "alias": "Lashonda000158", "name": "Lashonda Quirin", "user-since": datetime("2005-04-21T10:49:49"), "address": {"street":"2 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{428, 805, 655, 498, 8, 756, 304, 439, 150 }}, "employment":[{"organization-name":"Newhotplus","start-date":date("2006-06-17"),"end-date":date("2009-03-05")}]}
-{"id": 159, "alias": "Jessamine000159", "name": "Jessamine Parkinson", "user-since": datetime("2010-09-28T11:28:22"), "address": {"street":"7 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"freshdox","start-date":date("2010-02-13")}]}
-{"id": 160, "alias": "Floyd000160", "name": "Floyd Oneal", "user-since": datetime("2006-06-14T17:24:00"), "address": {"street":"67 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Doncare","start-date":date("2008-07-16")}]}
-{"id": 161, "alias": "Linwood000161", "name": "Linwood Schmiel", "user-since": datetime("2013-12-06T23:39:54"), "address": {"street":"44 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{607, 342, 117, 269, 159, 650, 305, 377, 829, 316, 761, 263, 111 }}, "employment":[{"organization-name":"Viatechi","start-date":date("2007-12-20")}]}
-{"id": 162, "alias": "Laura000162", "name": "Laura Marshall", "user-since": datetime("2012-02-28T20:38:05"), "address": {"street":"80 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{832 }}, "employment":[{"organization-name":"Newcom","start-date":date("2010-10-04")}]}
-{"id": 163, "alias": "Queenie000163", "name": "Queenie Noton", "user-since": datetime("2011-05-07T02:25:37"), "address": {"street":"58 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{98, 538, 849, 66, 647, 542, 629, 26, 202, 491, 447, 825, 506, 361, 316, 521, 433, 319, 757, 182, 289, 156 }}, "employment":[{"organization-name":"linedexon","start-date":date("2010-06-15")}]}
-{"id": 164, "alias": "Teofila000164", "name": "Teofila Drumm", "user-since": datetime("2009-12-18T02:39:30"), "address": {"street":"65 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{857, 70, 740, 701, 582, 27, 141, 447, 490, 337, 377, 636, 405, 366, 633 }}, "employment":[{"organization-name":"Greencare","start-date":date("2012-05-28")}]}
-{"id": 165, "alias": "Elvis000165", "name": "Elvis Bousum", "user-since": datetime("2006-04-28T04:11:31"), "address": {"street":"29 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{811, 353, 368, 45, 901, 209, 767, 494, 608, 812, 854, 890 }}, "employment":[{"organization-name":"Ontotanin","start-date":date("2000-12-18")}]}
-{"id": 166, "alias": "Caren000166", "name": "Caren Berry", "user-since": datetime("2012-06-28T08:51:37"), "address": {"street":"10 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{630, 698, 64, 565, 851, 688, 470, 694, 375, 200, 30, 35, 787, 782, 31, 455, 834, 494, 32, 196, 721 }}, "employment":[{"organization-name":"sonstreet","start-date":date("2001-01-25"),"end-date":date("2003-05-10")}]}
-{"id": 167, "alias": "Zeke000167", "name": "Zeke Carmichael", "user-since": datetime("2008-10-15T19:06:43"), "address": {"street":"54 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Doublezone","start-date":date("2004-06-01")}]}
-{"id": 168, "alias": "Khloe000168", "name": "Khloe Robinson", "user-since": datetime("2011-10-04T09:53:03"), "address": {"street":"35 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{703, 497 }}, "employment":[{"organization-name":"Villa-dox","start-date":date("2003-06-25"),"end-date":date("2004-04-25")}]}
-{"id": 169, "alias": "Susannah000169", "name": "Susannah Wallick", "user-since": datetime("2007-05-01T14:11:41"), "address": {"street":"16 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{226 }}, "employment":[{"organization-name":"Quoline","start-date":date("2011-01-25")}]}
-{"id": 170, "alias": "Reagan000170", "name": "Reagan Moore", "user-since": datetime("2012-08-11T15:36:37"), "address": {"street":"91 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{777, 595, 174, 529, 3, 728, 665, 705, 676, 557, 15, 88, 824, 817, 431, 178, 79, 871, 435, 303, 568, 572, 384, 218 }}, "employment":[{"organization-name":"Lexicone","start-date":date("2006-10-23"),"end-date":date("2007-02-15")}]}
-{"id": 171, "alias": "Beatrice000171", "name": "Beatrice Bruxner", "user-since": datetime("2008-03-24T03:32:47"), "address": {"street":"15 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{26, 150, 236, 691, 845, 136, 484, 567, 79, 815, 593 }}, "employment":[{"organization-name":"Zamcorporation","start-date":date("2012-04-02"),"end-date":date("2012-04-24")}]}
-{"id": 172, "alias": "Farah000172", "name": "Farah Stoddard", "user-since": datetime("2009-05-04T10:14:11"), "address": {"street":"30 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{14, 691, 719, 603, 559, 483, 675, 428, 622, 339, 604, 100, 46, 476, 4, 313, 766, 579, 585, 602, 310, 247 }}, "employment":[{"organization-name":"zoomplus","start-date":date("2010-08-16")}]}
-{"id": 173, "alias": "Reggie000173", "name": "Reggie Law", "user-since": datetime("2014-01-24T23:25:59"), "address": {"street":"23 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{650, 644, 520, 63, 292 }}, "employment":[{"organization-name":"Ronholdings","start-date":date("2002-03-01")}]}
-{"id": 174, "alias": "Isa000174", "name": "Isa Chapman", "user-since": datetime("2007-01-28T11:22:32"), "address": {"street":"7 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{851, 64, 331, 764 }}, "employment":[{"organization-name":"zoomplus","start-date":date("2003-04-01")}]}
-{"id": 175, "alias": "Florencio000175", "name": "Florencio Pfeifer", "user-since": datetime("2005-11-07T17:16:53"), "address": {"street":"10 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{666, 608, 191, 687, 204, 117, 51, 298, 224, 185, 864, 111, 706, 159, 242 }}, "employment":[{"organization-name":"Coneflex","start-date":date("2003-03-27"),"end-date":date("2004-08-26")}]}
-{"id": 176, "alias": "Greg000176", "name": "Greg Reese", "user-since": datetime("2008-01-22T05:38:57"), "address": {"street":"89 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{77, 453, 81, 709, 778, 429, 304, 298, 423, 865, 39 }}, "employment":[{"organization-name":"sonstreet","start-date":date("2001-03-11")}]}
-{"id": 177, "alias": "Carlyle000177", "name": "Carlyle Weldi", "user-since": datetime("2007-09-10T03:59:49"), "address": {"street":"3 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{697 }}, "employment":[{"organization-name":"Strongtone","start-date":date("2005-11-08"),"end-date":date("2007-06-13")}]}
-{"id": 178, "alias": "Tiara000178", "name": "Tiara Williams", "user-since": datetime("2012-10-02T01:08:07"), "address": {"street":"66 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{147, 554, 440, 535, 250, 450, 234, 141, 111, 562, 32, 504, 825, 788, 773 }}, "employment":[{"organization-name":"Dandamace","start-date":date("2008-08-08")}]}
-{"id": 179, "alias": "Kade000179", "name": "Kade Pfeifer", "user-since": datetime("2007-09-11T14:52:59"), "address": {"street":"64 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{608, 897, 359, 325, 139, 212, 579, 523, 243, 179, 207, 287 }}, "employment":[{"organization-name":"Streettax","start-date":date("2012-07-28")}]}
-{"id": 180, "alias": "Jepson000180", "name": "Jepson Stroble", "user-since": datetime("2008-02-09T19:50:08"), "address": {"street":"5 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{97, 641, 540, 333, 568, 447, 437, 250, 459, 578, 681, 67, 770, 168, 263, 415, 405, 235, 782, 209, 354, 695 }}, "employment":[{"organization-name":"Scotcity","start-date":date("2006-06-17")}]}
-{"id": 181, "alias": "Leonarda000181", "name": "Leonarda Holts", "user-since": datetime("2007-01-01T07:40:24"), "address": {"street":"97 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{149, 888, 308, 825, 123, 141, 60, 696, 243, 158, 671 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2006-02-16")}]}
-{"id": 182, "alias": "Jackie000182", "name": "Jackie Weldi", "user-since": datetime("2006-04-07T14:45:40"), "address": {"street":"77 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{671, 435, 130, 460, 735, 105, 776, 179, 550, 83, 702, 228, 13, 862, 479, 247, 618, 172, 891 }}, "employment":[{"organization-name":"Medflex","start-date":date("2002-09-26"),"end-date":date("2002-06-23")}]}
-{"id": 183, "alias": "Anamaria000183", "name": "Anamaria Wile", "user-since": datetime("2013-05-15T11:02:12"), "address": {"street":"16 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{660, 103, 781, 366, 884, 47, 376, 143, 720, 888, 119, 594, 321, 52, 619 }}, "employment":[{"organization-name":"Lexitechno","start-date":date("2000-06-15")}]}
-{"id": 184, "alias": "Moises000184", "name": "Moises Wall", "user-since": datetime("2013-07-20T08:57:30"), "address": {"street":"77 Maple St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{525, 602, 285, 803, 197, 287, 330, 618, 699, 439, 542, 267, 725, 61, 866 }}, "employment":[{"organization-name":"Sancone","start-date":date("2011-04-23")}]}
-{"id": 185, "alias": "Terrence000185", "name": "Terrence Schreckengost", "user-since": datetime("2007-07-04T04:03:14"), "address": {"street":"81 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{313, 404, 885, 686, 659, 88, 577, 491, 869, 162, 769, 12, 708, 202, 356, 79, 723, 49 }}, "employment":[{"organization-name":"Hexviafind","start-date":date("2001-08-16")}]}
-{"id": 186, "alias": "Lajuana000186", "name": "Lajuana Baughman", "user-since": datetime("2010-03-25T19:07:25"), "address": {"street":"70 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{795, 745, 32, 849, 478, 413 }}, "employment":[{"organization-name":"Hexviafind","start-date":date("2007-01-01"),"end-date":date("2007-11-28")}]}
-{"id": 187, "alias": "Rodger000187", "name": "Rodger Roose", "user-since": datetime("2010-02-26T07:23:17"), "address": {"street":"27 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{317, 738, 838, 45, 780, 186, 830, 360, 535, 299, 239, 537, 744 }}, "employment":[{"organization-name":"Fixelectrics","start-date":date("2000-05-24")}]}
-{"id": 188, "alias": "Elmer000188", "name": "Elmer Wortman", "user-since": datetime("2012-01-07T09:20:09"), "address": {"street":"70 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{17, 781, 270, 806, 315, 833, 205, 271, 648, 491, 432, 398, 836, 27, 312, 434, 110, 227, 885, 285, 873, 257 }}, "employment":[{"organization-name":"Fax-fax","start-date":date("2009-02-21"),"end-date":date("2011-09-08")}]}
-{"id": 189, "alias": "Argelia000189", "name": "Argelia Coates", "user-since": datetime("2009-08-25T19:54:44"), "address": {"street":"4 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{753, 801, 169, 669, 70, 540, 650, 40, 309, 867, 85, 203, 869, 118 }}, "employment":[{"organization-name":"silfind","start-date":date("2010-09-03")}]}
-{"id": 190, "alias": "Stephen000190", "name": "Stephen Shallenberger", "user-since": datetime("2010-01-20T10:10:16"), "address": {"street":"10 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{214, 629, 519, 422 }}, "employment":[{"organization-name":"silfind","start-date":date("2003-01-13")}]}
-{"id": 191, "alias": "Mellie000191", "name": "Mellie Lalty", "user-since": datetime("2005-04-10T15:52:50"), "address": {"street":"41 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{819, 771, 327, 733, 87, 246, 415, 655, 221, 682, 24, 516, 830, 425, 251, 818, 524 }}, "employment":[{"organization-name":"Fixelectrics","start-date":date("2011-02-25"),"end-date":date("2011-12-12")}]}
-{"id": 192, "alias": "Camie000192", "name": "Camie Coveney", "user-since": datetime("2009-10-22T13:58:10"), "address": {"street":"5 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{829, 306, 334, 416, 510, 99, 816 }}, "employment":[{"organization-name":"Whitemedia","start-date":date("2003-03-02"),"end-date":date("2003-09-19")}]}
-{"id": 193, "alias": "Amilia000193", "name": "Amilia Stiffey", "user-since": datetime("2012-09-06T00:36:16"), "address": {"street":"83 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{123, 476, 444, 803, 284, 769, 166, 499, 429, 475, 888, 687, 468, 550, 899, 150, 225, 458, 338, 442, 538, 666, 252, 603 }}, "employment":[{"organization-name":"Hot-tech","start-date":date("2000-03-21")}]}
-{"id": 194, "alias": "Merry000194", "name": "Merry Boyer", "user-since": datetime("2008-01-22T00:33:19"), "address": {"street":"44 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{656, 202, 500, 380, 729, 486, 159, 745, 31, 268 }}, "employment":[{"organization-name":"Sumlane","start-date":date("2007-02-08"),"end-date":date("2009-05-27")}]}
-{"id": 195, "alias": "Vance000195", "name": "Vance Wood", "user-since": datetime("2007-05-12T22:24:12"), "address": {"street":"82 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{882, 374, 600, 276, 196, 290, 233, 850, 535, 68, 630, 852, 607, 749, 693, 396, 615, 889, 44 }}, "employment":[{"organization-name":"Dandamace","start-date":date("2002-02-26")}]}
-{"id": 196, "alias": "Harrison000196", "name": "Harrison Brindle", "user-since": datetime("2007-07-17T13:28:58"), "address": {"street":"8 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{261, 243, 754, 874, 118, 174, 298, 75, 29, 8, 161 }}, "employment":[{"organization-name":"Dandamace","start-date":date("2005-04-01"),"end-date":date("2007-05-15")}]}
-{"id": 197, "alias": "Kristie000197", "name": "Kristie Dennis", "user-since": datetime("2010-05-04T10:10:10"), "address": {"street":"76 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{441, 639, 867, 855, 652 }}, "employment":[{"organization-name":"highfax","start-date":date("2010-07-16"),"end-date":date("2011-05-20")}]}
-{"id": 198, "alias": "Shantel000198", "name": "Shantel Ling", "user-since": datetime("2006-06-20T02:07:35"), "address": {"street":"76 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{876, 269, 673, 855, 516, 20, 101, 828, 558, 384, 898, 387, 424, 97, 198, 634, 486, 493, 550, 376, 699, 663, 52 }}, "employment":[{"organization-name":"Trustbam","start-date":date("2007-10-05")}]}
-{"id": 199, "alias": "Miquel000199", "name": "Miquel Wilkerson", "user-since": datetime("2012-01-18T04:07:54"), "address": {"street":"96 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{824 }}, "employment":[{"organization-name":"Kongreen","start-date":date("2007-12-15")}]}
-{"id": 200, "alias": "Lita000200", "name": "Lita Archibald", "user-since": datetime("2007-04-03T13:06:42"), "address": {"street":"26 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{603, 719, 131, 414, 454, 30, 549, 232, 211, 263, 740, 346, 742, 143, 622, 611, 67, 894, 786, 106 }}, "employment":[{"organization-name":"Freshfix","start-date":date("2003-08-05"),"end-date":date("2004-12-09")}]}
-{"id": 201, "alias": "Archie000201", "name": "Archie Philbrick", "user-since": datetime("2011-09-06T06:21:57"), "address": {"street":"37 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{896, 394, 834, 193, 468, 648, 100, 391, 895 }}, "employment":[{"organization-name":"Zuncan","start-date":date("2012-05-22"),"end-date":date("2012-07-04")}]}
-{"id": 202, "alias": "Tyrese000202", "name": "Tyrese Thorley", "user-since": datetime("2012-04-11T10:31:50"), "address": {"street":"5 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{559, 790, 702, 109, 729, 564, 169, 246, 785, 311, 505, 793, 139, 678, 361, 333, 119, 888, 695 }}, "employment":[{"organization-name":"physcane","start-date":date("2011-04-21")}]}
-{"id": 203, "alias": "Paise000203", "name": "Paise Eisenmann", "user-since": datetime("2013-12-02T09:16:49"), "address": {"street":"32 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{583, 684, 481, 462, 596, 716, 390, 636, 250, 790, 361, 771, 108, 166, 133, 229, 343, 545, 671, 763, 160, 731, 27, 658 }}, "employment":[{"organization-name":"Zamcorporation","start-date":date("2012-08-26")}]}
-{"id": 204, "alias": "Adam000204", "name": "Adam Graff", "user-since": datetime("2009-05-11T18:16:10"), "address": {"street":"60 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{722, 395, 757, 355, 153, 259, 232, 441, 872, 393, 42, 404, 856, 392, 836, 486, 116 }}, "employment":[{"organization-name":"Fixdintex","start-date":date("2010-11-24"),"end-date":date("2011-01-21")}]}
-{"id": 205, "alias": "Marlyn000205", "name": "Marlyn Highlands", "user-since": datetime("2008-05-02T00:14:25"), "address": {"street":"50 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{262, 332, 6, 570, 712, 137 }}, "employment":[{"organization-name":"Villa-tech","start-date":date("2003-02-03")}]}
-{"id": 206, "alias": "Newt000206", "name": "Newt Kava", "user-since": datetime("2013-07-09T18:16:06"), "address": {"street":"17 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{727, 249, 719, 11, 36, 107 }}, "employment":[{"organization-name":"zoomplus","start-date":date("2000-02-15")}]}
-{"id": 207, "alias": "Dortha000207", "name": "Dortha Callison", "user-since": datetime("2009-08-06T01:07:33"), "address": {"street":"19 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{528, 279, 587, 431, 814, 733, 58, 229, 414, 349, 447, 582, 651, 491, 310, 688, 407, 546, 586, 889 }}, "employment":[{"organization-name":"jaydax","start-date":date("2006-12-20")}]}
-{"id": 208, "alias": "Shakira000208", "name": "Shakira Poorbaugh", "user-since": datetime("2013-12-13T20:01:39"), "address": {"street":"36 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{180, 420, 831, 310, 52, 695, 609, 581, 291, 590, 884, 490, 345 }}, "employment":[{"organization-name":"Indiex","start-date":date("2011-07-28")}]}
-{"id": 209, "alias": "Jewel000209", "name": "Jewel Stern", "user-since": datetime("2008-02-18T12:32:31"), "address": {"street":"100 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{37, 817, 250, 30, 847, 204, 260, 608, 47, 865, 523, 244, 469, 272, 194, 706 }}, "employment":[{"organization-name":"Zimcone","start-date":date("2006-05-05"),"end-date":date("2007-04-11")}]}
-{"id": 210, "alias": "Leo000210", "name": "Leo Carter", "user-since": datetime("2007-09-04T17:53:18"), "address": {"street":"8 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{535, 304, 10, 706, 502, 372, 149, 280, 247, 418, 193, 576, 300, 607, 431, 462, 781, 686, 813, 523, 699, 796, 869 }}, "employment":[{"organization-name":"Alphadax","start-date":date("2006-10-23"),"end-date":date("2011-01-26")}]}
-{"id": 211, "alias": "Deonne000211", "name": "Deonne Steiner", "user-since": datetime("2012-04-10T04:09:23"), "address": {"street":"70 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{193, 255, 551, 181, 575, 382, 621, 613, 260, 325, 266, 636, 603, 132, 352, 806, 431, 815, 238, 682, 651 }}, "employment":[{"organization-name":"Voltlane","start-date":date("2004-12-14")}]}
-{"id": 212, "alias": "Alphonzo000212", "name": "Alphonzo Pycroft", "user-since": datetime("2012-09-14T22:03:27"), "address": {"street":"40 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{164, 748, 776, 536, 608, 302, 618, 353, 283, 95, 265, 345, 244, 600, 39, 521, 229, 67, 589, 529, 84, 534 }}, "employment":[{"organization-name":"Y-geohex","start-date":date("2012-07-16"),"end-date":date("2012-07-23")}]}
-{"id": 213, "alias": "America000213", "name": "America Gronko", "user-since": datetime("2010-04-20T04:18:43"), "address": {"street":"55 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{45, 273, 487, 789, 578, 899, 739, 633, 707, 447, 475 }}, "employment":[{"organization-name":"Y-geohex","start-date":date("2012-04-19")}]}
-{"id": 214, "alias": "Dean000214", "name": "Dean Jackson", "user-since": datetime("2011-06-13T06:48:40"), "address": {"street":"29 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{840, 472, 466, 96 }}, "employment":[{"organization-name":"Dandamace","start-date":date("2006-07-07")}]}
-{"id": 215, "alias": "Leola000215", "name": "Leola Bruxner", "user-since": datetime("2012-12-28T07:01:22"), "address": {"street":"23 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{634, 774, 825, 247, 156, 141, 482, 396, 885, 530, 548, 363, 390, 778, 127, 293 }}, "employment":[{"organization-name":"Newphase","start-date":date("2009-07-09")}]}
-{"id": 216, "alias": "Ted000216", "name": "Ted Edwards", "user-since": datetime("2008-01-19T01:04:15"), "address": {"street":"41 Maple St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{811, 814, 513, 224, 225, 456, 866, 256, 202, 460, 466, 768, 500, 386, 588, 278, 56 }}, "employment":[{"organization-name":"Labzatron","start-date":date("2005-04-09"),"end-date":date("2009-09-18")}]}
-{"id": 217, "alias": "Helga000217", "name": "Helga Rose", "user-since": datetime("2005-04-24T04:20:54"), "address": {"street":"91 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{844, 562, 861, 91, 317, 675, 432, 296, 724, 678, 530, 567, 538 }}, "employment":[{"organization-name":"Doncare","start-date":date("2000-03-06")}]}
-{"id": 218, "alias": "Maura000218", "name": "Maura Strickland", "user-since": datetime("2009-06-02T19:09:27"), "address": {"street":"65 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{730, 869, 569, 588, 584 }}, "employment":[{"organization-name":"Hot-tech","start-date":date("2003-08-06")}]}
-{"id": 219, "alias": "Isabelle000219", "name": "Isabelle Coughenour", "user-since": datetime("2013-01-08T04:32:54"), "address": {"street":"72 Third Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{698, 447, 465, 89, 578, 41, 811, 17, 850 }}, "employment":[{"organization-name":"Ganjatax","start-date":date("2010-03-23"),"end-date":date("2011-08-16")}]}
-{"id": 220, "alias": "Shawnee000220", "name": "Shawnee Brinigh", "user-since": datetime("2009-03-05T02:14:20"), "address": {"street":"30 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{142, 284, 833, 241, 106, 516, 335 }}, "employment":[{"organization-name":"Quoline","start-date":date("2001-04-20")}]}
-{"id": 221, "alias": "Luvenia000221", "name": "Luvenia Bailey", "user-since": datetime("2011-06-22T16:00:45"), "address": {"street":"36 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{487, 349, 324, 241, 725, 98, 777, 13, 817, 429, 332, 584, 306, 11, 146, 796 }}, "employment":[{"organization-name":"Strongtone","start-date":date("2011-04-26"),"end-date":date("2011-04-26")}]}
-{"id": 222, "alias": "Nigella000222", "name": "Nigella Dennis", "user-since": datetime("2014-03-22T13:31:17"), "address": {"street":"41 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{308, 631 }}, "employment":[{"organization-name":"Solfix","start-date":date("2004-08-02")}]}
-{"id": 223, "alias": "Randi000223", "name": "Randi Jyllian", "user-since": datetime("2012-03-27T14:15:03"), "address": {"street":"26 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{464 }}, "employment":[{"organization-name":"Plexlane","start-date":date("2003-02-28")}]}
-{"id": 224, "alias": "Aileen000224", "name": "Aileen Elliott", "user-since": datetime("2014-02-14T13:47:13"), "address": {"street":"29 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{270, 823, 774, 451, 669, 745, 580, 432, 319, 737, 37, 465, 532, 113, 260, 642, 882, 220, 629, 367, 299, 224 }}, "employment":[{"organization-name":"Strongtone","start-date":date("2007-10-16"),"end-date":date("2010-11-03")}]}
-{"id": 225, "alias": "Jed000225", "name": "Jed Hector", "user-since": datetime("2014-04-24T20:00:18"), "address": {"street":"23 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{894, 428, 599, 330 }}, "employment":[{"organization-name":"Zununoing","start-date":date("2002-09-18")}]}
-{"id": 226, "alias": "Sonny000226", "name": "Sonny Hobbs", "user-since": datetime("2012-09-01T14:23:24"), "address": {"street":"75 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{335, 450, 26, 438, 644, 375 }}, "employment":[{"organization-name":"ganjalax","start-date":date("2000-05-11"),"end-date":date("2002-09-23")}]}
-{"id": 227, "alias": "Annette000227", "name": "Annette Wickes", "user-since": datetime("2009-11-03T19:36:12"), "address": {"street":"62 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{79, 175, 431, 313, 274, 444 }}, "employment":[{"organization-name":"goldendexon","start-date":date("2010-02-09"),"end-date":date("2011-08-20")}]}
-{"id": 228, "alias": "Bernadine000228", "name": "Bernadine Burris", "user-since": datetime("2014-06-27T13:12:01"), "address": {"street":"85 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{138, 661, 227, 741, 281, 476, 638, 134, 576, 187, 766, 804 }}, "employment":[{"organization-name":"Sanjodax","start-date":date("2009-08-02"),"end-date":date("2009-01-25")}]}
-{"id": 229, "alias": "Kieth000229", "name": "Kieth Taylor", "user-since": datetime("2013-05-20T12:41:54"), "address": {"street":"73 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{559, 488 }}, "employment":[{"organization-name":"itlab","start-date":date("2005-04-24")}]}
-{"id": 230, "alias": "Katrice000230", "name": "Katrice Ironmonger", "user-since": datetime("2010-11-25T10:42:05"), "address": {"street":"16 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{108, 147, 842, 569, 28, 352, 875 }}, "employment":[{"organization-name":"Sanjodax","start-date":date("2005-06-17")}]}
-{"id": 231, "alias": "Ricky000231", "name": "Ricky Orner", "user-since": datetime("2008-02-17T12:45:46"), "address": {"street":"63 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{425 }}, "employment":[{"organization-name":"Keytech","start-date":date("2009-02-06")}]}
-{"id": 232, "alias": "Humphry000232", "name": "Humphry Unk", "user-since": datetime("2014-01-22T06:08:36"), "address": {"street":"69 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{446, 580, 278, 386, 19, 108, 401, 289, 472, 100, 478, 449, 251 }}, "employment":[{"organization-name":"whitestreet","start-date":date("2011-11-08"),"end-date":date("2011-11-08")}]}
-{"id": 233, "alias": "Kathrine000233", "name": "Kathrine Zoucks", "user-since": datetime("2013-08-27T17:00:22"), "address": {"street":"94 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{383, 350, 164, 27, 606, 569, 511, 129, 54, 212 }}, "employment":[{"organization-name":"Lexicone","start-date":date("2005-05-16"),"end-date":date("2009-01-14")}]}
-{"id": 234, "alias": "Isiah000234", "name": "Isiah Light", "user-since": datetime("2009-10-15T20:41:17"), "address": {"street":"73 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{592, 144, 298, 540, 521, 133, 228, 589, 148, 616, 595, 322, 825, 411, 313, 468, 75, 886 }}, "employment":[{"organization-name":"Ontohothex","start-date":date("2000-04-06")}]}
-{"id": 235, "alias": "Tena000235", "name": "Tena Sloan", "user-since": datetime("2008-06-03T21:44:18"), "address": {"street":"84 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{271, 607, 438, 92, 533, 427, 772, 480, 12, 776, 865, 881 }}, "employment":[{"organization-name":"Latsonity","start-date":date("2006-12-01"),"end-date":date("2008-10-06")}]}
-{"id": 236, "alias": "Nichelle000236", "name": "Nichelle Boyer", "user-since": datetime("2012-02-08T19:19:13"), "address": {"street":"85 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{856, 61, 435, 854, 238, 383, 610, 685, 7, 665, 52, 808, 495, 6, 39, 207, 314, 119, 236, 439, 859 }}, "employment":[{"organization-name":"kin-ron","start-date":date("2007-10-09")}]}
-{"id": 237, "alias": "Pamila000237", "name": "Pamila Lester", "user-since": datetime("2012-08-10T02:54:22"), "address": {"street":"43 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{248, 372, 582, 866, 482, 878, 798, 572, 568, 696, 129, 504, 346, 361, 253, 226, 771, 667, 312 }}, "employment":[{"organization-name":"Ranhotfan","start-date":date("2007-06-28")}]}
-{"id": 238, "alias": "Valentin000238", "name": "Valentin Weinstein", "user-since": datetime("2010-09-21T01:19:47"), "address": {"street":"56 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{813, 139, 357, 445, 454, 90, 613, 545, 401, 83, 793, 715, 273, 729, 866, 534, 853, 508, 664, 246, 443, 577, 154, 774 }}, "employment":[{"organization-name":"Transhigh","start-date":date("2011-01-20"),"end-date":date("2011-09-28")}]}
-{"id": 239, "alias": "Lux000239", "name": "Lux Howe", "user-since": datetime("2006-05-02T03:00:26"), "address": {"street":"55 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{18, 895, 102, 501, 404, 108, 661, 546, 758, 725, 270 }}, "employment":[{"organization-name":"Tanzumbam","start-date":date("2006-02-14")}]}
-{"id": 240, "alias": "Kalysta000240", "name": "Kalysta Bonner", "user-since": datetime("2008-10-03T00:03:08"), "address": {"street":"36 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{134, 764, 490, 407, 91, 485, 28, 517, 226, 684, 891, 122, 83, 90, 626, 224, 291, 41, 647 }}, "employment":[{"organization-name":"Zununoing","start-date":date("2006-10-17"),"end-date":date("2009-11-19")}]}
-{"id": 241, "alias": "Dawn000241", "name": "Dawn Yates", "user-since": datetime("2005-06-16T07:07:56"), "address": {"street":"53 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{573, 174, 420, 767, 583, 773, 215, 44, 883, 620, 342, 141, 232, 54, 680, 546, 624, 419, 126 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2010-06-19"),"end-date":date("2010-01-06")}]}
-{"id": 242, "alias": "Chantal000242", "name": "Chantal Williams", "user-since": datetime("2013-01-09T03:05:35"), "address": {"street":"11 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{738 }}, "employment":[{"organization-name":"linedexon","start-date":date("2005-10-20")}]}
-{"id": 243, "alias": "Summer000243", "name": "Summer Whittier", "user-since": datetime("2012-07-20T08:17:05"), "address": {"street":"7 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{577, 843, 98, 897, 882, 608, 900, 69, 791, 429, 896, 181, 653, 864, 173, 571, 602, 860, 312, 199, 448 }}, "employment":[{"organization-name":"Goldcity","start-date":date("2001-06-27")}]}
-{"id": 244, "alias": "Kathlene000244", "name": "Kathlene Ashbaugh", "user-since": datetime("2009-10-24T00:42:32"), "address": {"street":"26 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{309, 807, 628, 461, 712, 661, 889, 140, 506, 479, 369, 493, 72, 749, 529, 498, 393 }}, "employment":[{"organization-name":"Fix-touch","start-date":date("2002-06-15"),"end-date":date("2008-05-07")}]}
-{"id": 245, "alias": "Josiah000245", "name": "Josiah James", "user-since": datetime("2007-07-17T06:22:52"), "address": {"street":"94 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{628, 366 }}, "employment":[{"organization-name":"Groovetex","start-date":date("2012-06-10")}]}
-{"id": 246, "alias": "Haydee000246", "name": "Haydee Chapman", "user-since": datetime("2007-12-12T06:24:20"), "address": {"street":"85 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{537, 386, 97, 48, 459, 203, 331, 138, 635, 752, 571, 334, 171, 362, 644, 445, 729, 539 }}, "employment":[{"organization-name":"Sanjodax","start-date":date("2009-03-22")}]}
-{"id": 247, "alias": "James000247", "name": "James Ring", "user-since": datetime("2014-08-12T23:48:37"), "address": {"street":"86 Elm Blvd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{603, 275, 138, 67, 565, 370, 100, 595, 619, 244, 170, 558, 200, 775, 349, 267, 656, 294 }}, "employment":[{"organization-name":"Ontotanin","start-date":date("2006-09-21")}]}
-{"id": 248, "alias": "Virgil000248", "name": "Virgil Armitage", "user-since": datetime("2007-09-09T15:04:05"), "address": {"street":"63 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{887, 4, 99, 202, 746, 605 }}, "employment":[{"organization-name":"Ontotanin","start-date":date("2003-05-19"),"end-date":date("2008-07-24")}]}
-{"id": 249, "alias": "Sophia000249", "name": "Sophia Sell", "user-since": datetime("2006-06-19T10:25:22"), "address": {"street":"14 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{247, 361, 128, 545, 114, 872, 206, 736, 848, 765, 828, 586, 301, 268, 87, 155, 19, 373, 129, 596, 773 }}, "employment":[{"organization-name":"Statcode","start-date":date("2000-01-04")}]}
-{"id": 250, "alias": "Pen000250", "name": "Pen Gronko", "user-since": datetime("2011-09-19T06:46:25"), "address": {"street":"65 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{125, 584, 672, 587, 391, 316, 210, 602, 304 }}, "employment":[{"organization-name":"over-it","start-date":date("2012-07-28")}]}
-{"id": 251, "alias": "Leland000251", "name": "Leland Lacon", "user-since": datetime("2009-01-07T14:14:07"), "address": {"street":"3 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{778, 398, 691, 336, 306, 775, 526 }}, "employment":[{"organization-name":"strongex","start-date":date("2010-07-08")}]}
-{"id": 252, "alias": "Joann000252", "name": "Joann Coates", "user-since": datetime("2005-04-19T17:52:43"), "address": {"street":"20 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{333, 858, 321, 276, 56, 636, 623, 79, 4, 787, 39, 310, 190, 60, 355, 691 }}, "employment":[{"organization-name":"physcane","start-date":date("2009-12-05")}]}
-{"id": 253, "alias": "Meda000253", "name": "Meda Fitzgerald", "user-since": datetime("2008-03-08T21:11:18"), "address": {"street":"40 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"itlab","start-date":date("2008-04-22")}]}
-{"id": 254, "alias": "Jodi000254", "name": "Jodi Joyce", "user-since": datetime("2010-06-28T22:36:43"), "address": {"street":"7 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{571, 701, 64, 88, 54, 6, 473, 388, 238, 457, 331, 898, 239, 881, 56, 221, 345, 480, 162, 234, 321 }}, "employment":[{"organization-name":"Lexicone","start-date":date("2004-07-11"),"end-date":date("2006-12-20")}]}
-{"id": 255, "alias": "Rima000255", "name": "Rima Bonner", "user-since": datetime("2006-04-14T14:12:06"), "address": {"street":"43 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{604 }}, "employment":[{"organization-name":"Xx-drill","start-date":date("2008-08-13")}]}
-{"id": 256, "alias": "Yong000256", "name": "Yong Mcmichaels", "user-since": datetime("2010-08-23T16:32:04"), "address": {"street":"3 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Quoline","start-date":date("2003-10-06")}]}
-{"id": 257, "alias": "Avalon000257", "name": "Avalon Turzanski", "user-since": datetime("2014-06-04T13:07:02"), "address": {"street":"8 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{33, 390, 149, 857, 587, 611, 342, 557 }}, "employment":[{"organization-name":"Fixdintex","start-date":date("2006-03-02"),"end-date":date("2010-12-26")}]}
-{"id": 258, "alias": "Valarie000258", "name": "Valarie Ashbaugh", "user-since": datetime("2008-04-08T09:47:48"), "address": {"street":"76 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{342, 321, 679, 385, 279, 470, 500, 8, 400, 55, 517, 192, 17, 712, 59, 899, 736, 530, 842, 548, 136, 206, 283 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2000-02-05")}]}
-{"id": 259, "alias": "Clancy000259", "name": "Clancy Logue", "user-since": datetime("2007-08-15T19:04:21"), "address": {"street":"67 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{882, 331, 557, 300 }}, "employment":[{"organization-name":"Newhotplus","start-date":date("2000-12-28"),"end-date":date("2008-07-15")}]}
-{"id": 260, "alias": "Ernest000260", "name": "Ernest Guess", "user-since": datetime("2011-10-12T08:03:21"), "address": {"street":"91 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{453, 26 }}, "employment":[{"organization-name":"Hexviafind","start-date":date("2004-02-19"),"end-date":date("2011-08-26")}]}
-{"id": 261, "alias": "Irwin000261", "name": "Irwin Oppie", "user-since": datetime("2006-03-15T03:53:14"), "address": {"street":"61 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{730, 214 }}, "employment":[{"organization-name":"Transhigh","start-date":date("2010-09-06"),"end-date":date("2011-02-12")}]}
-{"id": 262, "alias": "Rebecca000262", "name": "Rebecca Mckee", "user-since": datetime("2008-04-02T04:10:53"), "address": {"street":"18 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{557, 602, 246, 230, 799, 844, 500, 559, 186, 124, 343, 391, 183, 302, 7, 434, 47, 732, 410, 510, 158 }}, "employment":[{"organization-name":"Sumlane","start-date":date("2010-02-26"),"end-date":date("2010-09-05")}]}
-{"id": 263, "alias": "Walt000263", "name": "Walt Whishaw", "user-since": datetime("2008-09-01T02:01:12"), "address": {"street":"25 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{682, 882, 797, 513, 264, 540, 80, 39, 47, 512, 484, 841, 567, 787, 127, 576, 360, 345, 433 }}, "employment":[{"organization-name":"Solophase","start-date":date("2008-10-19"),"end-date":date("2010-01-03")}]}
-{"id": 264, "alias": "Hisako000264", "name": "Hisako Warrick", "user-since": datetime("2010-09-19T21:53:13"), "address": {"street":"78 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{215, 708, 881, 269, 48, 39, 261, 806, 444, 355, 423, 549 }}, "employment":[{"organization-name":"Newphase","start-date":date("2009-10-11")}]}
-{"id": 265, "alias": "Augusta000265", "name": "Augusta Zoucks", "user-since": datetime("2011-06-20T05:37:46"), "address": {"street":"19 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{853, 359, 269, 214, 94, 575, 624 }}, "employment":[{"organization-name":"Solophase","start-date":date("2008-01-18")}]}
-{"id": 266, "alias": "Slyvia000266", "name": "Slyvia Williamson", "user-since": datetime("2014-03-18T09:14:27"), "address": {"street":"11 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{67, 183, 579 }}, "employment":[{"organization-name":"Xx-technology","start-date":date("2005-07-17"),"end-date":date("2008-12-01")}]}
-{"id": 267, "alias": "Arminda000267", "name": "Arminda Reighner", "user-since": datetime("2008-05-28T12:34:03"), "address": {"street":"60 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{371, 439, 272, 651, 528, 319 }}, "employment":[{"organization-name":"Kongreen","start-date":date("2012-02-07")}]}
-{"id": 268, "alias": "Raven000268", "name": "Raven Auman", "user-since": datetime("2010-05-08T11:10:39"), "address": {"street":"67 Park Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{864, 714, 411, 402, 263, 519, 561, 759, 660, 514, 860, 704, 447, 880, 206, 811 }}, "employment":[{"organization-name":"Inchex","start-date":date("2003-01-22")}]}
-{"id": 269, "alias": "Debera000269", "name": "Debera Olphert", "user-since": datetime("2013-08-10T04:13:37"), "address": {"street":"37 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{129, 374, 472, 641, 371, 529 }}, "employment":[{"organization-name":"Icerunin","start-date":date("2012-07-24")}]}
-{"id": 270, "alias": "Jordon000270", "name": "Jordon Knapenberger", "user-since": datetime("2012-02-26T04:36:56"), "address": {"street":"32 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{316, 250, 795, 207, 501, 439, 840, 571, 3, 17 }}, "employment":[{"organization-name":"Labzatron","start-date":date("2005-09-19"),"end-date":date("2007-12-01")}]}
-{"id": 271, "alias": "Luigi000271", "name": "Luigi Fiscina", "user-since": datetime("2010-05-23T07:26:48"), "address": {"street":"87 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{796, 649, 170, 87, 154, 157, 879, 334 }}, "employment":[{"organization-name":"Xx-technology","start-date":date("2003-05-06"),"end-date":date("2006-06-08")}]}
-{"id": 272, "alias": "Lalo000272", "name": "Lalo Batten", "user-since": datetime("2012-06-11T12:04:03"), "address": {"street":"75 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{808, 369, 741, 751, 117, 184, 22, 444, 795, 630, 604, 585, 685, 54, 223, 900, 850, 490, 120, 417, 216, 758 }}, "employment":[{"organization-name":"Newhotplus","start-date":date("2007-09-24")}]}
-{"id": 273, "alias": "Tanisha000273", "name": "Tanisha Moffat", "user-since": datetime("2005-01-18T13:22:07"), "address": {"street":"81 Third Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{387 }}, "employment":[{"organization-name":"linedexon","start-date":date("2010-01-22")}]}
-{"id": 274, "alias": "Isolda000274", "name": "Isolda Kadel", "user-since": datetime("2010-11-23T16:06:47"), "address": {"street":"71 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{557 }}, "employment":[{"organization-name":"Goldcity","start-date":date("2008-05-21")}]}
-{"id": 275, "alias": "Adalberto000275", "name": "Adalberto Guest", "user-since": datetime("2007-07-22T21:02:45"), "address": {"street":"79 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{646, 554, 861, 721, 482, 746, 524, 452, 391 }}, "employment":[{"organization-name":"Unijobam","start-date":date("2002-09-04")}]}
-{"id": 276, "alias": "Homer000276", "name": "Homer Glover", "user-since": datetime("2011-01-27T13:33:00"), "address": {"street":"79 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{34, 399, 421, 499, 116, 886, 879, 58, 43, 235, 128, 426, 900, 353, 684, 242, 155 }}, "employment":[{"organization-name":"Icerunin","start-date":date("2001-11-04")}]}
-{"id": 277, "alias": "Stevie000277", "name": "Stevie Leslie", "user-since": datetime("2009-09-14T11:54:52"), "address": {"street":"86 Hill Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{472, 38, 37, 529, 260, 852, 66, 695, 201, 88, 835, 54, 259, 246, 429, 51, 193, 245, 391 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2004-07-23"),"end-date":date("2007-05-10")}]}
-{"id": 278, "alias": "Guadalupe000278", "name": "Guadalupe Enderly", "user-since": datetime("2005-07-11T18:45:23"), "address": {"street":"97 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{310, 82, 432, 368, 831, 269, 857, 134, 841, 557, 685, 693, 150, 105 }}, "employment":[{"organization-name":"U-electrics","start-date":date("2012-03-01")}]}
-{"id": 279, "alias": "Tena000279", "name": "Tena Newlove", "user-since": datetime("2014-08-03T03:19:59"), "address": {"street":"2 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{495, 299, 463, 162, 570, 399, 8, 807 }}, "employment":[{"organization-name":"Fax-fax","start-date":date("2001-03-27"),"end-date":date("2002-11-12")}]}
-{"id": 280, "alias": "Maya000280", "name": "Maya Magor", "user-since": datetime("2013-09-08T08:22:02"), "address": {"street":"1 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{691, 106, 331, 767, 660, 466, 838, 247, 771, 684, 344, 299 }}, "employment":[{"organization-name":"Groovetex","start-date":date("2005-09-24")}]}
-{"id": 281, "alias": "Eliseo000281", "name": "Eliseo Willcox", "user-since": datetime("2006-03-14T02:51:14"), "address": {"street":"76 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Zamcorporation","start-date":date("2012-01-25")}]}
-{"id": 282, "alias": "Cherri000282", "name": "Cherri Butt", "user-since": datetime("2008-07-28T04:38:43"), "address": {"street":"68 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{114, 207, 654, 623 }}, "employment":[{"organization-name":"Zamcorporation","start-date":date("2007-06-06"),"end-date":date("2010-03-20")}]}
-{"id": 283, "alias": "Herb000283", "name": "Herb Simpson", "user-since": datetime("2009-07-06T10:52:26"), "address": {"street":"95 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{119, 727, 286, 542, 560, 805, 295, 223, 290, 493, 153, 832, 0, 535 }}, "employment":[{"organization-name":"Hexviafind","start-date":date("2011-05-27"),"end-date":date("2011-09-20")}]}
-{"id": 284, "alias": "Courtney000284", "name": "Courtney Howard", "user-since": datetime("2010-07-21T18:28:44"), "address": {"street":"53 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{794, 109, 633, 145 }}, "employment":[{"organization-name":"Newhotplus","start-date":date("2011-07-26"),"end-date":date("2011-05-16")}]}
-{"id": 285, "alias": "Liz000285", "name": "Liz Beard", "user-since": datetime("2010-10-26T21:25:13"), "address": {"street":"56 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{716, 694, 720, 856, 573, 480, 425, 538, 312, 855, 788, 340, 114, 238, 204, 44, 387, 213, 705, 119, 785, 748 }}, "employment":[{"organization-name":"Sublamdox","start-date":date("2008-03-25"),"end-date":date("2011-12-13")}]}
-{"id": 286, "alias": "Nena000286", "name": "Nena Garland", "user-since": datetime("2006-01-26T18:28:43"), "address": {"street":"84 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{645, 21, 309, 628, 607, 352, 835, 513, 849, 871, 475, 185, 427, 529, 282, 830, 596, 549, 892, 839, 498, 614, 485 }}, "employment":[{"organization-name":"Y-geohex","start-date":date("2008-07-28"),"end-date":date("2008-10-14")}]}
-{"id": 287, "alias": "Shela000287", "name": "Shela Fonblanque", "user-since": datetime("2009-07-02T15:38:23"), "address": {"street":"78 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{605, 808, 604, 170, 657, 393, 240, 149 }}, "employment":[{"organization-name":"Voltbam","start-date":date("2008-11-13")}]}
-{"id": 288, "alias": "Clinton000288", "name": "Clinton Finck", "user-since": datetime("2012-07-09T13:53:15"), "address": {"street":"98 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{219, 78, 540, 669, 408, 264 }}, "employment":[{"organization-name":"Goldcity","start-date":date("2006-10-11")}]}
-{"id": 289, "alias": "Marlene000289", "name": "Marlene Lafortune", "user-since": datetime("2014-03-05T16:47:57"), "address": {"street":"78 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{627, 378, 772, 783, 116, 678, 361, 295 }}, "employment":[{"organization-name":"Freshfix","start-date":date("2009-01-24"),"end-date":date("2009-03-02")}]}
-{"id": 290, "alias": "August000290", "name": "August Eiford", "user-since": datetime("2011-05-08T23:48:35"), "address": {"street":"85 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{358, 428, 755, 772, 682, 577, 239, 332, 248, 325, 862, 16, 9, 422, 657, 555, 263, 402, 279, 631, 256, 866, 792, 88 }}, "employment":[{"organization-name":"Zimcone","start-date":date("2005-11-07"),"end-date":date("2008-05-07")}]}
-{"id": 291, "alias": "Amanda000291", "name": "Amanda Brinigh", "user-since": datetime("2010-08-11T22:09:04"), "address": {"street":"45 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{843, 520, 190 }}, "employment":[{"organization-name":"Zamcorporation","start-date":date("2006-11-23"),"end-date":date("2006-02-17")}]}
-{"id": 292, "alias": "Marleen000292", "name": "Marleen Dealtry", "user-since": datetime("2014-01-10T06:51:48"), "address": {"street":"82 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{720, 438, 450, 804, 777, 886, 857, 774, 2, 756, 90, 126, 380 }}, "employment":[{"organization-name":"whitestreet","start-date":date("2001-07-17"),"end-date":date("2002-08-26")}]}
-{"id": 293, "alias": "Neal000293", "name": "Neal Kiefer", "user-since": datetime("2013-12-06T14:54:13"), "address": {"street":"39 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{286, 277 }}, "employment":[{"organization-name":"over-it","start-date":date("2004-05-11")}]}
-{"id": 294, "alias": "Winifred000294", "name": "Winifred Seidner", "user-since": datetime("2012-11-07T00:27:02"), "address": {"street":"63 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{36, 413, 899, 706, 143, 553, 593, 638, 526 }}, "employment":[{"organization-name":"Inchex","start-date":date("2000-09-18"),"end-date":date("2001-08-03")}]}
-{"id": 295, "alias": "Damien000295", "name": "Damien Porter", "user-since": datetime("2013-02-22T10:16:01"), "address": {"street":"50 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{513, 682, 232, 293, 782, 578, 843, 483, 43, 821, 122, 322, 127, 805, 278, 554, 17, 93, 859, 30, 9, 335, 205, 863 }}, "employment":[{"organization-name":"Streettax","start-date":date("2006-07-16"),"end-date":date("2010-08-01")}]}
-{"id": 296, "alias": "Idelle000296", "name": "Idelle Clewett", "user-since": datetime("2008-12-12T16:18:49"), "address": {"street":"55 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{132, 662, 181, 735, 554, 483, 225, 754, 745, 819, 524, 353 }}, "employment":[{"organization-name":"Doncare","start-date":date("2005-11-14")}]}
-{"id": 297, "alias": "Bennie000297", "name": "Bennie James", "user-since": datetime("2007-01-02T02:31:45"), "address": {"street":"68 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{792 }}, "employment":[{"organization-name":"Trustbam","start-date":date("2011-10-06")}]}
-{"id": 298, "alias": "Nancy000298", "name": "Nancy Whittier", "user-since": datetime("2011-01-25T23:59:12"), "address": {"street":"94 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{275, 711, 428, 738, 3, 611, 409, 174, 768, 796, 529, 378, 287, 833, 277, 803, 199, 167, 632, 337, 373, 9, 136 }}, "employment":[{"organization-name":"Ganjastrip","start-date":date("2007-03-20")}]}
-{"id": 299, "alias": "Mona000299", "name": "Mona Ling", "user-since": datetime("2013-11-05T06:05:37"), "address": {"street":"20 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{146, 82 }}, "employment":[{"organization-name":"Coneflex","start-date":date("2007-05-19"),"end-date":date("2009-12-04")}]}
-{"id": 300, "alias": "Gayle000300", "name": "Gayle Echard", "user-since": datetime("2006-08-13T21:46:32"), "address": {"street":"13 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{440, 578, 602, 270, 698, 714, 550, 638, 683, 267, 667, 623, 615, 61, 60, 271 }}, "employment":[{"organization-name":"Hexviafind","start-date":date("2003-06-23")}]}
-{"id": 301, "alias": "Ehtel000301", "name": "Ehtel Hunter", "user-since": datetime("2014-08-02T17:08:28"), "address": {"street":"69 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{812, 57, 810, 664, 230, 419, 554 }}, "employment":[{"organization-name":"Ganjastrip","start-date":date("2008-03-19"),"end-date":date("2008-05-12")}]}
-{"id": 302, "alias": "Jonquil000302", "name": "Jonquil Throckmorton", "user-since": datetime("2012-04-10T17:13:32"), "address": {"street":"14 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{503, 674, 530, 877, 847, 23 }}, "employment":[{"organization-name":"Strongtone","start-date":date("2006-05-09")}]}
-{"id": 303, "alias": "Craig000303", "name": "Craig Hurst", "user-since": datetime("2005-03-14T06:12:53"), "address": {"street":"57 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{631, 850, 881, 852, 608, 441, 178, 793, 227, 432, 130, 695, 468, 819, 147, 794, 109, 834, 251, 53, 550, 636, 319 }}, "employment":[{"organization-name":"Y-geohex","start-date":date("2001-01-19"),"end-date":date("2009-12-20")}]}
-{"id": 304, "alias": "Amina000304", "name": "Amina Jyllian", "user-since": datetime("2008-04-03T11:06:40"), "address": {"street":"10 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{834, 267, 122, 529, 655, 858 }}, "employment":[{"organization-name":"Roundhex","start-date":date("2010-05-06")}]}
-{"id": 305, "alias": "Cecil000305", "name": "Cecil Kava", "user-since": datetime("2011-06-17T21:42:41"), "address": {"street":"72 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{293, 644 }}, "employment":[{"organization-name":"Newphase","start-date":date("2002-05-14")}]}
-{"id": 306, "alias": "Dwayne000306", "name": "Dwayne Smail", "user-since": datetime("2007-07-25T08:11:33"), "address": {"street":"47 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{738, 628, 433, 239, 557, 274, 509, 571, 537, 99, 180, 583, 725, 87, 121 }}, "employment":[{"organization-name":"Newphase","start-date":date("2008-02-19")}]}
-{"id": 307, "alias": "Patricia000307", "name": "Patricia Hanford", "user-since": datetime("2009-03-05T22:39:07"), "address": {"street":"18 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{390, 691, 701, 617, 398, 572, 340, 103, 649, 781, 125, 659 }}, "employment":[{"organization-name":"Hexsanhex","start-date":date("2005-09-23")}]}
-{"id": 308, "alias": "Lilly000308", "name": "Lilly Groah", "user-since": datetime("2007-11-19T04:48:54"), "address": {"street":"64 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{894, 501, 780, 831, 178, 728, 610, 704, 897, 3, 865 }}, "employment":[{"organization-name":"Labzatron","start-date":date("2012-04-03"),"end-date":date("2012-06-06")}]}
-{"id": 309, "alias": "Douglas000309", "name": "Douglas Knapp", "user-since": datetime("2012-09-15T03:59:17"), "address": {"street":"74 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{560, 631, 107, 602, 794, 799, 520, 634, 626, 347, 505, 770, 589, 704, 59, 85, 482, 424, 651, 548, 712, 745 }}, "employment":[{"organization-name":"Villa-dox","start-date":date("2005-01-22"),"end-date":date("2009-05-23")}]}
-{"id": 310, "alias": "Boyd000310", "name": "Boyd Wood", "user-since": datetime("2007-06-11T07:02:20"), "address": {"street":"17 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{262, 250, 507, 575, 499, 571, 387, 347, 365, 145, 78 }}, "employment":[{"organization-name":"Hatcom","start-date":date("2005-04-22"),"end-date":date("2007-04-19")}]}
-{"id": 311, "alias": "Chuck000311", "name": "Chuck Lowe", "user-since": datetime("2009-08-20T00:51:23"), "address": {"street":"34 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{600, 597, 647, 109, 347, 81, 168 }}, "employment":[{"organization-name":"Doncare","start-date":date("2005-06-21")}]}
-{"id": 312, "alias": "Audrie000312", "name": "Audrie Neely", "user-since": datetime("2007-02-15T20:55:13"), "address": {"street":"77 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{128, 91, 421, 194, 872, 244, 37, 852, 815, 752, 288, 219, 281, 305 }}, "employment":[{"organization-name":"Sublamdox","start-date":date("2003-02-03")}]}
-{"id": 313, "alias": "Ashlie000313", "name": "Ashlie Blatenberger", "user-since": datetime("2013-10-14T21:57:47"), "address": {"street":"68 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{23, 30, 456, 458, 221, 1, 707, 12, 200, 102 }}, "employment":[{"organization-name":"Fixdintex","start-date":date("2000-04-26")}]}
-{"id": 314, "alias": "Marcie000314", "name": "Marcie Lineman", "user-since": datetime("2014-02-01T20:24:55"), "address": {"street":"42 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{727, 865, 4, 92, 730, 460, 154, 300, 176, 840, 122, 184, 722, 209, 127, 520, 719, 517, 807, 491, 467, 492, 202 }}, "employment":[{"organization-name":"Alphadax","start-date":date("2002-04-06"),"end-date":date("2009-09-11")}]}
-{"id": 315, "alias": "Katie000315", "name": "Katie Johann", "user-since": datetime("2010-04-10T01:07:20"), "address": {"street":"62 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{598, 416, 221, 146, 276 }}, "employment":[{"organization-name":"Trustbam","start-date":date("2007-12-07"),"end-date":date("2008-10-16")}]}
-{"id": 316, "alias": "Tilly000316", "name": "Tilly Fleming", "user-since": datetime("2013-04-04T13:47:00"), "address": {"street":"48 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{737, 358, 321, 715, 161, 280, 799, 164, 750, 220, 547 }}, "employment":[{"organization-name":"Doublezone","start-date":date("2007-10-27")}]}
-{"id": 317, "alias": "Monte000317", "name": "Monte Harrow", "user-since": datetime("2013-08-12T15:36:14"), "address": {"street":"50 Hill Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{91, 602, 854, 371, 8, 872, 781, 92, 594, 803, 323, 18, 189, 699, 241, 156, 739 }}, "employment":[{"organization-name":"kin-ron","start-date":date("2012-03-22"),"end-date":date("2012-04-23")}]}
-{"id": 318, "alias": "Vincent000318", "name": "Vincent Richter", "user-since": datetime("2008-07-13T00:38:34"), "address": {"street":"69 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{486, 806, 698, 689, 741, 310 }}, "employment":[{"organization-name":"Zimcone","start-date":date("2005-11-11"),"end-date":date("2005-09-09")}]}
-{"id": 319, "alias": "Petula000319", "name": "Petula Spring", "user-since": datetime("2008-05-26T12:48:55"), "address": {"street":"41 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{705, 64, 716, 414, 204, 396, 838, 75, 780, 640, 359, 164, 898, 451, 182, 390 }}, "employment":[{"organization-name":"over-it","start-date":date("2002-09-13"),"end-date":date("2010-03-25")}]}
-{"id": 320, "alias": "Bertie000320", "name": "Bertie Treeby", "user-since": datetime("2010-08-23T05:19:23"), "address": {"street":"80 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{19 }}, "employment":[{"organization-name":"strongex","start-date":date("2004-07-25"),"end-date":date("2007-06-28")}]}
-{"id": 321, "alias": "Darrel000321", "name": "Darrel Shotts", "user-since": datetime("2005-04-02T05:11:38"), "address": {"street":"45 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{625, 485, 232, 675, 314, 411, 815, 213, 234, 260, 114, 370, 752, 844, 164, 548, 149, 575, 359, 610, 178, 406, 247 }}, "employment":[{"organization-name":"Vaiatech","start-date":date("2010-06-23")}]}
-{"id": 322, "alias": "Pen000322", "name": "Pen Sachse", "user-since": datetime("2013-01-17T00:33:33"), "address": {"street":"88 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{199, 578, 293, 160, 127 }}, "employment":[{"organization-name":"Voltbam","start-date":date("2001-01-08")}]}
-{"id": 323, "alias": "Carlyle000323", "name": "Carlyle Kellogg", "user-since": datetime("2013-03-24T20:58:22"), "address": {"street":"8 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{789, 265, 894, 594, 370, 11, 633 }}, "employment":[{"organization-name":"tresline","start-date":date("2012-05-27")}]}
-{"id": 324, "alias": "Taylor000324", "name": "Taylor Rose", "user-since": datetime("2010-10-11T22:34:46"), "address": {"street":"79 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{537, 565, 545, 710, 733, 332, 482, 416, 306, 657, 9, 231, 848, 691, 213, 178, 483, 164, 648, 721, 149, 10, 587 }}, "employment":[{"organization-name":"Zuncan","start-date":date("2010-08-12"),"end-date":date("2011-10-11")}]}
-{"id": 325, "alias": "Melitta000325", "name": "Melitta Stone", "user-since": datetime("2013-04-25T18:11:14"), "address": {"street":"7 Third Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{403, 865, 164, 368, 249, 773, 374, 16, 494, 622, 264, 508, 584, 529, 440, 358, 224, 505, 77, 114, 824, 533, 585, 356 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2006-06-23"),"end-date":date("2008-04-11")}]}
-{"id": 326, "alias": "Lenard000326", "name": "Lenard Summy", "user-since": datetime("2014-03-02T15:05:47"), "address": {"street":"18 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{319, 395, 162, 533, 790, 859, 372, 657, 45, 590, 837, 842, 456, 822, 397, 147, 746, 124 }}, "employment":[{"organization-name":"Canline","start-date":date("2003-12-09")}]}
-{"id": 327, "alias": "Mike000327", "name": "Mike Fischer", "user-since": datetime("2014-06-04T05:09:24"), "address": {"street":"92 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{197, 890, 866, 29, 17, 501, 145, 73, 89, 136, 478, 124, 753, 15, 319, 185, 207, 518, 38, 127, 399, 186, 833, 308 }}, "employment":[{"organization-name":"Unijobam","start-date":date("2003-02-22")}]}
-{"id": 328, "alias": "Tad000328", "name": "Tad Mcclymonds", "user-since": datetime("2011-09-25T12:48:19"), "address": {"street":"70 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{147, 476, 686, 586 }}, "employment":[{"organization-name":"Indiex","start-date":date("2010-08-25"),"end-date":date("2011-09-14")}]}
-{"id": 329, "alias": "Maximilian000329", "name": "Maximilian Light", "user-since": datetime("2010-12-16T10:21:09"), "address": {"street":"33 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{830, 385, 895, 200, 63, 146, 152, 694, 691, 843, 409 }}, "employment":[{"organization-name":"Codetechno","start-date":date("2008-03-12")}]}
-{"id": 330, "alias": "Esmond000330", "name": "Esmond Kepple", "user-since": datetime("2011-05-17T09:28:59"), "address": {"street":"47 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{815, 479, 703, 213, 7, 173, 423, 840, 63, 161, 448, 775, 603, 151, 556 }}, "employment":[{"organization-name":"Icerunin","start-date":date("2001-12-05"),"end-date":date("2004-06-13")}]}
-{"id": 331, "alias": "Nia000331", "name": "Nia Hardy", "user-since": datetime("2008-11-07T11:28:47"), "address": {"street":"52 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{787, 188, 204, 380, 150, 744, 20 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2007-04-18")}]}
-{"id": 332, "alias": "Ted000332", "name": "Ted Polson", "user-since": datetime("2009-12-10T18:18:03"), "address": {"street":"68 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{432, 576, 38, 98, 497 }}, "employment":[{"organization-name":"Doncare","start-date":date("2006-01-22")}]}
-{"id": 333, "alias": "Elaine000333", "name": "Elaine Friedline", "user-since": datetime("2009-03-19T16:11:36"), "address": {"street":"42 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{507, 564 }}, "employment":[{"organization-name":"U-ron","start-date":date("2011-02-15")}]}
-{"id": 334, "alias": "Cecilia000334", "name": "Cecilia Wegley", "user-since": datetime("2005-01-16T08:18:34"), "address": {"street":"73 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{331, 499 }}, "employment":[{"organization-name":"Icerunin","start-date":date("2009-03-15"),"end-date":date("2009-02-14")}]}
-{"id": 335, "alias": "Rico000335", "name": "Rico Pratt", "user-since": datetime("2012-04-12T00:50:44"), "address": {"street":"72 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{187, 309, 147, 170, 162 }}, "employment":[{"organization-name":"Codetechno","start-date":date("2005-10-16"),"end-date":date("2006-09-01")}]}
-{"id": 336, "alias": "Yolanda000336", "name": "Yolanda Altman", "user-since": datetime("2013-04-23T04:52:24"), "address": {"street":"97 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{467, 741, 304, 758, 481, 617, 142, 344, 105, 303, 582, 864, 165, 148 }}, "employment":[{"organization-name":"Villa-dox","start-date":date("2008-07-13"),"end-date":date("2011-01-06")}]}
-{"id": 337, "alias": "Alvena000337", "name": "Alvena Osteen", "user-since": datetime("2008-10-28T00:51:38"), "address": {"street":"38 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{615, 782, 843, 229, 416, 130, 809, 712, 480, 77 }}, "employment":[{"organization-name":"Fix-touch","start-date":date("2010-02-08")}]}
-{"id": 338, "alias": "Luna000338", "name": "Luna Jube", "user-since": datetime("2011-10-04T09:48:34"), "address": {"street":"15 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{535, 499, 554, 160, 528, 705, 679, 545, 618, 615, 322, 18, 219, 115, 143, 492 }}, "employment":[{"organization-name":"Doncare","start-date":date("2005-12-02"),"end-date":date("2008-11-27")}]}
-{"id": 339, "alias": "Krysten000339", "name": "Krysten Bard", "user-since": datetime("2005-12-20T01:44:16"), "address": {"street":"28 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{504, 567, 124, 25 }}, "employment":[{"organization-name":"Lexicone","start-date":date("2001-12-10"),"end-date":date("2001-09-03")}]}
-{"id": 340, "alias": "Maryann000340", "name": "Maryann Cram", "user-since": datetime("2007-12-23T05:09:51"), "address": {"street":"12 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{554 }}, "employment":[{"organization-name":"Fixdintex","start-date":date("2000-09-15")}]}
-{"id": 341, "alias": "Fidel000341", "name": "Fidel Errett", "user-since": datetime("2009-08-17T21:13:18"), "address": {"street":"2 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{437, 33, 382, 477, 146 }}, "employment":[{"organization-name":"zoomplus","start-date":date("2006-09-09"),"end-date":date("2011-10-18")}]}
-{"id": 342, "alias": "Concha000342", "name": "Concha Tomey", "user-since": datetime("2008-07-23T00:39:19"), "address": {"street":"89 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{142, 742, 343, 261, 682, 896, 230, 350, 461, 516, 665, 325, 187, 850, 273, 26, 892, 565 }}, "employment":[{"organization-name":"Ganjastrip","start-date":date("2007-07-10")}]}
-{"id": 343, "alias": "Grant000343", "name": "Grant Bennett", "user-since": datetime("2007-11-08T00:28:10"), "address": {"street":"42 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{453, 473, 264, 488, 126, 88, 762, 690, 112, 56, 791, 533, 60, 782, 106, 442 }}, "employment":[{"organization-name":"Sanjodax","start-date":date("2001-02-24"),"end-date":date("2002-08-10")}]}
-{"id": 344, "alias": "Phillip000344", "name": "Phillip Ledgerwood", "user-since": datetime("2006-03-18T17:45:03"), "address": {"street":"69 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{201, 901, 822, 236, 756, 272, 261, 114, 490, 470, 601, 611, 883, 321 }}, "employment":[{"organization-name":"Ranhotfan","start-date":date("2001-02-20")}]}
-{"id": 345, "alias": "Marci000345", "name": "Marci Warner", "user-since": datetime("2014-04-07T18:55:11"), "address": {"street":"49 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{348, 602, 408, 67, 234, 307, 50, 723, 554, 315, 812, 838, 675, 350, 449, 393, 239, 567, 68, 663, 713, 883, 231 }}, "employment":[{"organization-name":"Codetechno","start-date":date("2007-11-02")}]}
-{"id": 346, "alias": "Roderick000346", "name": "Roderick Ratcliff", "user-since": datetime("2014-01-03T06:57:25"), "address": {"street":"33 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{855, 166, 66, 281, 577, 705, 586, 651, 185, 748, 715, 129 }}, "employment":[{"organization-name":"Striptaxon","start-date":date("2004-06-10")}]}
-{"id": 347, "alias": "Keren000347", "name": "Keren Green", "user-since": datetime("2008-07-18T19:03:21"), "address": {"street":"98 Park Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{210, 576, 828, 209, 488, 101, 706, 848, 620, 152, 335, 204, 351, 9, 145, 233 }}, "employment":[{"organization-name":"Villa-dox","start-date":date("2001-01-01")}]}
-{"id": 348, "alias": "Deidre000348", "name": "Deidre Kellogg", "user-since": datetime("2009-08-27T12:56:27"), "address": {"street":"49 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{226, 671, 892 }}, "employment":[{"organization-name":"Zununoing","start-date":date("2007-12-15")}]}
-{"id": 349, "alias": "Roger000349", "name": "Roger Stone", "user-since": datetime("2006-12-27T04:04:38"), "address": {"street":"29 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{426, 526, 10, 880, 765, 567, 142, 57, 177, 385, 580, 672, 719, 723 }}, "employment":[{"organization-name":"Voltbam","start-date":date("2006-08-28")}]}
-{"id": 350, "alias": "Luci000350", "name": "Luci Osteen", "user-since": datetime("2013-07-05T01:31:03"), "address": {"street":"33 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{450, 103, 634, 34, 764, 152 }}, "employment":[{"organization-name":"Doncare","start-date":date("2000-02-21")}]}
-{"id": 351, "alias": "Shena000351", "name": "Shena Throckmorton", "user-since": datetime("2007-09-27T11:38:17"), "address": {"street":"3 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{560, 592, 564, 388, 306, 271, 874, 302, 279, 177, 799, 453 }}, "employment":[{"organization-name":"Mathtech","start-date":date("2004-03-07"),"end-date":date("2009-01-26")}]}
-{"id": 352, "alias": "Euna000352", "name": "Euna Prechtl", "user-since": datetime("2007-12-02T08:45:43"), "address": {"street":"27 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{106, 710, 187, 883, 260, 144, 74, 672, 47, 542, 586, 300, 421, 138, 829, 152, 486, 348, 244, 314, 751, 580, 423 }}, "employment":[{"organization-name":"Ganjatax","start-date":date("2011-05-26"),"end-date":date("2011-07-12")}]}
-{"id": 353, "alias": "Kalysta000353", "name": "Kalysta Gottwine", "user-since": datetime("2014-07-04T21:48:58"), "address": {"street":"93 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Groovetex","start-date":date("2010-11-12")}]}
-{"id": 354, "alias": "Gina000354", "name": "Gina Schuth", "user-since": datetime("2009-11-14T03:19:49"), "address": {"street":"33 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{825, 300, 860, 486, 302, 242, 369, 337, 734, 846, 244, 431, 255, 490, 271, 735, 331, 450, 687, 316, 388, 597 }}, "employment":[{"organization-name":"Redelectronics","start-date":date("2000-08-09")}]}
-{"id": 355, "alias": "Rolland000355", "name": "Rolland Finlay", "user-since": datetime("2013-12-13T04:52:54"), "address": {"street":"51 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{358, 442, 750, 426 }}, "employment":[{"organization-name":"Alphadax","start-date":date("2003-10-07")}]}
-{"id": 356, "alias": "Elouise000356", "name": "Elouise Snyder", "user-since": datetime("2006-05-10T09:03:22"), "address": {"street":"26 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{147, 277, 756, 20, 833 }}, "employment":[{"organization-name":"geomedia","start-date":date("2003-01-03")}]}
-{"id": 357, "alias": "Cordell000357", "name": "Cordell Whirlow", "user-since": datetime("2014-06-22T18:53:05"), "address": {"street":"3 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{98, 270, 621, 352, 598, 10, 57 }}, "employment":[{"organization-name":"jaydax","start-date":date("2011-10-13")}]}
-{"id": 358, "alias": "Max000358", "name": "Max Gettemy", "user-since": datetime("2013-08-04T01:34:54"), "address": {"street":"7 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{454, 133, 848, 517, 140, 583, 785 }}, "employment":[{"organization-name":"sonstreet","start-date":date("2010-08-12"),"end-date":date("2010-03-15")}]}
-{"id": 359, "alias": "Quincy000359", "name": "Quincy Haile", "user-since": datetime("2006-11-25T10:57:58"), "address": {"street":"81 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{316, 559, 808, 741, 581, 260, 705, 520, 263, 333, 8, 857, 501, 2, 233, 27, 827, 763, 95 }}, "employment":[{"organization-name":"Tripplelane","start-date":date("2005-06-13"),"end-date":date("2005-09-16")}]}
-{"id": 360, "alias": "Heron000360", "name": "Heron Hatfield", "user-since": datetime("2014-06-15T19:59:40"), "address": {"street":"1 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{423, 258, 506, 845, 42, 380, 704, 128, 135, 248, 80, 766 }}, "employment":[{"organization-name":"Zimcone","start-date":date("2012-03-23"),"end-date":date("2012-04-09")}]}
-{"id": 361, "alias": "Poppy000361", "name": "Poppy Dean", "user-since": datetime("2009-12-23T21:56:49"), "address": {"street":"86 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{468, 368, 230, 528, 539, 513, 426, 308, 76, 27, 550, 554, 752, 281, 541, 206, 84, 412, 786, 792, 140 }}, "employment":[{"organization-name":"Sancone","start-date":date("2002-02-22"),"end-date":date("2009-04-02")}]}
-{"id": 362, "alias": "Nannie000362", "name": "Nannie Mingle", "user-since": datetime("2013-03-25T05:46:13"), "address": {"street":"18 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{110 }}, "employment":[{"organization-name":"ganjalax","start-date":date("2008-06-21")}]}
-{"id": 363, "alias": "Sherilyn000363", "name": "Sherilyn Gibson", "user-since": datetime("2014-01-14T01:32:23"), "address": {"street":"72 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{358, 530, 821, 336, 297, 498, 404, 175, 343, 68, 745 }}, "employment":[{"organization-name":"Inchex","start-date":date("2000-07-04")}]}
-{"id": 364, "alias": "Nickole000364", "name": "Nickole Bishop", "user-since": datetime("2009-04-27T10:18:04"), "address": {"street":"63 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{403, 62, 630, 304, 160, 644, 809, 119, 858, 535, 165, 786 }}, "employment":[{"organization-name":"linedexon","start-date":date("2009-03-02")}]}
-{"id": 365, "alias": "Ellery000365", "name": "Ellery Simmons", "user-since": datetime("2006-11-08T18:39:04"), "address": {"street":"13 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{137, 882, 718, 110, 890, 783, 591, 553, 251, 119, 643, 66 }}, "employment":[{"organization-name":"Ransaofan","start-date":date("2009-04-14"),"end-date":date("2011-04-22")}]}
-{"id": 366, "alias": "Skyler000366", "name": "Skyler Jolce", "user-since": datetime("2014-06-05T10:28:38"), "address": {"street":"32 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{2 }}, "employment":[{"organization-name":"Lexicone","start-date":date("2005-03-28"),"end-date":date("2007-02-08")}]}
-{"id": 367, "alias": "Sly000367", "name": "Sly Lafortune", "user-since": datetime("2014-04-03T20:57:58"), "address": {"street":"48 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{343, 311, 292, 823 }}, "employment":[{"organization-name":"Statcode","start-date":date("2000-03-01")}]}
-{"id": 368, "alias": "Tricia000368", "name": "Tricia Maclagan", "user-since": datetime("2012-11-08T16:38:31"), "address": {"street":"12 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{350, 879, 437 }}, "employment":[{"organization-name":"Rungozoom","start-date":date("2010-09-10"),"end-date":date("2011-08-28")}]}
-{"id": 369, "alias": "Bronte000369", "name": "Bronte Swarner", "user-since": datetime("2008-09-24T05:23:41"), "address": {"street":"11 Third Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"U-electrics","start-date":date("2001-05-25")}]}
-{"id": 370, "alias": "Doreen000370", "name": "Doreen Emrick", "user-since": datetime("2011-08-23T06:58:29"), "address": {"street":"61 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{484, 58, 612, 578, 255, 876 }}, "employment":[{"organization-name":"Voltlane","start-date":date("2000-08-11")}]}
-{"id": 371, "alias": "Reynold000371", "name": "Reynold Barrett", "user-since": datetime("2013-05-23T22:34:43"), "address": {"street":"48 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{132, 93 }}, "employment":[{"organization-name":"Sumlane","start-date":date("2006-10-02"),"end-date":date("2008-05-17")}]}
-{"id": 372, "alias": "Trevor000372", "name": "Trevor Hardy", "user-since": datetime("2009-11-28T10:29:22"), "address": {"street":"12 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{358, 185, 874, 363, 21, 889 }}, "employment":[{"organization-name":"Labzatron","start-date":date("2008-08-16")}]}
-{"id": 373, "alias": "Simon000373", "name": "Simon Eckhardstein", "user-since": datetime("2012-01-11T09:07:41"), "address": {"street":"79 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{844, 484, 627, 583, 614, 497, 126, 786, 689, 427, 401, 815, 30, 673, 199, 133, 805 }}, "employment":[{"organization-name":"Lexicone","start-date":date("2003-04-01")}]}
-{"id": 374, "alias": "Sabina000374", "name": "Sabina Caldwell", "user-since": datetime("2009-02-20T02:34:02"), "address": {"street":"6 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{723, 589 }}, "employment":[{"organization-name":"Sublamdox","start-date":date("2007-09-01"),"end-date":date("2007-05-16")}]}
-{"id": 375, "alias": "Ray000375", "name": "Ray Carr", "user-since": datetime("2013-08-16T19:41:23"), "address": {"street":"83 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{50, 841, 109, 867, 409, 207, 148, 99, 424, 447, 751, 289, 61, 177, 658, 270, 676, 603, 284, 785, 374 }}, "employment":[{"organization-name":"Sumlane","start-date":date("2003-08-12")}]}
-{"id": 376, "alias": "Brittany000376", "name": "Brittany Orbell", "user-since": datetime("2010-09-07T02:44:31"), "address": {"street":"23 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{257, 199, 127, 425, 621, 361, 141, 234, 164, 434, 443, 523, 366 }}, "employment":[{"organization-name":"Latsonity","start-date":date("2002-02-03"),"end-date":date("2002-02-14")}]}
-{"id": 377, "alias": "Horatio000377", "name": "Horatio Blaine", "user-since": datetime("2009-07-20T18:43:18"), "address": {"street":"65 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{643, 128, 513 }}, "employment":[{"organization-name":"Ranhotfan","start-date":date("2004-01-01"),"end-date":date("2005-10-17")}]}
-{"id": 378, "alias": "Arden000378", "name": "Arden Siegrist", "user-since": datetime("2012-11-10T19:27:38"), "address": {"street":"23 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{530, 99, 545, 474, 630 }}, "employment":[{"organization-name":"Techitechi","start-date":date("2009-02-10")}]}
-{"id": 379, "alias": "Molly000379", "name": "Molly Gilman", "user-since": datetime("2008-09-15T07:23:04"), "address": {"street":"56 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{1, 38, 237 }}, "employment":[{"organization-name":"Zuncan","start-date":date("2006-04-21"),"end-date":date("2010-09-12")}]}
-{"id": 380, "alias": "Luanna000380", "name": "Luanna Goldvogel", "user-since": datetime("2010-03-11T12:08:00"), "address": {"street":"85 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{104, 873, 889, 448 }}, "employment":[{"organization-name":"Lexitechno","start-date":date("2001-11-27")}]}
-{"id": 381, "alias": "Krystal000381", "name": "Krystal Blessig", "user-since": datetime("2008-11-03T03:52:37"), "address": {"street":"55 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{453, 284, 112, 296, 804, 510, 304, 312, 186 }}, "employment":[{"organization-name":"Tanzimcare","start-date":date("2000-10-13"),"end-date":date("2008-09-17")}]}
-{"id": 382, "alias": "Marlin000382", "name": "Marlin Swabey", "user-since": datetime("2009-06-21T04:38:51"), "address": {"street":"27 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{166, 254, 19, 665, 579, 477, 54, 373, 202, 406, 110, 66, 405, 719, 770, 283, 724, 179, 425, 812 }}, "employment":[{"organization-name":"Newfase","start-date":date("2007-10-16")}]}
-{"id": 383, "alias": "Maryvonne000383", "name": "Maryvonne Ludwig", "user-since": datetime("2013-12-12T12:38:50"), "address": {"street":"5 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{490, 543, 244, 176, 639, 23, 238, 462, 96, 755, 765 }}, "employment":[{"organization-name":"Rungozoom","start-date":date("2004-02-10")}]}
-{"id": 384, "alias": "Melia000384", "name": "Melia Sanders", "user-since": datetime("2011-02-26T05:00:36"), "address": {"street":"97 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{745, 862, 196, 731, 727, 86, 305, 200, 646, 131, 278, 682, 282, 664, 792, 684, 472, 48, 421, 866 }}, "employment":[{"organization-name":"Labzatron","start-date":date("2003-12-14"),"end-date":date("2010-03-04")}]}
-{"id": 385, "alias": "Kate000385", "name": "Kate Ruch", "user-since": datetime("2014-04-14T00:41:28"), "address": {"street":"2 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{311, 151, 80 }}, "employment":[{"organization-name":"silfind","start-date":date("2000-09-22")}]}
-{"id": 386, "alias": "Annabella000386", "name": "Annabella Wegley", "user-since": datetime("2007-08-28T17:18:56"), "address": {"street":"66 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{54, 84, 301, 340, 481, 788, 229, 1, 854, 806, 467, 385, 651, 22 }}, "employment":[{"organization-name":"Technohow","start-date":date("2002-03-15")}]}
-{"id": 387, "alias": "Lashay000387", "name": "Lashay Biery", "user-since": datetime("2013-07-03T23:06:08"), "address": {"street":"76 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{784, 138, 688, 770, 634, 247, 589 }}, "employment":[{"organization-name":"Ontohothex","start-date":date("2011-08-03")}]}
-{"id": 388, "alias": "Florinda000388", "name": "Florinda Buehler", "user-since": datetime("2014-08-07T07:12:04"), "address": {"street":"58 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{282, 149, 397, 82, 762, 547, 92, 109 }}, "employment":[{"organization-name":"Zamcorporation","start-date":date("2006-02-26")}]}
-{"id": 389, "alias": "Alanis000389", "name": "Alanis Chappel", "user-since": datetime("2010-02-22T20:39:23"), "address": {"street":"48 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{5, 564 }}, "employment":[{"organization-name":"U-ron","start-date":date("2004-07-27")}]}
-{"id": 390, "alias": "Avelina000390", "name": "Avelina Vinsant", "user-since": datetime("2009-07-03T21:41:27"), "address": {"street":"66 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Codetechno","start-date":date("2009-03-25")}]}
-{"id": 391, "alias": "Jospeh000391", "name": "Jospeh Carbaugh", "user-since": datetime("2008-03-24T18:43:35"), "address": {"street":"1 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{155, 221, 291, 796, 126, 834 }}, "employment":[{"organization-name":"Dandamace","start-date":date("2001-05-15")}]}
-{"id": 392, "alias": "Bennie000392", "name": "Bennie Vorrasi", "user-since": datetime("2010-10-09T13:34:07"), "address": {"street":"73 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{208, 849, 900, 108, 797, 783, 220, 403, 653, 885, 610, 235, 652, 149, 574, 431, 293, 361, 770, 206, 246 }}, "employment":[{"organization-name":"Rungozoom","start-date":date("2007-08-08"),"end-date":date("2010-07-16")}]}
-{"id": 393, "alias": "Scott000393", "name": "Scott Fair", "user-since": datetime("2007-04-06T02:47:31"), "address": {"street":"27 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{654, 82, 433, 562, 609, 272, 579, 455, 305, 132, 703, 321, 530, 275, 407, 594, 622, 144, 370 }}, "employment":[{"organization-name":"Codetechno","start-date":date("2001-09-09"),"end-date":date("2003-07-28")}]}
-{"id": 394, "alias": "Quinn000394", "name": "Quinn Ironmonger", "user-since": datetime("2005-07-18T19:09:53"), "address": {"street":"58 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{427, 417, 136, 306, 362, 361, 239, 521, 860, 602, 805, 273, 605 }}, "employment":[{"organization-name":"silfind","start-date":date("2008-03-20"),"end-date":date("2010-09-09")}]}
-{"id": 395, "alias": "Galina000395", "name": "Galina Barkley", "user-since": datetime("2014-08-21T19:40:33"), "address": {"street":"95 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{631, 505, 862, 718, 173, 756, 713, 632, 589, 67, 279, 700, 416, 891, 896, 85, 318, 139, 794, 573 }}, "employment":[{"organization-name":"Newphase","start-date":date("2009-12-07")}]}
-{"id": 396, "alias": "Emely000396", "name": "Emely Hector", "user-since": datetime("2010-05-13T12:31:52"), "address": {"street":"70 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{602, 82, 214, 610 }}, "employment":[{"organization-name":"kin-ron","start-date":date("2012-01-18")}]}
-{"id": 397, "alias": "Kasandra000397", "name": "Kasandra Bashline", "user-since": datetime("2010-05-10T15:23:01"), "address": {"street":"57 Elm Blvd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{632 }}, "employment":[{"organization-name":"Plexlane","start-date":date("2010-09-02")}]}
-{"id": 398, "alias": "Nick000398", "name": "Nick Lucy", "user-since": datetime("2014-04-20T15:19:17"), "address": {"street":"97 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{383, 466, 80, 551, 608, 373, 641, 391, 334, 814, 517, 446, 447, 559, 613, 598, 154, 228, 345, 61, 305, 304, 554 }}, "employment":[{"organization-name":"Transhigh","start-date":date("2012-06-24"),"end-date":date("2012-07-07")}]}
-{"id": 399, "alias": "Nikolas000399", "name": "Nikolas Demuth", "user-since": datetime("2007-10-23T19:32:22"), "address": {"street":"74 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{422, 874, 576, 573, 659, 150, 655, 451, 281, 590, 245, 420, 599, 251, 861, 308, 185, 249, 349, 18, 557 }}, "employment":[{"organization-name":"geomedia","start-date":date("2003-02-25")}]}
-{"id": 400, "alias": "Savannah000400", "name": "Savannah Wheeler", "user-since": datetime("2012-01-22T06:05:51"), "address": {"street":"78 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{67, 316, 168, 256, 472, 858, 32, 476, 747, 406, 594, 704, 744, 167, 63, 470, 272, 38, 750 }}, "employment":[{"organization-name":"itlab","start-date":date("2006-12-09")}]}
-{"id": 401, "alias": "Giuseppe000401", "name": "Giuseppe Koster", "user-since": datetime("2012-10-24T13:13:02"), "address": {"street":"31 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{273, 176, 127, 632, 476, 528, 5, 697, 553, 562 }}, "employment":[{"organization-name":"Mathtech","start-date":date("2010-09-24")}]}
-{"id": 402, "alias": "Charita000402", "name": "Charita Zadovsky", "user-since": datetime("2014-03-03T13:33:27"), "address": {"street":"11 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{243, 128, 98, 615, 101, 152, 816, 253, 899, 82, 90, 512, 863, 771, 254, 402, 560, 638, 838, 680 }}, "employment":[{"organization-name":"linedexon","start-date":date("2012-03-22"),"end-date":date("2012-06-02")}]}
-{"id": 403, "alias": "Rodney000403", "name": "Rodney Mosser", "user-since": datetime("2011-12-08T22:33:41"), "address": {"street":"87 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{397, 289, 386, 233, 30, 867, 619, 533, 396, 440, 608, 632, 66, 680, 277, 739, 541, 323, 853, 372, 490, 472, 426, 115 }}, "employment":[{"organization-name":"Inchex","start-date":date("2009-08-02"),"end-date":date("2010-07-22")}]}
-{"id": 404, "alias": "Alayna000404", "name": "Alayna Hill", "user-since": datetime("2006-04-17T08:22:20"), "address": {"street":"11 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{355, 278, 286, 214, 150, 241, 44, 647 }}, "employment":[{"organization-name":"highfax","start-date":date("2007-01-15")}]}
-{"id": 405, "alias": "Kathryn000405", "name": "Kathryn Davis", "user-since": datetime("2012-05-26T00:37:02"), "address": {"street":"40 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{777 }}, "employment":[{"organization-name":"Kanelectrics","start-date":date("2012-05-25")}]}
-{"id": 406, "alias": "Dalia000406", "name": "Dalia Quinn", "user-since": datetime("2013-12-22T00:08:14"), "address": {"street":"74 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{128, 115, 560, 24, 164, 179, 627, 156, 816, 215, 245, 319, 429, 747, 519, 853, 496, 439, 109, 170, 479, 292 }}, "employment":[{"organization-name":"overtech","start-date":date("2005-06-24"),"end-date":date("2008-09-19")}]}
-{"id": 407, "alias": "Oswald000407", "name": "Oswald Hurst", "user-since": datetime("2005-08-25T16:15:27"), "address": {"street":"52 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{824 }}, "employment":[{"organization-name":"Zimcone","start-date":date("2001-11-15"),"end-date":date("2002-06-15")}]}
-{"id": 408, "alias": "Brittani000408", "name": "Brittani Baer", "user-since": datetime("2006-10-19T21:51:05"), "address": {"street":"80 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{332, 464 }}, "employment":[{"organization-name":"Newphase","start-date":date("2010-07-21")}]}
-{"id": 409, "alias": "Carrie000409", "name": "Carrie Wile", "user-since": datetime("2011-06-21T20:46:43"), "address": {"street":"47 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{645, 411, 488, 235, 716, 388, 332 }}, "employment":[{"organization-name":"Streettax","start-date":date("2005-10-25"),"end-date":date("2011-04-06")}]}
-{"id": 410, "alias": "Lorna000410", "name": "Lorna Aultman", "user-since": datetime("2005-02-21T19:46:42"), "address": {"street":"64 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Fax-fax","start-date":date("2002-05-28")}]}
-{"id": 411, "alias": "Garrett000411", "name": "Garrett Stern", "user-since": datetime("2006-06-04T05:04:21"), "address": {"street":"75 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{855 }}, "employment":[{"organization-name":"Newcom","start-date":date("2004-01-20")}]}
-{"id": 412, "alias": "Redd000412", "name": "Redd Hallauer", "user-since": datetime("2009-04-27T00:58:35"), "address": {"street":"23 Maple St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{292, 481 }}, "employment":[{"organization-name":"Fixelectrics","start-date":date("2005-02-18")}]}
-{"id": 413, "alias": "Jerrie000413", "name": "Jerrie Altmann", "user-since": datetime("2010-09-27T21:57:18"), "address": {"street":"96 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{634 }}, "employment":[{"organization-name":"Newcom","start-date":date("2006-02-04")}]}
-{"id": 414, "alias": "Mike000414", "name": "Mike Swink", "user-since": datetime("2007-12-22T02:20:29"), "address": {"street":"50 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{448, 449, 181, 314, 16, 97, 546, 657, 534 }}, "employment":[{"organization-name":"Whitemedia","start-date":date("2002-07-08")}]}
-{"id": 415, "alias": "Thelma000415", "name": "Thelma Beach", "user-since": datetime("2008-01-14T08:09:25"), "address": {"street":"54 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{422, 91, 29, 818, 436 }}, "employment":[{"organization-name":"Fixelectrics","start-date":date("2004-08-11"),"end-date":date("2008-03-12")}]}
-{"id": 416, "alias": "Jamey000416", "name": "Jamey Zadovsky", "user-since": datetime("2013-11-13T20:51:56"), "address": {"street":"16 Third Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{433, 684 }}, "employment":[{"organization-name":"strongex","start-date":date("2003-02-13")}]}
-{"id": 417, "alias": "Alverta000417", "name": "Alverta Werner", "user-since": datetime("2008-04-12T21:27:37"), "address": {"street":"44 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{444, 208, 728, 463, 158, 421, 277, 271, 133, 520, 684, 506, 482, 117, 587, 320, 554, 661, 470, 841, 676, 883 }}, "employment":[{"organization-name":"Fixdintex","start-date":date("2010-03-27")}]}
-{"id": 418, "alias": "Hortensia000418", "name": "Hortensia Garneis", "user-since": datetime("2012-07-18T01:56:49"), "address": {"street":"40 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{812, 349, 559, 879, 317, 297, 707, 496, 200, 901, 402, 899, 573, 361, 633, 678, 328 }}, "employment":[{"organization-name":"subtam","start-date":date("2000-04-20"),"end-date":date("2006-01-06")}]}
-{"id": 419, "alias": "Vernie000419", "name": "Vernie Butler", "user-since": datetime("2008-01-05T20:57:54"), "address": {"street":"53 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{597, 429, 449, 558, 554, 591, 589, 509, 111, 351, 39, 543, 27, 762, 555, 280, 576, 218, 369 }}, "employment":[{"organization-name":"Y-geohex","start-date":date("2012-01-12")}]}
-{"id": 420, "alias": "Giles000420", "name": "Giles Fitzgerald", "user-since": datetime("2013-12-12T14:01:37"), "address": {"street":"31 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{215, 517, 364, 590, 572, 430, 549 }}, "employment":[{"organization-name":"Newfase","start-date":date("2012-06-04"),"end-date":date("2012-07-09")}]}
-{"id": 421, "alias": "Annabella000421", "name": "Annabella Myers", "user-since": datetime("2008-09-03T00:58:20"), "address": {"street":"13 Elm Blvd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{700, 516, 430, 48, 274, 814, 487, 718, 139, 782, 777, 619, 476, 243 }}, "employment":[{"organization-name":"Greencare","start-date":date("2005-05-12")}]}
-{"id": 422, "alias": "Rosalind000422", "name": "Rosalind Reighner", "user-since": datetime("2011-08-07T03:00:47"), "address": {"street":"7 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{182, 343, 649, 499, 597, 215, 408, 230, 638, 518, 868, 766, 364, 432, 875, 111, 662, 152, 730, 804, 465 }}, "employment":[{"organization-name":"Ransaofan","start-date":date("2002-06-10")}]}
-{"id": 423, "alias": "Rigoberto000423", "name": "Rigoberto Wilks", "user-since": datetime("2011-10-19T13:49:02"), "address": {"street":"10 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{559, 440, 11, 872, 67, 122, 369, 159, 754, 326, 5, 696, 615, 281, 270, 826 }}, "employment":[{"organization-name":"Alphadax","start-date":date("2010-05-10"),"end-date":date("2010-01-13")}]}
-{"id": 424, "alias": "Titania000424", "name": "Titania Kunkle", "user-since": datetime("2006-06-12T17:13:37"), "address": {"street":"10 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{97, 715 }}, "employment":[{"organization-name":"Labzatron","start-date":date("2010-06-05")}]}
-{"id": 425, "alias": "Lilly000425", "name": "Lilly Bell", "user-since": datetime("2009-10-26T10:43:03"), "address": {"street":"76 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{523, 297, 530, 648, 568, 385, 2, 217, 121, 735, 358 }}, "employment":[{"organization-name":"Ronholdings","start-date":date("2009-11-16")}]}
-{"id": 426, "alias": "Elsy000426", "name": "Elsy Zeal", "user-since": datetime("2008-02-03T20:32:44"), "address": {"street":"100 Elm Blvd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{334, 825, 295, 241, 550 }}, "employment":[{"organization-name":"Hexviafind","start-date":date("2000-06-25")}]}
-{"id": 427, "alias": "Delilah000427", "name": "Delilah Howard", "user-since": datetime("2013-02-24T06:41:02"), "address": {"street":"94 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{472, 441, 583, 52, 645, 758, 338, 698, 722, 693, 55, 622, 800, 554, 355, 184 }}, "employment":[{"organization-name":"Groovetex","start-date":date("2010-04-23")}]}
-{"id": 428, "alias": "Laurence000428", "name": "Laurence Lambert", "user-since": datetime("2009-06-12T08:08:55"), "address": {"street":"6 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{555, 591, 626, 649, 34, 134, 727, 665, 844, 95, 594, 753, 10, 508, 158, 707, 55, 166, 438 }}, "employment":[{"organization-name":"Greencare","start-date":date("2012-07-19")}]}
-{"id": 429, "alias": "Chance000429", "name": "Chance Jenkins", "user-since": datetime("2014-08-12T14:16:01"), "address": {"street":"59 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{277, 425, 606, 683, 444, 90, 100, 322, 801, 525, 419, 602, 328, 488, 631, 580, 460, 278, 722 }}, "employment":[{"organization-name":"Ransaofan","start-date":date("2010-08-18")}]}
-{"id": 430, "alias": "Kolleen000430", "name": "Kolleen Cable", "user-since": datetime("2008-04-02T22:02:27"), "address": {"street":"31 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{427, 331, 612, 833, 386, 110, 88 }}, "employment":[{"organization-name":"Hatcom","start-date":date("2002-08-08")}]}
-{"id": 431, "alias": "Ros000431", "name": "Ros Courtney", "user-since": datetime("2012-10-15T12:20:12"), "address": {"street":"33 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{573, 188, 329, 64, 253, 757, 605, 421, 875, 613, 574, 163, 104, 800, 52, 134, 43, 880, 848, 79, 3, 665 }}, "employment":[{"organization-name":"Newphase","start-date":date("2007-12-28")}]}
-{"id": 432, "alias": "Debbi000432", "name": "Debbi Mcmullen", "user-since": datetime("2010-05-08T07:41:43"), "address": {"street":"89 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{616, 396, 412, 597, 758, 816, 486, 191, 491, 594, 90, 619, 766, 702, 684, 213, 867, 636, 137, 476 }}, "employment":[{"organization-name":"Vaiatech","start-date":date("2009-05-26"),"end-date":date("2010-02-02")}]}
-{"id": 433, "alias": "Meghan000433", "name": "Meghan Garland", "user-since": datetime("2014-05-25T23:19:50"), "address": {"street":"10 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{510, 496, 438, 806, 219, 822 }}, "employment":[{"organization-name":"Fax-fax","start-date":date("2001-10-21")}]}
-{"id": 434, "alias": "Jordon000434", "name": "Jordon Felbrigge", "user-since": datetime("2013-02-28T06:12:00"), "address": {"street":"62 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{354, 349, 234, 388, 53 }}, "employment":[{"organization-name":"U-electrics","start-date":date("2003-12-16")}]}
-{"id": 435, "alias": "Jaquelyn000435", "name": "Jaquelyn Moulton", "user-since": datetime("2014-06-04T08:44:22"), "address": {"street":"69 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{898, 779, 628, 489, 390, 534, 270 }}, "employment":[{"organization-name":"Newphase","start-date":date("2006-01-19"),"end-date":date("2009-11-09")}]}
-{"id": 436, "alias": "Sidony000436", "name": "Sidony Carter", "user-since": datetime("2013-12-18T17:16:00"), "address": {"street":"89 Third Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{217, 301, 869, 643, 430, 362, 374, 415, 245, 13, 215, 438, 404, 83, 750, 859, 324, 496, 488, 670, 635 }}, "employment":[{"organization-name":"Viatechi","start-date":date("2002-10-15")}]}
-{"id": 437, "alias": "Lina000437", "name": "Lina Clarke", "user-since": datetime("2009-11-02T02:16:58"), "address": {"street":"7 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{468, 881, 702, 66, 537, 676, 836, 99, 710 }}, "employment":[{"organization-name":"linedexon","start-date":date("2008-07-19"),"end-date":date("2009-04-02")}]}
-{"id": 438, "alias": "Leo000438", "name": "Leo Reese", "user-since": datetime("2005-08-28T07:51:37"), "address": {"street":"7 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{167, 565, 382, 466, 666, 543, 613, 853, 465, 862 }}, "employment":[{"organization-name":"Voltlane","start-date":date("2004-02-19")}]}
-{"id": 439, "alias": "Alayna000439", "name": "Alayna Laurenzi", "user-since": datetime("2014-04-26T16:29:09"), "address": {"street":"37 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{561, 162, 444, 660, 112, 341, 723 }}, "employment":[{"organization-name":"Tanzumbam","start-date":date("2004-06-11"),"end-date":date("2011-01-09")}]}
-{"id": 440, "alias": "Delores000440", "name": "Delores Wheeler", "user-since": datetime("2008-06-24T10:03:30"), "address": {"street":"28 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{471, 689, 568, 633, 43, 727, 453, 607, 640, 867, 514, 356, 893 }}, "employment":[{"organization-name":"Whitemedia","start-date":date("2011-02-25")}]}
-{"id": 441, "alias": "Cassarah000441", "name": "Cassarah Reese", "user-since": datetime("2006-07-19T17:26:43"), "address": {"street":"90 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{656, 739, 231, 229, 593, 724, 387, 833, 385, 530, 425, 190, 126, 26, 811, 569, 613, 121, 233, 452, 623, 713, 249, 64 }}, "employment":[{"organization-name":"Striptaxon","start-date":date("2010-06-14"),"end-date":date("2011-11-13")}]}
-{"id": 442, "alias": "Coty000442", "name": "Coty Guest", "user-since": datetime("2008-09-28T05:21:04"), "address": {"street":"53 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{341, 267, 634, 499, 674, 391, 295, 872, 152, 470, 678, 407, 493, 522, 150, 259, 723, 26, 846 }}, "employment":[{"organization-name":"Statcode","start-date":date("2008-09-19")}]}
-{"id": 443, "alias": "Linden000443", "name": "Linden Jenner", "user-since": datetime("2011-05-10T06:05:41"), "address": {"street":"37 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{15, 190, 150, 304, 614, 148, 822, 690, 38, 178 }}, "employment":[{"organization-name":"sonstreet","start-date":date("2000-03-02"),"end-date":date("2011-03-14")}]}
-{"id": 444, "alias": "Rebeccah000444", "name": "Rebeccah Whitling", "user-since": datetime("2012-11-28T05:31:29"), "address": {"street":"92 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{83, 609, 530, 674, 764, 842, 43, 834, 495, 711, 125, 668, 19, 673, 245, 595, 680, 536 }}, "employment":[{"organization-name":"Transhigh","start-date":date("2000-05-23")}]}
-{"id": 445, "alias": "Gertie000445", "name": "Gertie Lowe", "user-since": datetime("2008-12-23T01:22:57"), "address": {"street":"18 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{882, 37, 162, 484, 796, 29, 120, 821, 161, 641, 12, 198, 601, 793, 242, 278, 532, 605, 290, 283, 272 }}, "employment":[{"organization-name":"Vaiatech","start-date":date("2007-09-03"),"end-date":date("2009-11-03")}]}
-{"id": 446, "alias": "Myra000446", "name": "Myra Williamson", "user-since": datetime("2005-12-15T03:04:34"), "address": {"street":"15 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{172, 629, 250, 596, 569, 21, 732, 90, 735, 340, 824, 688, 197, 227, 570, 5, 545 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2011-06-14")}]}
-{"id": 447, "alias": "Linnet000447", "name": "Linnet Stern", "user-since": datetime("2005-05-24T14:05:27"), "address": {"street":"30 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{468, 236, 900, 669, 545, 773, 325, 691, 272 }}, "employment":[{"organization-name":"Basecone","start-date":date("2002-11-07")}]}
-{"id": 448, "alias": "Guinevere000448", "name": "Guinevere Kight", "user-since": datetime("2011-02-10T06:31:27"), "address": {"street":"61 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{111, 738, 807, 701, 755, 145, 495, 158, 341, 444, 720, 796, 451, 560 }}, "employment":[{"organization-name":"Redelectronics","start-date":date("2000-03-20")}]}
-{"id": 449, "alias": "Val000449", "name": "Val Bennett", "user-since": datetime("2014-02-27T04:33:20"), "address": {"street":"7 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{412, 884, 3, 630, 55 }}, "employment":[{"organization-name":"Striptaxon","start-date":date("2012-06-10")}]}
-{"id": 450, "alias": "Jarrett000450", "name": "Jarrett Faast", "user-since": datetime("2014-04-20T12:28:20"), "address": {"street":"54 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{535, 459, 600 }}, "employment":[{"organization-name":"Quoline","start-date":date("2009-01-25")}]}
-{"id": 451, "alias": "Oliva000451", "name": "Oliva Sandys", "user-since": datetime("2007-02-04T20:00:05"), "address": {"street":"30 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Villa-tech","start-date":date("2002-09-28"),"end-date":date("2010-09-24")}]}
-{"id": 452, "alias": "Marti000452", "name": "Marti Hayhurst", "user-since": datetime("2013-07-24T09:55:25"), "address": {"street":"93 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{412, 796, 177, 755, 629, 166, 844, 18 }}, "employment":[{"organization-name":"Latsonity","start-date":date("2004-07-08"),"end-date":date("2011-01-24")}]}
-{"id": 453, "alias": "Bernetta000453", "name": "Bernetta Ling", "user-since": datetime("2009-06-17T07:53:43"), "address": {"street":"76 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Keytech","start-date":date("2010-04-22")}]}
-{"id": 454, "alias": "Candice000454", "name": "Candice Tanner", "user-since": datetime("2006-07-15T12:35:53"), "address": {"street":"14 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{428, 327, 876, 783, 746, 857, 721, 694 }}, "employment":[{"organization-name":"Inchex","start-date":date("2000-01-03"),"end-date":date("2003-12-13")}]}
-{"id": 455, "alias": "Orson000455", "name": "Orson Albright", "user-since": datetime("2012-11-26T02:03:27"), "address": {"street":"62 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{644, 791, 626, 504, 663, 251, 684 }}, "employment":[{"organization-name":"over-it","start-date":date("2012-06-05"),"end-date":date("2012-07-09")}]}
-{"id": 456, "alias": "Tyreek000456", "name": "Tyreek Carbaugh", "user-since": datetime("2014-01-12T16:49:45"), "address": {"street":"24 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{893, 714, 630, 347, 726, 1, 389, 555, 880, 875, 249, 688, 819, 208, 868 }}, "employment":[{"organization-name":"Qvohouse","start-date":date("2004-03-07"),"end-date":date("2004-09-17")}]}
-{"id": 457, "alias": "Booker000457", "name": "Booker Gottwine", "user-since": datetime("2010-10-22T04:55:46"), "address": {"street":"94 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{101, 568, 483, 746 }}, "employment":[{"organization-name":"Viatechi","start-date":date("2005-03-20")}]}
-{"id": 458, "alias": "Mariabella000458", "name": "Mariabella Treeby", "user-since": datetime("2008-03-13T23:43:45"), "address": {"street":"76 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{141, 746, 287, 233, 636, 386, 898, 356, 303, 700, 866, 549, 69, 333, 11, 262, 843, 490, 684 }}, "employment":[{"organization-name":"Roundhex","start-date":date("2006-04-03"),"end-date":date("2010-08-14")}]}
-{"id": 459, "alias": "Deanna000459", "name": "Deanna Overholt", "user-since": datetime("2012-09-04T05:14:29"), "address": {"street":"73 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{514, 758, 409, 850, 621, 785, 181, 5, 123, 881, 188, 649 }}, "employment":[{"organization-name":"Ranhotfan","start-date":date("2000-05-15"),"end-date":date("2002-08-27")}]}
-{"id": 460, "alias": "Lowell000460", "name": "Lowell Newlove", "user-since": datetime("2007-04-15T15:58:52"), "address": {"street":"71 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{521, 577, 453, 320, 899, 220, 869, 644, 52, 583, 5, 671, 598, 433, 707 }}, "employment":[{"organization-name":"Redelectronics","start-date":date("2002-07-07"),"end-date":date("2009-03-26")}]}
-{"id": 461, "alias": "Gomer000461", "name": "Gomer Stough", "user-since": datetime("2007-01-27T23:34:36"), "address": {"street":"90 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{415, 53 }}, "employment":[{"organization-name":"Quadlane","start-date":date("2001-01-16")}]}
-{"id": 462, "alias": "Liz000462", "name": "Liz Kunkle", "user-since": datetime("2013-11-14T08:46:39"), "address": {"street":"79 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{390, 142, 166, 231 }}, "employment":[{"organization-name":"Kongreen","start-date":date("2008-01-10")}]}
-{"id": 463, "alias": "Octavio000463", "name": "Octavio Thorley", "user-since": datetime("2013-05-23T23:21:01"), "address": {"street":"93 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{30, 320 }}, "employment":[{"organization-name":"Alphadax","start-date":date("2010-09-05"),"end-date":date("2010-05-28")}]}
-{"id": 464, "alias": "Laetitia000464", "name": "Laetitia Rodacker", "user-since": datetime("2009-07-23T02:25:37"), "address": {"street":"24 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{563, 810, 748, 887, 776, 408, 157, 337, 613, 659, 529, 285, 160, 82, 51, 128, 16 }}, "employment":[{"organization-name":"Basecone","start-date":date("2002-09-26"),"end-date":date("2004-04-08")}]}
-{"id": 465, "alias": "Kristopher000465", "name": "Kristopher Haile", "user-since": datetime("2007-11-23T12:13:49"), "address": {"street":"80 Hill Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{255, 408, 670, 221, 785, 600, 520, 67, 312, 900, 826, 622, 469, 724, 540 }}, "employment":[{"organization-name":"Strongtone","start-date":date("2000-08-26"),"end-date":date("2004-10-14")}]}
-{"id": 466, "alias": "Erich000466", "name": "Erich Fiscina", "user-since": datetime("2009-03-08T10:36:10"), "address": {"street":"29 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{570, 514, 319, 298, 41, 136, 404, 124 }}, "employment":[{"organization-name":"goldendexon","start-date":date("2012-07-28")}]}
-{"id": 467, "alias": "Brett000467", "name": "Brett Warrick", "user-since": datetime("2008-09-25T05:07:33"), "address": {"street":"78 Elm Blvd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{605, 292, 294, 832, 190, 585, 37 }}, "employment":[{"organization-name":"silfind","start-date":date("2008-12-03")}]}
-{"id": 468, "alias": "Domingo000468", "name": "Domingo Overholt", "user-since": datetime("2011-10-16T13:14:15"), "address": {"street":"15 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{192, 342, 613, 505, 59, 672, 276, 464, 741, 209, 707, 633, 754 }}, "employment":[{"organization-name":"Hexsanhex","start-date":date("2012-05-17")}]}
-{"id": 469, "alias": "Draven000469", "name": "Draven Eckert", "user-since": datetime("2012-04-14T22:08:56"), "address": {"street":"89 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{901, 76, 128, 538, 214, 160, 684, 571, 302, 154, 457, 430, 680 }}, "employment":[{"organization-name":"Vaiatech","start-date":date("2005-11-02"),"end-date":date("2010-10-24")}]}
-{"id": 470, "alias": "Gareth000470", "name": "Gareth Pirl", "user-since": datetime("2008-11-26T18:47:55"), "address": {"street":"52 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{738, 72, 450, 844, 667, 160, 750, 440, 788, 604, 673, 874, 73, 805, 716 }}, "employment":[{"organization-name":"Labzatron","start-date":date("2007-10-22"),"end-date":date("2007-01-03")}]}
-{"id": 471, "alias": "Brook000471", "name": "Brook Cypret", "user-since": datetime("2014-08-22T18:51:58"), "address": {"street":"86 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{510, 481, 685, 659, 85, 452, 282, 681, 718, 378 }}, "employment":[{"organization-name":"Plexlane","start-date":date("2006-08-10")}]}
-{"id": 472, "alias": "Jessika000472", "name": "Jessika Hozier", "user-since": datetime("2013-04-06T02:15:38"), "address": {"street":"99 Maple St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{754, 788, 526, 603, 622, 225, 468, 299, 513 }}, "employment":[{"organization-name":"Villa-tech","start-date":date("2012-05-18")}]}
-{"id": 473, "alias": "Quintin000473", "name": "Quintin Fry", "user-since": datetime("2009-10-18T17:43:57"), "address": {"street":"16 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{250, 488, 259, 879, 631, 581, 369, 289, 482, 899, 270, 197, 675, 709, 862, 178, 520, 772, 885 }}, "employment":[{"organization-name":"Transhigh","start-date":date("2009-04-11")}]}
-{"id": 474, "alias": "Corrie000474", "name": "Corrie Pirl", "user-since": datetime("2006-05-24T10:25:12"), "address": {"street":"74 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{280 }}, "employment":[{"organization-name":"Inchdox","start-date":date("2005-05-27"),"end-date":date("2009-10-06")}]}
-{"id": 475, "alias": "Rita000475", "name": "Rita Buehler", "user-since": datetime("2013-10-24T10:30:52"), "address": {"street":"80 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{139, 548, 440, 731, 595, 882, 570, 346, 409, 676, 707, 184, 755, 788, 668, 392, 801, 890, 867 }}, "employment":[{"organization-name":"Doncare","start-date":date("2011-09-14")}]}
-{"id": 476, "alias": "Joshua000476", "name": "Joshua Harshman", "user-since": datetime("2012-09-09T06:46:29"), "address": {"street":"19 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{577, 464, 708, 725, 4, 274, 436, 796, 154, 846, 132, 175, 859, 899, 248, 368, 190, 632, 615 }}, "employment":[{"organization-name":"Voltlane","start-date":date("2009-05-20")}]}
-{"id": 477, "alias": "Sigrid000477", "name": "Sigrid Frankenberger", "user-since": datetime("2011-07-12T08:04:27"), "address": {"street":"10 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{680, 604, 661, 316, 272, 474, 579, 577, 6, 250, 367, 887, 721, 307, 636, 835, 150, 571, 64, 155, 129, 472, 565 }}, "employment":[{"organization-name":"Tranzap","start-date":date("2007-07-14"),"end-date":date("2010-08-28")}]}
-{"id": 478, "alias": "Marquis000478", "name": "Marquis Fryer", "user-since": datetime("2006-06-20T14:23:57"), "address": {"street":"27 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{121, 299, 203 }}, "employment":[{"organization-name":"Villa-tech","start-date":date("2012-01-02"),"end-date":date("2012-05-13")}]}
-{"id": 479, "alias": "Amaryllis000479", "name": "Amaryllis Batten", "user-since": datetime("2005-11-03T23:22:47"), "address": {"street":"41 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{275, 283, 558, 0, 483, 655 }}, "employment":[{"organization-name":"Statcode","start-date":date("2000-09-25")}]}
-{"id": 480, "alias": "Nathaniel000480", "name": "Nathaniel Wolfe", "user-since": datetime("2010-08-11T03:19:00"), "address": {"street":"24 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{494, 217, 127, 469, 778, 799, 749, 781, 572, 365, 23, 151, 445, 883 }}, "employment":[{"organization-name":"Strongtone","start-date":date("2012-07-06")}]}
-{"id": 481, "alias": "Jarvis000481", "name": "Jarvis Millhouse", "user-since": datetime("2014-08-19T14:24:34"), "address": {"street":"35 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{820, 607, 842, 355, 491, 531, 307, 544, 558, 791, 365, 794, 781, 15, 736, 857, 461, 133, 646, 496, 130, 156 }}, "employment":[{"organization-name":"U-ron","start-date":date("2005-03-28"),"end-date":date("2006-08-09")}]}
-{"id": 482, "alias": "Everette000482", "name": "Everette Arthur", "user-since": datetime("2006-05-11T09:28:50"), "address": {"street":"26 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{179 }}, "employment":[{"organization-name":"Quadlane","start-date":date("2011-02-26"),"end-date":date("2011-02-13")}]}
-{"id": 483, "alias": "Emmie000483", "name": "Emmie Lane", "user-since": datetime("2006-01-19T14:44:39"), "address": {"street":"69 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{355 }}, "employment":[{"organization-name":"Sumlane","start-date":date("2003-09-18"),"end-date":date("2009-05-19")}]}
-{"id": 484, "alias": "Forrest000484", "name": "Forrest Romanoff", "user-since": datetime("2007-09-08T14:01:55"), "address": {"street":"45 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{233, 538, 216, 566, 314, 104, 797, 406, 741, 179, 106 }}, "employment":[{"organization-name":"Qvohouse","start-date":date("2008-06-09")}]}
-{"id": 485, "alias": "Kat000485", "name": "Kat Houser", "user-since": datetime("2012-06-15T16:25:45"), "address": {"street":"93 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{683, 208, 218, 787, 295, 199, 131, 729, 249, 385, 504, 32, 241, 7, 350, 694 }}, "employment":[{"organization-name":"Techitechi","start-date":date("2011-12-21")}]}
-{"id": 486, "alias": "Darius000486", "name": "Darius Sealis", "user-since": datetime("2007-02-20T16:19:38"), "address": {"street":"24 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{202, 799 }}, "employment":[{"organization-name":"Xx-technology","start-date":date("2000-11-12")}]}
-{"id": 487, "alias": "Loren000487", "name": "Loren Ullman", "user-since": datetime("2014-06-14T01:34:07"), "address": {"street":"12 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{551, 849 }}, "employment":[{"organization-name":"Ontotanin","start-date":date("2008-08-13"),"end-date":date("2010-02-09")}]}
-{"id": 488, "alias": "Meagan000488", "name": "Meagan Isemann", "user-since": datetime("2009-07-24T01:25:28"), "address": {"street":"87 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{93, 710, 770, 174, 568, 116, 623 }}, "employment":[{"organization-name":"subtam","start-date":date("2001-03-07")}]}
-{"id": 489, "alias": "Chanelle000489", "name": "Chanelle Bridger", "user-since": datetime("2009-09-19T16:16:19"), "address": {"street":"7 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{260, 668, 343, 106, 850, 828, 31, 189, 187, 445, 436, 461, 105, 430, 129, 325 }}, "employment":[{"organization-name":"Plexlane","start-date":date("2001-07-26")}]}
-{"id": 490, "alias": "Sarina000490", "name": "Sarina Clark", "user-since": datetime("2014-08-09T21:19:01"), "address": {"street":"33 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{894, 423, 829, 835, 803, 646, 623, 404, 24, 402 }}, "employment":[{"organization-name":"Scotcity","start-date":date("2009-02-08")}]}
-{"id": 491, "alias": "Jules000491", "name": "Jules Wallace", "user-since": datetime("2006-01-05T13:32:35"), "address": {"street":"80 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{742, 753, 489, 170, 765, 472 }}, "employment":[{"organization-name":"Lexitechno","start-date":date("2005-01-11"),"end-date":date("2006-05-05")}]}
-{"id": 492, "alias": "Wendell000492", "name": "Wendell Fye", "user-since": datetime("2007-06-06T01:57:32"), "address": {"street":"67 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{870, 839, 330, 227, 751, 514 }}, "employment":[{"organization-name":"Voltlane","start-date":date("2010-11-28"),"end-date":date("2010-07-17")}]}
-{"id": 493, "alias": "Sammi000493", "name": "Sammi Gregory", "user-since": datetime("2006-10-18T03:32:41"), "address": {"street":"47 Hill Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{804, 167, 367, 309, 782, 600, 135, 535, 249, 628, 597, 460 }}, "employment":[{"organization-name":"strongex","start-date":date("2011-11-15")}]}
-{"id": 494, "alias": "Lolicia000494", "name": "Lolicia Sybilla", "user-since": datetime("2012-09-10T20:58:22"), "address": {"street":"71 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{341, 161, 53, 198, 746 }}, "employment":[{"organization-name":"Zuncan","start-date":date("2000-12-25")}]}
-{"id": 495, "alias": "Reginald000495", "name": "Reginald Swartzbaugh", "user-since": datetime("2007-07-24T21:06:21"), "address": {"street":"99 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{708, 306, 835, 96, 337, 180, 583, 479, 677, 742, 399, 231, 581, 598, 847, 590 }}, "employment":[{"organization-name":"Techitechi","start-date":date("2004-03-18")}]}
-{"id": 496, "alias": "Helga000496", "name": "Helga Tripp", "user-since": datetime("2010-01-10T00:30:33"), "address": {"street":"62 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{702, 816, 338, 139, 5, 243, 341, 122, 505, 118, 143 }}, "employment":[{"organization-name":"Ransaofan","start-date":date("2011-05-07")}]}
-{"id": 497, "alias": "Erykah000497", "name": "Erykah Hujsak", "user-since": datetime("2014-04-08T03:00:22"), "address": {"street":"50 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{662, 571, 373, 736, 462, 563, 556 }}, "employment":[{"organization-name":"Trustbam","start-date":date("2002-06-06"),"end-date":date("2011-03-27")}]}
-{"id": 498, "alias": "Aislin000498", "name": "Aislin Tanner", "user-since": datetime("2007-03-14T09:36:24"), "address": {"street":"17 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Xx-technology","start-date":date("2002-09-16")}]}
-{"id": 499, "alias": "Roselyn000499", "name": "Roselyn Hoenshell", "user-since": datetime("2013-11-23T05:23:06"), "address": {"street":"89 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{48, 682, 576, 335, 568, 742, 899, 348, 492, 299, 747, 220, 61, 199, 54, 476, 369, 559, 417, 852, 66, 249, 692 }}, "employment":[{"organization-name":"Keytech","start-date":date("2000-06-15")}]}
-{"id": 500, "alias": "Lexie000500", "name": "Lexie Woolery", "user-since": datetime("2005-07-23T19:05:16"), "address": {"street":"40 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{602, 558, 706, 223, 790, 803, 157, 501, 533, 485, 81, 212, 17, 272, 550, 6, 91, 19 }}, "employment":[{"organization-name":"sonstreet","start-date":date("2002-10-17")}]}
-{"id": 501, "alias": "Lavona000501", "name": "Lavona Rogers", "user-since": datetime("2011-07-02T04:16:41"), "address": {"street":"32 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{310, 64 }}, "employment":[{"organization-name":"Voltbam","start-date":date("2007-07-05"),"end-date":date("2009-08-19")}]}
-{"id": 502, "alias": "Tanisha000502", "name": "Tanisha Dunkle", "user-since": datetime("2006-12-09T22:35:23"), "address": {"street":"57 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{311, 834, 326, 693, 815, 398, 521, 492, 453, 854, 291, 61, 372, 217, 78, 12 }}, "employment":[{"organization-name":"Hexsanhex","start-date":date("2000-02-02")}]}
-{"id": 503, "alias": "Christianne000503", "name": "Christianne Nicholas", "user-since": datetime("2014-01-06T23:18:01"), "address": {"street":"68 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"sonstreet","start-date":date("2008-04-07"),"end-date":date("2011-08-17")}]}
-{"id": 504, "alias": "Cordell000504", "name": "Cordell Wyatt", "user-since": datetime("2010-01-16T04:44:32"), "address": {"street":"13 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{705, 865, 599, 360, 653, 446, 616, 787, 150, 54, 138, 291, 515, 462, 454 }}, "employment":[{"organization-name":"Zununoing","start-date":date("2003-05-27"),"end-date":date("2010-09-05")}]}
-{"id": 505, "alias": "Phemie000505", "name": "Phemie Watkins", "user-since": datetime("2012-04-09T11:16:41"), "address": {"street":"8 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{284, 263, 150, 291, 285, 461, 331, 752, 370, 375 }}, "employment":[{"organization-name":"Whitemedia","start-date":date("2007-12-21")}]}
-{"id": 506, "alias": "Camellia000506", "name": "Camellia Bennett", "user-since": datetime("2013-08-17T01:25:07"), "address": {"street":"95 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{711, 23, 217, 452, 429, 192, 144, 630, 444, 647, 201, 251, 503, 292, 407 }}, "employment":[{"organization-name":"Tripplelane","start-date":date("2000-12-12")}]}
-{"id": 507, "alias": "Vera000507", "name": "Vera Demuth", "user-since": datetime("2011-02-18T16:16:13"), "address": {"street":"33 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{333, 469, 116, 877, 235, 538, 370, 59, 531, 265, 171, 742, 810, 569, 211, 130, 77, 695, 302, 40 }}, "employment":[{"organization-name":"over-it","start-date":date("2004-05-22")}]}
-{"id": 508, "alias": "Milan000508", "name": "Milan Cable", "user-since": datetime("2009-06-11T00:36:32"), "address": {"street":"36 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{599, 435, 754, 707, 783, 794, 521, 175, 118, 691, 515, 589, 528, 455, 880, 501, 747 }}, "employment":[{"organization-name":"jaydax","start-date":date("2005-07-23"),"end-date":date("2007-06-11")}]}
-{"id": 509, "alias": "Mathilda000509", "name": "Mathilda Shafer", "user-since": datetime("2011-12-10T09:02:35"), "address": {"street":"58 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{701, 198, 742, 327, 669, 325, 843, 727, 102, 119, 160, 136, 362, 426, 338, 109, 100, 624, 95 }}, "employment":[{"organization-name":"Vivaace","start-date":date("2002-01-10"),"end-date":date("2004-11-18")}]}
-{"id": 510, "alias": "Wendi000510", "name": "Wendi Tedrow", "user-since": datetime("2008-11-26T11:44:39"), "address": {"street":"23 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{854, 883, 794, 489, 599, 421, 533, 324, 369, 508, 268, 763, 24, 560, 600, 222, 645, 372, 168, 328, 686, 277, 513 }}, "employment":[{"organization-name":"jaydax","start-date":date("2002-02-03"),"end-date":date("2006-03-15")}]}
-{"id": 511, "alias": "Maris000511", "name": "Maris Williams", "user-since": datetime("2005-04-26T18:31:46"), "address": {"street":"64 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{641, 146, 716, 450, 372, 489, 628, 873, 612, 807, 861, 893, 131, 788, 325 }}, "employment":[{"organization-name":"Doublezone","start-date":date("2000-03-17"),"end-date":date("2011-09-20")}]}
-{"id": 512, "alias": "Chet000512", "name": "Chet Merryman", "user-since": datetime("2008-08-24T02:40:56"), "address": {"street":"57 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{516, 255, 483, 312, 230, 644, 323, 736, 126, 458, 278, 18, 369, 590, 227, 270, 60 }}, "employment":[{"organization-name":"over-it","start-date":date("2006-11-05")}]}
-{"id": 513, "alias": "Raelene000513", "name": "Raelene Altmann", "user-since": datetime("2011-08-07T19:03:38"), "address": {"street":"49 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{605, 190, 349, 584, 472, 18, 748, 857, 722, 676, 900, 369, 382, 770, 111, 547, 876, 345, 689, 486, 86, 664, 88 }}, "employment":[{"organization-name":"Tanzimcare","start-date":date("2011-04-26")}]}
-{"id": 514, "alias": "Hilton000514", "name": "Hilton Faust", "user-since": datetime("2009-08-27T17:32:23"), "address": {"street":"25 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{633, 355, 377, 458, 666, 473 }}, "employment":[{"organization-name":"Ranhotfan","start-date":date("2003-05-20")}]}
-{"id": 515, "alias": "Corey000515", "name": "Corey Woollard", "user-since": datetime("2013-07-27T10:52:20"), "address": {"street":"100 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{817, 885, 366, 305 }}, "employment":[{"organization-name":"Coneflex","start-date":date("2007-12-12")}]}
-{"id": 516, "alias": "Cathy000516", "name": "Cathy Kemble", "user-since": datetime("2011-01-13T13:52:03"), "address": {"street":"55 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{293, 850 }}, "employment":[{"organization-name":"Xx-technology","start-date":date("2003-11-25")}]}
-{"id": 517, "alias": "Latanya000517", "name": "Latanya Lacon", "user-since": datetime("2014-02-14T04:09:01"), "address": {"street":"93 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{763, 233, 742, 252, 668, 182, 616, 446, 648, 779 }}, "employment":[{"organization-name":"Vivaace","start-date":date("2005-03-19")}]}
-{"id": 518, "alias": "Keneth000518", "name": "Keneth Keppel", "user-since": datetime("2014-02-09T14:31:06"), "address": {"street":"3 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{879, 84, 463, 256, 224, 510, 690, 209, 112, 504, 12, 88, 767, 129, 368, 589, 772, 357, 787, 238, 773 }}, "employment":[{"organization-name":"Kanelectrics","start-date":date("2001-12-13"),"end-date":date("2008-09-16")}]}
-{"id": 519, "alias": "Wilbur000519", "name": "Wilbur Morgan", "user-since": datetime("2010-06-19T19:09:18"), "address": {"street":"24 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{4, 783, 448, 752, 678, 295, 105, 808, 25, 481, 708 }}, "employment":[{"organization-name":"Zamcorporation","start-date":date("2009-09-07"),"end-date":date("2010-01-24")}]}
-{"id": 520, "alias": "Qiana000520", "name": "Qiana Roby", "user-since": datetime("2009-07-24T13:10:01"), "address": {"street":"67 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{368, 687, 36, 711, 336, 470, 709, 779, 349, 708, 858, 195, 57, 120, 775, 412, 745 }}, "employment":[{"organization-name":"freshdox","start-date":date("2005-06-23"),"end-date":date("2007-12-17")}]}
-{"id": 521, "alias": "Isabell000521", "name": "Isabell Doverspike", "user-since": datetime("2007-02-08T15:18:27"), "address": {"street":"72 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{94, 306, 350 }}, "employment":[{"organization-name":"Inchdox","start-date":date("2004-08-21"),"end-date":date("2011-09-21")}]}
-{"id": 522, "alias": "Mackenzie000522", "name": "Mackenzie Hooker", "user-since": datetime("2009-09-09T21:20:15"), "address": {"street":"52 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{540, 230, 838, 297, 470, 892, 755, 234, 483, 40, 581 }}, "employment":[{"organization-name":"Alphadax","start-date":date("2000-10-11")}]}
-{"id": 523, "alias": "Shantelle000523", "name": "Shantelle Sidower", "user-since": datetime("2010-12-02T17:35:23"), "address": {"street":"46 Third Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{328, 300, 154, 261, 664, 811, 342, 23, 784, 608, 315, 606, 238, 85, 21 }}, "employment":[{"organization-name":"Canline","start-date":date("2004-11-24")}]}
-{"id": 524, "alias": "Kaitlynn000524", "name": "Kaitlynn Poley", "user-since": datetime("2012-09-14T05:44:06"), "address": {"street":"41 Maple St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{603, 862, 121, 132, 128, 10, 282, 485, 417, 70, 454, 153, 467, 785, 731, 648, 217, 94, 646, 81 }}, "employment":[{"organization-name":"Zununoing","start-date":date("2001-05-26"),"end-date":date("2004-07-11")}]}
-{"id": 525, "alias": "Bessie000525", "name": "Bessie Emrick", "user-since": datetime("2008-02-22T17:22:53"), "address": {"street":"73 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{706, 658, 621, 546, 64, 439, 395, 812, 361, 687, 48 }}, "employment":[{"organization-name":"Newcom","start-date":date("2012-02-02"),"end-date":date("2012-02-15")}]}
-{"id": 526, "alias": "Kristia000526", "name": "Kristia Swift", "user-since": datetime("2014-07-10T19:42:15"), "address": {"street":"93 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{312, 114, 362, 297, 686, 475, 624, 618, 394, 286 }}, "employment":[{"organization-name":"Mathtech","start-date":date("2005-08-19"),"end-date":date("2011-09-09")}]}
-{"id": 527, "alias": "Craig000527", "name": "Craig Bunten", "user-since": datetime("2013-11-26T14:47:55"), "address": {"street":"41 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{856, 195, 83, 390, 236, 535, 129, 122, 682, 623, 749, 625, 337, 88, 113, 365, 531, 795, 894 }}, "employment":[{"organization-name":"sonstreet","start-date":date("2012-08-13")}]}
-{"id": 528, "alias": "Eugenia000528", "name": "Eugenia Echard", "user-since": datetime("2014-02-01T08:11:36"), "address": {"street":"9 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{879, 571, 265, 502, 778, 737, 368, 880 }}, "employment":[{"organization-name":"Coneflex","start-date":date("2008-11-24")}]}
-{"id": 529, "alias": "Terri000529", "name": "Terri Archibald", "user-since": datetime("2012-06-11T21:40:45"), "address": {"street":"66 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{427, 228, 47, 242, 713, 742, 687, 226, 298, 507, 825, 635, 91, 644, 570, 308, 524, 517, 480, 659, 550, 842, 249, 425 }}, "employment":[{"organization-name":"Rungozoom","start-date":date("2003-12-04"),"end-date":date("2006-04-27")}]}
-{"id": 530, "alias": "Quinn000530", "name": "Quinn Nehling", "user-since": datetime("2006-09-08T02:00:16"), "address": {"street":"98 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{306, 453, 516, 362, 548, 383, 809, 165, 60, 686, 377 }}, "employment":[{"organization-name":"Villa-dox","start-date":date("2009-04-17")}]}
-{"id": 531, "alias": "Tess000531", "name": "Tess White", "user-since": datetime("2014-05-05T07:24:18"), "address": {"street":"56 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{457, 661, 496, 636, 277, 202, 796, 433, 276, 506, 323, 135, 560, 86 }}, "employment":[{"organization-name":"Tanzumbam","start-date":date("2012-02-07")}]}
-{"id": 532, "alias": "Aleta000532", "name": "Aleta Bennett", "user-since": datetime("2008-07-26T19:20:04"), "address": {"street":"61 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{840, 493, 344, 689, 829 }}, "employment":[{"organization-name":"Latsonity","start-date":date("2010-03-24")}]}
-{"id": 533, "alias": "Irving000533", "name": "Irving Burkett", "user-since": datetime("2007-12-15T14:56:08"), "address": {"street":"16 Park Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{454, 885, 462, 675, 265, 657, 206, 745, 687, 376, 677, 703, 836, 490, 535, 169, 182, 640, 706, 768, 804 }}, "employment":[{"organization-name":"Salthex","start-date":date("2000-12-26"),"end-date":date("2003-12-20")}]}
-{"id": 534, "alias": "Leila000534", "name": "Leila Shotts", "user-since": datetime("2011-08-12T14:56:18"), "address": {"street":"26 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Mathtech","start-date":date("2010-02-26")}]}
-{"id": 535, "alias": "Earnest000535", "name": "Earnest Eckhardstein", "user-since": datetime("2010-07-20T22:18:18"), "address": {"street":"42 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{6, 772, 530, 477, 56, 353, 458, 667, 698, 593, 691, 682, 582, 761, 706 }}, "employment":[{"organization-name":"Qvohouse","start-date":date("2003-09-01")}]}
-{"id": 536, "alias": "Eugena000536", "name": "Eugena Sybilla", "user-since": datetime("2012-12-11T01:17:36"), "address": {"street":"62 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{348, 93, 91, 24, 220 }}, "employment":[{"organization-name":"Inchex","start-date":date("2001-09-01")}]}
-{"id": 537, "alias": "Sacha000537", "name": "Sacha Warren", "user-since": datetime("2008-09-12T23:41:41"), "address": {"street":"38 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{87, 103, 502, 295, 727, 160, 564, 485, 263, 781, 770, 539, 433, 156 }}, "employment":[{"organization-name":"Indiex","start-date":date("2011-11-24")}]}
-{"id": 538, "alias": "Rowina000538", "name": "Rowina Hastings", "user-since": datetime("2011-06-09T10:06:01"), "address": {"street":"79 Third Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Hatcom","start-date":date("2002-04-19"),"end-date":date("2009-09-17")}]}
-{"id": 539, "alias": "Chad000539", "name": "Chad Cram", "user-since": datetime("2010-08-14T16:39:05"), "address": {"street":"60 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{577, 847, 865, 608, 654, 434, 633, 576, 73, 857, 844, 190, 525 }}, "employment":[{"organization-name":"zoomplus","start-date":date("2001-08-11"),"end-date":date("2004-08-24")}]}
-{"id": 540, "alias": "Heidi000540", "name": "Heidi Baumgartner", "user-since": datetime("2005-09-01T14:04:09"), "address": {"street":"36 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{263, 108, 701, 217, 8, 132, 315, 120, 663, 590, 308, 491, 162, 564, 404, 238, 587, 197, 355, 354 }}, "employment":[{"organization-name":"Hexviafind","start-date":date("2009-04-21")}]}
-{"id": 541, "alias": "Galen000541", "name": "Galen Nash", "user-since": datetime("2007-11-20T04:32:06"), "address": {"street":"2 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{636, 119, 212, 486, 145, 621, 468, 686, 516, 167, 58, 137, 467, 24, 318, 504, 470, 531, 440 }}, "employment":[{"organization-name":"kin-ron","start-date":date("2001-07-13")}]}
-{"id": 542, "alias": "Kynaston000542", "name": "Kynaston Barrett", "user-since": datetime("2006-10-09T19:40:36"), "address": {"street":"37 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{451, 160, 702 }}, "employment":[{"organization-name":"Inchdox","start-date":date("2010-11-05")}]}
-{"id": 543, "alias": "Kori000543", "name": "Kori Patterson", "user-since": datetime("2007-03-14T16:41:00"), "address": {"street":"10 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{458 }}, "employment":[{"organization-name":"Y-geohex","start-date":date("2002-04-07")}]}
-{"id": 544, "alias": "Valerie000544", "name": "Valerie Todd", "user-since": datetime("2010-07-06T11:05:06"), "address": {"street":"20 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{0, 123, 680, 330, 655, 802, 328, 221, 435, 852, 351, 11, 795, 763, 786, 457, 669, 612, 338 }}, "employment":[{"organization-name":"Fix-touch","start-date":date("2009-02-24")}]}
-{"id": 545, "alias": "Cayley000545", "name": "Cayley Staymates", "user-since": datetime("2011-10-08T10:15:41"), "address": {"street":"39 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{60, 513, 139, 255, 121, 252, 89, 802, 77, 193, 169, 293, 348, 283, 62, 93 }}, "employment":[{"organization-name":"Viatechi","start-date":date("2004-02-20"),"end-date":date("2009-08-27")}]}
-{"id": 546, "alias": "Melissa000546", "name": "Melissa Pennington", "user-since": datetime("2010-09-03T11:29:10"), "address": {"street":"63 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{66, 295 }}, "employment":[{"organization-name":"overtech","start-date":date("2003-03-12")}]}
-{"id": 547, "alias": "Soo000547", "name": "Soo Rummel", "user-since": datetime("2011-11-24T17:09:03"), "address": {"street":"100 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{537 }}, "employment":[{"organization-name":"U-electrics","start-date":date("2007-06-16")}]}
-{"id": 548, "alias": "Braxton000548", "name": "Braxton Black", "user-since": datetime("2011-04-18T07:23:46"), "address": {"street":"98 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{359, 84, 689, 679, 1, 378, 357, 896, 227, 56, 15, 118, 147, 870 }}, "employment":[{"organization-name":"overtech","start-date":date("2009-03-28"),"end-date":date("2010-01-17")}]}
-{"id": 549, "alias": "Lindy000549", "name": "Lindy Mccallum", "user-since": datetime("2010-06-13T10:10:35"), "address": {"street":"47 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{255, 581 }}, "employment":[{"organization-name":"Hexviafind","start-date":date("2000-12-25")}]}
-{"id": 550, "alias": "Hector000550", "name": "Hector Patterson", "user-since": datetime("2005-05-03T22:44:00"), "address": {"street":"37 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{339, 499, 439, 198, 496, 159, 226, 577, 247, 861, 193, 601, 570, 587, 13, 348, 73, 881, 7 }}, "employment":[{"organization-name":"Qvohouse","start-date":date("2004-01-18")}]}
-{"id": 551, "alias": "Algar000551", "name": "Algar Mays", "user-since": datetime("2009-06-15T16:21:47"), "address": {"street":"19 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{567, 373, 371, 380, 174, 893, 810, 89, 150, 663, 596, 738, 798 }}, "employment":[{"organization-name":"Ontohothex","start-date":date("2000-09-21")}]}
-{"id": 552, "alias": "Jettie000552", "name": "Jettie Oppenheimer", "user-since": datetime("2013-01-05T03:20:29"), "address": {"street":"64 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{300, 793, 69, 860, 422, 110, 753, 57, 622, 204, 234 }}, "employment":[{"organization-name":"Roundhex","start-date":date("2002-03-09"),"end-date":date("2007-02-27")}]}
-{"id": 553, "alias": "Anne000553", "name": "Anne Mckinnon", "user-since": datetime("2011-02-05T01:27:10"), "address": {"street":"34 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{226, 56, 250, 332, 575, 815, 776, 143, 201, 727, 207, 435 }}, "employment":[{"organization-name":"Villa-dox","start-date":date("2012-06-23")}]}
-{"id": 554, "alias": "Brack000554", "name": "Brack Scott", "user-since": datetime("2010-02-05T08:57:36"), "address": {"street":"48 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{159, 725, 483, 715, 447, 866 }}, "employment":[{"organization-name":"zoomplus","start-date":date("2005-10-02")}]}
-{"id": 555, "alias": "Maranda000555", "name": "Maranda Bowman", "user-since": datetime("2005-02-15T22:45:38"), "address": {"street":"96 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{714, 143, 715, 811, 766, 344, 418, 707, 208, 753, 417, 34, 288, 624, 419 }}, "employment":[{"organization-name":"itlab","start-date":date("2008-12-20")}]}
-{"id": 556, "alias": "Meaghan000556", "name": "Meaghan Chase", "user-since": datetime("2005-04-07T03:39:18"), "address": {"street":"46 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{604, 56, 482, 180, 350, 39, 855, 352, 776, 459 }}, "employment":[{"organization-name":"Groovetex","start-date":date("2007-04-17"),"end-date":date("2010-09-02")}]}
-{"id": 557, "alias": "Celinda000557", "name": "Celinda Foster", "user-since": datetime("2010-05-22T10:33:59"), "address": {"street":"65 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{541, 717, 288, 620, 421, 482, 473, 300, 46, 45, 733, 385, 686, 689, 437, 52, 637, 134, 714 }}, "employment":[{"organization-name":"Indiex","start-date":date("2005-04-09")}]}
-{"id": 558, "alias": "Radclyffe000558", "name": "Radclyffe Gibson", "user-since": datetime("2006-04-11T20:11:34"), "address": {"street":"72 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{393, 265, 887, 855, 376, 444, 217, 731, 720, 649, 75, 91, 817, 12, 461, 658, 589, 880, 186, 699, 866 }}, "employment":[{"organization-name":"Icerunin","start-date":date("2001-12-19")}]}
-{"id": 559, "alias": "Patrick000559", "name": "Patrick Christopher", "user-since": datetime("2008-05-04T09:09:48"), "address": {"street":"25 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{353, 784, 711, 345, 400, 730, 140, 96, 777, 766 }}, "employment":[{"organization-name":"Sumlane","start-date":date("2003-02-26")}]}
-{"id": 560, "alias": "Rosy000560", "name": "Rosy Raub", "user-since": datetime("2008-10-21T19:28:30"), "address": {"street":"43 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{375, 866, 381, 613, 516 }}, "employment":[{"organization-name":"Voltlane","start-date":date("2004-08-25")}]}
-{"id": 561, "alias": "Gary000561", "name": "Gary Overstreet", "user-since": datetime("2011-04-18T17:00:51"), "address": {"street":"85 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{885, 695, 548, 588, 127, 510, 284, 888, 216, 597, 554, 838, 598, 87, 352, 61, 578, 353, 804, 203, 776, 788, 251 }}, "employment":[{"organization-name":"overtech","start-date":date("2011-09-12"),"end-date":date("2011-10-07")}]}
-{"id": 562, "alias": "Stacy000562", "name": "Stacy Curry", "user-since": datetime("2007-09-18T13:41:54"), "address": {"street":"3 Maple St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{892, 774, 414, 786, 749, 316, 549, 769, 267, 704, 9, 237 }}, "employment":[{"organization-name":"silfind","start-date":date("2010-08-26")}]}
-{"id": 563, "alias": "Seth000563", "name": "Seth Kepple", "user-since": datetime("2005-11-24T03:29:08"), "address": {"street":"89 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{222, 645, 735, 40, 462, 317, 171, 432, 862, 293, 270, 788 }}, "employment":[{"organization-name":"Ransaofan","start-date":date("2002-11-12")}]}
-{"id": 564, "alias": "Ward000564", "name": "Ward Herndon", "user-since": datetime("2005-04-02T07:31:38"), "address": {"street":"97 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{303 }}, "employment":[{"organization-name":"U-ron","start-date":date("2004-05-18")}]}
-{"id": 565, "alias": "Whitney000565", "name": "Whitney Howard", "user-since": datetime("2014-08-26T09:25:18"), "address": {"street":"92 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{207, 709, 463, 74, 642, 240, 840, 510, 725, 331, 299, 161, 159, 308, 474, 125, 317, 314, 133 }}, "employment":[{"organization-name":"jaydax","start-date":date("2003-04-25"),"end-date":date("2004-07-24")}]}
-{"id": 566, "alias": "Hughie000566", "name": "Hughie Law", "user-since": datetime("2008-10-28T07:13:07"), "address": {"street":"12 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{600, 454, 90, 884, 808, 332, 601, 153, 587, 882, 801, 713, 875, 324, 29, 143, 82, 32, 570, 822 }}, "employment":[{"organization-name":"geomedia","start-date":date("2005-10-26"),"end-date":date("2005-02-21")}]}
-{"id": 567, "alias": "Emilio000567", "name": "Emilio Koster", "user-since": datetime("2007-07-28T16:34:35"), "address": {"street":"52 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{570, 830, 411, 5, 550, 675, 373 }}, "employment":[{"organization-name":"Whitemedia","start-date":date("2003-05-09")}]}
-{"id": 568, "alias": "Lise000568", "name": "Lise Buzzard", "user-since": datetime("2010-02-14T09:27:15"), "address": {"street":"29 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{846, 782, 691, 144, 750, 816 }}, "employment":[{"organization-name":"Fixelectrics","start-date":date("2009-01-01"),"end-date":date("2010-10-13")}]}
-{"id": 569, "alias": "Lyndsey000569", "name": "Lyndsey Buck", "user-since": datetime("2009-04-24T14:31:10"), "address": {"street":"53 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{242, 787, 849, 451, 29, 738, 41, 647, 92, 392, 105, 194, 110, 654, 608, 681 }}, "employment":[{"organization-name":"Vaiatech","start-date":date("2005-04-01")}]}
-{"id": 570, "alias": "Ulysses000570", "name": "Ulysses Riggle", "user-since": datetime("2007-10-23T22:27:45"), "address": {"street":"3 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{354, 260, 322, 61, 263, 505, 715, 677 }}, "employment":[{"organization-name":"Statcode","start-date":date("2005-11-09"),"end-date":date("2007-05-20")}]}
-{"id": 571, "alias": "Carlos000571", "name": "Carlos Hatherly", "user-since": datetime("2011-01-17T03:02:15"), "address": {"street":"33 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{832, 704, 29, 28, 173, 196, 156, 95, 529, 7, 542, 659, 561, 800, 360, 355, 200, 506, 585 }}, "employment":[{"organization-name":"Unijobam","start-date":date("2001-09-21"),"end-date":date("2003-04-02")}]}
-{"id": 572, "alias": "Chang000572", "name": "Chang Clark", "user-since": datetime("2005-10-08T05:31:57"), "address": {"street":"2 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{609, 83, 561, 172, 44, 586, 863, 107, 247, 320, 410, 429, 379, 607, 213, 801, 385, 721, 271, 380, 330 }}, "employment":[{"organization-name":"Voltlane","start-date":date("2001-06-19")}]}
-{"id": 573, "alias": "Annabell000573", "name": "Annabell Roche", "user-since": datetime("2012-01-26T11:39:04"), "address": {"street":"29 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{368, 727, 661, 755, 740, 889, 846, 750 }}, "employment":[{"organization-name":"Dancode","start-date":date("2002-09-19"),"end-date":date("2002-11-04")}]}
-{"id": 574, "alias": "Radcliff000574", "name": "Radcliff Williams", "user-since": datetime("2006-12-24T05:54:02"), "address": {"street":"23 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{11, 102, 476, 186, 518, 681, 282, 546, 347, 21, 433, 706, 817, 663, 421, 858, 442, 787, 242, 820, 606, 615 }}, "employment":[{"organization-name":"Tanzumbam","start-date":date("2005-03-23")}]}
-{"id": 575, "alias": "Sheena000575", "name": "Sheena Giesen", "user-since": datetime("2013-09-23T08:59:20"), "address": {"street":"15 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{402, 850, 188, 702, 796, 755, 544, 582, 580 }}, "employment":[{"organization-name":"Quoline","start-date":date("2009-07-12")}]}
-{"id": 576, "alias": "Greg000576", "name": "Greg Shick", "user-since": datetime("2006-09-16T00:43:31"), "address": {"street":"37 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{504, 447, 889, 420, 468, 473, 569, 230, 331, 487, 679, 740 }}, "employment":[{"organization-name":"Quadlane","start-date":date("2011-01-28"),"end-date":date("2011-02-06")}]}
-{"id": 577, "alias": "Raeann000577", "name": "Raeann Hice", "user-since": datetime("2014-07-21T03:03:02"), "address": {"street":"26 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{486, 718, 830, 24, 343, 84, 137, 428, 465, 569, 448, 726 }}, "employment":[{"organization-name":"Zamcorporation","start-date":date("2002-01-22"),"end-date":date("2009-12-15")}]}
-{"id": 578, "alias": "Erwin000578", "name": "Erwin Adams", "user-since": datetime("2013-09-20T00:06:36"), "address": {"street":"71 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{258, 669, 721, 638, 437, 500, 267, 719, 309, 57, 322, 498, 621, 59, 210, 572 }}, "employment":[{"organization-name":"Tanzumbam","start-date":date("2003-10-12"),"end-date":date("2004-10-24")}]}
-{"id": 579, "alias": "Alexus000579", "name": "Alexus Beedell", "user-since": datetime("2006-01-13T19:42:57"), "address": {"street":"13 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{430, 790, 818, 31, 386 }}, "employment":[{"organization-name":"Newfase","start-date":date("2007-08-01")}]}
-{"id": 580, "alias": "Quincey000580", "name": "Quincey Kettlewell", "user-since": datetime("2008-01-08T03:19:52"), "address": {"street":"34 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{741, 233, 591, 324, 898, 495, 128, 789 }}, "employment":[{"organization-name":"Tanzumbam","start-date":date("2010-12-14")}]}
-{"id": 581, "alias": "Fern000581", "name": "Fern Lester", "user-since": datetime("2005-01-09T03:55:44"), "address": {"street":"36 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{815, 810, 901, 456, 194 }}, "employment":[{"organization-name":"Zuncan","start-date":date("2008-03-17"),"end-date":date("2009-10-23")}]}
-{"id": 582, "alias": "Bebe000582", "name": "Bebe Dennis", "user-since": datetime("2011-11-05T09:30:12"), "address": {"street":"57 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"U-electrics","start-date":date("2010-09-15")}]}
-{"id": 583, "alias": "Christopher000583", "name": "Christopher Otis", "user-since": datetime("2006-06-25T23:37:58"), "address": {"street":"20 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{730, 251, 25, 892, 897, 385, 614, 396, 649, 192, 181, 444, 580, 870, 127, 143, 592, 703 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2002-02-23")}]}
-{"id": 584, "alias": "Dene000584", "name": "Dene Shaffer", "user-since": datetime("2014-08-14T03:30:39"), "address": {"street":"1 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Ransaofan","start-date":date("2010-08-22")}]}
-{"id": 585, "alias": "Scott000585", "name": "Scott Marjorie", "user-since": datetime("2014-02-28T21:34:43"), "address": {"street":"67 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{646, 893, 477, 693, 455, 649 }}, "employment":[{"organization-name":"Sublamdox","start-date":date("2006-12-07")}]}
-{"id": 586, "alias": "Madison000586", "name": "Madison Pearson", "user-since": datetime("2006-01-04T13:46:15"), "address": {"street":"39 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{263, 733, 639 }}, "employment":[{"organization-name":"Viatechi","start-date":date("2002-07-01"),"end-date":date("2008-11-08")}]}
-{"id": 587, "alias": "Ginnie000587", "name": "Ginnie Fleming", "user-since": datetime("2008-10-09T23:41:23"), "address": {"street":"46 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{453 }}, "employment":[{"organization-name":"Scotcity","start-date":date("2009-12-16"),"end-date":date("2009-11-25")}]}
-{"id": 588, "alias": "Angelina000588", "name": "Angelina Dimeling", "user-since": datetime("2007-12-28T12:47:06"), "address": {"street":"96 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{121, 758, 253, 59, 229, 91, 181, 395, 508, 416, 306 }}, "employment":[{"organization-name":"freshdox","start-date":date("2002-11-24"),"end-date":date("2004-01-25")}]}
-{"id": 589, "alias": "Mica000589", "name": "Mica Garry", "user-since": datetime("2013-06-11T06:52:24"), "address": {"street":"99 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{819, 304, 307, 775, 249, 831, 429, 787, 448, 337, 317, 87, 269, 454, 736, 554, 411, 51, 378, 852 }}, "employment":[{"organization-name":"strongex","start-date":date("2003-09-05")}]}
-{"id": 590, "alias": "Christopher000590", "name": "Christopher Hunter", "user-since": datetime("2007-09-08T07:41:12"), "address": {"street":"31 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{222, 796, 320, 323, 557, 889 }}, "employment":[{"organization-name":"Voltlane","start-date":date("2002-03-11"),"end-date":date("2011-09-23")}]}
-{"id": 591, "alias": "Niles000591", "name": "Niles Warren", "user-since": datetime("2007-10-26T15:15:23"), "address": {"street":"15 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{170 }}, "employment":[{"organization-name":"Codetechno","start-date":date("2002-08-20")}]}
-{"id": 592, "alias": "Lettice000592", "name": "Lettice Jenkins", "user-since": datetime("2009-03-02T16:26:42"), "address": {"street":"97 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{534, 155, 599, 51, 890, 295, 268, 193, 763, 716, 656, 71, 426, 328, 521, 734, 577, 647, 409, 282 }}, "employment":[{"organization-name":"Tanzimcare","start-date":date("2000-09-24"),"end-date":date("2004-02-23")}]}
-{"id": 593, "alias": "Lavern000593", "name": "Lavern Wile", "user-since": datetime("2007-03-09T16:00:36"), "address": {"street":"19 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{677, 863, 834, 251, 649, 799, 139, 231, 33, 243, 57, 796, 302, 198, 847, 291, 213, 512, 448, 780, 167, 548, 421, 809 }}, "employment":[{"organization-name":"Striptaxon","start-date":date("2005-09-02"),"end-date":date("2007-08-16")}]}
-{"id": 594, "alias": "Xavior000594", "name": "Xavior Barnes", "user-since": datetime("2013-12-17T03:51:11"), "address": {"street":"89 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{464, 758, 864, 22, 865, 426, 874, 862, 400, 165, 589, 770, 12 }}, "employment":[{"organization-name":"Kanelectrics","start-date":date("2000-07-13")}]}
-{"id": 595, "alias": "Angus000595", "name": "Angus Harper", "user-since": datetime("2006-09-15T02:34:05"), "address": {"street":"92 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{350, 135, 231, 381, 517, 45, 328, 23, 426, 788, 358, 289, 211, 16, 607, 467, 669, 256 }}, "employment":[{"organization-name":"Hatcom","start-date":date("2004-09-27"),"end-date":date("2007-01-01")}]}
-{"id": 596, "alias": "Evander000596", "name": "Evander Leech", "user-since": datetime("2005-01-18T20:43:51"), "address": {"street":"36 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{477, 139, 52 }}, "employment":[{"organization-name":"Quoline","start-date":date("2000-12-21")}]}
-{"id": 597, "alias": "Romayne000597", "name": "Romayne Willcox", "user-since": datetime("2010-03-06T15:43:54"), "address": {"street":"17 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{380, 598, 84, 856, 703, 771, 623, 554 }}, "employment":[{"organization-name":"Fixelectrics","start-date":date("2008-09-22")}]}
-{"id": 598, "alias": "Millard000598", "name": "Millard Armstrong", "user-since": datetime("2009-07-13T20:23:31"), "address": {"street":"37 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{622, 608, 86, 52, 522, 875, 212, 694, 586, 29, 403, 486 }}, "employment":[{"organization-name":"Zununoing","start-date":date("2004-07-24"),"end-date":date("2009-11-08")}]}
-{"id": 599, "alias": "Leandra000599", "name": "Leandra Treeby", "user-since": datetime("2007-06-19T20:22:57"), "address": {"street":"99 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{530, 296, 362, 689, 260, 165, 849, 230, 314, 693, 242, 133, 87, 249 }}, "employment":[{"organization-name":"Kongreen","start-date":date("2000-02-20")}]}
-{"id": 600, "alias": "Cecelia000600", "name": "Cecelia Omara", "user-since": datetime("2007-02-14T03:25:37"), "address": {"street":"60 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{400, 191, 266, 205, 493, 476, 216 }}, "employment":[{"organization-name":"Whitemedia","start-date":date("2005-08-11"),"end-date":date("2009-02-01")}]}
-{"id": 601, "alias": "Forrest000601", "name": "Forrest Casteel", "user-since": datetime("2006-01-16T15:30:26"), "address": {"street":"19 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{391, 834, 226, 782, 239, 819, 823, 623, 461 }}, "employment":[{"organization-name":"Canline","start-date":date("2008-03-08"),"end-date":date("2011-04-10")}]}
-{"id": 602, "alias": "Tristand000602", "name": "Tristand Harden", "user-since": datetime("2011-01-13T21:09:43"), "address": {"street":"79 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{36 }}, "employment":[{"organization-name":"Newcom","start-date":date("2011-09-17"),"end-date":date("2011-05-08")}]}
-{"id": 603, "alias": "Harold000603", "name": "Harold Sanner", "user-since": datetime("2012-09-06T01:50:11"), "address": {"street":"99 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{485, 698, 294, 288, 569, 687, 381, 227, 886, 852, 868, 439, 86, 600 }}, "employment":[{"organization-name":"Tripplelane","start-date":date("2000-04-23"),"end-date":date("2000-08-28")}]}
-{"id": 604, "alias": "Kimberleigh000604", "name": "Kimberleigh Biery", "user-since": datetime("2011-02-11T23:00:48"), "address": {"street":"51 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{312, 612, 873, 851, 371, 678, 818, 40, 342, 169, 19, 805, 248, 54, 547, 399, 376, 270, 163, 165 }}, "employment":[{"organization-name":"Streettax","start-date":date("2007-11-05")}]}
-{"id": 605, "alias": "Tracy000605", "name": "Tracy Losey", "user-since": datetime("2011-01-25T03:39:32"), "address": {"street":"64 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{653, 221, 265, 482, 650, 25, 452, 624 }}, "employment":[{"organization-name":"kin-ron","start-date":date("2003-02-28")}]}
-{"id": 606, "alias": "Vince000606", "name": "Vince Wylie", "user-since": datetime("2007-05-07T02:20:00"), "address": {"street":"76 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{392, 458 }}, "employment":[{"organization-name":"Kanelectrics","start-date":date("2003-08-10")}]}
-{"id": 607, "alias": "Elenor000607", "name": "Elenor Breitenstein", "user-since": datetime("2008-09-23T19:50:50"), "address": {"street":"7 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{568, 546, 230, 228, 892, 727, 258, 691, 149, 601 }}, "employment":[{"organization-name":"Y-geohex","start-date":date("2000-02-19")}]}
-{"id": 608, "alias": "Maximillian000608", "name": "Maximillian Wire", "user-since": datetime("2013-12-27T06:37:54"), "address": {"street":"67 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{603, 507, 465, 768, 897, 851, 167, 822, 129, 570, 365, 564, 722, 645, 63, 844, 652, 663, 104, 17, 253 }}, "employment":[{"organization-name":"Tripplelane","start-date":date("2000-05-20"),"end-date":date("2004-11-22")}]}
-{"id": 609, "alias": "Leida000609", "name": "Leida Coughenour", "user-since": datetime("2005-02-10T23:51:30"), "address": {"street":"58 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{111, 899, 336, 173, 537, 610, 491, 357, 521, 779, 450, 848, 188, 814, 434, 332, 873, 562, 574, 511, 465 }}, "employment":[{"organization-name":"Rungozoom","start-date":date("2002-05-03")}]}
-{"id": 610, "alias": "Selby000610", "name": "Selby Dennis", "user-since": datetime("2011-03-05T07:40:36"), "address": {"street":"50 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{618, 500, 217, 833, 370, 375, 155, 44, 799, 319, 198, 408, 136, 194, 521, 849, 563, 844, 121, 424 }}, "employment":[{"organization-name":"Y-geohex","start-date":date("2003-05-18"),"end-date":date("2007-12-26")}]}
-{"id": 611, "alias": "Lindsey000611", "name": "Lindsey Agg", "user-since": datetime("2014-05-22T15:36:49"), "address": {"street":"35 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{479, 305, 844, 828, 885, 259, 564, 877, 468, 684, 412, 139, 388, 548, 820, 777, 743 }}, "employment":[{"organization-name":"Sanjodax","start-date":date("2012-05-26")}]}
-{"id": 612, "alias": "Breana000612", "name": "Breana Hay", "user-since": datetime("2012-08-03T18:48:52"), "address": {"street":"7 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{434, 204, 112, 451, 534, 178, 605, 872, 770, 298, 745, 428, 136, 139, 620, 784, 344, 696, 7, 143, 248, 849 }}, "employment":[{"organization-name":"Hexsanhex","start-date":date("2007-10-06")}]}
-{"id": 613, "alias": "Darius000613", "name": "Darius Faast", "user-since": datetime("2014-05-17T14:21:00"), "address": {"street":"84 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{226, 106, 783, 796, 245, 898, 880, 680, 182, 283 }}, "employment":[{"organization-name":"goldendexon","start-date":date("2005-03-18"),"end-date":date("2007-03-23")}]}
-{"id": 614, "alias": "Qiana000614", "name": "Qiana Bonner", "user-since": datetime("2008-11-19T15:48:19"), "address": {"street":"15 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{853, 206, 169, 66, 434, 802, 681, 164, 289, 186, 720, 719, 147, 670, 261, 293, 249, 738, 127, 250 }}, "employment":[{"organization-name":"Scotcity","start-date":date("2001-09-17")}]}
-{"id": 615, "alias": "Leighton000615", "name": "Leighton James", "user-since": datetime("2010-04-03T08:26:28"), "address": {"street":"79 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{761, 269, 737, 723, 261, 315, 594, 630, 415, 880, 119, 845, 707, 817, 582 }}, "employment":[{"organization-name":"Dancode","start-date":date("2012-04-21"),"end-date":date("2012-07-25")}]}
-{"id": 616, "alias": "Marina000616", "name": "Marina Shaffer", "user-since": datetime("2011-02-04T23:24:56"), "address": {"street":"72 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{207, 228, 833, 799 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2011-02-27")}]}
-{"id": 617, "alias": "Phoebe000617", "name": "Phoebe Werner", "user-since": datetime("2005-05-26T12:28:54"), "address": {"street":"28 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{11, 328, 49, 83, 211, 843, 105, 100, 690, 82, 18, 505, 751, 475, 762, 833, 756, 553, 164, 877, 95, 716, 399 }}, "employment":[{"organization-name":"Trustbam","start-date":date("2001-05-07"),"end-date":date("2011-12-11")}]}
-{"id": 618, "alias": "Daren000618", "name": "Daren Read", "user-since": datetime("2012-03-21T05:32:53"), "address": {"street":"83 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{388, 546, 194, 735, 405, 447, 332, 70, 18, 99, 300, 496, 811, 774, 867, 865 }}, "employment":[{"organization-name":"Groovetex","start-date":date("2007-12-19")}]}
-{"id": 619, "alias": "Debora000619", "name": "Debora Sommer", "user-since": datetime("2006-01-19T09:17:03"), "address": {"street":"28 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{369, 484, 424, 516, 389, 899, 445, 742, 330, 429, 142, 708, 491, 180, 317, 719, 129, 50, 34, 631, 582, 253, 404, 69 }}, "employment":[{"organization-name":"Ganjatax","start-date":date("2001-02-26"),"end-date":date("2007-08-02")}]}
-{"id": 620, "alias": "Calanthe000620", "name": "Calanthe Rhinehart", "user-since": datetime("2005-12-05T16:40:31"), "address": {"street":"66 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{210, 872, 776, 716, 29, 397, 195, 64, 13, 391, 204, 262, 455, 289, 704, 711, 580, 536 }}, "employment":[{"organization-name":"Solfix","start-date":date("2011-02-17")}]}
-{"id": 621, "alias": "Romey000621", "name": "Romey Ramsey", "user-since": datetime("2007-02-12T20:04:55"), "address": {"street":"22 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{353, 792, 800, 185, 134, 393, 535, 283 }}, "employment":[{"organization-name":"Ronholdings","start-date":date("2001-08-27"),"end-date":date("2004-02-02")}]}
-{"id": 622, "alias": "Lilian000622", "name": "Lilian Erskine", "user-since": datetime("2008-12-14T05:31:05"), "address": {"street":"16 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{115, 461, 5, 488, 478, 452, 464, 705, 751, 590, 805, 220, 109, 740, 270, 393, 349, 548, 242, 408, 865, 345, 487, 45 }}, "employment":[{"organization-name":"Viatechi","start-date":date("2005-08-20")}]}
-{"id": 623, "alias": "Nana000623", "name": "Nana Stoddard", "user-since": datetime("2009-02-25T23:06:44"), "address": {"street":"25 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Coneflex","start-date":date("2007-12-02")}]}
-{"id": 624, "alias": "Marlyn000624", "name": "Marlyn Eastwood", "user-since": datetime("2006-06-15T16:25:44"), "address": {"street":"91 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{424, 715, 515, 636, 621, 791, 698, 27, 278, 108, 71, 627, 313, 210, 160, 226 }}, "employment":[{"organization-name":"Lexicone","start-date":date("2011-02-06")}]}
-{"id": 625, "alias": "Renaldo000625", "name": "Renaldo Jackson", "user-since": datetime("2009-02-13T09:25:19"), "address": {"street":"72 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{65, 753, 823, 68, 454, 601, 567, 898, 370, 401, 846, 895, 324, 872, 254, 737 }}, "employment":[{"organization-name":"Salthex","start-date":date("2009-11-22"),"end-date":date("2011-08-12")}]}
-{"id": 626, "alias": "Jancis000626", "name": "Jancis Zaun", "user-since": datetime("2009-10-08T19:09:26"), "address": {"street":"8 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Fixdintex","start-date":date("2005-04-21")}]}
-{"id": 627, "alias": "Josslyn000627", "name": "Josslyn Guest", "user-since": datetime("2006-09-22T03:48:17"), "address": {"street":"79 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{752, 566, 786, 250, 590, 53, 71, 336, 826, 223 }}, "employment":[{"organization-name":"kin-ron","start-date":date("2011-11-12"),"end-date":date("2011-06-14")}]}
-{"id": 628, "alias": "Reed000628", "name": "Reed Davis", "user-since": datetime("2007-04-03T04:00:14"), "address": {"street":"63 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{101, 469, 429, 54, 772, 516, 490, 758, 86, 384, 285, 326, 852, 529, 620, 202, 170 }}, "employment":[{"organization-name":"Technohow","start-date":date("2003-07-06"),"end-date":date("2010-08-07")}]}
-{"id": 629, "alias": "Clancy000629", "name": "Clancy Zalack", "user-since": datetime("2006-01-12T08:21:13"), "address": {"street":"86 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{162, 891, 430, 397, 493, 371, 78, 388, 672, 198, 597, 488, 890, 89, 636, 574, 257, 58, 510, 560, 322, 101 }}, "employment":[{"organization-name":"Sanjodax","start-date":date("2000-05-28"),"end-date":date("2011-02-06")}]}
-{"id": 630, "alias": "Deirdre000630", "name": "Deirdre Putnam", "user-since": datetime("2014-08-04T10:45:17"), "address": {"street":"67 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{133, 599, 138, 390, 365, 851, 154, 324, 553, 782, 342, 388, 160, 540, 454, 701, 26, 893, 870, 613, 118, 527, 688, 237 }}, "employment":[{"organization-name":"Latsonity","start-date":date("2009-10-23"),"end-date":date("2009-03-02")}]}
-{"id": 631, "alias": "Madlyn000631", "name": "Madlyn Light", "user-since": datetime("2007-03-11T03:31:23"), "address": {"street":"89 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{274, 107, 731, 245, 316, 709, 494, 568, 867, 385, 615, 671, 460, 831, 355, 459, 859, 399 }}, "employment":[{"organization-name":"Newhotplus","start-date":date("2001-03-26"),"end-date":date("2002-11-26")}]}
-{"id": 632, "alias": "Ines000632", "name": "Ines Wain", "user-since": datetime("2013-05-14T23:39:09"), "address": {"street":"13 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{633, 181, 669, 293, 827, 683, 549, 14, 38, 230, 286, 714, 691, 677, 880, 580, 172, 27, 312, 713, 206, 540, 824 }}, "employment":[{"organization-name":"Alphadax","start-date":date("2012-04-11"),"end-date":date("2012-05-01")}]}
-{"id": 633, "alias": "Wilma000633", "name": "Wilma Brindle", "user-since": datetime("2011-05-09T11:49:05"), "address": {"street":"23 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{129, 662, 359, 172, 814, 243, 697, 656, 97, 479, 186 }}, "employment":[{"organization-name":"Redelectronics","start-date":date("2001-11-03"),"end-date":date("2011-04-11")}]}
-{"id": 634, "alias": "Doran000634", "name": "Doran Gearhart", "user-since": datetime("2005-10-07T14:47:56"), "address": {"street":"94 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{540, 315, 298, 498, 234, 532, 678, 784, 217, 330, 385, 53, 760, 842, 601, 183 }}, "employment":[{"organization-name":"Tanzumbam","start-date":date("2004-01-28")}]}
-{"id": 635, "alias": "Bart000635", "name": "Bart Philips", "user-since": datetime("2008-03-14T01:34:26"), "address": {"street":"91 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{751 }}, "employment":[{"organization-name":"Unijobam","start-date":date("2001-12-07")}]}
-{"id": 636, "alias": "Bettie000636", "name": "Bettie Butterfill", "user-since": datetime("2009-05-15T12:52:32"), "address": {"street":"86 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{409, 789, 775, 194, 613, 302, 143, 658, 646, 182, 414 }}, "employment":[{"organization-name":"Xx-drill","start-date":date("2002-11-01"),"end-date":date("2003-08-26")}]}
-{"id": 637, "alias": "Stephania000637", "name": "Stephania Swartzbaugh", "user-since": datetime("2012-08-01T22:43:42"), "address": {"street":"98 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{750, 301, 269, 421, 543, 18, 90, 182, 146, 358, 84, 827, 829, 524 }}, "employment":[{"organization-name":"Viatechi","start-date":date("2011-06-15"),"end-date":date("2011-09-09")}]}
-{"id": 638, "alias": "Xavier000638", "name": "Xavier Drabble", "user-since": datetime("2005-12-03T17:42:27"), "address": {"street":"56 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{83, 177, 676, 781, 836, 512, 527, 603 }}, "employment":[{"organization-name":"whitestreet","start-date":date("2012-03-24")}]}
-{"id": 639, "alias": "Jacques000639", "name": "Jacques Bash", "user-since": datetime("2006-08-25T01:29:47"), "address": {"street":"95 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{307, 506, 663, 517, 291, 143, 179, 266, 601, 882 }}, "employment":[{"organization-name":"Kanelectrics","start-date":date("2000-01-14")}]}
-{"id": 640, "alias": "Doug000640", "name": "Doug Burnett", "user-since": datetime("2005-11-22T15:12:04"), "address": {"street":"32 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{505, 482, 434, 768, 502, 238, 576, 878, 742, 300, 226, 687, 741, 361, 525, 42, 279, 290, 273, 225, 608, 261, 775 }}, "employment":[{"organization-name":"Salthex","start-date":date("2008-01-12"),"end-date":date("2008-12-13")}]}
-{"id": 641, "alias": "Derek000641", "name": "Derek Tanner", "user-since": datetime("2013-07-16T14:09:24"), "address": {"street":"63 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{667, 336, 216, 750, 619, 296, 190, 477, 263, 455, 622, 690 }}, "employment":[{"organization-name":"Basecone","start-date":date("2003-01-25")}]}
-{"id": 642, "alias": "Rowanne000642", "name": "Rowanne Garneys", "user-since": datetime("2014-02-14T01:06:14"), "address": {"street":"51 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{439, 117 }}, "employment":[{"organization-name":"kin-ron","start-date":date("2000-01-14")}]}
-{"id": 643, "alias": "Glenna000643", "name": "Glenna Young", "user-since": datetime("2012-10-28T22:18:20"), "address": {"street":"62 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{144, 633, 740, 860, 439 }}, "employment":[{"organization-name":"Techitechi","start-date":date("2009-12-06"),"end-date":date("2010-09-22")}]}
-{"id": 644, "alias": "Kayla000644", "name": "Kayla Stainforth", "user-since": datetime("2005-03-10T11:33:34"), "address": {"street":"46 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{795, 444, 639, 70 }}, "employment":[{"organization-name":"physcane","start-date":date("2009-01-03"),"end-date":date("2011-02-11")}]}
-{"id": 645, "alias": "Jonas000645", "name": "Jonas Pfeifer", "user-since": datetime("2010-04-05T20:03:10"), "address": {"street":"42 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{85, 211, 425, 109, 460, 8, 825, 617, 540, 265, 506, 762, 646, 72, 10, 464, 788, 490 }}, "employment":[{"organization-name":"Transhigh","start-date":date("2006-12-08"),"end-date":date("2010-09-03")}]}
-{"id": 646, "alias": "Tallulah000646", "name": "Tallulah Hill", "user-since": datetime("2014-07-15T07:54:36"), "address": {"street":"32 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{707, 136, 119, 720 }}, "employment":[{"organization-name":"Newfase","start-date":date("2002-06-27"),"end-date":date("2005-07-01")}]}
-{"id": 647, "alias": "Kimmy000647", "name": "Kimmy Hardy", "user-since": datetime("2006-12-17T12:51:01"), "address": {"street":"76 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{750, 59, 241, 18, 22, 555, 761, 654, 813, 154, 527, 871, 684, 351, 899, 667, 642, 881, 459, 862, 646 }}, "employment":[{"organization-name":"Greencare","start-date":date("2012-05-05")}]}
-{"id": 648, "alias": "Andreas000648", "name": "Andreas Diller", "user-since": datetime("2007-08-07T04:55:40"), "address": {"street":"43 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{746, 27, 798, 591, 143, 617, 460, 5, 622, 9, 285, 224, 695, 579, 75, 131, 228 }}, "employment":[{"organization-name":"Doublezone","start-date":date("2006-06-22"),"end-date":date("2011-07-20")}]}
-{"id": 649, "alias": "Harley000649", "name": "Harley Hall", "user-since": datetime("2009-12-05T21:56:00"), "address": {"street":"78 Maple St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{274, 91, 194, 894, 852, 75, 167, 534, 7, 393, 586, 861, 303, 446, 3, 24, 806, 895, 202, 731, 418, 128 }}, "employment":[{"organization-name":"Groovetex","start-date":date("2006-09-19"),"end-date":date("2010-04-19")}]}
-{"id": 650, "alias": "Mo000650", "name": "Mo Henry", "user-since": datetime("2009-04-25T07:22:25"), "address": {"street":"36 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{57, 75, 285, 610, 236, 887 }}, "employment":[{"organization-name":"tresline","start-date":date("2001-12-27"),"end-date":date("2004-05-20")}]}
-{"id": 651, "alias": "August000651", "name": "August Powers", "user-since": datetime("2008-02-06T07:17:25"), "address": {"street":"82 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{290, 815, 413, 551, 813, 303 }}, "employment":[{"organization-name":"Lexicone","start-date":date("2011-09-06"),"end-date":date("2011-05-08")}]}
-{"id": 652, "alias": "Alverta000652", "name": "Alverta Weisgarber", "user-since": datetime("2008-01-03T13:49:59"), "address": {"street":"17 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{523, 59, 672, 659, 571, 792, 183, 395, 868, 557, 777, 748, 245, 536, 782 }}, "employment":[{"organization-name":"Unijobam","start-date":date("2010-08-26")}]}
-{"id": 653, "alias": "Garrick000653", "name": "Garrick Young", "user-since": datetime("2012-12-02T12:04:37"), "address": {"street":"98 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{134, 813, 840, 169, 537, 106, 889, 140, 527, 442, 30, 293, 136, 641, 326, 775, 146 }}, "employment":[{"organization-name":"Viatechi","start-date":date("2011-09-07")}]}
-{"id": 654, "alias": "Reina000654", "name": "Reina Armstrong", "user-since": datetime("2008-07-28T14:37:24"), "address": {"street":"35 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{529, 422, 398, 524, 292, 727, 856, 276, 564, 579, 871, 200 }}, "employment":[{"organization-name":"goldendexon","start-date":date("2003-02-25")}]}
-{"id": 655, "alias": "Maitland000655", "name": "Maitland Gisiko", "user-since": datetime("2010-12-21T09:10:29"), "address": {"street":"89 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{514, 842, 453, 872, 655, 692, 193, 530 }}, "employment":[{"organization-name":"Tanzimcare","start-date":date("2001-10-12")}]}
-{"id": 656, "alias": "Lloyd000656", "name": "Lloyd Harrold", "user-since": datetime("2008-03-28T03:12:29"), "address": {"street":"61 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{418, 761, 677, 606, 858, 614, 778, 719, 829, 626, 257, 90, 774, 85, 430, 534, 508, 687, 338 }}, "employment":[{"organization-name":"Newhotplus","start-date":date("2008-12-21")}]}
-{"id": 657, "alias": "Adrianna000657", "name": "Adrianna Holtzer", "user-since": datetime("2005-11-09T13:10:05"), "address": {"street":"61 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{654, 33, 473, 254, 67, 441, 591, 518, 61, 487, 525, 220, 602, 782, 801, 149, 307, 763, 586, 711, 259, 545, 359, 848 }}, "employment":[{"organization-name":"Ransaofan","start-date":date("2001-11-04")}]}
-{"id": 658, "alias": "Jalisa000658", "name": "Jalisa Whishaw", "user-since": datetime("2006-10-12T06:00:56"), "address": {"street":"55 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{606, 718, 469, 186 }}, "employment":[{"organization-name":"Quoline","start-date":date("2001-11-15"),"end-date":date("2001-01-12")}]}
-{"id": 659, "alias": "Anabel000659", "name": "Anabel Hawker", "user-since": datetime("2013-08-06T23:42:42"), "address": {"street":"96 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{629, 861, 434, 805, 293, 495, 467, 596, 117 }}, "employment":[{"organization-name":"Xx-technology","start-date":date("2004-09-08"),"end-date":date("2010-06-10")}]}
-{"id": 660, "alias": "Bobby000660", "name": "Bobby Thomas", "user-since": datetime("2014-06-24T23:13:00"), "address": {"street":"33 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{726, 187, 775, 622, 665, 856, 523, 250, 855, 690, 300, 341, 654, 861, 708 }}, "employment":[{"organization-name":"Doncare","start-date":date("2006-07-03")}]}
-{"id": 661, "alias": "Candice000661", "name": "Candice Murray", "user-since": datetime("2008-08-03T11:43:54"), "address": {"street":"12 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{175, 109, 619, 138, 532, 200, 815, 826, 429, 719, 880, 658, 398, 106, 338, 541, 524, 704, 257, 530, 747, 27 }}, "employment":[{"organization-name":"Hexsanhex","start-date":date("2007-10-09")}]}
-{"id": 662, "alias": "Andre000662", "name": "Andre Briner", "user-since": datetime("2008-08-03T12:03:57"), "address": {"street":"57 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{408 }}, "employment":[{"organization-name":"linedexon","start-date":date("2012-01-19"),"end-date":date("2012-02-28")}]}
-{"id": 663, "alias": "Rosaline000663", "name": "Rosaline Dale", "user-since": datetime("2005-03-04T04:01:58"), "address": {"street":"36 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Sancone","start-date":date("2011-07-22"),"end-date":date("2011-10-13")}]}
-{"id": 664, "alias": "Randolf000664", "name": "Randolf Ann", "user-since": datetime("2013-02-11T06:59:00"), "address": {"street":"14 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{545 }}, "employment":[{"organization-name":"Solophase","start-date":date("2012-04-16")}]}
-{"id": 665, "alias": "Andra000665", "name": "Andra Sholl", "user-since": datetime("2009-08-23T01:33:10"), "address": {"street":"61 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{719, 172, 710, 112, 78, 457 }}, "employment":[{"organization-name":"Whitemedia","start-date":date("2009-02-26")}]}
-{"id": 666, "alias": "Stephany000666", "name": "Stephany Raybould", "user-since": datetime("2012-05-26T01:10:27"), "address": {"street":"49 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{161, 880, 207, 838, 673, 638, 893, 66, 259, 394, 460, 832, 887, 434, 796 }}, "employment":[{"organization-name":"Hexsanhex","start-date":date("2012-07-16")}]}
-{"id": 667, "alias": "Vinnie000667", "name": "Vinnie Rummel", "user-since": datetime("2013-11-20T03:18:20"), "address": {"street":"77 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{516, 477, 469, 93, 655, 652, 475, 866 }}, "employment":[{"organization-name":"Ronholdings","start-date":date("2000-10-23")}]}
-{"id": 668, "alias": "Aurelio000668", "name": "Aurelio Patterson", "user-since": datetime("2010-02-11T19:42:32"), "address": {"street":"63 Hill Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{426, 193, 190, 355, 256, 488, 215, 6, 104, 733, 91, 855, 847, 351, 57, 93, 46, 634, 270, 561, 885, 818, 864 }}, "employment":[{"organization-name":"Xx-technology","start-date":date("2002-06-14"),"end-date":date("2002-05-24")}]}
-{"id": 669, "alias": "Bernie000669", "name": "Bernie Roberts", "user-since": datetime("2006-01-25T20:48:35"), "address": {"street":"48 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{98, 855, 380, 545, 381, 289, 460, 201, 847, 661, 13, 638 }}, "employment":[{"organization-name":"Fixelectrics","start-date":date("2000-06-28")}]}
-{"id": 670, "alias": "Quiana000670", "name": "Quiana Huston", "user-since": datetime("2011-05-24T03:25:14"), "address": {"street":"35 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{246, 82, 871, 511, 841, 837, 305, 363, 101, 236, 390, 484, 752, 321, 353, 870, 499, 173, 637, 171, 604 }}, "employment":[{"organization-name":"Inchex","start-date":date("2007-12-12"),"end-date":date("2010-08-02")}]}
-{"id": 671, "alias": "Charles000671", "name": "Charles Ratcliff", "user-since": datetime("2013-05-14T08:01:26"), "address": {"street":"34 Hill Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{48, 46, 825, 225, 479, 209, 163, 352, 726, 228, 111, 629, 461, 603, 168, 360, 257, 637 }}, "employment":[{"organization-name":"Inchdox","start-date":date("2004-08-19")}]}
-{"id": 672, "alias": "Jamika000672", "name": "Jamika Congdon", "user-since": datetime("2007-12-22T11:11:12"), "address": {"street":"58 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{284, 531, 534, 150 }}, "employment":[{"organization-name":"Trustbam","start-date":date("2005-11-03")}]}
-{"id": 673, "alias": "Manual000673", "name": "Manual Raub", "user-since": datetime("2005-12-07T23:30:21"), "address": {"street":"94 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{541, 63, 708, 547, 345, 273, 298, 394 }}, "employment":[{"organization-name":"over-it","start-date":date("2010-03-12")}]}
-{"id": 674, "alias": "Crystal000674", "name": "Crystal Shick", "user-since": datetime("2011-07-05T05:21:03"), "address": {"street":"87 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{636, 438, 22, 695, 28, 833, 571, 91, 564, 392, 726, 112, 547, 628, 250, 289, 580, 108 }}, "employment":[{"organization-name":"Fax-fax","start-date":date("2007-04-14")}]}
-{"id": 675, "alias": "Romey000675", "name": "Romey Swabey", "user-since": datetime("2013-04-06T15:29:21"), "address": {"street":"45 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{356, 225, 486, 36, 610, 740, 376, 703, 663, 214, 37, 347, 109, 625, 808, 594, 742, 312, 886, 404, 857, 548, 16, 778 }}, "employment":[{"organization-name":"Voltbam","start-date":date("2005-09-03")}]}
-{"id": 676, "alias": "Lourdes000676", "name": "Lourdes Basinger", "user-since": datetime("2014-05-21T23:50:11"), "address": {"street":"15 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{211, 92, 650, 353, 284, 7, 118, 32, 687, 863, 235, 34, 502, 214, 408, 888, 550, 256 }}, "employment":[{"organization-name":"whitestreet","start-date":date("2006-08-19")}]}
-{"id": 677, "alias": "Shell000677", "name": "Shell Rader", "user-since": datetime("2006-07-22T12:54:43"), "address": {"street":"42 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{93, 163, 698, 56, 362, 329 }}, "employment":[{"organization-name":"Fax-fax","start-date":date("2005-05-22")}]}
-{"id": 678, "alias": "Ysabel000678", "name": "Ysabel Bennett", "user-since": datetime("2010-06-14T01:57:08"), "address": {"street":"50 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{211 }}, "employment":[{"organization-name":"Kongreen","start-date":date("2000-10-11")}]}
-{"id": 679, "alias": "Kitty000679", "name": "Kitty Dimeling", "user-since": datetime("2005-03-12T03:05:44"), "address": {"street":"20 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{604, 761, 426, 218, 26, 411, 49, 810, 632, 200, 583, 454, 304, 443, 786, 712, 893, 690, 237, 209, 484, 508, 815 }}, "employment":[{"organization-name":"Transhigh","start-date":date("2001-12-05")}]}
-{"id": 680, "alias": "Franklyn000680", "name": "Franklyn Grant", "user-since": datetime("2013-08-06T04:26:25"), "address": {"street":"52 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{432, 684, 739, 631, 821, 190, 512, 708, 198, 779, 466, 785, 853, 584, 429 }}, "employment":[{"organization-name":"Zamcorporation","start-date":date("2000-09-16")}]}
-{"id": 681, "alias": "Silvestra000681", "name": "Silvestra Pheleps", "user-since": datetime("2007-02-21T16:52:00"), "address": {"street":"11 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{480, 765, 405 }}, "employment":[{"organization-name":"Xx-drill","start-date":date("2012-01-22")}]}
-{"id": 682, "alias": "Giselle000682", "name": "Giselle Mcindoe", "user-since": datetime("2010-03-23T20:05:32"), "address": {"street":"47 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{458, 346, 89, 736, 77, 692, 254, 556, 477, 109, 330, 136, 425 }}, "employment":[{"organization-name":"linedexon","start-date":date("2011-12-17")}]}
-{"id": 683, "alias": "Bettina000683", "name": "Bettina Elder", "user-since": datetime("2013-06-02T22:26:42"), "address": {"street":"43 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{412, 786, 706, 96, 407, 618, 865, 533, 431, 108, 572, 878, 508, 84, 418, 653, 453, 757 }}, "employment":[{"organization-name":"Salthex","start-date":date("2008-01-19")}]}
-{"id": 684, "alias": "Cairo000684", "name": "Cairo Robinson", "user-since": datetime("2013-10-18T22:30:14"), "address": {"street":"32 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{19 }}, "employment":[{"organization-name":"zoomplus","start-date":date("2008-05-02")}]}
-{"id": 685, "alias": "Lettice000685", "name": "Lettice Jenner", "user-since": datetime("2009-12-20T23:33:29"), "address": {"street":"4 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{564, 200, 704, 622, 872, 373, 830, 756, 687, 225, 326, 38, 399, 430, 865 }}, "employment":[{"organization-name":"Plexlane","start-date":date("2001-01-05")}]}
-{"id": 686, "alias": "Michel000686", "name": "Michel Fuchs", "user-since": datetime("2014-04-27T01:08:05"), "address": {"street":"10 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{143, 48, 637, 614, 604, 346 }}, "employment":[{"organization-name":"Scotcity","start-date":date("2001-07-20")}]}
-{"id": 687, "alias": "Blanche000687", "name": "Blanche Thomas", "user-since": datetime("2006-12-09T06:22:51"), "address": {"street":"78 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{667, 30, 721, 37, 659, 195, 458, 212, 433, 499, 787, 414, 630, 894, 259, 449, 602, 814, 340, 145, 275, 210, 477 }}, "employment":[{"organization-name":"Quadlane","start-date":date("2005-09-06"),"end-date":date("2006-02-17")}]}
-{"id": 688, "alias": "Howard000688", "name": "Howard Hill", "user-since": datetime("2010-07-26T23:07:32"), "address": {"street":"51 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{865, 258, 44, 405, 427, 477, 817, 190, 482, 64, 23, 784, 395, 54, 174, 726 }}, "employment":[{"organization-name":"Goldcity","start-date":date("2008-12-01")}]}
-{"id": 689, "alias": "Moses000689", "name": "Moses Weingarten", "user-since": datetime("2005-06-02T11:12:01"), "address": {"street":"24 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{308, 333, 414, 562 }}, "employment":[{"organization-name":"Solfix","start-date":date("2001-05-06"),"end-date":date("2002-07-05")}]}
-{"id": 690, "alias": "Samatha000690", "name": "Samatha Herndon", "user-since": datetime("2007-04-04T12:03:56"), "address": {"street":"63 Park Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{606, 98, 146, 567, 757, 147, 484, 524, 734, 628, 181, 627, 126 }}, "employment":[{"organization-name":"Technohow","start-date":date("2005-01-13"),"end-date":date("2006-06-26")}]}
-{"id": 691, "alias": "Roxanne000691", "name": "Roxanne Sandford", "user-since": datetime("2010-01-27T22:49:47"), "address": {"street":"5 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{439, 77, 572, 712, 750, 878, 462, 757 }}, "employment":[{"organization-name":"Hatcom","start-date":date("2009-05-26")}]}
-{"id": 692, "alias": "Laura000692", "name": "Laura Basinger", "user-since": datetime("2006-01-17T04:03:56"), "address": {"street":"95 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{680, 601, 744, 317, 156, 846, 459, 863, 668, 766, 283, 572, 75, 656 }}, "employment":[{"organization-name":"Voltlane","start-date":date("2011-03-10"),"end-date":date("2011-05-08")}]}
-{"id": 693, "alias": "Heide000693", "name": "Heide Mccune", "user-since": datetime("2010-11-19T00:10:34"), "address": {"street":"90 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{42, 758, 212, 63, 204, 619, 172, 822, 173, 116, 543, 673, 643, 177, 754, 834, 639, 113, 701, 485, 712, 33, 195, 843 }}, "employment":[{"organization-name":"strongex","start-date":date("2011-12-19"),"end-date":date("2011-06-05")}]}
-{"id": 694, "alias": "Carson000694", "name": "Carson Stough", "user-since": datetime("2010-08-01T15:06:01"), "address": {"street":"39 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{156, 378, 845, 681, 392, 768 }}, "employment":[{"organization-name":"Quoline","start-date":date("2009-07-04")}]}
-{"id": 695, "alias": "Bernice000695", "name": "Bernice Erschoff", "user-since": datetime("2014-05-09T08:55:29"), "address": {"street":"12 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{790, 468, 795, 237, 527, 248, 367, 239, 270, 164, 277, 799, 871, 393, 244, 883, 593, 857, 389, 388 }}, "employment":[{"organization-name":"zoomplus","start-date":date("2002-08-15"),"end-date":date("2002-10-28")}]}
-{"id": 696, "alias": "Pollie000696", "name": "Pollie Huey", "user-since": datetime("2013-06-20T15:10:09"), "address": {"street":"89 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{380, 305, 97, 660, 201 }}, "employment":[{"organization-name":"whitestreet","start-date":date("2007-06-08")}]}
-{"id": 697, "alias": "Ormerod000697", "name": "Ormerod Hahn", "user-since": datetime("2006-05-13T18:05:38"), "address": {"street":"53 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{507, 477, 899, 542, 44, 235, 38, 736, 888, 262, 675, 720, 876 }}, "employment":[{"organization-name":"Ganjastrip","start-date":date("2007-10-09")}]}
-{"id": 698, "alias": "Saffie000698", "name": "Saffie Schneider", "user-since": datetime("2006-03-14T07:37:17"), "address": {"street":"11 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{646, 427, 844, 196, 695, 866, 732, 863, 425, 756, 294, 768, 487, 461, 213, 650, 321 }}, "employment":[{"organization-name":"Streettax","start-date":date("2009-04-07"),"end-date":date("2011-05-09")}]}
-{"id": 699, "alias": "Wallis000699", "name": "Wallis Buttermore", "user-since": datetime("2010-02-17T08:47:28"), "address": {"street":"97 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{845, 42, 43, 551, 540, 335, 344, 31, 654, 276, 815, 7, 586, 113, 169, 146, 46, 547 }}, "employment":[{"organization-name":"Kongreen","start-date":date("2003-06-25")}]}
-{"id": 700, "alias": "Charles000700", "name": "Charles Pratt", "user-since": datetime("2010-01-24T05:11:22"), "address": {"street":"27 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{331, 54, 639, 535, 673, 816, 276, 889, 156, 701, 703, 195, 295, 289, 594, 346, 420, 817, 814 }}, "employment":[{"organization-name":"Trustbam","start-date":date("2008-07-14")}]}
-{"id": 701, "alias": "Leah000701", "name": "Leah Swabey", "user-since": datetime("2009-09-13T20:17:31"), "address": {"street":"61 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{616, 41, 268, 647, 385, 64, 453, 860, 881, 12, 39, 701, 140, 531, 121, 378, 214, 673, 297, 7 }}, "employment":[{"organization-name":"Streettax","start-date":date("2002-12-10"),"end-date":date("2005-02-22")}]}
-{"id": 702, "alias": "Aline000702", "name": "Aline Logue", "user-since": datetime("2007-05-17T16:28:46"), "address": {"street":"26 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{448, 687, 42, 593, 307, 370, 889 }}, "employment":[{"organization-name":"Whitemedia","start-date":date("2008-03-03")}]}
-{"id": 703, "alias": "Maggie000703", "name": "Maggie Fulton", "user-since": datetime("2010-05-21T03:09:20"), "address": {"street":"12 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{203, 447, 735, 815, 365, 324, 659, 309, 110, 545, 617, 843, 459, 289 }}, "employment":[{"organization-name":"Ontotanin","start-date":date("2000-07-25")}]}
-{"id": 704, "alias": "Joshawa000704", "name": "Joshawa Potter", "user-since": datetime("2013-07-06T01:43:30"), "address": {"street":"23 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{548, 550 }}, "employment":[{"organization-name":"Tanzimcare","start-date":date("2000-02-09")}]}
-{"id": 705, "alias": "Yaron000705", "name": "Yaron Chase", "user-since": datetime("2006-10-26T10:09:00"), "address": {"street":"85 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{76 }}, "employment":[{"organization-name":"Hot-tech","start-date":date("2005-09-17"),"end-date":date("2010-04-14")}]}
-{"id": 706, "alias": "Dwayne000706", "name": "Dwayne Kifer", "user-since": datetime("2008-05-19T11:00:39"), "address": {"street":"62 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{511, 322, 541, 156, 817, 698, 378, 880, 607, 669, 108, 171, 14, 51, 884, 466, 381, 691, 405, 842 }}, "employment":[{"organization-name":"Latsonity","start-date":date("2009-11-25"),"end-date":date("2010-07-28")}]}
-{"id": 707, "alias": "Jewell000707", "name": "Jewell Swarner", "user-since": datetime("2006-08-01T19:00:57"), "address": {"street":"57 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{327, 46, 539, 120, 800, 587, 516, 93, 437, 258, 459, 380, 273 }}, "employment":[{"organization-name":"strongex","start-date":date("2004-03-02")}]}
-{"id": 708, "alias": "Janis000708", "name": "Janis Agnes", "user-since": datetime("2011-10-13T05:56:23"), "address": {"street":"85 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{489, 174, 442, 772, 167, 241, 521, 611, 854, 160, 219, 4, 361, 127 }}, "employment":[{"organization-name":"Ransaofan","start-date":date("2009-04-04")}]}
-{"id": 709, "alias": "Carol000709", "name": "Carol Wallace", "user-since": datetime("2013-04-04T07:17:50"), "address": {"street":"89 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{406, 403, 600, 311, 378, 705, 296, 237, 74, 423, 140, 412, 718, 190, 786, 431, 776, 807, 477, 449, 195, 514, 701, 133 }}, "employment":[{"organization-name":"Codetechno","start-date":date("2004-05-14")}]}
-{"id": 710, "alias": "Bernardina000710", "name": "Bernardina Ullman", "user-since": datetime("2008-02-14T06:00:43"), "address": {"street":"91 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{613, 612, 556, 541, 867, 549, 91, 309, 649, 726, 709, 186, 822, 71, 564, 170, 659, 421, 428, 286, 445, 873, 258 }}, "employment":[{"organization-name":"itlab","start-date":date("2009-07-01")}]}
-{"id": 711, "alias": "Terrell000711", "name": "Terrell Weldi", "user-since": datetime("2008-08-20T11:19:49"), "address": {"street":"90 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{264, 865, 697, 543, 840, 603, 103, 855, 471, 72, 671, 295, 6, 424, 88, 51, 509 }}, "employment":[{"organization-name":"Tripplelane","start-date":date("2007-02-09"),"end-date":date("2009-01-11")}]}
-{"id": 712, "alias": "Alex000712", "name": "Alex Knight", "user-since": datetime("2005-03-01T15:22:42"), "address": {"street":"69 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{698, 583, 745, 504, 759, 524, 23, 13, 844, 32, 664, 702, 449, 359, 871, 785, 324, 507, 875 }}, "employment":[{"organization-name":"overtech","start-date":date("2007-01-20"),"end-date":date("2007-07-26")}]}
-{"id": 713, "alias": "Kolleen000713", "name": "Kolleen Saylor", "user-since": datetime("2012-06-13T07:28:47"), "address": {"street":"33 Elm Blvd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{21, 687, 92, 275, 156 }}, "employment":[{"organization-name":"physcane","start-date":date("2002-03-11"),"end-date":date("2010-10-15")}]}
-{"id": 714, "alias": "Loyd000714", "name": "Loyd Fox", "user-since": datetime("2005-08-28T11:25:29"), "address": {"street":"48 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{894, 169, 492, 749, 353, 338, 189, 54, 225, 596, 176, 490, 203, 154, 497, 806, 141, 662, 507, 895, 568 }}, "employment":[{"organization-name":"geomedia","start-date":date("2005-03-26")}]}
-{"id": 715, "alias": "Esmeralda000715", "name": "Esmeralda Endsley", "user-since": datetime("2009-04-06T17:11:45"), "address": {"street":"96 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{102, 169, 635, 363, 551, 562, 868, 776, 279 }}, "employment":[{"organization-name":"Sublamdox","start-date":date("2009-12-02")}]}
-{"id": 716, "alias": "Lalo000716", "name": "Lalo Erschoff", "user-since": datetime("2005-04-09T09:24:23"), "address": {"street":"96 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{326, 791, 893 }}, "employment":[{"organization-name":"Hexviafind","start-date":date("2012-03-20")}]}
-{"id": 717, "alias": "Marcel000717", "name": "Marcel Poley", "user-since": datetime("2006-07-19T04:39:08"), "address": {"street":"16 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{245, 391, 220, 890, 538, 616, 454, 433, 313, 701, 15, 493 }}, "employment":[{"organization-name":"Keytech","start-date":date("2003-10-07"),"end-date":date("2003-04-16")}]}
-{"id": 718, "alias": "Marylyn000718", "name": "Marylyn Henry", "user-since": datetime("2012-02-10T15:56:25"), "address": {"street":"71 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{32 }}, "employment":[{"organization-name":"geomedia","start-date":date("2001-04-27"),"end-date":date("2008-04-28")}]}
-{"id": 719, "alias": "Fortune000719", "name": "Fortune Children", "user-since": datetime("2012-03-22T14:30:00"), "address": {"street":"1 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{373, 259, 133 }}, "employment":[{"organization-name":"Vivaace","start-date":date("2010-01-04")}]}
-{"id": 720, "alias": "Arcelia000720", "name": "Arcelia Carpenter", "user-since": datetime("2013-02-25T15:31:22"), "address": {"street":"17 Hill Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{447, 521, 505, 295, 651, 26, 122, 509, 424, 149, 504, 854, 190, 248, 727, 366 }}, "employment":[{"organization-name":"Canline","start-date":date("2004-03-01"),"end-date":date("2004-12-19")}]}
-{"id": 721, "alias": "Connell000721", "name": "Connell Hindman", "user-since": datetime("2006-08-07T12:03:27"), "address": {"street":"58 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{279, 674 }}, "employment":[{"organization-name":"Ronholdings","start-date":date("2007-06-01")}]}
-{"id": 722, "alias": "Anamaria000722", "name": "Anamaria Poorbaugh", "user-since": datetime("2011-09-21T20:26:27"), "address": {"street":"88 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{457, 131, 145, 185, 219, 455, 332, 618, 854, 838, 872, 816, 438, 405, 83, 373, 516 }}, "employment":[{"organization-name":"Kongreen","start-date":date("2006-03-02"),"end-date":date("2009-07-28")}]}
-{"id": 723, "alias": "Clement000723", "name": "Clement Fuchs", "user-since": datetime("2013-05-16T14:49:02"), "address": {"street":"76 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{1, 444, 795, 239, 233, 686, 99, 384, 110, 160, 319, 622 }}, "employment":[{"organization-name":"Viatechi","start-date":date("2005-02-13")}]}
-{"id": 724, "alias": "Dean000724", "name": "Dean Wire", "user-since": datetime("2005-11-23T12:13:43"), "address": {"street":"60 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{818, 565, 417, 641, 286, 114, 805, 560, 678, 125, 112, 873, 84, 866, 137, 578, 129, 178, 642, 553, 58, 466, 596, 661 }}, "employment":[{"organization-name":"Ganjatax","start-date":date("2000-02-11")}]}
-{"id": 725, "alias": "Kassidy000725", "name": "Kassidy Kistler", "user-since": datetime("2005-07-11T08:34:33"), "address": {"street":"21 Maple St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{661, 567, 397, 90, 597, 645, 801, 48, 275, 298, 670, 182, 744, 130, 60, 372, 115, 682, 427, 166, 757, 177, 438, 340 }}, "employment":[{"organization-name":"Techitechi","start-date":date("2010-01-28"),"end-date":date("2011-07-23")}]}
-{"id": 726, "alias": "Katelyn000726", "name": "Katelyn Morgan", "user-since": datetime("2007-03-07T06:30:06"), "address": {"street":"49 Third Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{112, 641, 492, 759, 661, 727, 220, 68, 371, 561, 77, 622, 804, 111, 596, 118, 870, 675, 436, 705 }}, "employment":[{"organization-name":"Greencare","start-date":date("2004-11-19")}]}
-{"id": 727, "alias": "Norberto000727", "name": "Norberto Callison", "user-since": datetime("2014-04-19T22:13:01"), "address": {"street":"12 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{716, 606, 754, 286 }}, "employment":[{"organization-name":"Kongreen","start-date":date("2007-06-11")}]}
-{"id": 728, "alias": "Darius000728", "name": "Darius Jenkins", "user-since": datetime("2010-12-14T03:10:20"), "address": {"street":"11 Third Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{425, 900, 806, 838, 38, 741, 72, 754, 572, 283 }}, "employment":[{"organization-name":"Newfase","start-date":date("2010-07-03"),"end-date":date("2011-10-26")}]}
-{"id": 729, "alias": "Liz000729", "name": "Liz Cribbs", "user-since": datetime("2013-01-15T22:13:24"), "address": {"street":"59 Third Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{69, 284, 76, 573, 157, 301, 433, 734, 584, 689, 268, 364, 635, 42, 400, 109 }}, "employment":[{"organization-name":"Newhotplus","start-date":date("2004-12-17"),"end-date":date("2004-03-15")}]}
-{"id": 730, "alias": "Linsay000730", "name": "Linsay Hook", "user-since": datetime("2009-12-18T16:37:10"), "address": {"street":"81 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{87, 146, 299, 403 }}, "employment":[{"organization-name":"Zuncan","start-date":date("2004-09-04")}]}
-{"id": 731, "alias": "Leo000731", "name": "Leo Agg", "user-since": datetime("2009-08-24T00:25:02"), "address": {"street":"94 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{824, 621, 245, 520, 156, 713, 808, 885, 747, 882, 23, 258, 433, 518, 330, 120, 542, 832, 651, 162, 342, 445, 813, 373 }}, "employment":[{"organization-name":"ganjalax","start-date":date("2009-09-14")}]}
-{"id": 732, "alias": "Dustin000732", "name": "Dustin Zaun", "user-since": datetime("2006-11-17T09:06:18"), "address": {"street":"98 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{280, 211, 358, 481, 502, 602, 867, 184, 620, 471, 567, 576, 753, 787, 365, 88, 439, 115, 714, 513, 89, 424, 493 }}, "employment":[{"organization-name":"Streettax","start-date":date("2011-05-28"),"end-date":date("2011-01-12")}]}
-{"id": 733, "alias": "Nan000733", "name": "Nan Huey", "user-since": datetime("2012-07-02T15:55:16"), "address": {"street":"66 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{122, 433, 657, 545, 203, 371 }}, "employment":[{"organization-name":"zoomplus","start-date":date("2009-02-19"),"end-date":date("2010-10-04")}]}
-{"id": 734, "alias": "Harve000734", "name": "Harve Tomey", "user-since": datetime("2006-11-26T23:32:34"), "address": {"street":"84 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{39, 789 }}, "employment":[{"organization-name":"Zamcorporation","start-date":date("2007-11-13")}]}
-{"id": 735, "alias": "Windy000735", "name": "Windy Feufer", "user-since": datetime("2010-03-16T16:01:32"), "address": {"street":"30 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{250, 261, 96, 655, 100, 616, 177, 271, 586, 488, 625, 417, 467, 440, 280, 112, 368, 43, 695, 759, 71 }}, "employment":[{"organization-name":"physcane","start-date":date("2003-05-27")}]}
-{"id": 736, "alias": "Jadyn000736", "name": "Jadyn Lalty", "user-since": datetime("2006-01-23T17:00:32"), "address": {"street":"65 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{783, 219, 111, 245, 17, 435, 557, 775, 208, 193, 369, 36, 434, 890, 882, 406, 622, 372, 892 }}, "employment":[{"organization-name":"Streettax","start-date":date("2009-07-11"),"end-date":date("2010-11-13")}]}
-{"id": 737, "alias": "Keysha000737", "name": "Keysha Murray", "user-since": datetime("2009-03-25T00:15:30"), "address": {"street":"34 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{609, 386, 393, 884, 659, 388, 40, 144, 672, 346, 547, 19, 242, 878, 767 }}, "employment":[{"organization-name":"Doncare","start-date":date("2001-08-15"),"end-date":date("2009-05-26")}]}
-{"id": 738, "alias": "Jamel000738", "name": "Jamel Buck", "user-since": datetime("2014-04-10T05:04:01"), "address": {"street":"84 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{159, 283, 334, 325, 777, 472, 369, 302, 752, 521, 457, 247, 894, 284, 870, 191, 790, 751, 624, 76, 344, 211 }}, "employment":[{"organization-name":"Ganjatax","start-date":date("2003-02-03")}]}
-{"id": 739, "alias": "Gil000739", "name": "Gil Olphert", "user-since": datetime("2006-07-24T01:04:11"), "address": {"street":"18 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{450, 745, 366, 512, 110, 757 }}, "employment":[{"organization-name":"geomedia","start-date":date("2008-12-08"),"end-date":date("2011-10-25")}]}
-{"id": 740, "alias": "Claudia000740", "name": "Claudia Cass", "user-since": datetime("2007-12-17T06:02:01"), "address": {"street":"4 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{804, 851, 695, 495, 613, 696, 528, 767, 793, 507, 522, 362, 885, 679, 707 }}, "employment":[{"organization-name":"Rungozoom","start-date":date("2007-01-01")}]}
-{"id": 741, "alias": "Walton000741", "name": "Walton Fields", "user-since": datetime("2014-07-02T12:41:11"), "address": {"street":"43 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{780, 724, 514, 109, 378, 403, 45, 122, 52, 746, 831, 160, 446, 36, 219, 707, 660, 675, 293, 855, 649, 663 }}, "employment":[{"organization-name":"Techitechi","start-date":date("2009-02-10")}]}
-{"id": 742, "alias": "Grady000742", "name": "Grady Thompson", "user-since": datetime("2008-08-07T06:08:27"), "address": {"street":"57 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{722, 774, 677, 773, 593, 425, 729, 740, 708, 754, 713, 333, 250, 671, 453, 543, 309, 82, 583 }}, "employment":[{"organization-name":"Ransaofan","start-date":date("2006-02-04"),"end-date":date("2008-08-16")}]}
-{"id": 743, "alias": "Amaryllis000743", "name": "Amaryllis Weingarten", "user-since": datetime("2008-12-23T23:34:33"), "address": {"street":"78 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{340, 851 }}, "employment":[{"organization-name":"Icerunin","start-date":date("2002-10-21")}]}
-{"id": 744, "alias": "Aleen000744", "name": "Aleen Wood", "user-since": datetime("2006-08-05T04:27:08"), "address": {"street":"3 Main Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{439, 239, 522, 151, 360, 814, 327, 849, 859, 862, 875, 624, 64, 378, 626, 302 }}, "employment":[{"organization-name":"Sumlane","start-date":date("2010-07-21")}]}
-{"id": 745, "alias": "Chun000745", "name": "Chun Albright", "user-since": datetime("2010-09-22T15:05:00"), "address": {"street":"50 Elm Blvd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{275, 240, 80, 490, 322, 68, 540, 544, 888, 82, 300, 230, 652, 722, 788, 547, 277, 550, 885, 776, 179 }}, "employment":[{"organization-name":"Ganjatax","start-date":date("2007-05-02")}]}
-{"id": 746, "alias": "Romayne000746", "name": "Romayne Cypret", "user-since": datetime("2008-12-06T13:29:57"), "address": {"street":"35 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{268, 542, 334, 336, 239, 151, 509, 262, 809, 711, 229, 372, 744, 782, 155, 504, 97, 436, 625, 110, 889 }}, "employment":[{"organization-name":"Hatcom","start-date":date("2003-08-12"),"end-date":date("2003-09-09")}]}
-{"id": 747, "alias": "Tonisha000747", "name": "Tonisha Armstrong", "user-since": datetime("2006-09-06T13:29:11"), "address": {"street":"13 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{31, 536, 566, 447, 37, 587, 562, 657, 300, 715, 429, 94, 189, 802, 19, 284, 603, 55, 178, 605, 368 }}, "employment":[{"organization-name":"Voltbam","start-date":date("2003-11-03")}]}
-{"id": 748, "alias": "Gregg000748", "name": "Gregg Saline", "user-since": datetime("2009-10-16T14:11:11"), "address": {"street":"44 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{708, 368, 69, 450, 797, 818, 612, 749, 581, 546, 805, 567, 575, 266, 804, 487, 402 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2007-10-10")}]}
-{"id": 749, "alias": "Rusty000749", "name": "Rusty Parrish", "user-since": datetime("2009-01-14T20:13:45"), "address": {"street":"69 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{757, 705, 159, 373, 112, 586, 235, 91, 537, 64, 729, 781, 300, 885, 14, 672 }}, "employment":[{"organization-name":"goldendexon","start-date":date("2004-01-21")}]}
-{"id": 750, "alias": "Brad000750", "name": "Brad Philips", "user-since": datetime("2008-12-10T15:52:28"), "address": {"street":"88 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Kongreen","start-date":date("2000-09-16"),"end-date":date("2007-12-26")}]}
-{"id": 751, "alias": "Hazel000751", "name": "Hazel Tavoularis", "user-since": datetime("2006-09-27T16:15:56"), "address": {"street":"93 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{729, 677, 412, 764, 338, 736 }}, "employment":[{"organization-name":"Solophase","start-date":date("2010-02-09")}]}
-{"id": 752, "alias": "Gerry000752", "name": "Gerry Newman", "user-since": datetime("2014-06-12T08:40:31"), "address": {"street":"79 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{741, 132, 815, 784, 52, 655, 43, 336, 645, 880, 49, 646, 408, 99, 216, 806, 197, 831, 265, 164, 293, 526, 270, 864 }}, "employment":[{"organization-name":"Sancone","start-date":date("2006-06-02")}]}
-{"id": 753, "alias": "Leo000753", "name": "Leo Muller", "user-since": datetime("2005-08-21T07:38:28"), "address": {"street":"60 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{635, 829, 882, 367, 884, 509, 870, 573, 517, 47, 75, 330, 872, 417, 189 }}, "employment":[{"organization-name":"Indiex","start-date":date("2012-03-21")}]}
-{"id": 754, "alias": "Sandra000754", "name": "Sandra Ulery", "user-since": datetime("2007-04-26T22:58:40"), "address": {"street":"77 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{369, 866, 55, 219, 769, 550, 546, 445, 472, 723, 190, 671, 642, 515 }}, "employment":[{"organization-name":"Xx-technology","start-date":date("2010-05-24")}]}
-{"id": 755, "alias": "Rodger000755", "name": "Rodger Overstreet", "user-since": datetime("2009-03-26T02:45:11"), "address": {"street":"25 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{0, 885, 479, 93, 730, 646 }}, "employment":[{"organization-name":"Ontohothex","start-date":date("2000-06-22"),"end-date":date("2009-02-02")}]}
-{"id": 756, "alias": "Leanora000756", "name": "Leanora Hiles", "user-since": datetime("2014-08-22T22:16:08"), "address": {"street":"56 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{26, 826, 646, 310, 810, 44, 413, 640, 139, 456, 896, 23, 535, 31, 340, 321, 472 }}, "employment":[{"organization-name":"Newphase","start-date":date("2010-05-13"),"end-date":date("2010-04-03")}]}
-{"id": 757, "alias": "Anemone000757", "name": "Anemone Yeskey", "user-since": datetime("2009-06-23T03:34:17"), "address": {"street":"20 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{736, 777, 843, 242, 498, 555, 624, 186, 867, 675, 449, 564, 644, 357, 728 }}, "employment":[{"organization-name":"Lexicone","start-date":date("2006-08-14")}]}
-{"id": 758, "alias": "Gaenor000758", "name": "Gaenor Mcelroy", "user-since": datetime("2012-08-10T22:02:14"), "address": {"street":"39 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{514, 331, 394, 507, 791, 898, 76, 411 }}, "employment":[{"organization-name":"physcane","start-date":date("2012-02-11")}]}
-{"id": 759, "alias": "Oswald000759", "name": "Oswald Children", "user-since": datetime("2006-01-01T15:56:45"), "address": {"street":"71 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{72, 703, 868, 832, 418, 0, 435, 441, 486, 502, 276, 415, 399, 291, 389, 236, 249, 869, 130, 171, 739, 857, 332 }}, "employment":[{"organization-name":"Lexitechno","start-date":date("2008-12-10")}]}
-{"id": 760, "alias": "Dakota000760", "name": "Dakota Putnam", "user-since": datetime("2005-05-08T02:27:58"), "address": {"street":"4 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{96, 166, 688, 383, 318, 772, 334, 326, 53, 830, 458, 665, 172, 322, 182, 283 }}, "employment":[{"organization-name":"Medflex","start-date":date("2012-07-22")}]}
-{"id": 761, "alias": "Ted000761", "name": "Ted Hughes", "user-since": datetime("2012-03-18T03:46:37"), "address": {"street":"31 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{165, 806, 272, 135, 655, 630, 626, 319, 861, 65, 588, 358, 324, 719, 288, 510, 76, 784, 634, 715, 777, 832, 584 }}, "employment":[{"organization-name":"jaydax","start-date":date("2004-06-04"),"end-date":date("2008-08-21")}]}
-{"id": 762, "alias": "Canute000762", "name": "Canute Swift", "user-since": datetime("2008-11-26T19:49:25"), "address": {"street":"3 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{787, 664, 685, 168, 724, 819, 78, 309, 708, 424, 624, 853, 230, 501, 39 }}, "employment":[{"organization-name":"Streettax","start-date":date("2001-12-17")}]}
-{"id": 763, "alias": "Maranda000763", "name": "Maranda Bickerson", "user-since": datetime("2005-11-10T18:47:11"), "address": {"street":"90 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{216, 127, 384, 466, 122, 409, 295, 217, 669, 196, 479, 767, 383, 630, 734, 251, 898, 771, 715 }}, "employment":[{"organization-name":"Dandamace","start-date":date("2009-06-10")}]}
-{"id": 764, "alias": "Gwenyth000764", "name": "Gwenyth Wylie", "user-since": datetime("2014-05-03T00:36:05"), "address": {"street":"86 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{70, 746, 875, 865, 617, 521, 398, 833, 384, 890, 695, 383 }}, "employment":[{"organization-name":"Strongtone","start-date":date("2004-11-10"),"end-date":date("2008-06-12")}]}
-{"id": 765, "alias": "Mirna000765", "name": "Mirna Wile", "user-since": datetime("2014-01-08T12:57:49"), "address": {"street":"94 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{83, 591, 838, 777, 286, 23, 345, 640, 107, 772, 199, 872, 378, 265, 53 }}, "employment":[{"organization-name":"Xx-technology","start-date":date("2008-10-18"),"end-date":date("2009-01-27")}]}
-{"id": 766, "alias": "Jillie000766", "name": "Jillie Owens", "user-since": datetime("2011-12-04T08:08:23"), "address": {"street":"56 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{834, 471, 277, 525, 825, 95, 570, 789, 348, 398, 518, 859, 534, 227, 887, 242, 395, 720 }}, "employment":[{"organization-name":"Opeelectronics","start-date":date("2000-08-25"),"end-date":date("2011-11-14")}]}
-{"id": 767, "alias": "Stephanie000767", "name": "Stephanie Hoffhants", "user-since": datetime("2012-08-11T15:15:27"), "address": {"street":"79 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{425, 244, 461, 514, 409, 463, 147, 161, 864, 194, 491, 829, 151, 560, 806, 666, 553, 877 }}, "employment":[{"organization-name":"Fax-fax","start-date":date("2000-09-13"),"end-date":date("2004-11-17")}]}
-{"id": 768, "alias": "Hardy000768", "name": "Hardy Fisher", "user-since": datetime("2014-02-12T04:52:35"), "address": {"street":"13 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Goldcity","start-date":date("2009-05-23")}]}
-{"id": 769, "alias": "Vaughn000769", "name": "Vaughn Larson", "user-since": datetime("2010-03-10T17:34:42"), "address": {"street":"59 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{901, 246, 480, 402, 612, 881, 348, 824, 301, 280, 655, 880, 111, 389, 551, 288, 32, 714, 494, 66, 230, 547 }}, "employment":[{"organization-name":"Statcode","start-date":date("2005-04-16"),"end-date":date("2009-06-17")}]}
-{"id": 770, "alias": "Albert000770", "name": "Albert Eve", "user-since": datetime("2009-08-26T08:45:38"), "address": {"street":"8 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{462, 466, 409, 166, 843, 156, 303, 642, 590 }}, "employment":[{"organization-name":"Quoline","start-date":date("2008-06-06")}]}
-{"id": 771, "alias": "Nicolina000771", "name": "Nicolina Reese", "user-since": datetime("2012-01-20T17:12:59"), "address": {"street":"71 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{63, 556, 194, 707, 618, 686, 19, 71 }}, "employment":[{"organization-name":"zoomplus","start-date":date("2011-05-07")}]}
-{"id": 772, "alias": "Porter000772", "name": "Porter Gaskins", "user-since": datetime("2008-08-22T02:45:21"), "address": {"street":"81 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{811, 301, 272, 809, 93, 432, 824, 80, 400, 87, 41, 144, 76, 525, 842, 822, 252, 514, 206, 896, 871 }}, "employment":[{"organization-name":"linedexon","start-date":date("2004-02-06"),"end-date":date("2010-10-09")}]}
-{"id": 773, "alias": "Columban000773", "name": "Columban Pennington", "user-since": datetime("2008-02-09T20:13:35"), "address": {"street":"11 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{366, 632, 708, 655, 14, 748, 605, 217, 401, 559, 681, 796, 261, 891, 383 }}, "employment":[{"organization-name":"whitestreet","start-date":date("2009-11-05"),"end-date":date("2011-03-08")}]}
-{"id": 774, "alias": "Kacie000774", "name": "Kacie Moffat", "user-since": datetime("2009-08-16T00:45:19"), "address": {"street":"82 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{261, 381, 856, 81, 170, 284, 761, 455, 120, 174, 432, 838 }}, "employment":[{"organization-name":"Fix-touch","start-date":date("2012-01-26"),"end-date":date("2012-05-17")}]}
-{"id": 775, "alias": "Bernard000775", "name": "Bernard Bennett", "user-since": datetime("2014-04-24T21:57:56"), "address": {"street":"13 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{318, 166, 753, 505 }}, "employment":[{"organization-name":"Strongtone","start-date":date("2009-07-22"),"end-date":date("2009-01-27")}]}
-{"id": 776, "alias": "Xaviera000776", "name": "Xaviera Zundel", "user-since": datetime("2010-04-10T20:56:06"), "address": {"street":"82 Second Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{18, 606, 564, 787, 573, 647, 352, 753, 809, 493, 8, 135, 357 }}, "employment":[{"organization-name":"tresline","start-date":date("2006-02-19"),"end-date":date("2010-11-10")}]}
-{"id": 777, "alias": "Reina000777", "name": "Reina Park", "user-since": datetime("2009-02-07T02:10:52"), "address": {"street":"48 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{694, 419, 96, 604, 208, 424, 799, 661, 121, 75, 554, 824, 297, 665, 748, 898, 442, 229, 448, 854 }}, "employment":[{"organization-name":"Fixelectrics","start-date":date("2008-06-04")}]}
-{"id": 778, "alias": "Georgia000778", "name": "Georgia Gregory", "user-since": datetime("2014-02-17T18:25:15"), "address": {"street":"59 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{205, 200, 160, 190 }}, "employment":[{"organization-name":"Keytech","start-date":date("2008-07-01")}]}
-{"id": 779, "alias": "Wallis000779", "name": "Wallis Moore", "user-since": datetime("2005-04-23T13:47:19"), "address": {"street":"10 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{58, 749, 425, 387, 524, 599, 337, 626, 885, 163, 709, 795, 725, 547, 8, 370, 416, 691, 600, 733, 768, 819 }}, "employment":[{"organization-name":"silfind","start-date":date("2011-08-13"),"end-date":date("2011-07-15")}]}
-{"id": 780, "alias": "Christopher000780", "name": "Christopher Munson", "user-since": datetime("2013-05-28T14:42:05"), "address": {"street":"76 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{185, 746, 295, 870, 708, 301, 786, 702, 99 }}, "employment":[{"organization-name":"strongex","start-date":date("2009-08-24"),"end-date":date("2011-08-17")}]}
-{"id": 781, "alias": "Florance000781", "name": "Florance Mcindoe", "user-since": datetime("2007-01-26T15:31:57"), "address": {"street":"48 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{309, 457, 674, 459, 399, 486, 47, 344, 474, 427, 41, 814, 343, 129, 619 }}, "employment":[{"organization-name":"Ganjatax","start-date":date("2007-02-21"),"end-date":date("2010-11-23")}]}
-{"id": 782, "alias": "Lyn000782", "name": "Lyn Fuhrer", "user-since": datetime("2011-12-10T18:56:09"), "address": {"street":"91 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{712, 674, 723, 827, 692, 647, 672, 610, 285, 863, 281, 773, 195 }}, "employment":[{"organization-name":"tresline","start-date":date("2012-07-11")}]}
-{"id": 783, "alias": "Humbert000783", "name": "Humbert Polson", "user-since": datetime("2014-03-12T05:24:54"), "address": {"street":"82 Park Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{74, 863, 811, 348, 591, 410, 753, 473, 630, 168, 521, 85 }}, "employment":[{"organization-name":"Basecone","start-date":date("2009-05-13"),"end-date":date("2009-03-24")}]}
-{"id": 784, "alias": "Nancy000784", "name": "Nancy Sanders", "user-since": datetime("2012-11-24T13:57:02"), "address": {"street":"68 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{304, 824, 844, 245, 115, 344, 322, 519, 862, 533, 607, 26, 798, 563, 177, 796, 160 }}, "employment":[{"organization-name":"Techitechi","start-date":date("2010-06-11")}]}
-{"id": 785, "alias": "Tabby000785", "name": "Tabby Hujsak", "user-since": datetime("2007-03-27T13:09:00"), "address": {"street":"84 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{389, 304, 83, 767, 97, 518, 12, 423, 696, 883, 8, 547, 307, 642, 854, 274, 141 }}, "employment":[{"organization-name":"Sanjodax","start-date":date("2007-07-25"),"end-date":date("2007-06-24")}]}
-{"id": 786, "alias": "Kat000786", "name": "Kat Hindman", "user-since": datetime("2008-10-20T19:43:20"), "address": {"street":"83 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{780, 830, 127, 565, 705, 759, 17 }}, "employment":[{"organization-name":"Zuncan","start-date":date("2002-07-26"),"end-date":date("2003-07-23")}]}
-{"id": 787, "alias": "Candi000787", "name": "Candi Casteel", "user-since": datetime("2011-04-24T16:21:19"), "address": {"street":"14 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{734, 458 }}, "employment":[{"organization-name":"Latsonity","start-date":date("2008-06-13")}]}
-{"id": 788, "alias": "Juan000788", "name": "Juan Dealtry", "user-since": datetime("2008-12-21T10:27:48"), "address": {"street":"88 Hill Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{861, 504, 129, 317, 680, 102, 212, 563, 164, 650, 171, 454, 473, 12 }}, "employment":[{"organization-name":"highfax","start-date":date("2004-02-11"),"end-date":date("2009-03-12")}]}
-{"id": 789, "alias": "Preston000789", "name": "Preston Wile", "user-since": datetime("2013-12-04T08:02:09"), "address": {"street":"36 Park Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{481, 553, 800, 867, 368, 339, 618 }}, "employment":[{"organization-name":"strongex","start-date":date("2008-11-26")}]}
-{"id": 790, "alias": "Garrick000790", "name": "Garrick Rahl", "user-since": datetime("2006-08-26T18:59:25"), "address": {"street":"34 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{540, 498, 353, 148, 275, 52, 78, 495, 23, 798, 643, 73, 757, 589, 238, 752 }}, "employment":[{"organization-name":"Hatcom","start-date":date("2001-05-02"),"end-date":date("2002-08-22")}]}
-{"id": 791, "alias": "Hardy000791", "name": "Hardy Warner", "user-since": datetime("2010-06-12T18:24:22"), "address": {"street":"96 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{558, 241, 260, 836, 127, 479, 598, 417, 798, 21, 287, 253, 851, 143, 525, 373, 832, 464, 262, 840 }}, "employment":[{"organization-name":"Ontotanin","start-date":date("2001-08-10"),"end-date":date("2011-06-21")}]}
-{"id": 792, "alias": "Viola000792", "name": "Viola Weisgarber", "user-since": datetime("2007-08-06T03:28:15"), "address": {"street":"72 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{383, 242, 51, 684, 687, 695, 114, 785, 719, 96, 48, 227, 389, 688, 34, 805, 90, 351, 119, 105, 691, 892, 615, 478 }}, "employment":[{"organization-name":"Doncare","start-date":date("2010-05-04")}]}
-{"id": 793, "alias": "Gail000793", "name": "Gail Hoffhants", "user-since": datetime("2010-03-10T04:48:28"), "address": {"street":"49 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{325, 692, 279 }}, "employment":[{"organization-name":"Villa-tech","start-date":date("2006-01-17")}]}
-{"id": 794, "alias": "Gaylord000794", "name": "Gaylord Porter", "user-since": datetime("2013-09-15T01:38:02"), "address": {"street":"5 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{805, 245, 300, 421, 316, 477, 778, 73, 438, 491, 334, 95, 770, 763, 195, 759, 711, 59, 523 }}, "employment":[{"organization-name":"Icerunin","start-date":date("2003-05-05")}]}
-{"id": 795, "alias": "Jon000795", "name": "Jon Maclagan", "user-since": datetime("2014-04-22T14:34:07"), "address": {"street":"95 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{687, 427, 501, 610, 143, 460, 344, 122, 352, 408, 123, 79, 577, 81, 873, 209, 106, 517, 388, 271, 316, 736 }}, "employment":[{"organization-name":"Basecone","start-date":date("2005-04-22"),"end-date":date("2011-11-06")}]}
-{"id": 796, "alias": "Freeman000796", "name": "Freeman Swabey", "user-since": datetime("2007-07-17T09:00:30"), "address": {"street":"65 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{278, 123, 684, 16, 323, 778, 17, 490, 873, 353, 741, 766, 112, 833, 440, 569, 641, 795, 533, 782 }}, "employment":[{"organization-name":"subtam","start-date":date("2007-02-17"),"end-date":date("2009-04-06")}]}
-{"id": 797, "alias": "Bessie000797", "name": "Bessie Ashmore", "user-since": datetime("2012-04-02T12:39:28"), "address": {"street":"10 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{54, 172, 131, 877, 840 }}, "employment":[{"organization-name":"Dandamace","start-date":date("2001-01-24")}]}
-{"id": 798, "alias": "Jenny000798", "name": "Jenny James", "user-since": datetime("2007-12-27T20:17:52"), "address": {"street":"96 Park Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{625, 136, 771, 474, 891, 273, 237, 852, 862, 379, 409 }}, "employment":[{"organization-name":"Greencare","start-date":date("2008-04-25")}]}
-{"id": 799, "alias": "Sylvana000799", "name": "Sylvana Zimmer", "user-since": datetime("2008-07-19T09:28:04"), "address": {"street":"59 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{484, 677, 672, 781, 822, 112, 529, 167, 3, 452, 834, 830, 407 }}, "employment":[{"organization-name":"Techitechi","start-date":date("2007-04-19")}]}
-{"id": 800, "alias": "Oneida000800", "name": "Oneida Morgan", "user-since": datetime("2010-12-14T10:22:18"), "address": {"street":"3 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{327, 442, 323, 697, 129, 466, 505, 183, 8, 764, 799, 774, 568, 288, 342, 245, 344, 219 }}, "employment":[{"organization-name":"Newhotplus","start-date":date("2000-12-14")}]}
-{"id": 801, "alias": "Alayna000801", "name": "Alayna Garratt", "user-since": datetime("2014-01-18T20:50:45"), "address": {"street":"85 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{474, 287, 645, 469, 586, 580, 207, 79, 138 }}, "employment":[{"organization-name":"Scotcity","start-date":date("2012-03-15"),"end-date":date("2012-03-12")}]}
-{"id": 802, "alias": "Dwight000802", "name": "Dwight Hatfield", "user-since": datetime("2010-01-02T06:53:49"), "address": {"street":"50 First St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{82, 147, 6, 661, 610, 185, 261, 17, 38, 407, 197, 649, 93, 701, 330, 377, 736, 606, 556, 852, 417, 777 }}, "employment":[{"organization-name":"Solophase","start-date":date("2001-07-11")}]}
-{"id": 803, "alias": "Leann000803", "name": "Leann Dryfus", "user-since": datetime("2013-09-21T13:05:07"), "address": {"street":"38 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{541, 709, 805, 145, 100 }}, "employment":[{"organization-name":"Ontohothex","start-date":date("2004-10-27"),"end-date":date("2011-10-10")}]}
-{"id": 804, "alias": "Phyllida000804", "name": "Phyllida Dealtry", "user-since": datetime("2011-07-19T07:08:32"), "address": {"street":"63 First St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{733, 628, 686, 281, 661, 366, 770, 624, 65, 349 }}, "employment":[{"organization-name":"Dancode","start-date":date("2003-10-05"),"end-date":date("2008-09-02")}]}
-{"id": 805, "alias": "Beulah000805", "name": "Beulah Weidemann", "user-since": datetime("2014-06-08T22:22:38"), "address": {"street":"2 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{783, 67, 118, 266, 707, 190, 308, 534, 873, 758, 630, 785, 648, 394, 362, 420, 220, 239, 643, 85, 106, 685 }}, "employment":[{"organization-name":"Solophase","start-date":date("2005-11-19"),"end-date":date("2009-10-18")}]}
-{"id": 806, "alias": "Janis000806", "name": "Janis Parrish", "user-since": datetime("2005-03-26T12:45:13"), "address": {"street":"37 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{50, 87, 292, 640, 698, 141, 832 }}, "employment":[{"organization-name":"Qvohouse","start-date":date("2010-06-04")}]}
-{"id": 807, "alias": "Towanda000807", "name": "Towanda Day", "user-since": datetime("2013-07-21T21:33:29"), "address": {"street":"94 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{169, 535, 247, 882, 624, 701, 139, 789, 447 }}, "employment":[{"organization-name":"Basecone","start-date":date("2011-06-22")}]}
-{"id": 808, "alias": "Andres000808", "name": "Andres Lombardi", "user-since": datetime("2008-11-26T22:17:02"), "address": {"street":"58 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{111, 88, 282, 696, 454, 855, 316, 604, 303, 589 }}, "employment":[{"organization-name":"Medflex","start-date":date("2006-02-15"),"end-date":date("2010-08-28")}]}
-{"id": 809, "alias": "Stefanie000809", "name": "Stefanie Linton", "user-since": datetime("2014-08-27T00:28:27"), "address": {"street":"65 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{493, 131, 448, 452, 835, 19, 419, 149, 659, 395, 105, 247, 133, 539, 437, 302, 6, 406, 861, 213, 694 }}, "employment":[{"organization-name":"highfax","start-date":date("2005-06-15"),"end-date":date("2010-06-23")}]}
-{"id": 810, "alias": "Alvina000810", "name": "Alvina Birdsall", "user-since": datetime("2013-11-24T16:54:55"), "address": {"street":"5 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{758, 732, 218, 787, 4, 338, 619, 115, 200, 868, 138, 187, 226, 495, 896, 55, 177, 375, 231, 370, 529, 342, 881, 590 }}, "employment":[{"organization-name":"Ontohothex","start-date":date("2008-06-13")}]}
-{"id": 811, "alias": "Kermit000811", "name": "Kermit Fuchs", "user-since": datetime("2007-10-13T14:42:30"), "address": {"street":"50 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{641, 34, 220, 7, 210, 774, 382, 695, 685, 277, 569 }}, "employment":[{"organization-name":"Zununoing","start-date":date("2001-04-09")}]}
-{"id": 812, "alias": "Alix000812", "name": "Alix Mcelroy", "user-since": datetime("2007-04-21T01:57:13"), "address": {"street":"77 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{620, 38, 220, 19, 416, 683, 240 }}, "employment":[{"organization-name":"Fix-touch","start-date":date("2000-05-06"),"end-date":date("2002-12-20")}]}
-{"id": 813, "alias": "Clint000813", "name": "Clint Bode", "user-since": datetime("2005-12-27T12:50:07"), "address": {"street":"92 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{711, 557, 335, 627, 726, 70, 349, 451, 608, 5, 387, 543, 638, 881, 738, 817, 575, 220, 646, 150, 745 }}, "employment":[{"organization-name":"linedexon","start-date":date("2011-04-02"),"end-date":date("2011-01-05")}]}
-{"id": 814, "alias": "Alysha000814", "name": "Alysha Beard", "user-since": datetime("2008-03-23T07:53:08"), "address": {"street":"7 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{605, 546, 880, 373, 616, 237, 19, 248, 863, 1, 675, 120, 148, 737, 163, 878, 267, 348, 497, 13, 890, 41, 861 }}, "employment":[{"organization-name":"Ontohothex","start-date":date("2006-06-02")}]}
-{"id": 815, "alias": "Francene000815", "name": "Francene Edwards", "user-since": datetime("2005-11-10T12:02:59"), "address": {"street":"20 Hill Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{845, 752, 440, 668, 387, 16, 677, 582, 139, 438, 720, 893, 26, 763, 153, 436, 435, 39, 338, 671, 635, 794, 706, 252 }}, "employment":[{"organization-name":"Villa-tech","start-date":date("2000-09-19")}]}
-{"id": 816, "alias": "Shavon000816", "name": "Shavon Buehler", "user-since": datetime("2008-01-04T19:15:59"), "address": {"street":"18 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{637, 728, 704, 769, 570, 20, 798, 838, 597 }}, "employment":[{"organization-name":"Transhigh","start-date":date("2008-01-18")}]}
-{"id": 817, "alias": "Martie000817", "name": "Martie Warner", "user-since": datetime("2006-05-22T21:29:38"), "address": {"street":"96 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{868, 327, 560, 27, 873, 590, 336, 97, 49, 284, 378, 241 }}, "employment":[{"organization-name":"Zamcorporation","start-date":date("2009-01-15"),"end-date":date("2010-05-04")}]}
-{"id": 818, "alias": "Irish000818", "name": "Irish Larson", "user-since": datetime("2006-11-19T02:48:11"), "address": {"street":"26 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{412, 420, 831, 213, 755, 711, 512, 865, 753, 789, 295 }}, "employment":[{"organization-name":"Tranzap","start-date":date("2000-08-12"),"end-date":date("2002-05-05")}]}
-{"id": 819, "alias": "Valerie000819", "name": "Valerie Roadman", "user-since": datetime("2008-08-02T16:34:22"), "address": {"street":"57 Hill Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{519, 849, 344, 5, 853, 453, 699, 211, 310, 49, 574, 445, 298, 51, 389, 797, 471, 496, 318, 314, 886, 189, 331 }}, "employment":[{"organization-name":"Inchdox","start-date":date("2007-05-23")}]}
-{"id": 820, "alias": "Christa000820", "name": "Christa Seelig", "user-since": datetime("2006-01-09T09:22:30"), "address": {"street":"83 First St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{187, 175, 690, 772 }}, "employment":[{"organization-name":"Plexlane","start-date":date("2011-11-11"),"end-date":date("2011-01-19")}]}
-{"id": 821, "alias": "Dwight000821", "name": "Dwight Osterwise", "user-since": datetime("2007-12-05T15:19:39"), "address": {"street":"37 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{889, 140, 706, 300, 606, 841, 322, 479, 668, 135, 315, 737, 477, 238, 391, 226 }}, "employment":[{"organization-name":"Roundhex","start-date":date("2002-08-15")}]}
-{"id": 822, "alias": "Deneen000822", "name": "Deneen Draudy", "user-since": datetime("2013-02-05T23:56:18"), "address": {"street":"49 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{680, 138, 310, 760, 300, 454, 374, 463, 813, 635, 639, 891, 768, 446, 705 }}, "employment":[{"organization-name":"Kanelectrics","start-date":date("2007-08-16")}]}
-{"id": 823, "alias": "Stacia000823", "name": "Stacia Felbrigge", "user-since": datetime("2011-10-03T15:40:35"), "address": {"street":"84 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{387, 35, 359, 340, 813, 690, 27 }}, "employment":[{"organization-name":"Hatcom","start-date":date("2006-02-06")}]}
-{"id": 824, "alias": "Genie000824", "name": "Genie Zundel", "user-since": datetime("2005-01-14T06:54:42"), "address": {"street":"51 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{177, 775, 51, 711, 164, 661, 691, 1, 587, 300, 450, 544, 895, 220, 856, 497, 542, 530, 679, 649 }}, "employment":[{"organization-name":"Zuncan","start-date":date("2012-01-18")}]}
-{"id": 825, "alias": "Weston000825", "name": "Weston Gregory", "user-since": datetime("2007-10-18T15:10:37"), "address": {"street":"37 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{129, 494, 556, 698, 252, 736, 61, 483, 434, 636, 792, 670, 887, 801, 591, 540, 595 }}, "employment":[{"organization-name":"Vaiatech","start-date":date("2001-02-01"),"end-date":date("2007-02-09")}]}
-{"id": 826, "alias": "Jarod000826", "name": "Jarod Parrish", "user-since": datetime("2012-05-05T09:19:42"), "address": {"street":"70 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{606, 808, 432, 725, 257, 50, 43, 197, 79, 68, 129, 200, 417, 116, 572, 55 }}, "employment":[{"organization-name":"Plexlane","start-date":date("2003-12-24"),"end-date":date("2005-08-17")}]}
-{"id": 827, "alias": "Annabell000827", "name": "Annabell Yates", "user-since": datetime("2005-07-17T13:37:13"), "address": {"street":"10 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{117, 679, 204, 459, 544, 255, 73, 4 }}, "employment":[{"organization-name":"Tripplelane","start-date":date("2000-03-12")}]}
-{"id": 828, "alias": "Beatrix000828", "name": "Beatrix Woolery", "user-since": datetime("2014-05-12T05:43:38"), "address": {"street":"99 Hill Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{249, 194, 432, 276, 506, 883, 578 }}, "employment":[{"organization-name":"Tripplelane","start-date":date("2002-09-27"),"end-date":date("2011-06-26")}]}
-{"id": 829, "alias": "Marisha000829", "name": "Marisha Swift", "user-since": datetime("2008-09-16T22:18:45"), "address": {"street":"78 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{883, 439, 685, 152, 201 }}, "employment":[{"organization-name":"Hot-tech","start-date":date("2008-09-17")}]}
-{"id": 830, "alias": "Quincey000830", "name": "Quincey Woollard", "user-since": datetime("2006-06-22T02:14:06"), "address": {"street":"19 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{139, 363, 423, 412, 476, 163, 869, 749, 45, 131, 747, 264, 667, 69, 480, 147, 460 }}, "employment":[{"organization-name":"Ontotanin","start-date":date("2001-10-20")}]}
-{"id": 831, "alias": "Britton000831", "name": "Britton Schuck", "user-since": datetime("2005-05-19T05:50:16"), "address": {"street":"30 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{528, 392 }}, "employment":[{"organization-name":"Latsonity","start-date":date("2000-05-07")}]}
-{"id": 832, "alias": "Jaye000832", "name": "Jaye Lineman", "user-since": datetime("2010-09-12T10:07:50"), "address": {"street":"35 Maple St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{187, 573, 688, 256, 44, 449, 767, 470, 347, 854, 758, 855, 809, 805, 495 }}, "employment":[{"organization-name":"Zuncan","start-date":date("2000-10-11"),"end-date":date("2011-08-15")}]}
-{"id": 833, "alias": "Lilac000833", "name": "Lilac Eisenhart", "user-since": datetime("2011-10-23T09:34:58"), "address": {"street":"41 Second Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{377, 809, 13, 616, 846, 691, 743, 592, 670, 853, 568, 358 }}, "employment":[{"organization-name":"Rungozoom","start-date":date("2010-07-18")}]}
-{"id": 834, "alias": "Maurice000834", "name": "Maurice Countryman", "user-since": datetime("2007-01-22T15:07:10"), "address": {"street":"88 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{614, 743, 340, 215, 438, 114, 652, 20, 326, 491, 150, 815, 528, 184, 472 }}, "employment":[{"organization-name":"Codetechno","start-date":date("2009-09-10")}]}
-{"id": 835, "alias": "Reuben000835", "name": "Reuben Smith", "user-since": datetime("2010-08-01T18:50:28"), "address": {"street":"61 Elm Blvd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{28, 697, 208, 497, 134, 707, 94, 60, 350, 190, 656, 422, 23, 775, 101, 160, 643, 542, 365, 144 }}, "employment":[{"organization-name":"Technohow","start-date":date("2012-08-15"),"end-date":date("2012-08-22")}]}
-{"id": 836, "alias": "Linnette000836", "name": "Linnette Dugmore", "user-since": datetime("2006-08-16T20:56:10"), "address": {"street":"38 Maple St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{683, 467, 439, 285 }}, "employment":[{"organization-name":"ganjalax","start-date":date("2012-03-08")}]}
-{"id": 837, "alias": "Gertrude000837", "name": "Gertrude Lazzo", "user-since": datetime("2011-04-21T00:40:18"), "address": {"street":"43 Elm Blvd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{314, 281, 700, 263, 222, 484, 872, 814, 302 }}, "employment":[{"organization-name":"Basecone","start-date":date("2001-11-13")}]}
-{"id": 838, "alias": "Simon000838", "name": "Simon Margaret", "user-since": datetime("2008-08-02T19:50:38"), "address": {"street":"79 Lake Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{298, 295, 191, 546, 875, 815, 12, 552, 684, 387, 323, 136, 424 }}, "employment":[{"organization-name":"Zuncan","start-date":date("2011-06-19"),"end-date":date("2011-11-10")}]}
-{"id": 839, "alias": "Alline000839", "name": "Alline Foster", "user-since": datetime("2009-11-20T11:03:35"), "address": {"street":"97 Elm Blvd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{875, 510 }}, "employment":[{"organization-name":"Icerunin","start-date":date("2006-09-23")}]}
-{"id": 840, "alias": "Kazuko000840", "name": "Kazuko Brown", "user-since": datetime("2011-07-23T03:59:11"), "address": {"street":"87 Maple St.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{865, 720, 374, 63, 444, 53, 619, 339, 419, 622, 153, 273, 580, 816, 210, 656, 516, 258, 761, 4, 280, 833, 243, 272 }}, "employment":[{"organization-name":"Newfase","start-date":date("2007-06-09"),"end-date":date("2007-06-05")}]}
-{"id": 841, "alias": "Ria000841", "name": "Ria Goldvogel", "user-since": datetime("2008-09-24T11:19:05"), "address": {"street":"43 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{867, 182, 467, 139, 695, 245, 654, 576, 753, 653, 842, 651, 901, 42, 726, 424, 329, 853, 570, 38, 851, 689, 593 }}, "employment":[{"organization-name":"Y-geohex","start-date":date("2008-12-13")}]}
-{"id": 842, "alias": "Nenita000842", "name": "Nenita Bard", "user-since": datetime("2011-05-23T11:33:47"), "address": {"street":"12 Elm Blvd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{519, 313, 710, 84, 335, 123, 378, 407, 35, 318, 783, 661, 559, 15, 188, 733, 19, 814, 370, 761, 466, 590 }}, "employment":[{"organization-name":"U-electrics","start-date":date("2005-11-01"),"end-date":date("2006-05-14")}]}
-{"id": 843, "alias": "Tammie000843", "name": "Tammie Glover", "user-since": datetime("2010-07-18T16:21:08"), "address": {"street":"6 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{205, 778, 401, 414, 555, 758, 645, 689, 636, 284, 183, 234, 192, 357, 529, 166, 532, 329, 714, 260, 97, 293, 635 }}, "employment":[{"organization-name":"Ranhotfan","start-date":date("2004-02-24"),"end-date":date("2010-03-06")}]}
-{"id": 844, "alias": "Silvestra000844", "name": "Silvestra Kifer", "user-since": datetime("2008-02-28T09:01:48"), "address": {"street":"70 Park Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{200, 514, 306, 423, 823, 302, 274, 263, 477, 738, 296, 314, 877, 681, 706, 91, 377, 47, 243, 20, 327, 159, 614, 469 }}, "employment":[{"organization-name":"Qvohouse","start-date":date("2005-01-21")}]}
-{"id": 845, "alias": "Latanya000845", "name": "Latanya Whitehead", "user-since": datetime("2007-12-24T19:11:00"), "address": {"street":"98 Main Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{696, 644, 201, 571, 345, 771, 648, 790, 879, 303, 707, 439, 360, 502, 432, 184, 452 }}, "employment":[{"organization-name":"Ontohothex","start-date":date("2011-07-23"),"end-date":date("2011-12-21")}]}
-{"id": 846, "alias": "Maurine000846", "name": "Maurine Alcocke", "user-since": datetime("2007-10-25T18:55:43"), "address": {"street":"48 First St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{370, 791, 545, 541, 569, 497, 899, 85, 302, 358, 759, 793, 699 }}, "employment":[{"organization-name":"Fix-touch","start-date":date("2004-09-11")}]}
-{"id": 847, "alias": "Lupita000847", "name": "Lupita Rader", "user-since": datetime("2012-04-23T08:46:32"), "address": {"street":"16 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{309, 593, 612, 215, 376, 400, 121, 401, 387, 624, 383, 691, 845, 165, 464, 79, 467, 796, 564, 119, 363, 394, 362 }}, "employment":[{"organization-name":"Inchex","start-date":date("2000-01-25")}]}
-{"id": 848, "alias": "Carmelo000848", "name": "Carmelo Stephenson", "user-since": datetime("2014-04-08T16:04:52"), "address": {"street":"19 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{595, 338, 841, 266 }}, "employment":[{"organization-name":"Streettax","start-date":date("2002-04-11"),"end-date":date("2007-07-24")}]}
-{"id": 849, "alias": "Milda000849", "name": "Milda Sherlock", "user-since": datetime("2005-02-24T10:44:43"), "address": {"street":"6 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{8, 413, 766, 145, 82, 305, 326, 579, 63, 591, 411, 857, 605, 206, 576, 759, 227, 94, 346, 102, 468, 700, 729 }}, "employment":[{"organization-name":"Streettax","start-date":date("2011-12-11"),"end-date":date("2011-05-12")}]}
-{"id": 850, "alias": "Brendan000850", "name": "Brendan Erskine", "user-since": datetime("2009-09-17T08:22:21"), "address": {"street":"21 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{680, 46, 246, 483, 857, 536, 829, 105, 457, 381, 372, 767, 813, 851, 493, 357, 85, 92 }}, "employment":[{"organization-name":"Ronholdings","start-date":date("2005-11-15")}]}
-{"id": 851, "alias": "Aleisha000851", "name": "Aleisha Thompson", "user-since": datetime("2007-06-11T19:14:07"), "address": {"street":"75 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{309, 46, 382, 96, 500, 182, 375, 365, 495, 896, 84, 807, 271, 868 }}, "employment":[{"organization-name":"Quadlane","start-date":date("2009-05-03"),"end-date":date("2009-03-02")}]}
-{"id": 852, "alias": "Andres000852", "name": "Andres Mang", "user-since": datetime("2009-10-06T22:42:25"), "address": {"street":"38 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{362, 749, 756 }}, "employment":[{"organization-name":"Sumlane","start-date":date("2010-11-06")}]}
-{"id": 853, "alias": "Marlena000853", "name": "Marlena Fraser", "user-since": datetime("2008-04-06T22:09:44"), "address": {"street":"74 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{892, 665, 869, 737, 581, 124, 35, 0, 675, 540, 799, 328, 617, 145, 901, 195, 734, 769, 596 }}, "employment":[{"organization-name":"Hatcom","start-date":date("2009-02-12"),"end-date":date("2011-01-01")}]}
-{"id": 854, "alias": "Guiscard000854", "name": "Guiscard Buck", "user-since": datetime("2008-10-10T15:27:31"), "address": {"street":"79 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{167, 179, 287, 366, 171, 542, 884, 762, 500, 648, 779, 581, 176, 403, 736, 688, 419, 858, 629, 814 }}, "employment":[{"organization-name":"silfind","start-date":date("2001-10-09")}]}
-{"id": 855, "alias": "Luke000855", "name": "Luke Ream", "user-since": datetime("2010-01-19T19:57:51"), "address": {"street":"73 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{500 }}, "employment":[{"organization-name":"Xx-drill","start-date":date("2006-09-20"),"end-date":date("2007-04-12")}]}
-{"id": 856, "alias": "Tarquin000856", "name": "Tarquin Friedline", "user-since": datetime("2012-03-09T10:35:25"), "address": {"street":"61 Main Rd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{258, 240, 419, 505, 298, 814, 205, 209, 742, 18, 356, 131, 323, 2, 538, 491, 311, 690, 861, 352, 884, 530 }}, "employment":[{"organization-name":"Voltlane","start-date":date("2002-12-15"),"end-date":date("2010-03-19")}]}
-{"id": 857, "alias": "Rhianna000857", "name": "Rhianna Rosenstiehl", "user-since": datetime("2010-04-24T22:39:02"), "address": {"street":"47 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{292, 171, 500, 634, 350, 54, 466, 202, 330, 71, 22, 354, 641, 344, 802, 727, 307, 624, 179, 194, 531, 791, 135, 689 }}, "employment":[{"organization-name":"over-it","start-date":date("2010-01-13")}]}
-{"id": 858, "alias": "Adam000858", "name": "Adam Roose", "user-since": datetime("2011-05-23T19:57:13"), "address": {"street":"55 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{296, 839, 20, 894 }}, "employment":[{"organization-name":"Solfix","start-date":date("2007-12-13")}]}
-{"id": 859, "alias": "Becky000859", "name": "Becky Carr", "user-since": datetime("2010-12-17T21:45:50"), "address": {"street":"22 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{352, 256, 520, 711, 698 }}, "employment":[{"organization-name":"Lexicone","start-date":date("2000-08-13"),"end-date":date("2011-05-14")}]}
-{"id": 860, "alias": "Brack000860", "name": "Brack James", "user-since": datetime("2005-10-18T04:29:22"), "address": {"street":"99 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{611, 552, 478, 747 }}, "employment":[{"organization-name":"strongex","start-date":date("2004-02-03")}]}
-{"id": 861, "alias": "Deborah000861", "name": "Deborah Handyside", "user-since": datetime("2011-09-16T13:05:31"), "address": {"street":"45 Third Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{805, 739 }}, "employment":[{"organization-name":"Dandamace","start-date":date("2006-06-22")}]}
-{"id": 862, "alias": "Vin000862", "name": "Vin Cass", "user-since": datetime("2006-01-26T09:35:02"), "address": {"street":"73 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{875, 45, 508, 526, 144, 810 }}, "employment":[{"organization-name":"Codetechno","start-date":date("2008-03-15")}]}
-{"id": 863, "alias": "Nolene000863", "name": "Nolene Levett", "user-since": datetime("2009-09-21T08:46:54"), "address": {"street":"17 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{813, 787, 478, 455, 571, 819 }}, "employment":[{"organization-name":"Transhigh","start-date":date("2010-02-05")}]}
-{"id": 864, "alias": "Wesley000864", "name": "Wesley Sholl", "user-since": datetime("2006-09-28T16:56:36"), "address": {"street":"57 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{461, 45, 587, 777 }}, "employment":[{"organization-name":"Zuncan","start-date":date("2002-02-28")}]}
-{"id": 865, "alias": "Adrian000865", "name": "Adrian Vinsant", "user-since": datetime("2011-10-01T12:30:15"), "address": {"street":"41 Park Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{490, 45, 816, 402, 81, 706, 730, 812, 285, 562, 31, 461, 395, 91, 794, 486, 296, 65, 506, 113, 810, 488, 564, 476 }}, "employment":[{"organization-name":"Trustbam","start-date":date("2010-03-01"),"end-date":date("2010-10-26")}]}
-{"id": 866, "alias": "Anjelica000866", "name": "Anjelica Woodworth", "user-since": datetime("2011-05-03T03:36:33"), "address": {"street":"28 Second Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{809, 262, 415, 729 }}, "employment":[{"organization-name":"Indiex","start-date":date("2008-04-19")}]}
-{"id": 867, "alias": "Jody000867", "name": "Jody Bard", "user-since": datetime("2008-09-02T11:44:38"), "address": {"street":"81 Second Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{254, 612, 213, 837, 886, 597 }}, "employment":[{"organization-name":"Transhigh","start-date":date("2010-05-06"),"end-date":date("2010-02-05")}]}
-{"id": 868, "alias": "Jodi000868", "name": "Jodi Whittier", "user-since": datetime("2012-03-22T02:55:13"), "address": {"street":"87 Main Rd.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{875, 54, 874, 308, 329, 723, 701, 124, 825, 810, 209, 851, 332, 10, 15, 461, 4, 81, 582, 762, 125 }}, "employment":[{"organization-name":"Dancode","start-date":date("2012-03-19")}]}
-{"id": 869, "alias": "Gerard000869", "name": "Gerard Nehling", "user-since": datetime("2006-10-13T03:30:15"), "address": {"street":"39 Third Ave.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{629, 747, 849, 889, 255, 728, 462, 658, 91, 460, 717, 768, 220, 138, 659, 810, 336, 234, 541, 251, 674 }}, "employment":[{"organization-name":"Kanelectrics","start-date":date("2011-04-04"),"end-date":date("2011-12-14")}]}
-{"id": 870, "alias": "Romana000870", "name": "Romana Sullivan", "user-since": datetime("2012-01-23T01:55:24"), "address": {"street":"2 Third Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{143, 842, 455, 113, 254, 160, 803, 189, 200, 748, 347, 396 }}, "employment":[{"organization-name":"Vaiatech","start-date":date("2008-06-26")}]}
-{"id": 871, "alias": "Tolly000871", "name": "Tolly Eckhardstein", "user-since": datetime("2010-03-11T01:49:23"), "address": {"street":"6 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{702, 78, 165, 575, 108 }}, "employment":[{"organization-name":"zoomplus","start-date":date("2006-05-16")}]}
-{"id": 872, "alias": "Ewart000872", "name": "Ewart Ullman", "user-since": datetime("2009-01-02T18:49:11"), "address": {"street":"61 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{302, 900, 175, 896, 167, 322, 225, 367, 114, 135, 526, 499, 268, 589, 679, 729, 287 }}, "employment":[{"organization-name":"Voltbam","start-date":date("2007-05-13"),"end-date":date("2009-03-01")}]}
-{"id": 873, "alias": "Margarito000873", "name": "Margarito Ehret", "user-since": datetime("2007-03-18T00:30:06"), "address": {"street":"49 Third Ave.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{629, 298, 499, 533, 199, 881, 162, 13, 368, 429, 107, 503, 737, 725, 825, 676 }}, "employment":[{"organization-name":"Ronholdings","start-date":date("2002-10-25")}]}
-{"id": 874, "alias": "Marisol000874", "name": "Marisol Muller", "user-since": datetime("2010-05-02T07:03:02"), "address": {"street":"57 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{331, 674, 375, 649, 761, 527, 783, 53, 548, 793, 305, 405, 488, 434, 147, 626, 781, 370, 293 }}, "employment":[{"organization-name":"Tranzap","start-date":date("2005-05-15"),"end-date":date("2006-04-02")}]}
-{"id": 875, "alias": "Troy000875", "name": "Troy Hoopengarner", "user-since": datetime("2005-05-27T00:21:01"), "address": {"street":"11 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{464, 315, 393, 422, 209, 561, 717 }}, "employment":[{"organization-name":"jaydax","start-date":date("2004-12-03")}]}
-{"id": 876, "alias": "Cherlyn000876", "name": "Cherlyn Taggart", "user-since": datetime("2011-02-08T08:41:46"), "address": {"street":"36 Main Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{54, 225, 659, 621, 535, 69, 760, 803, 0, 415, 896, 56, 464, 111, 71, 122, 871 }}, "employment":[{"organization-name":"Fax-fax","start-date":date("2006-08-10"),"end-date":date("2010-10-15")}]}
-{"id": 877, "alias": "Ty000877", "name": "Ty Byers", "user-since": datetime("2010-10-09T04:48:35"), "address": {"street":"77 Second Ave.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{415, 803, 386, 139, 510, 743, 894, 244, 767, 37, 63, 479, 562, 284, 402 }}, "employment":[{"organization-name":"Sumlane","start-date":date("2011-01-25")}]}
-{"id": 878, "alias": "Krystle000878", "name": "Krystle Ashmore", "user-since": datetime("2009-11-10T04:34:25"), "address": {"street":"39 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{92, 845, 402, 774, 111, 160, 143 }}, "employment":[{"organization-name":"Newhotplus","start-date":date("2001-03-22"),"end-date":date("2002-11-04")}]}
-{"id": 879, "alias": "Wren000879", "name": "Wren Woodworth", "user-since": datetime("2006-04-18T20:09:45"), "address": {"street":"36 Park Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{608, 125, 812, 583 }}, "employment":[{"organization-name":"Technohow","start-date":date("2005-02-05"),"end-date":date("2009-01-18")}]}
-{"id": 880, "alias": "Denzil000880", "name": "Denzil Eisenhart", "user-since": datetime("2006-10-20T07:39:17"), "address": {"street":"93 Lake Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{416, 482, 521, 132, 553, 100, 275, 901, 749, 329, 686, 272, 188, 213, 776, 101, 823 }}, "employment":[{"organization-name":"Kongreen","start-date":date("2010-03-27"),"end-date":date("2011-05-22")}]}
-{"id": 881, "alias": "Randall000881", "name": "Randall Mitchell", "user-since": datetime("2012-03-11T11:49:49"), "address": {"street":"60 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{138, 740, 145, 169, 546, 189, 261 }}, "employment":[{"organization-name":"Newfase","start-date":date("2007-09-09")}]}
-{"id": 882, "alias": "Rodney000882", "name": "Rodney Hair", "user-since": datetime("2011-08-14T00:59:50"), "address": {"street":"25 Park Ave.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{302, 827, 535, 63, 807, 138, 507, 666, 334, 30, 483, 202, 178, 630, 591, 129, 845 }}, "employment":[{"organization-name":"strongex","start-date":date("2000-02-09"),"end-date":date("2001-03-13")}]}
-{"id": 883, "alias": "Marly000883", "name": "Marly Bishop", "user-since": datetime("2005-06-13T23:48:09"), "address": {"street":"8 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{394, 801, 120, 233, 33, 543, 829, 825, 166, 865, 295, 142, 231 }}, "employment":[{"organization-name":"geomedia","start-date":date("2000-08-04")}]}
-{"id": 884, "alias": "Hale000884", "name": "Hale Nicholas", "user-since": datetime("2011-01-18T21:57:06"), "address": {"street":"60 Park Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{639, 90, 435, 264, 844, 816, 370 }}, "employment":[{"organization-name":"Indiex","start-date":date("2012-07-15")}]}
-{"id": 885, "alias": "Laverne000885", "name": "Laverne Finlay", "user-since": datetime("2006-12-15T19:51:48"), "address": {"street":"23 First St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Fixdintex","start-date":date("2011-01-08")}]}
-{"id": 886, "alias": "Addison000886", "name": "Addison Mingle", "user-since": datetime("2012-10-25T12:18:50"), "address": {"street":"58 Third Ave.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{880, 131, 559, 1, 814, 523, 534, 170, 512, 40, 277, 522, 892, 572, 541, 251, 67, 578, 292, 443, 417 }}, "employment":[{"organization-name":"Sancone","start-date":date("2007-03-11")}]}
-{"id": 887, "alias": "Ferdie000887", "name": "Ferdie Warner", "user-since": datetime("2013-10-07T03:06:09"), "address": {"street":"82 Elm Blvd.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{592, 142 }}, "employment":[{"organization-name":"Inchex","start-date":date("2008-04-15")}]}
-{"id": 888, "alias": "Kermit000888", "name": "Kermit Adams", "user-since": datetime("2005-11-16T23:36:12"), "address": {"street":"86 Maple St.", "city":"New York", "state":"NY", "zip":"11232", "country":"US"}, "friend-ids": {{51, 668, 263, 68, 775, 616, 227, 766, 35, 323, 434, 744, 223, 679, 846, 132 }}, "employment":[{"organization-name":"Xx-technology","start-date":date("2009-03-25")}]}
-{"id": 889, "alias": "Ron000889", "name": "Ron Fischer", "user-since": datetime("2009-02-21T19:28:36"), "address": {"street":"96 Hill Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{683, 790, 139, 486, 84, 97, 82, 668, 22, 860, 879, 621 }}, "employment":[{"organization-name":"physcane","start-date":date("2000-11-09")}]}
-{"id": 890, "alias": "Dale000890", "name": "Dale Eastwood", "user-since": datetime("2010-10-17T13:57:22"), "address": {"street":"67 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{111, 240, 660, 524, 780, 361, 325, 41, 158, 691, 75, 650, 572, 632, 351, 622, 66, 570, 145, 345, 122 }}, "employment":[{"organization-name":"Villa-tech","start-date":date("2006-12-27")}]}
-{"id": 891, "alias": "Blanch000891", "name": "Blanch Rodacker", "user-since": datetime("2007-01-28T20:57:27"), "address": {"street":"93 Elm Blvd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{51, 832, 691 }}, "employment":[{"organization-name":"Mathtech","start-date":date("2012-05-19"),"end-date":date("2012-06-03")}]}
-{"id": 892, "alias": "Shevaun000892", "name": "Shevaun Tomlinson", "user-since": datetime("2006-03-28T16:41:54"), "address": {"street":"81 Main Rd.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{439, 832, 755, 753, 674, 588, 500, 650, 812, 164 }}, "employment":[{"organization-name":"U-electrics","start-date":date("2010-10-08")}]}
-{"id": 893, "alias": "Leslie000893", "name": "Leslie Cavalet", "user-since": datetime("2009-05-15T04:58:45"), "address": {"street":"47 Maple St.", "city":"New York", "state":"NY", "zip":"11215", "country":"US"}, "friend-ids": {{109, 890, 775, 52, 192, 25, 134, 781, 562, 739, 131 }}, "employment":[{"organization-name":"U-ron","start-date":date("2009-05-07"),"end-date":date("2011-07-13")}]}
-{"id": 894, "alias": "Logan000894", "name": "Logan Billimek", "user-since": datetime("2007-02-25T07:02:09"), "address": {"street":"15 Second Ave.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{900, 486, 606, 115, 41, 376, 31 }}, "employment":[{"organization-name":"Trustbam","start-date":date("2005-05-22")}]}
-{"id": 895, "alias": "Thad000895", "name": "Thad Huston", "user-since": datetime("2006-09-05T17:15:14"), "address": {"street":"15 Lake Rd.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{420, 808, 325, 781, 578, 877, 717, 489, 387, 810, 801, 710, 451, 267, 542, 614, 805, 291, 413, 277 }}, "employment":[{"organization-name":"Fix-touch","start-date":date("2002-05-21"),"end-date":date("2010-02-18")}]}
-{"id": 896, "alias": "Chelsie000896", "name": "Chelsie Toke", "user-since": datetime("2014-08-11T10:41:57"), "address": {"street":"49 Lake Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{281, 38, 147, 258, 858, 647, 839, 895, 553, 552, 899, 894, 174, 877, 82, 781, 227, 385, 721 }}, "employment":[{"organization-name":"Statcode","start-date":date("2001-04-03"),"end-date":date("2003-07-26")}]}
-{"id": 897, "alias": "Harriett000897", "name": "Harriett Baughman", "user-since": datetime("2011-03-20T02:05:26"), "address": {"street":"91 Lake Rd.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Zamcorporation","start-date":date("2001-09-09"),"end-date":date("2006-03-24")}]}
-{"id": 898, "alias": "Karly000898", "name": "Karly Wain", "user-since": datetime("2005-05-07T04:39:16"), "address": {"street":"59 First St.", "city":"Redwood Shores", "state":"CA", "zip":"94065", "country":"US"}, "friend-ids": {{350, 221, 160, 585, 622, 161, 890, 377 }}, "employment":[{"organization-name":"Ranhotfan","start-date":date("2010-07-02")}]}
-{"id": 899, "alias": "Lavena000899", "name": "Lavena Gronko", "user-since": datetime("2006-09-15T10:00:12"), "address": {"street":"90 Maple St.", "city":"San Jose", "state":"CA", "zip":"95134", "country":"US"}, "friend-ids": {{842, 826, 146, 613, 693, 60, 397, 714, 646, 410, 829, 559, 480, 366, 874, 68, 430, 648 }}, "employment":[{"organization-name":"Strongtone","start-date":date("2005-08-26")}]}
-{"id": 900, "alias": "Rosalee000900", "name": "Rosalee Carr", "user-since": datetime("2012-02-25T01:50:03"), "address": {"street":"81 Hill Rd.", "city":"Irvine", "state":"CA", "zip":"92617", "country":"US"}, "friend-ids": {{}}, "employment":[{"organization-name":"Whitemedia","start-date":date("2010-12-15")}]}
-{"id": 901, "alias": "Branden000901", "name": "Branden Yates", "user-since": datetime("2005-07-08T03:57:54"), "address": {"street":"61 Maple St.", "city":"San Jose", "state":"CA", "zip":"94089", "country":"US"}, "friend-ids": {{309, 126, 360, 4, 500, 386, 453, 251, 879, 468, 605, 21, 851, 159, 250, 679, 640, 319, 423, 892, 796, 305, 16, 819 }}, "employment":[{"organization-name":"Latsonity","start-date":date("2002-05-25")}]}
diff --git a/asterixdb/asterix-installer/src/main/resources/hadoop-0.20.2/bin/hadoop b/asterixdb/asterix-installer/src/main/resources/hadoop-0.20.2/bin/hadoop
deleted file mode 100644
index 683e95d..0000000
--- a/asterixdb/asterix-installer/src/main/resources/hadoop-0.20.2/bin/hadoop
+++ /dev/null
@@ -1,290 +0,0 @@
-#!/usr/bin/env bash
-
-# 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.
-
-
-# The Hadoop command script
-#
-# Environment Variables
-#
-#   JAVA_HOME        The java implementation to use.  Overrides JAVA_HOME.
-#
-#   HADOOP_CLASSPATH Extra Java CLASSPATH entries.
-#
-#   HADOOP_HEAPSIZE  The maximum amount of heap to use, in MB. 
-#                    Default is 1000.
-#
-#   HADOOP_OPTS      Extra Java runtime options.
-#   
-#   HADOOP_NAMENODE_OPTS       These options are added to HADOOP_OPTS 
-#   HADOOP_CLIENT_OPTS         when the respective command is run.
-#   HADOOP_{COMMAND}_OPTS etc  HADOOP_JT_OPTS applies to JobTracker 
-#                              for e.g.  HADOOP_CLIENT_OPTS applies to 
-#                              more than one command (fs, dfs, fsck, 
-#                              dfsadmin etc)  
-#
-#   HADOOP_CONF_DIR  Alternate conf dir. Default is ${HADOOP_HOME}/conf.
-#
-#   HADOOP_ROOT_LOGGER The root appender. Default is INFO,console
-#
-
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
-
-. "$bin"/hadoop-config.sh
-
-cygwin=false
-case "`uname`" in
-CYGWIN*) cygwin=true;;
-esac
-
-# if no args specified, show usage
-if [ $# = 0 ]; then
-  echo "Usage: hadoop [--config confdir] COMMAND"
-  echo "where COMMAND is one of:"
-  echo "  namenode -format     format the DFS filesystem"
-  echo "  secondarynamenode    run the DFS secondary namenode"
-  echo "  namenode             run the DFS namenode"
-  echo "  datanode             run a DFS datanode"
-  echo "  dfsadmin             run a DFS admin client"
-  echo "  mradmin              run a Map-Reduce admin client"
-  echo "  fsck                 run a DFS filesystem checking utility"
-  echo "  fs                   run a generic filesystem user client"
-  echo "  balancer             run a cluster balancing utility"
-  echo "  jobtracker           run the MapReduce job Tracker node" 
-  echo "  pipes                run a Pipes job"
-  echo "  tasktracker          run a MapReduce task Tracker node" 
-  echo "  job                  manipulate MapReduce jobs"
-  echo "  queue                get information regarding JobQueues" 
-  echo "  version              print the version"
-  echo "  jar <jar>            run a jar file"
-  echo "  distcp <srcurl> <desturl> copy file or directories recursively"
-  echo "  archive -archiveName NAME <src>* <dest> create a hadoop archive"
-  echo "  daemonlog            get/set the log level for each daemon"
-  echo " or"
-  echo "  CLASSNAME            run the class named CLASSNAME"
-  echo "Most commands print help when invoked w/o parameters."
-  exit 1
-fi
-
-# get arguments
-COMMAND=$1
-shift
-
-if [ -f "${HADOOP_CONF_DIR}/hadoop-env.sh" ]; then
-  . "${HADOOP_CONF_DIR}/hadoop-env.sh"
-fi
-
-# some Java parameters
-if [ "$JAVA_HOME" != "" ]; then
-  #echo "run java in $JAVA_HOME"
-  JAVA_HOME=$JAVA_HOME
-fi
-  
-if [ "$JAVA_HOME" = "" ]; then
-  echo "Error: JAVA_HOME is not set."
-  exit 1
-fi
-
-JAVA=$JAVA_HOME/bin/java
-JAVA_HEAP_MAX=-Xmx1000m 
-
-# check envvars which might override default args
-if [ "$HADOOP_HEAPSIZE" != "" ]; then
-  #echo "run with heapsize $HADOOP_HEAPSIZE"
-  JAVA_HEAP_MAX="-Xmx""$HADOOP_HEAPSIZE""m"
-  #echo $JAVA_HEAP_MAX
-fi
-
-# CLASSPATH initially contains $HADOOP_CONF_DIR
-CLASSPATH=${HADOOP_CONF_DIR}
-CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar
-
-# for developers, add Hadoop classes to CLASSPATH
-if [ -d "$HADOOP_HOME/build/classes" ]; then
-  CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build/classes
-fi
-if [ -d "$HADOOP_HOME/build/webapps" ]; then
-  CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build
-fi
-if [ -d "$HADOOP_HOME/build/test/classes" ]; then
-  CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build/test/classes
-fi
-if [ -d "$HADOOP_HOME/build/tools" ]; then
-  CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build/tools
-fi
-
-# so that filenames w/ spaces are handled correctly in loops below
-IFS=
-
-# for releases, add core hadoop jar & webapps to CLASSPATH
-if [ -d "$HADOOP_HOME/webapps" ]; then
-  CLASSPATH=${CLASSPATH}:$HADOOP_HOME
-fi
-for f in $HADOOP_HOME/hadoop-*-core.jar; do
-  CLASSPATH=${CLASSPATH}:$f;
-done
-
-# add libs to CLASSPATH
-for f in $HADOOP_HOME/lib/*.jar; do
-  CLASSPATH=${CLASSPATH}:$f;
-done
-
-if [ -d "$HADOOP_HOME/build/ivy/lib/Hadoop/common" ]; then
-for f in $HADOOP_HOME/build/ivy/lib/Hadoop/common/*.jar; do
-  CLASSPATH=${CLASSPATH}:$f;
-done
-fi
-
-for f in $HADOOP_HOME/lib/jsp-2.1/*.jar; do
-  CLASSPATH=${CLASSPATH}:$f;
-done
-
-for f in $HADOOP_HOME/hadoop-*-tools.jar; do
-  TOOL_PATH=${TOOL_PATH}:$f;
-done
-for f in $HADOOP_HOME/build/hadoop-*-tools.jar; do
-  TOOL_PATH=${TOOL_PATH}:$f;
-done
-
-# add user-specified CLASSPATH last
-if [ "$HADOOP_CLASSPATH" != "" ]; then
-  CLASSPATH=${HADOOP_CLASSPATH}:${CLASSPATH}
-fi
-
-# default log directory & file
-if [ "$HADOOP_LOG_DIR" = "" ]; then
-  HADOOP_LOG_DIR="$HADOOP_HOME/logs"
-fi
-if [ "$HADOOP_LOGFILE" = "" ]; then
-  HADOOP_LOGFILE='hadoop.log'
-fi
-
-# default policy file for service-level authorization
-if [ "$HADOOP_POLICYFILE" = "" ]; then
-  HADOOP_POLICYFILE="hadoop-policy.xml"
-fi
-
-# restore ordinary behaviour
-unset IFS
-
-# figure out which class to run
-if [ "$COMMAND" = "namenode" ] ; then
-  CLASS='org.apache.hadoop.hdfs.server.namenode.NameNode'
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_NAMENODE_OPTS"
-elif [ "$COMMAND" = "secondarynamenode" ] ; then
-  CLASS='org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode'
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_SECONDARYNAMENODE_OPTS"
-elif [ "$COMMAND" = "datanode" ] ; then
-  CLASS='org.apache.hadoop.hdfs.server.datanode.DataNode'
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_DATANODE_OPTS"
-elif [ "$COMMAND" = "fs" ] ; then
-  CLASS=org.apache.hadoop.fs.FsShell
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
-elif [ "$COMMAND" = "dfs" ] ; then
-  CLASS=org.apache.hadoop.fs.FsShell
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
-elif [ "$COMMAND" = "dfsadmin" ] ; then
-  CLASS=org.apache.hadoop.hdfs.tools.DFSAdmin
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
-elif [ "$COMMAND" = "mradmin" ] ; then
-  CLASS=org.apache.hadoop.mapred.tools.MRAdmin
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
-elif [ "$COMMAND" = "fsck" ] ; then
-  CLASS=org.apache.hadoop.hdfs.tools.DFSck
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
-elif [ "$COMMAND" = "balancer" ] ; then
-  CLASS=org.apache.hadoop.hdfs.server.balancer.Balancer
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_BALANCER_OPTS"
-elif [ "$COMMAND" = "jobtracker" ] ; then
-  CLASS=org.apache.hadoop.mapred.JobTracker
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_JOBTRACKER_OPTS"
-elif [ "$COMMAND" = "tasktracker" ] ; then
-  CLASS=org.apache.hadoop.mapred.TaskTracker
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_TASKTRACKER_OPTS"
-elif [ "$COMMAND" = "job" ] ; then
-  CLASS=org.apache.hadoop.mapred.JobClient
-elif [ "$COMMAND" = "queue" ] ; then
-  CLASS=org.apache.hadoop.mapred.JobQueueClient
-elif [ "$COMMAND" = "pipes" ] ; then
-  CLASS=org.apache.hadoop.mapred.pipes.Submitter
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
-elif [ "$COMMAND" = "version" ] ; then
-  CLASS=org.apache.hadoop.util.VersionInfo
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
-elif [ "$COMMAND" = "jar" ] ; then
-  CLASS=org.apache.hadoop.util.RunJar
-elif [ "$COMMAND" = "distcp" ] ; then
-  CLASS=org.apache.hadoop.tools.DistCp
-  CLASSPATH=${CLASSPATH}:${TOOL_PATH}
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
-elif [ "$COMMAND" = "daemonlog" ] ; then
-  CLASS=org.apache.hadoop.log.LogLevel
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
-elif [ "$COMMAND" = "archive" ] ; then
-  CLASS=org.apache.hadoop.tools.HadoopArchives
-  CLASSPATH=${CLASSPATH}:${TOOL_PATH}
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
-elif [ "$COMMAND" = "sampler" ] ; then
-  CLASS=org.apache.hadoop.mapred.lib.InputSampler
-  HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
-else
-  CLASS=$COMMAND
-fi
-
-# cygwin path translation
-if $cygwin; then
-  CLASSPATH=`cygpath -p -w "$CLASSPATH"`
-  HADOOP_HOME=`cygpath -w "$HADOOP_HOME"`
-  HADOOP_LOG_DIR=`cygpath -w "$HADOOP_LOG_DIR"`
-  TOOL_PATH=`cygpath -p -w "$TOOL_PATH"`
-fi
-# setup 'java.library.path' for native-hadoop code if necessary
-JAVA_LIBRARY_PATH=''
-if [ -d "${HADOOP_HOME}/build/native" -o -d "${HADOOP_HOME}/lib/native" ]; then
-  JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`
-  
-  if [ -d "$HADOOP_HOME/build/native" ]; then
-    JAVA_LIBRARY_PATH=${HADOOP_HOME}/build/native/${JAVA_PLATFORM}/lib
-  fi
-  
-  if [ -d "${HADOOP_HOME}/lib/native" ]; then
-    if [ "x$JAVA_LIBRARY_PATH" != "x" ]; then
-      JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:${HADOOP_HOME}/lib/native/${JAVA_PLATFORM}
-    else
-      JAVA_LIBRARY_PATH=${HADOOP_HOME}/lib/native/${JAVA_PLATFORM}
-    fi
-  fi
-fi
-
-# cygwin path translation
-if $cygwin; then
-  JAVA_LIBRARY_PATH=`cygpath -p "$JAVA_LIBRARY_PATH"`
-fi
-
-HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.log.dir=$HADOOP_LOG_DIR"
-HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.log.file=$HADOOP_LOGFILE"
-HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.home.dir=$HADOOP_HOME"
-HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.id.str=$HADOOP_IDENT_STRING"
-HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.root.logger=${HADOOP_ROOT_LOGGER:-INFO,console}"
-if [ "x$JAVA_LIBRARY_PATH" != "x" ]; then
-  HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$JAVA_LIBRARY_PATH"
-fi  
-HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.policy.file=$HADOOP_POLICYFILE"
-
-# run it
-#echo "exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@""
-exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
diff --git a/asterixdb/asterix-installer/src/main/resources/hadoop-0.20.2/bin/hadoop-config.sh b/asterixdb/asterix-installer/src/main/resources/hadoop-0.20.2/bin/hadoop-config.sh
deleted file mode 100755
index bf0fe04..0000000
--- a/asterixdb/asterix-installer/src/main/resources/hadoop-0.20.2/bin/hadoop-config.sh
+++ /dev/null
@@ -1,85 +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.
-# 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.
-
-# included in all the hadoop scripts with source command
-# should not be executable directly
-# also should not be passed any arguments, since we need original $*
-
-# resolve links - $0 may be a softlink
-
-this="$0"
-while [ -h "$this" ]; do
-  ls=`ls -ld "$this"`
-  link=`expr "$ls" : '.*-> \(.*\)$'`
-  if expr "$link" : '.*/.*' > /dev/null; then
-    this="$link"
-  else
-    this=`dirname "$this"`/"$link"
-  fi
-done
-
-# convert relative path to absolute path
-bin=`dirname "$this"`
-script=`basename "$this"`
-bin=`cd "$bin"; pwd`
-this="$bin/$script"
-
-# the root of the Hadoop installation
-export HADOOP_HOME=`dirname "$this"`/..
-
-#check to see if the conf dir is given as an optional argument
-if [ $# -gt 1 ]
-then
-    if [ "--config" = "$1" ]
-      then
-          shift
-          confdir=$1
-          shift
-          HADOOP_CONF_DIR=$confdir
-    fi
-fi
-
-# Allow alternate conf dir location.
-HADOOP_CONF_DIR="${HADOOP_CONF_DIR:-$HADOOP_HOME/conf}"
-
-#check to see it is specified whether to use the slaves or the
-# masters file
-if [ $# -gt 1 ]
-then
-    if [ "--hosts" = "$1" ]
-    then
-        shift
-        slavesfile=$1
-        shift
-        export HADOOP_SLAVES="${HADOOP_CONF_DIR}/$slavesfile"
-    fi
-fi
diff --git a/asterixdb/asterix-installer/src/main/resources/hadoop-0.20.2/conf/hadoop-env.sh b/asterixdb/asterix-installer/src/main/resources/hadoop-0.20.2/conf/hadoop-env.sh
deleted file mode 100755
index a67c408..0000000
--- a/asterixdb/asterix-installer/src/main/resources/hadoop-0.20.2/conf/hadoop-env.sh
+++ /dev/null
@@ -1,71 +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.
-# Set Hadoop-specific environment variables here.
-
-# The only required environment variable is JAVA_HOME.  All others are
-# optional.  When running a distributed configuration it is best to
-# set JAVA_HOME in this file, so that it is correctly defined on
-# remote nodes.
-
-# The java implementation to use.  Required.
-# export JAVA_HOME=$JAVA_HOME
-
-# Extra Java CLASSPATH elements.  Optional.
-# export HADOOP_CLASSPATH=
-
-# The maximum amount of heap to use, in MB. Default is 1000.
-# export HADOOP_HEAPSIZE=2000
-
-# Extra Java runtime options.  Empty by default.
-# export HADOOP_OPTS=-server
-
-# Command specific options appended to HADOOP_OPTS when specified
-export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_NAMENODE_OPTS"
-export HADOOP_SECONDARYNAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_SECONDARYNAMENODE_OPTS"
-export HADOOP_DATANODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_DATANODE_OPTS"
-export HADOOP_BALANCER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_BALANCER_OPTS"
-export HADOOP_JOBTRACKER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_JOBTRACKER_OPTS"
-# export HADOOP_TASKTRACKER_OPTS=
-# The following applies to multiple commands (fs, dfs, fsck, distcp etc)
-# export HADOOP_CLIENT_OPTS
-
-# Extra ssh options.  Empty by default.
-# export HADOOP_SSH_OPTS="-o ConnectTimeout=1 -o SendEnv=HADOOP_CONF_DIR"
-
-# Where log files are stored.  $HADOOP_HOME/logs by default.
-# export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
-
-# File naming remote slave hosts.  $HADOOP_HOME/conf/slaves by default.
-# export HADOOP_SLAVES=${HADOOP_HOME}/conf/slaves
-
-# host:path where hadoop code should be rsync'd from.  Unset by default.
-# export HADOOP_MASTER=master:/home/$USER/src/hadoop
-
-# Seconds to sleep between slave commands.  Unset by default.  This
-# can be useful in large clusters, where, e.g., slave rsyncs can
-# otherwise arrive faster than the master can service them.
-# export HADOOP_SLAVE_SLEEP=0.1
-
-# The directory where pid files are stored. /tmp by default.
-# export HADOOP_PID_DIR=/var/hadoop/pids
-
-# A string representing this instance of hadoop. $USER by default.
-# export HADOOP_IDENT_STRING=$USER
-
-# The scheduling priority for daemon processes.  See 'man nice'.
-# export HADOOP_NICENESS=10
diff --git a/asterixdb/asterix-installer/src/main/resources/schema/jaxb-bindings.xjb b/asterixdb/asterix-installer/src/main/resources/schema/jaxb-bindings.xjb
deleted file mode 100644
index 0b191a6..0000000
--- a/asterixdb/asterix-installer/src/main/resources/schema/jaxb-bindings.xjb
+++ /dev/null
@@ -1,28 +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.
- !-->
-
-<jxb:bindings version="1.0"
-xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
-<jxb:globalBindings>
-  <jxb:serializable uid="1"/>
-</jxb:globalBindings>
-
-</jxb:bindings>
diff --git a/asterixdb/asterix-installer/src/main/resources/scripts/managix b/asterixdb/asterix-installer/src/main/resources/scripts/managix
deleted file mode 100755
index ddda709..0000000
--- a/asterixdb/asterix-installer/src/main/resources/scripts/managix
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-if [ -z $MANAGIX_HOME ]
- then
-   pushd $(dirname $0) >/dev/null
-   cd ..
-   export MANAGIX_HOME=$(pwd)
-   popd >/dev/null
-fi
-
-MANAGIX_CLASSPATH=$MANAGIX_HOME/lib/*:$MANAGIX_HOME/conf/log4j.properties
-java $JAVA_OPTS -Dlog4j.configuration=file:$MANAGIX_HOME/conf/log4j.properties -cp $MANAGIX_CLASSPATH org.apache.asterix.installer.driver.InstallerDriver $@
diff --git a/asterixdb/asterix-installer/src/main/resources/scripts/validate_ssh.sh b/asterixdb/asterix-installer/src/main/resources/scripts/validate_ssh.sh
deleted file mode 100755
index c773336..0000000
--- a/asterixdb/asterix-installer/src/main/resources/scripts/validate_ssh.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-USERNAME=$1
-shift 1
-numargs=$#
-for ((i=1 ; i <= numargs ; i=i+1))
-do
- host=$1
- ssh -l $USERNAME -oNumberOfPasswordPrompts=0 $host "echo $host"
- shift 1
-done
diff --git a/asterixdb/asterix-installer/src/main/resources/scripts/verify.sh b/asterixdb/asterix-installer/src/main/resources/scripts/verify.sh
deleted file mode 100755
index 5df92f7..0000000
--- a/asterixdb/asterix-installer/src/main/resources/scripts/verify.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-#/*
-# 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.
-INSTANCE_NAME=$1
-MASTER_NODE=$2
-shift 2
-numargs=$#
-for ((i=1 ; i <= numargs ; i=i+2))
-do
- host=$1
- nc_id=$2
- INFO=$(ssh $host "ps -ef | grep nc_join | grep -v grep | grep -v ssh| grep $nc_id" | head -n 1 )
- PARENT_ID=`echo  $INFO | cut -d " "  -f2`
- PID_INFO=$(ssh $host "ps -ef |  grep asterix | grep -v grep | grep -v nc_join |  grep $PARENT_ID") 
- PID=`echo $PID_INFO | cut -d " " -f2`
- echo "NC:$host:$nc_id:$PID"
- shift 2
-done
-
-CC_PARENT_ID_INFO=$(ssh $MASTER_NODE "ps -ef  | grep asterix | grep cc_start | grep -v ssh")
-CC_PARENT_ID=`echo $CC_PARENT_ID_INFO | tr -s " " | cut -d " " -f2` 
-CC_ID_INFO=$(ssh $MASTER_NODE "ps -ef | grep asterix | grep $CC_PARENT_ID | grep -v bash")
-CC_ID=`echo $CC_ID_INFO |  tr -s " " | cut -d " " -f2`
-echo "CC:$MASTER_NODE:N/A:$CC_ID"
diff --git a/asterixdb/asterix-installer/src/main/resources/zookeeper/start_zk.sh b/asterixdb/asterix-installer/src/main/resources/zookeeper/start_zk.sh
deleted file mode 100755
index 7ec0e55..0000000
--- a/asterixdb/asterix-installer/src/main/resources/zookeeper/start_zk.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-
-ZK_HOME=$1
-ZK_ID=$2
-JAVA_HOME=$3
-mkdir $ZK_HOME/data
-echo $2 > $ZK_HOME/data/myid
-CLASSPATH=$ZK_HOME/lib/*:$ZK_HOME/conf:$ZK_HOME/conf/log4j.properties
-ZK_CONF=$ZK_HOME/zk.cfg
-$JAVA_HOME/bin/java $JAVA_OPTS -Dlog4j.configuration="file:$ZK_HOME/conf/log4j.properties" -cp $CLASSPATH org.apache.zookeeper.server.quorum.QuorumPeerMain $ZK_CONF
diff --git a/asterixdb/asterix-installer/src/main/resources/zookeeper/stop_zk b/asterixdb/asterix-installer/src/main/resources/zookeeper/stop_zk
deleted file mode 100644
index 9adac4c..0000000
--- a/asterixdb/asterix-installer/src/main/resources/zookeeper/stop_zk
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-
-ZK_HOME=$1
-shift 1
-for zk_host in  $@
-do
-  ssh $zk_host "kill -15 `ps -ef | awk '/java.*[Q]uorumPeerMain/ {print $2}'`" &
-done
diff --git a/asterixdb/asterix-installer/src/main/resources/zookeeper/zk.init b/asterixdb/asterix-installer/src/main/resources/zookeeper/zk.init
deleted file mode 100644
index e15f3d5..0000000
--- a/asterixdb/asterix-installer/src/main/resources/zookeeper/zk.init
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-
-ZK_HOME=$1
-SERVER_JAVA_HOME=$2
-shift 2
-cd $MANAGIX_HOME/.installer/zookeeper
-tar cf zk.pkg.tar *
-zk_server_id=1
-for zk_host in  $@
-do
-  ssh $zk_host "mkdir -p $ZK_HOME"
-  scp ./zk.pkg.tar $zk_host:$ZK_HOME/
-  ssh $zk_host "cd $ZK_HOME && tar xf $ZK_HOME/zk.pkg.tar && chmod +x $ZK_HOME/bin/start_zk.sh"
-  ssh $zk_host "$ZK_HOME/bin/start_zk.sh $ZK_HOME $zk_server_id $SERVER_JAVA_HOME" &
-  zk_server_id=`expr $zk_server_id + 1`	
-done
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixClusterLifeCycleIT.java b/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixClusterLifeCycleIT.java
deleted file mode 100644
index 759baed..0000000
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixClusterLifeCycleIT.java
+++ /dev/null
@@ -1,193 +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.installer.test;
-
-import java.io.File;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.logging.Logger;
-
-import org.apache.asterix.test.common.TestExecutor;
-import org.apache.asterix.testframework.context.TestCaseContext;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runners.Parameterized.Parameters;
-
-public class AsterixClusterLifeCycleIT {
-
-    private static final String PATH_BASE = StringUtils
-            .join(new String[] { "src", "test", "resources", "integrationts", "lifecycle" }, File.separator);
-    private static final String CLUSTER_BASE = StringUtils
-            .join(new String[] { "src", "test", "resources", "clusterts" }, File.separator);
-    private static final String PATH_ACTUAL = "target" + File.separator + "ittest" + File.separator;
-    private static String managixFolderName;
-    private static final Logger LOGGER = Logger.getLogger(AsterixClusterLifeCycleIT.class.getName());
-    private static List<TestCaseContext> testCaseCollection;
-    private static File asterixProjectDir = new File(System.getProperty("user.dir"));
-    private final TestExecutor testExecutor = new TestExecutor();
-
-    @BeforeClass
-    public static void setUp() throws Exception {
-        // testcase setup
-        TestCaseContext.Builder b = new TestCaseContext.Builder();
-        testCaseCollection = b.build(new File(PATH_BASE));
-        File outdir = new File(PATH_ACTUAL);
-        outdir.mkdirs();
-
-        // vagrant setup
-        File installerTargetDir = new File(asterixProjectDir, "target");
-        System.out.println(managixFolderName);
-        managixFolderName = installerTargetDir.list(new FilenameFilter() {
-            @Override
-            public boolean accept(File dir, String name) {
-                return new File(dir, name).isDirectory() && name.startsWith("asterix-installer")
-                        && name.endsWith("binary-assembly");
-            }
-
-        })[0];
-        invoke("cp", "-r", installerTargetDir.toString() + "/" + managixFolderName,
-                asterixProjectDir + "/" + CLUSTER_BASE);
-
-        logOutput(remoteInvoke("cp -r /vagrant/" + managixFolderName + " /tmp/asterix").getInputStream());
-
-        logOutput(managixInvoke("configure").getInputStream());
-        logOutput(managixInvoke("validate").getInputStream());
-
-        Process p = managixInvoke("create -n vagrant-ssh -c /vagrant/cluster.xml");
-        String pout = processOut(p);
-        LOGGER.info(pout);
-        Assert.assertTrue(checkOutput(pout, "ACTIVE"));
-        // TODO: I should check for 'WARNING' here, but issue 764 stops this
-        // from being reliable
-        LOGGER.info("Test start active cluster instance PASSED");
-
-        Process stop = managixInvoke("stop -n vagrant-ssh");
-        Assert.assertTrue(checkOutput(stop.getInputStream(), "Stopped Asterix instance"));
-        LOGGER.info("Test stop active cluster instance PASSED");
-    }
-
-    @AfterClass
-    public static void tearDown() throws Exception {
-        Process p = managixInvoke("delete -n vagrant-ssh");
-        Assert.assertTrue(checkOutput(p.getInputStream(), "Deleted Asterix instance"));
-        remoteInvoke("rm -rf /vagrant/managix-working");
-        LOGGER.info("Test delete active instance PASSED");
-    }
-
-    @Parameters
-    public static Collection<Object[]> tests() throws Exception {
-        Collection<Object[]> testArgs = new ArrayList<Object[]>();
-        return testArgs;
-    }
-
-    public static boolean checkOutput(InputStream input, String requiredSubString) {
-        // right now im just going to look at the output, which is wholly
-        // inadequate
-        // TODO: try using cURL to actually poke the instance to see if it is
-        // more alive
-        String candidate;
-        try {
-            candidate = IOUtils.toString(input, StandardCharsets.UTF_8.name());
-        } catch (IOException e) {
-            LOGGER.warning("Could not check output of subprocess");
-            return false;
-        }
-        return candidate.contains(requiredSubString);
-    }
-
-    public static boolean checkOutput(String candidate, String requiredSubString) {
-        return candidate.contains(requiredSubString);
-    }
-
-    public static String processOut(Process p) throws IOException {
-        InputStream input = p.getInputStream();
-        return IOUtils.toString(input, StandardCharsets.UTF_8.name());
-    }
-
-    public static void logOutput(InputStream input) {
-        try {
-            LOGGER.info(IOUtils.toString(input, StandardCharsets.UTF_8.name()));
-        } catch (IOException e) {
-            LOGGER.warning("Could not print output of subprocess");
-        }
-    }
-
-    private static Process invoke(String... args) throws Exception {
-        ProcessBuilder pb = new ProcessBuilder(args);
-        pb.redirectErrorStream(true);
-        Process p = pb.start();
-        return p;
-    }
-
-    private static Process remoteInvoke(String cmd) throws Exception {
-        ProcessBuilder pb = new ProcessBuilder("vagrant", "ssh", "cc", "-c", "MANAGIX_HOME=/tmp/asterix/ " + cmd);
-        File cwd = new File(asterixProjectDir.toString() + "/" + CLUSTER_BASE);
-        pb.directory(cwd);
-        pb.redirectErrorStream(true);
-        Process p = pb.start();
-        return p;
-    }
-
-    private static Process managixInvoke(String cmd) throws Exception {
-        return remoteInvoke("/tmp/asterix/bin/managix " + cmd);
-    }
-
-    @Test
-    public void StartStopActiveInstance() throws Exception {
-        // TODO: is the instance actually live?
-        // TODO: is ZK still running?
-        try {
-            Process start = managixInvoke("start -n vagrant-ssh");
-            Assert.assertTrue(checkOutput(start.getInputStream(), "ACTIVE"));
-            Process stop = managixInvoke("stop -n vagrant-ssh");
-            Assert.assertTrue(checkOutput(stop.getInputStream(), "Stopped Asterix instance"));
-            LOGGER.info("Test start/stop active cluster instance PASSED");
-        } catch (Exception e) {
-            throw new Exception("Test start/stop FAILED!", e);
-        }
-    }
-
-    public void test() throws Exception {
-        for (TestCaseContext testCaseCtx : testCaseCollection) {
-            testExecutor.executeTest(PATH_ACTUAL, testCaseCtx, null, false);
-        }
-    }
-
-    public static void main(String[] args) throws Exception {
-        try {
-            setUp();
-            new AsterixClusterLifeCycleIT().test();
-        } catch (Exception e) {
-            e.printStackTrace();
-            LOGGER.severe("TEST CASE(S) FAILED");
-        } finally {
-            tearDown();
-        }
-    }
-
-}
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixExternalLibraryIT.java b/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixExternalLibraryIT.java
deleted file mode 100644
index c379517..0000000
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixExternalLibraryIT.java
+++ /dev/null
@@ -1,98 +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.installer.test;
-
-import java.io.File;
-import java.util.List;
-import java.util.logging.Logger;
-
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.test.base.RetainLogsRule;
-import org.apache.asterix.test.common.TestExecutor;
-import org.apache.asterix.testframework.context.TestCaseContext;
-import org.apache.hyracks.util.file.FileUtil;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestRule;
-
-public class AsterixExternalLibraryIT {
-
-    private static final String LIBRARY_NAME = "testlib";
-    private static final String LIBRARY_DATAVERSE = "externallibtest";
-    private static final String PATH_BASE = "src/test/resources/integrationts/library";
-    private static final String PATH_ACTUAL = "target" + File.separator + "ittest" + File.separator;
-    private static final String LIBRARY_PATH = "target" + File.separator + "resources" + File.separator + "externallib"
-            + File.separator + "asterix-external-data-testlib.zip";
-    private static final Logger LOGGER = Logger.getLogger(AsterixExternalLibraryIT.class.getName());
-    private static List<TestCaseContext> testCaseCollection;
-    private static String reportPath =
-            new File(FileUtil.joinPath("target", "failsafe-reports")).getAbsolutePath();
-
-    private final TestExecutor testExecutor = new TestExecutor();
-
-    @Rule
-    public TestRule retainLogs = new RetainLogsRule(
-            AsterixInstallerIntegrationUtil.getManagixHome(), reportPath, this);
-
-    @BeforeClass
-    public static void setUp() throws Exception {
-        try {
-            AsterixInstallerIntegrationUtil.init(AsterixInstallerIntegrationUtil.LOCAL_CLUSTER_PATH);
-            File asterixInstallerProjectDir = new File(System.getProperty("user.dir"));
-            String asterixExternalLibraryPath = asterixInstallerProjectDir.getAbsolutePath() + File.separator
-                    + LIBRARY_PATH;
-            LOGGER.info("Installing library :" + LIBRARY_NAME + " located at " + asterixExternalLibraryPath
-                    + " in dataverse " + LIBRARY_DATAVERSE);
-            AsterixInstallerIntegrationUtil.installLibrary(LIBRARY_NAME, LIBRARY_DATAVERSE, asterixExternalLibraryPath);
-            AsterixInstallerIntegrationUtil.transformIntoRequiredState(State.ACTIVE);
-            TestCaseContext.Builder b = new TestCaseContext.Builder();
-            testCaseCollection = b.build(new File(PATH_BASE));
-        } catch (Throwable th) {
-            th.printStackTrace();
-            throw th;
-        }
-    }
-
-    @AfterClass
-    public static void tearDown() throws Exception {
-        AsterixInstallerIntegrationUtil.deinit();
-    }
-
-    @Test
-    public void test() throws Exception {
-        for (TestCaseContext testCaseCtx : testCaseCollection) {
-            testExecutor.executeTest(PATH_ACTUAL, testCaseCtx, null, false);
-        }
-    }
-
-    public static void main(String[] args) throws Exception {
-        try {
-            setUp();
-            new AsterixExternalLibraryIT().test();
-        } catch (Exception e) {
-            e.printStackTrace();
-            LOGGER.info("TEST CASES FAILED");
-        } finally {
-            tearDown();
-        }
-    }
-
-}
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixInstallerIntegrationUtil.java b/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixInstallerIntegrationUtil.java
deleted file mode 100644
index bfe63be..0000000
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixInstallerIntegrationUtil.java
+++ /dev/null
@@ -1,228 +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.installer.test;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.math.BigInteger;
-import java.util.Map;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.asterix.event.error.VerificationUtil;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.event.model.AsterixRuntimeState;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.installer.command.CommandHandler;
-import org.apache.asterix.installer.driver.InstallerDriver;
-import org.apache.asterix.installer.schema.conf.Configuration;
-import org.apache.hyracks.api.client.HyracksConnection;
-import org.apache.hyracks.api.client.IHyracksClientConnection;
-
-public class AsterixInstallerIntegrationUtil {
-
-    private static String managixHome;
-    private static String clusterConfigurationPath;
-    private static final CommandHandler cmdHandler = new CommandHandler();
-    public static final String ASTERIX_INSTANCE_NAME = "asterix";
-    private static final String CC_IP_ADDRESS = "127.0.0.1";
-    private static final int DEFAULT_HYRACKS_CC_CLIENT_PORT = 1098;
-    private static final int zookeeperClientPort = 2900;
-    private static final int zookeeperTestClientPort = 3945;
-    private static IHyracksClientConnection hcc;
-    private static final String CLUSTERS_BASE_PATH = "clusters" + File.separator + "local" + File.separator;
-    public static final String LOCAL_CLUSTER_PATH = CLUSTERS_BASE_PATH + File.separator + "local.xml";
-    public static final String LOCAL_CLUSTER_CHAINED_DECLUSTERING_REP_PATH = CLUSTERS_BASE_PATH + File.separator
-            + "local_chained_declustering_rep.xml";
-    public static final String LOCAL_CLUSTER_METADATA_ONLY_REP_PATH = CLUSTERS_BASE_PATH + File.separator
-            + "local_metadata_only_rep.xml";
-
-    public static void deinit() throws Exception {
-        deleteInstance();
-        stopZookeeper();
-    }
-
-    public static void init(String clusterPath) throws Exception {
-        managixHome = getManagixHome();
-        System.setProperty("log4j.configuration",
-                managixHome + File.separator + "conf" + File.separator + "log4j.properties");
-
-        clusterConfigurationPath = managixHome + File.separator + clusterPath;
-
-        InstallerDriver.setManagixHome(managixHome);
-
-        String command = "configure";
-        cmdHandler.processCommand(command.split(" "));
-        command = "validate -c " + clusterConfigurationPath;
-        cmdHandler.processCommand(command.split(" "));
-
-        startZookeeper();
-        Thread.sleep(2000);
-        InstallerDriver.initConfig(true);
-        createInstance();
-        hcc = new HyracksConnection(CC_IP_ADDRESS, DEFAULT_HYRACKS_CC_CLIENT_PORT);
-    }
-
-    public static IHyracksClientConnection getHyracksConnection() {
-        return hcc;
-    }
-
-    private static void startZookeeper() throws Exception {
-        initZookeeperTestConfiguration(zookeeperClientPort);
-        String script = managixHome + File.separator + "bin" + File.separator + "managix";
-
-        // shutdown zookeeper if running
-        String command = "shutdown";
-        cmdHandler.processCommand(command.split(" "));
-
-        //TODO: This must be fixed, an arbitrary wait for 2s is not a reliable way to make sure the process have completed successfully.
-        Thread.sleep(2000);
-
-        // start zookeeper
-        initZookeeperTestConfiguration(zookeeperTestClientPort);
-        ProcessBuilder pb2 = new ProcessBuilder(script, "describe");
-        Map<String, String> env2 = pb2.environment();
-        env2.put("MANAGIX_HOME", managixHome);
-        pb2.start();
-
-    }
-
-    public static void createInstance() throws Exception {
-
-        String command = null;
-        AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService()
-                .getAsterixInstance(ASTERIX_INSTANCE_NAME);
-        if (instance != null) {
-            transformIntoRequiredState(State.INACTIVE);
-            command = "delete -n " + ASTERIX_INSTANCE_NAME;
-            cmdHandler.processCommand(command.split(" "));
-        }
-
-        command = "create -n " + ASTERIX_INSTANCE_NAME + " " + "-c" + " " + clusterConfigurationPath;
-        cmdHandler.processCommand(command.split(" "));
-
-        instance = ServiceProvider.INSTANCE.getLookupService().getAsterixInstance(ASTERIX_INSTANCE_NAME);
-        AsterixRuntimeState state = VerificationUtil.getAsterixRuntimeState(instance);
-        assert (state.getFailedNCs().isEmpty() && state.isCcRunning());
-    }
-
-    private static void initZookeeperTestConfiguration(int port) throws JAXBException, FileNotFoundException {
-        String installerConfPath = InstallerDriver.getManagixHome() + File.separator + InstallerDriver.MANAGIX_CONF_XML;
-        JAXBContext ctx = JAXBContext.newInstance(Configuration.class);
-        Unmarshaller unmarshaller = ctx.createUnmarshaller();
-        Configuration configuration = (Configuration) unmarshaller.unmarshal(new File(installerConfPath));
-        configuration.getZookeeper().setClientPort(new BigInteger("" + port));
-        Marshaller marshaller = ctx.createMarshaller();
-        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
-        marshaller.marshal(configuration, new FileOutputStream(installerConfPath));
-    }
-
-    public static void transformIntoRequiredState(AsterixInstance.State state) throws Exception {
-        AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService()
-                .getAsterixInstance(ASTERIX_INSTANCE_NAME);
-        assert (instance != null);
-        if (instance.getState().equals(state)) {
-            return;
-        }
-        if (state.equals(AsterixInstance.State.UNUSABLE)) {
-            throw new IllegalArgumentException("Invalid desired state");
-        }
-
-        String command = null;
-        switch (instance.getState()) {
-            case ACTIVE:
-                command = "stop -n " + ASTERIX_INSTANCE_NAME;
-                break;
-            case INACTIVE:
-                command = "start -n " + ASTERIX_INSTANCE_NAME;
-                break;
-            case UNUSABLE:
-                command = "delete -n " + ASTERIX_INSTANCE_NAME;
-                cmdHandler.processCommand(command.split(" "));
-                throw new Exception("Cluster state was Unusable");
-        }
-        cmdHandler.processCommand(command.split(" "));
-    }
-
-    private static void stopZookeeper() throws IOException, JAXBException {
-        String script = managixHome + File.separator + "bin" + File.separator + "managix";
-        // shutdown zookeeper if running
-        ProcessBuilder pb = new ProcessBuilder(script, "shutdown");
-        Map<String, String> env = pb.environment();
-        env.put("MANAGIX_HOME", managixHome);
-        pb.start();
-    }
-
-    private static void deleteInstance() throws Exception {
-        String command = null;
-        AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService()
-                .getAsterixInstance(ASTERIX_INSTANCE_NAME);
-
-        if (instance == null) {
-            return;
-        } else {
-            transformIntoRequiredState(State.INACTIVE);
-            command = "delete -n " + ASTERIX_INSTANCE_NAME;
-            cmdHandler.processCommand(command.split(" "));
-        }
-        instance = ServiceProvider.INSTANCE.getLookupService().getAsterixInstance(ASTERIX_INSTANCE_NAME);
-        assert (instance == null);
-    }
-
-    public static String getManagixHome() {
-        File asterixProjectDir = new File(System.getProperty("user.dir"));
-
-        File installerTargetDir = new File(asterixProjectDir, "target");
-        String managixHomeDirName = installerTargetDir.list(new FilenameFilter() {
-            @Override
-            public boolean accept(File dir, String name) {
-                return new File(dir, name).isDirectory() && name.startsWith("asterix-installer")
-                        && name.endsWith("binary-assembly");
-            }
-
-        })[0];
-        return new File(installerTargetDir, managixHomeDirName).getAbsolutePath();
-    }
-
-    public static void installLibrary(String libraryName, String libraryDataverse, String libraryPath)
-            throws Exception {
-        transformIntoRequiredState(State.INACTIVE);
-        String command = "install -n " + ASTERIX_INSTANCE_NAME + " -d " + libraryDataverse + " -l " + libraryName
-                + " -p " + libraryPath;
-        cmdHandler.processCommand(command.split(" "));
-    }
-
-    public static void uninstallLibrary(String dataverseName, String libraryName) throws Exception {
-        transformIntoRequiredState(State.INACTIVE);
-        String command = "uninstall -n " + ASTERIX_INSTANCE_NAME + " -d " + dataverseName + " -l " + "libraryName";
-        cmdHandler.processCommand(command.split(" "));
-    }
-
-    public static void executeCommand(String command) throws Exception {
-        cmdHandler.processCommand(command.trim().split(" "));
-    }
-
-}
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixLifecycleIT.java b/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixLifecycleIT.java
deleted file mode 100644
index 1434629..0000000
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixLifecycleIT.java
+++ /dev/null
@@ -1,52 +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.installer.test;
-
-import java.io.File;
-
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-
-public class AsterixLifecycleIT {
-
-    private static final String PATH_ACTUAL = "target" + File.separator + "ittest" + File.separator;
-
-    @BeforeClass
-    public static void setUp() throws Exception {
-        AsterixInstallerIntegrationUtil.init(AsterixInstallerIntegrationUtil.LOCAL_CLUSTER_PATH);
-        File outdir = new File(PATH_ACTUAL);
-        outdir.mkdirs();
-    }
-
-    @AfterClass
-    public static void tearDown() throws Exception {
-        AsterixInstallerIntegrationUtil.deinit();
-        File outdir = new File(PATH_ACTUAL);
-        File[] files = outdir.listFiles();
-        if (files == null || files.length == 0) {
-            outdir.delete();
-        }
-    }
-
-    public static void restartInstance() throws Exception {
-        AsterixInstallerIntegrationUtil.transformIntoRequiredState(State.INACTIVE);
-        AsterixInstallerIntegrationUtil.transformIntoRequiredState(State.ACTIVE);
-    }
-}
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixRestartIT.java b/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixRestartIT.java
deleted file mode 100644
index d3fdc4a..0000000
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AsterixRestartIT.java
+++ /dev/null
@@ -1,125 +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.installer.test;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Map;
-import java.util.logging.Logger;
-
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.test.base.RetainLogsRule;
-import org.apache.asterix.test.common.TestExecutor;
-import org.apache.asterix.testframework.context.TestCaseContext;
-import org.apache.hyracks.util.file.FileUtil;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestRule;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-//This is just a simple derivative of all of the other IT test cases specifically for test cases which revolve around
-//some behavior where stopping and starting Asterix causes issues
-
-@RunWith(Parameterized.class)
-public class AsterixRestartIT {
-
-    private static final String PATH_BASE = "src/test/resources/integrationts/restart/";
-    private static final String PATH_ACTUAL = "target" + File.separator + "ittest" + File.separator;
-    private static final Logger LOGGER = Logger.getLogger(AsterixRestartIT.class.getName());
-    private static String reportPath = new File(FileUtil.joinPath("target", "failsafe-reports")).getAbsolutePath();
-
-    private final TestExecutor testExecutor = new TestExecutor();
-    private TestCaseContext tcCtx;
-    private static String scriptHomePath;
-    private static File asterixInstallerPath;
-    private static ProcessBuilder pb;
-    private static Map<String, String> env;
-
-
-    public AsterixRestartIT(TestCaseContext tcCtx) {
-        this.tcCtx = tcCtx;
-    }
-
-    @Rule
-    public TestRule retainLogs = new RetainLogsRule(AsterixInstallerIntegrationUtil.getManagixHome(), reportPath, this);
-
-    @BeforeClass
-    public static void setUp() throws Exception {
-        try {
-            pb = new ProcessBuilder();
-            env = pb.environment();
-            asterixInstallerPath = new File(System.getProperty("user.dir"));
-            scriptHomePath = asterixInstallerPath + File.separator + "src" + File.separator + "test" + File.separator
-                    + "resources" + File.separator + "integrationts" + File.separator + "restart"
-                    + File.separator + "scripts";
-            env.put("SCRIPT_HOME", scriptHomePath);
-            AsterixInstallerIntegrationUtil.init(AsterixInstallerIntegrationUtil.LOCAL_CLUSTER_PATH);
-        } catch (Throwable th) {
-            th.printStackTrace();
-            throw th;
-        }
-    }
-
-    @AfterClass
-    public static void tearDown() throws Exception {
-        AsterixInstallerIntegrationUtil.deinit();
-    }
-
-    @Before
-    public void before() throws Exception {
-        AsterixInstallerIntegrationUtil.transformIntoRequiredState(State.INACTIVE);
-        AsterixInstallerIntegrationUtil.transformIntoRequiredState(State.ACTIVE);
-    }
-
-
-    @After
-    public void after() throws Exception{
-        AsterixInstallerIntegrationUtil.transformIntoRequiredState(State.INACTIVE);
-    }
-
-    @Test
-    public void test() throws Exception {
-            testExecutor.executeTest(PATH_ACTUAL, tcCtx, pb, false);
-    }
-
-    @Parameterized.Parameters(name = "RestartIT {index}: {0}")
-    public static Collection<Object[]> tests() throws Exception {
-        Collection<Object[]> testArgs = buildTestsInXml(TestCaseContext.DEFAULT_TESTSUITE_XML_NAME);
-        if (testArgs.size() == 0) {
-            testArgs = buildTestsInXml(TestCaseContext.DEFAULT_TESTSUITE_XML_NAME);
-        }
-        return testArgs;
-    }
-
-    protected static Collection<Object[]> buildTestsInXml(String xmlfile) throws Exception {
-        Collection<Object[]> testArgs = new ArrayList<>();
-        TestCaseContext.Builder b = new TestCaseContext.Builder();
-        for (TestCaseContext ctx : b.build(new File(PATH_BASE), xmlfile)) {
-            testArgs.add(new Object[] { ctx });
-        }
-        return testArgs;
-    }
-
-}
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/ClusterExecutionIT.java b/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/ClusterExecutionIT.java
deleted file mode 100644
index 446e5e3..0000000
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/ClusterExecutionIT.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright 2009-2013 by The Regents of the University of California
- * Licensed 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 from
- *
- *     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.installer.test;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.logging.Level;
-
-import org.apache.asterix.external.util.ExternalDataConstants;
-import org.apache.asterix.external.util.IdentitiyResolverFactory;
-import org.apache.asterix.test.common.TestExecutor;
-import org.apache.asterix.test.runtime.HDFSCluster;
-import org.apache.asterix.testframework.context.TestCaseContext;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.hyracks.util.file.FileUtil;
-import org.codehaus.plexus.util.FileUtils;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-
-/**
- * Runs the runtime test cases under 'asterix-app/src/test/resources/runtimets'.
- */
-@RunWith(Parameterized.class)
-public class ClusterExecutionIT extends AbstractExecutionIT {
-
-    private static final String CLUSTER_CC_ADDRESS = "10.10.0.2";
-    private static final int CLUSTER_CC_API_PORT = 19002;
-
-    private final static TestExecutor testExecutor = new TestExecutor(CLUSTER_CC_ADDRESS, CLUSTER_CC_API_PORT);
-
-    @BeforeClass
-    public static void setUp() throws Exception {
-        System.out.println("Starting setup");
-        if (LOGGER.isLoggable(Level.INFO)) {
-            LOGGER.info("Starting setup");
-        }
-        File outdir = new File(PATH_ACTUAL);
-        outdir.mkdirs();
-
-        HDFSCluster.getInstance().setup(HDFS_BASE);
-
-        AsterixClusterLifeCycleIT.setUp();
-
-        FileUtils.copyDirectoryStructure(
-                new File(FileUtil.joinPath("..", "asterix-app", "data")),
-                new File(StringUtils.join(
-                        new String[] { "src", "test", "resources", "clusterts", "managix-working", "data" },
-                        File.separator)));
-
-        // Set the node resolver to be the identity resolver that expects node names
-        // to be node controller ids; a valid assumption in test environment.
-        System.setProperty(ExternalDataConstants.NODE_RESOLVER_FACTORY_PROPERTY,
-                IdentitiyResolverFactory.class.getName());
-    }
-
-    @AfterClass
-    public static void tearDown() throws Exception {
-        File outdir = new File(PATH_ACTUAL);
-        File[] files = outdir.listFiles();
-        if ((files == null) || (files.length == 0)) {
-            outdir.delete();
-        }
-
-        HDFSCluster.getInstance().cleanup();
-
-        AsterixClusterLifeCycleIT.tearDown();
-    }
-
-    @Parameters
-    public static Collection<Object[]> tests() throws Exception {
-        Collection<Object[]> testArgs = new ArrayList<Object[]>();
-        TestCaseContext.Builder b = new TestCaseContext.Builder();
-        for (TestCaseContext ctx : b.build(new File(PATH_BASE))) {
-            testArgs.add(new Object[] { ctx });
-        }
-        return testArgs;
-    }
-
-    private TestCaseContext tcCtx;
-
-    public ClusterExecutionIT(TestCaseContext tcCtx) {
-        super(tcCtx);
-        this.tcCtx = tcCtx;
-    }
-
-    @Override
-    @Test
-    public void test() throws Exception {
-        if (skip()) {
-            return;
-        }
-        testExecutor.executeTest(PATH_ACTUAL, tcCtx, null, false);
-    }
-}
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/InstallerLicensingIT.java b/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/InstallerLicensingIT.java
deleted file mode 100644
index 0fc06b8..0000000
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/InstallerLicensingIT.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.installer.test;
-
-import org.apache.asterix.server.test.LicensingIT;
-
-public class InstallerLicensingIT extends LicensingIT {
-
-    @Override
-    protected String getInstallerDirPattern() {
-        return "asterix-installer.*-binary-assembly";
-    }
-}
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/ManagixExecutionIT.java b/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/ManagixExecutionIT.java
deleted file mode 100644
index 6df34ce..0000000
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/ManagixExecutionIT.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2009-2013 by The Regents of the University of California
- * Licensed 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 from
- *
- *     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.installer.test;
-
-import org.apache.asterix.testframework.context.TestCaseContext;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-/**
- * Runs the runtime test cases under 'asterix-app/src/test/resources/runtimets'.
- */
-@RunWith(Parameterized.class)
-public class ManagixExecutionIT extends AbstractExecutionIT {
-
-    public ManagixExecutionIT(TestCaseContext tcCtx) {
-        super(tcCtx);
-    }
-}
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/MetadataReplicationIT.java b/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/MetadataReplicationIT.java
deleted file mode 100644
index 809e815..0000000
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/MetadataReplicationIT.java
+++ /dev/null
@@ -1,120 +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.installer.test;
-
-import java.io.File;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Map;
-import java.util.logging.Logger;
-
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.test.base.RetainLogsRule;
-import org.apache.asterix.test.common.TestExecutor;
-import org.apache.asterix.testframework.context.TestCaseContext;
-import org.apache.commons.lang3.StringUtils;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestRule;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-@RunWith(Parameterized.class)
-public class MetadataReplicationIT {
-
-    private static final String PATH_BASE =
-            Paths.get("src", "test", "resources", "integrationts", "metadata_only_replication").toString()
-                    + File.separator;
-    private static final String PATH_ACTUAL = "target" + File.separator + "ittest" + File.separator;
-    private static final Logger LOGGER = Logger.getLogger(MetadataReplicationIT.class.getName());
-    private static String reportPath = new File(
-            StringUtils.join(new String[] { "target", "failsafe-reports" }, File.separator)).getAbsolutePath();
-
-    private final TestExecutor testExecutor = new TestExecutor();
-    private TestCaseContext tcCtx;
-    private static String scriptHomePath;
-    private static File asterixInstallerPath;
-    private static ProcessBuilder pb;
-    private static Map<String, String> env;
-
-    public MetadataReplicationIT(TestCaseContext tcCtx) {
-        this.tcCtx = tcCtx;
-    }
-
-    @Rule
-    public TestRule retainLogs = new RetainLogsRule(AsterixInstallerIntegrationUtil.getManagixHome(), reportPath, this);
-
-    @BeforeClass
-    public static void setUp() throws Exception {
-        try {
-            pb = new ProcessBuilder();
-            env = pb.environment();
-            asterixInstallerPath = new File(System.getProperty("user.dir"));
-            scriptHomePath = asterixInstallerPath + File.separator + "src" + File.separator + "test" + File.separator
-                    + "resources" + File.separator + "integrationts" + File.separator + "metadata_only_replication" + File.separator
-                    + "scripts";
-            env.put("SCRIPT_HOME", scriptHomePath);
-        } catch (Throwable th) {
-            th.printStackTrace();
-            throw th;
-        }
-    }
-
-    @Before
-    public void before() throws Exception {
-        LOGGER.info("Creating new instance...");
-        AsterixInstallerIntegrationUtil.init(AsterixInstallerIntegrationUtil.LOCAL_CLUSTER_METADATA_ONLY_REP_PATH);
-        LOGGER.info("Instance created.");
-        AsterixInstallerIntegrationUtil.transformIntoRequiredState(State.ACTIVE);
-        LOGGER.info("Instance is in ACTIVE state.");
-    }
-
-    @RetainLogsRule.After
-    public void after() throws Exception {
-        LOGGER.info("Destroying instance...");
-        AsterixInstallerIntegrationUtil.deinit();
-        LOGGER.info("Instance destroyed.");
-    }
-
-    @Test
-    public void test() throws Exception {
-        testExecutor.executeTest(PATH_ACTUAL, tcCtx, pb, false);
-    }
-
-    @Parameterized.Parameters(name = "MetadataReplicationIT {index}: {0}")
-    public static Collection<Object[]> tests() throws Exception {
-        Collection<Object[]> testArgs = buildTestsInXml(TestCaseContext.DEFAULT_TESTSUITE_XML_NAME);
-        if (testArgs.size() == 0) {
-            testArgs = buildTestsInXml(TestCaseContext.DEFAULT_TESTSUITE_XML_NAME);
-        }
-        return testArgs;
-    }
-
-    protected static Collection<Object[]> buildTestsInXml(String xmlfile) throws Exception {
-        Collection<Object[]> testArgs = new ArrayList<>();
-        TestCaseContext.Builder b = new TestCaseContext.Builder();
-        for (TestCaseContext ctx : b.build(new File(PATH_BASE), xmlfile)) {
-            testArgs.add(new Object[] { ctx });
-        }
-        return testArgs;
-    }
-}
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/ReplicationIT.java b/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/ReplicationIT.java
deleted file mode 100644
index 21f382b..0000000
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/ReplicationIT.java
+++ /dev/null
@@ -1,117 +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.installer.test;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Map;
-import java.util.logging.Logger;
-
-import org.apache.asterix.event.model.AsterixInstance.State;
-import org.apache.asterix.test.base.RetainLogsRule;
-import org.apache.asterix.test.common.TestExecutor;
-import org.apache.asterix.testframework.context.TestCaseContext;
-import org.apache.hyracks.util.file.FileUtil;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestRule;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-@RunWith(Parameterized.class)
-public class ReplicationIT {
-
-    private static final String PATH_BASE = FileUtil.joinPath("src", "test", "resources", "integrationts",
-            "replication");
-    private static final String PATH_ACTUAL = FileUtil.joinPath("target", "ittest");
-    private static final Logger LOGGER = Logger.getLogger(ReplicationIT.class.getName());
-    private static String reportPath = new File(
-            FileUtil.joinPath("target", "failsafe-reports")).getAbsolutePath();
-
-    private final TestExecutor testExecutor = new TestExecutor();
-    private TestCaseContext tcCtx;
-    private static String scriptHomePath;
-    private static File asterixInstallerPath;
-    private static ProcessBuilder pb;
-    private static Map<String, String> env;
-
-    public ReplicationIT(TestCaseContext tcCtx) {
-        this.tcCtx = tcCtx;
-    }
-
-    @Rule
-    public TestRule retainLogs = new RetainLogsRule(AsterixInstallerIntegrationUtil.getManagixHome(), reportPath, this);
-
-    @BeforeClass
-    public static void setUp() throws Exception {
-        try {
-            pb = new ProcessBuilder();
-            env = pb.environment();
-            asterixInstallerPath = new File(System.getProperty("user.dir"));
-            scriptHomePath = FileUtil.joinPath(asterixInstallerPath.getPath(), "src", "test", "resources",
-                    "integrationts", "replication", "scripts");
-            env.put("SCRIPT_HOME", scriptHomePath);
-        } catch (Throwable th) {
-            th.printStackTrace();
-            throw th;
-        }
-    }
-
-    @Before
-    public void before() throws Exception {
-        LOGGER.info("Creating new instance...");
-        AsterixInstallerIntegrationUtil.init(AsterixInstallerIntegrationUtil.LOCAL_CLUSTER_CHAINED_DECLUSTERING_REP_PATH);
-        LOGGER.info("Instance created.");
-        AsterixInstallerIntegrationUtil.transformIntoRequiredState(State.ACTIVE);
-        LOGGER.info("Instance is in ACTIVE state.");
-    }
-
-    @RetainLogsRule.After
-    public void after() throws Exception {
-        LOGGER.info("Destroying instance...");
-        AsterixInstallerIntegrationUtil.deinit();
-        LOGGER.info("Instance destroyed.");
-    }
-
-    @Test
-    public void test() throws Exception {
-        testExecutor.executeTest(PATH_ACTUAL, tcCtx, pb, false);
-    }
-
-    @Parameterized.Parameters(name = "ReplicationIT {index}: {0}")
-    public static Collection<Object[]> tests() throws Exception {
-        Collection<Object[]> testArgs = buildTestsInXml(TestCaseContext.DEFAULT_TESTSUITE_XML_NAME);
-        if (testArgs.size() == 0) {
-            testArgs = buildTestsInXml(TestCaseContext.DEFAULT_TESTSUITE_XML_NAME);
-        }
-        return testArgs;
-    }
-
-    protected static Collection<Object[]> buildTestsInXml(String xmlfile) throws Exception {
-        Collection<Object[]> testArgs = new ArrayList<>();
-        TestCaseContext.Builder b = new TestCaseContext.Builder();
-        for (TestCaseContext ctx : b.build(new File(PATH_BASE), xmlfile)) {
-            testArgs.add(new Object[] { ctx });
-        }
-        return testArgs;
-    }
-}
diff --git a/asterixdb/asterix-installer/src/test/resources/clusterts/Vagrantfile b/asterixdb/asterix-installer/src/test/resources/clusterts/Vagrantfile
deleted file mode 100644
index 781a4da..0000000
--- a/asterixdb/asterix-installer/src/test/resources/clusterts/Vagrantfile
+++ /dev/null
@@ -1,76 +0,0 @@
-# -*- mode: ruby -*-
-# vi: set ft=ruby :
-
-# 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.
-
-# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
-VAGRANTFILE_API_VERSION = "2"
-
-Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
-
-    config.vm.provision "file", source: "id_rsa", destination: "/home/vagrant/.ssh/id_rsa"
-    config.vm.provision "file", source: "id_rsa.pub", destination: "/home/vagrant/.ssh/id_rsa.pub"
-    config.vm.provision "file", source: "known_hosts", destination: "/home/vagrant/.ssh/known_hosts"
-    config.vm.provision "file", source: "hosts", destination: "/home/vagrant/hosts"
-
-    config.vm.provision "shell", inline: "mv /home/vagrant/hosts /etc/hosts"
-    config.vm.provision "shell", privileged: false, inline: "chmod 400 /home/vagrant/.ssh/id_rsa"
-    config.vm.provision "shell", privileged: false, inline: "cat /home/vagrant/.ssh/id_rsa.pub >> /home/vagrant/.ssh/authorized_keys"
-    config.vm.provision "shell", privileged: false, inline: "chmod 600 /home/vagrant/.ssh/authorized_keys"
-    $java_inst = <<-END
-        wget -q --no-cookies --no-check-certificate \
-        --header 'Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie' \
-        'http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.rpm' \
-        -O /tmp/jdk.rpm;
-
-        sudo yum -y localinstall /tmp/jdk.rpm;
-        sudo yum -y install unzip;
-
-    END
-    config.vm.provision "shell", inline: $java_inst
-
-    config.vm.define "nc2" do |nc|
-        nc.vm.box = "bento/centos-6.7"
-        nc.vm.hostname = "nc2"
-        nc.vm.network "private_network", ip: "10.10.0.4"
-        config.vm.provider "virtualbox" do |v|
-            v.memory = 3096
-            v.cpus = 2
-        end
-    end
-    config.vm.define "nc1" do |nc|
-        nc.vm.box = "bento/centos-6.7"
-        nc.vm.hostname = "nc1"
-        nc.vm.network "private_network", ip: "10.10.0.3"
-        config.vm.provider "virtualbox" do |v|
-            v.memory = 3096
-            v.cpus = 2
-        end
-    end
-
-    config.vm.define "cc" do |cc|
-        cc.vm.box = "bento/centos-6.7"
-        cc.vm.hostname = "cc"
-        cc.vm.network "private_network", ip: "10.10.0.2"
-        config.vm.provider "virtualbox" do |v|
-            v.memory = 1024
-            v.cpus = 1
-        end
-    end
-
-end
diff --git a/asterixdb/asterix-installer/src/test/resources/clusterts/cluster.xml b/asterixdb/asterix-installer/src/test/resources/clusterts/cluster.xml
deleted file mode 100644
index 5ad3921..0000000
--- a/asterixdb/asterix-installer/src/test/resources/clusterts/cluster.xml
+++ /dev/null
@@ -1,56 +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.
- !-->
-<cluster xmlns="cluster">
-
-  <name>vagrant</name>
-
-  <username>vagrant</username>
-
-  <working_dir>
-    <dir>/vagrant/managix-working</dir>
-    <NFS>true</NFS>
-  </working_dir>
-
-  <log_dir>/home/vagrant/logs/</log_dir>
-  <txn_log_dir>/home/vagrant/tx_logs</txn_log_dir>
-  <iodevices>/home/vagrant/p1,/home/vagrant/p2</iodevices>
-
-  <store>storage</store>
-
-  <java_home>/usr/java/latest</java_home>
-
-  <master_node>
-    <id>cc</id>
-    <client_ip>10.10.0.2</client_ip>
-    <cluster_ip>10.10.0.2</cluster_ip>
-    <client_port>1098</client_port>
-    <cluster_port>1099</cluster_port>
-    <http_port>8888</http_port>
-  </master_node>
-  <node>
-    <id>nc1</id>
-    <cluster_ip>10.10.0.3</cluster_ip>
-    <nc_api_port>19004</nc_api_port>
-  </node>
-  <node>
-    <id>nc2</id>
-    <cluster_ip>10.10.0.4</cluster_ip>
-    <nc_api_port>19005</nc_api_port>
-  </node>
-</cluster>
diff --git a/asterixdb/asterix-installer/src/test/resources/clusterts/cluster_with_replication.xml b/asterixdb/asterix-installer/src/test/resources/clusterts/cluster_with_replication.xml
deleted file mode 100644
index 003b3c8..0000000
--- a/asterixdb/asterix-installer/src/test/resources/clusterts/cluster_with_replication.xml
+++ /dev/null
@@ -1,65 +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.
- !-->
-<cluster xmlns="cluster">
-
-  <name>vagrant</name>
-
-  <username>vagrant</username>
-
-  <working_dir>
-    <dir>/vagrant/asterix/managix-working</dir>
-    <NFS>true</NFS>
-  </working_dir>
-
-  <log_dir>/home/vagrant/asterix/logs/</log_dir>
-  <txn_log_dir>/home/vagrant/asterix/tx_logs</txn_log_dir>
-  <iodevices>/home/vagrant/asterix/p1,/home/vagrant/asterix/p2</iodevices>
-
-  <store>storage</store>
-
-  <java_home>/usr/java/latest</java_home>
-  <metadata_node>nc1</metadata_node>
-
-  <data_replication>
-    <enabled>true</enabled>
-    <replication_port>2000</replication_port>
-    <replication_factor>2</replication_factor>
-    <auto_failover>true</auto_failover>
-    <replication_time_out>10</replication_time_out>
-  </data_replication>
-
-  <master_node>
-    <id>cc</id>
-    <client_ip>10.10.0.2</client_ip>
-    <cluster_ip>10.10.0.2</cluster_ip>
-    <client_port>1098</client_port>
-    <cluster_port>1099</cluster_port>
-    <http_port>8888</http_port>
-  </master_node>
-  <node>
-    <id>nc1</id>
-    <cluster_ip>10.10.0.3</cluster_ip>
-    <nc_api_port>19004</nc_api_port>
-  </node>
-  <node>
-    <id>nc2</id>
-    <cluster_ip>10.10.0.4</cluster_ip>
-    <nc_api_port>19005</nc_api_port>
-  </node>
-</cluster>
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/clusterts/hosts b/asterixdb/asterix-installer/src/test/resources/clusterts/hosts
deleted file mode 100644
index 9c68525..0000000
--- a/asterixdb/asterix-installer/src/test/resources/clusterts/hosts
+++ /dev/null
@@ -1,24 +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.
-#
-127.0.0.1	localhost localhost.localdomain localhost4 localhost4.localdomain4
-::1		localhost localhost.localdomain localhost6 localhost6.localdomain6
-10.10.0.2	cc
-10.10.0.3	nc1
-10.10.0.4	nc2
-10.10.0.5	nc3
diff --git a/asterixdb/asterix-installer/src/test/resources/clusterts/id_rsa b/asterixdb/asterix-installer/src/test/resources/clusterts/id_rsa
deleted file mode 100644
index 7d6a083..0000000
--- a/asterixdb/asterix-installer/src/test/resources/clusterts/id_rsa
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzI
-w+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoP
-kcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2
-hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NO
-Td0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcW
-yLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQIBIwKCAQEA4iqWPJXtzZA68mKd
-ELs4jJsdyky+ewdZeNds5tjcnHU5zUYE25K+ffJED9qUWICcLZDc81TGWjHyAqD1
-Bw7XpgUwFgeUJwUlzQurAv+/ySnxiwuaGJfhFM1CaQHzfXphgVml+fZUvnJUTvzf
-TK2Lg6EdbUE9TarUlBf/xPfuEhMSlIE5keb/Zz3/LUlRg8yDqz5w+QWVJ4utnKnK
-iqwZN0mwpwU7YSyJhlT4YV1F3n4YjLswM5wJs2oqm0jssQu/BT0tyEXNDYBLEF4A
-sClaWuSJ2kjq7KhrrYXzagqhnSei9ODYFShJu8UWVec3Ihb5ZXlzO6vdNQ1J9Xsf
-4m+2ywKBgQD6qFxx/Rv9CNN96l/4rb14HKirC2o/orApiHmHDsURs5rUKDx0f9iP
-cXN7S1uePXuJRK/5hsubaOCx3Owd2u9gD6Oq0CsMkE4CUSiJcYrMANtx54cGH7Rk
-EjFZxK8xAv1ldELEyxrFqkbE4BKd8QOt414qjvTGyAK+OLD3M2QdCQKBgQDtx8pN
-CAxR7yhHbIWT1AH66+XWN8bXq7l3RO/ukeaci98JfkbkxURZhtxV/HHuvUhnPLdX
-3TwygPBYZFNo4pzVEhzWoTtnEtrFueKxyc3+LjZpuo+mBlQ6ORtfgkr9gBVphXZG
-YEzkCD3lVdl8L4cw9BVpKrJCs1c5taGjDgdInQKBgHm/fVvv96bJxc9x1tffXAcj
-3OVdUN0UgXNCSaf/3A/phbeBQe9xS+3mpc4r6qvx+iy69mNBeNZ0xOitIjpjBo2+
-dBEjSBwLk5q5tJqHmy/jKMJL4n9ROlx93XS+njxgibTvU6Fp9w+NOFD/HvxB3Tcz
-6+jJF85D5BNAG3DBMKBjAoGBAOAxZvgsKN+JuENXsST7F89Tck2iTcQIT8g5rwWC
-P9Vt74yboe2kDT531w8+egz7nAmRBKNM751U/95P9t88EDacDI/Z2OwnuFQHCPDF
-llYOUI+SpLJ6/vURRbHSnnn8a/XG+nzedGH5JGqEJNQsz+xT2axM0/W/CRknmGaJ
-kda/AoGANWrLCz708y7VYgAtW2Uf1DPOIYMdvo6fxIB5i9ZfISgcJ/bbCUkFrhoH
-+vq/5CIWxCPp0f85R4qxxQ5ihxJ0YDQT9Jpx4TMss4PSavPaBH3RXow5Ohe+bYoQ
-NE5OgEXk2wVfZczCZpigBKbKZHNYcelXtTt/nP3rsCuGcM4h53s=
------END RSA PRIVATE KEY-----
diff --git a/asterixdb/asterix-installer/src/test/resources/clusterts/id_rsa.pub b/asterixdb/asterix-installer/src/test/resources/clusterts/id_rsa.pub
deleted file mode 100644
index f762934..0000000
--- a/asterixdb/asterix-installer/src/test/resources/clusterts/id_rsa.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==
diff --git a/asterixdb/asterix-installer/src/test/resources/clusterts/known_hosts b/asterixdb/asterix-installer/src/test/resources/clusterts/known_hosts
deleted file mode 100644
index 273f9f3..0000000
--- a/asterixdb/asterix-installer/src/test/resources/clusterts/known_hosts
+++ /dev/null
@@ -1,6 +0,0 @@
-::1 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA4DTPG2/P073Ak5htIlGYxFh9BYo3bwxBW/SZ1+MDtBUGSEFG0wP4dDRNxwzdmc2EB5JbiAb4t2wLtlFJUbhZUuhxxv2WP4Uastt+U2CWe8+/OsSCAieDv9+dvhT2YxkyAwSCFjyv9T+ftE7YyuIqgBoDTcsvCGzhcl80xd/mQuboneYdR8A0Q2cbd47BQ1D+76HW3l0t51N4fsvbds/LdkXtqVqCadiTKuZ/Ki9JkWlIwffF1IvtARdkW5hyA2fkdJcNBGcfIlxcEvXUvEcIi2FVdY+rJTR9014SrspPtfTyPe4mMgwNQGGT1dm9tnjhq/N6WrYOQ8J3HUn+r7tO5w==
-127.0.0.1 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA9gfVcSU968DdflnfJkup3em0MFX13uUTxsiaPisyahjcc++d+9yo+OL5Avffznal9Ev9hzptYclUw9Rx1fSs09g6w8qRiaRLHhYw3mgAer6vG9NZxaj2i2TAVUjdPKZDOSgtFzvPZiwWfhdqi6CmzMRi3MO5G3LzIRzB+qjMitgJ4p/R0mLTik40KTBQNxgN5EmegoANjyBDbdvBKf4vQvMwYGvByq4rMDyDCC8JgcR+B1kR8xNKwDYZFokuSrmAw6PXUmjyW6FaWaUFvrqaj64l1yHqLPcZDTbcSzum6+RaR5Gg2upfs3ahICOzzlnwnwtZxznWKU+rNd4T29cHOw==
-nc1,10.10.0.3 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA9gfVcSU968DdflnfJkup3em0MFX13uUTxsiaPisyahjcc++d+9yo+OL5Avffznal9Ev9hzptYclUw9Rx1fSs09g6w8qRiaRLHhYw3mgAer6vG9NZxaj2i2TAVUjdPKZDOSgtFzvPZiwWfhdqi6CmzMRi3MO5G3LzIRzB+qjMitgJ4p/R0mLTik40KTBQNxgN5EmegoANjyBDbdvBKf4vQvMwYGvByq4rMDyDCC8JgcR+B1kR8xNKwDYZFokuSrmAw6PXUmjyW6FaWaUFvrqaj64l1yHqLPcZDTbcSzum6+RaR5Gg2upfs3ahICOzzlnwnwtZxznWKU+rNd4T29cHOw==
-nc2,10.10.0.4 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA9gfVcSU968DdflnfJkup3em0MFX13uUTxsiaPisyahjcc++d+9yo+OL5Avffznal9Ev9hzptYclUw9Rx1fSs09g6w8qRiaRLHhYw3mgAer6vG9NZxaj2i2TAVUjdPKZDOSgtFzvPZiwWfhdqi6CmzMRi3MO5G3LzIRzB+qjMitgJ4p/R0mLTik40KTBQNxgN5EmegoANjyBDbdvBKf4vQvMwYGvByq4rMDyDCC8JgcR+B1kR8xNKwDYZFokuSrmAw6PXUmjyW6FaWaUFvrqaj64l1yHqLPcZDTbcSzum6+RaR5Gg2upfs3ahICOzzlnwnwtZxznWKU+rNd4T29cHOw==10.10.0.2 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA9gfVcSU968DdflnfJkup3em0MFX13uUTxsiaPisyahjcc++d+9yo+OL5Avffznal9Ev9hzptYclUw9Rx1fSs09g6w8qRiaRLHhYw3mgAer6vG9NZxaj2i2TAVUjdPKZDOSgtFzvPZiwWfhdqi6CmzMRi3MO5G3LzIRzB+qjMitgJ4p/R0mLTik40KTBQNxgN5EmegoANjyBDbdvBKf4vQvMwYGvByq4rMDyDCC8JgcR+B1kR8xNKwDYZFokuSrmAw6PXUmjyW6FaWaUFvrqaj64l1yHqLPcZDTbcSzum6+RaR5Gg2upfs3ahICOzzlnwnwtZxznWKU+rNd4T29cHOw==
-10.10.0.4 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA9gfVcSU968DdflnfJkup3em0MFX13uUTxsiaPisyahjcc++d+9yo+OL5Avffznal9Ev9hzptYclUw9Rx1fSs09g6w8qRiaRLHhYw3mgAer6vG9NZxaj2i2TAVUjdPKZDOSgtFzvPZiwWfhdqi6CmzMRi3MO5G3LzIRzB+qjMitgJ4p/R0mLTik40KTBQNxgN5EmegoANjyBDbdvBKf4vQvMwYGvByq4rMDyDCC8JgcR+B1kR8xNKwDYZFokuSrmAw6PXUmjyW6FaWaUFvrqaj64l1yHqLPcZDTbcSzum6+RaR5Gg2upfs3ahICOzzlnwnwtZxznWKU+rNd4T29cHOw==
-10.10.0.2 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA9gfVcSU968DdflnfJkup3em0MFX13uUTxsiaPisyahjcc++d+9yo+OL5Avffznal9Ev9hzptYclUw9Rx1fSs09g6w8qRiaRLHhYw3mgAer6vG9NZxaj2i2TAVUjdPKZDOSgtFzvPZiwWfhdqi6CmzMRi3MO5G3LzIRzB+qjMitgJ4p/R0mLTik40KTBQNxgN5EmegoANjyBDbdvBKf4vQvMwYGvByq4rMDyDCC8JgcR+B1kR8xNKwDYZFokuSrmAw6PXUmjyW6FaWaUFvrqaj64l1yHqLPcZDTbcSzum6+RaR5Gg2upfs3ahICOzzlnwnwtZxznWKU+rNd4T29cHOw==
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/docker/Dockerfile b/asterixdb/asterix-installer/src/test/resources/docker/Dockerfile
deleted file mode 100644
index 1b0193c..0000000
--- a/asterixdb/asterix-installer/src/test/resources/docker/Dockerfile
+++ /dev/null
@@ -1,54 +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.
-
-FROM centos
-MAINTAINER AsterixDB Team
-
-RUN echo 'LANG="en_US.UTF-8"' > /etc/sysconfig/i18n ;echo 'ZONE="America/Los_Angeles"' > /etc/sysconfig/clock ;cp -a /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
-RUN echo "include_only=.us" >> /etc/yum/pluginconf.d/fastestmirror.conf
-RUN yum -y update
-RUN yum install -y unzip java-1.8.0-openjdk openssh-server openssh-clients python-setuptools wget curl net-tools
-
-RUN sshd-keygen
-RUN sed -i "s/UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
-
-RUN useradd asterix -G wheel -s /bin/bash -m
-RUN echo 'asterix:asterix' | chpasswd
-RUN echo '%wheel ALL=(ALL) ALL' >> /etc/sudoers
-RUN echo 'Host *' >> /etc/ssh/ssh_config
-RUN echo '    StrictHostKeyChecking no' >> /etc/ssh/ssh_config
-
-CMD ["/usr/sbin/sshd", "-D"]
-
-RUN mkdir /asterixdb
-RUN mkdir /asterixdb/asterix
-RUN mkdir /asterixdb/data
-COPY asterix-installer*.zip .
-RUN unzip asterix-installer*.zip -d /asterixdb/asterix-installer/
-COPY id_rsa /root/.ssh/id_rsa
-COPY id_rsa.pub /root/.ssh/id_rsa.pub
-COPY cluster-config.xml /asterixdb/
-
-RUN cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
-RUN chmod 600 /root/.ssh/id_rsa*
-RUN chmod 700 /root/.ssh/authorized_keys
-
-ENV JAVA_HOME /usr/lib/jvm/jre-1.8.0
-ENV JAVA_OPTS -Xmx2048m
-
-EXPOSE 19001 19002 8888 19003 50031 15001
diff --git a/asterixdb/asterix-installer/src/test/resources/docker/cluster-config.xml b/asterixdb/asterix-installer/src/test/resources/docker/cluster-config.xml
deleted file mode 100644
index ed82a55..0000000
--- a/asterixdb/asterix-installer/src/test/resources/docker/cluster-config.xml
+++ /dev/null
@@ -1,80 +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.
- !-->
-<cluster xmlns="cluster">
-
-  <name>asterix</name>
-
-  <username>root</username>
-
-  <working_dir>
-    <dir>/asterixdb/asterix/managix-working</dir>
-    <NFS>false</NFS>
-  </working_dir>
-
-  <log_dir>/asterixdb/data/logs/</log_dir>
-  <txn_log_dir>/asterixdb/data/tx_logs</txn_log_dir>
-  <iodevices>/asterixdb/data/p1,/asterixdb/data/p2</iodevices>
-
-  <store>storage</store>
-
-  <java_home>/usr/lib/jvm/jre-1.8.0</java_home>
-  <metadata_node>nc1</metadata_node>
-
-  <high_availability>
-    <enabled>true</enabled>
-    <data_replication>
-      <strategy>chained_declustering</strategy>
-      <replication_port>2016</replication_port>
-      <replication_time_out>30</replication_time_out>
-      <replication_factor>2</replication_factor>
-    </data_replication>
-    <fault_tolerance>
-       <strategy>auto</strategy>
-    </fault_tolerance>
-  </high_availability>
-
-  <master_node>
-    <id>cc</id>
-    <client_ip>172.20.0.2</client_ip>
-    <cluster_ip>172.20.0.2</cluster_ip>
-    <client_port>1098</client_port>
-    <cluster_port>1099</cluster_port>
-    <http_port>8888</http_port>
-  </master_node>
-  <node>
-    <id>nc1</id>
-    <cluster_ip>172.20.0.3</cluster_ip>
-    <nc_api_port>19004</nc_api_port>
-  </node>
-  <node>
-    <id>nc2</id>
-    <cluster_ip>172.20.0.4</cluster_ip>
-    <nc_api_port>19005</nc_api_port>
-  </node>
-  <node>
-    <id>nc3</id>
-    <cluster_ip>172.20.0.5</cluster_ip>
-    <nc_api_port>19006</nc_api_port>
-  </node>
-  <node>
-    <id>nc4</id>
-    <cluster_ip>172.20.0.6</cluster_ip>
-    <nc_api_port>19007</nc_api_port>
-  </node>
-</cluster>
diff --git a/asterixdb/asterix-installer/src/test/resources/docker/docker-compose.yml b/asterixdb/asterix-installer/src/test/resources/docker/docker-compose.yml
deleted file mode 100644
index 224b0a9..0000000
--- a/asterixdb/asterix-installer/src/test/resources/docker/docker-compose.yml
+++ /dev/null
@@ -1,116 +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.
-
-version: "3.1"
-
-services:
-  cc:
-    image: asterix-test
-    container_name: cc
-    stdin_open: true
-    tty: true
-    volumes:
-        - ./asterix:/asterix
-    deploy:
-      resources:
-        limits:
-          memory: 1024M
-    networks:
-      asterix_net:
-        ipv4_address: 172.20.0.2
-    ports:
-      - "19001:19001"
-
-  nc1:
-    image: asterix-test
-    container_name: nc1
-    stdin_open: true
-    tty: true
-    volumes:
-        - ./asterix:/asterix
-    deploy:
-      resources:
-        limits:
-          memory: 2560M
-    networks:
-      asterix_net:
-        ipv4_address: 172.20.0.3
-    ports:
-      - "6001:15001"
-
-  nc2:
-    image: asterix-test
-    container_name: nc2
-    stdin_open: true
-    tty: true
-    volumes:
-      - ./asterix:/asterix
-    deploy:
-      resources:
-        limits:
-          memory: 2560M
-    networks:
-      asterix_net:
-        ipv4_address: 172.20.0.4
-    ports:
-      - "6002:15001"
-
-  nc3:
-    image: asterix-test
-    container_name: nc3
-    stdin_open: true
-    tty: true
-    volumes:
-      - ./asterix:/asterix
-    deploy:
-      resources:
-        limits:
-          memory: 2560M
-    networks:
-      asterix_net:
-        ipv4_address: 172.20.0.5
-    ports:
-        - "6003:15001"
-
-  nc4:
-    image: asterix-test
-    container_name: nc4
-    stdin_open: true
-    tty: true
-    volumes:
-      - ./asterix:/asterix
-    deploy:
-      resources:
-        limits:
-          memory: 2560M
-    networks:
-      asterix_net:
-        ipv4_address: 172.20.0.6
-    ports:
-        - "6004:15001"
-
-
-networks:
-  asterix_net:
-    driver: bridge
-    driver_opts:
-      com.docker.network.enable_ipv6: "false"
-    ipam:
-      driver: default
-      config:
-      - subnet: 172.20.0.0/24
diff --git a/asterixdb/asterix-installer/src/test/resources/docker/id_rsa b/asterixdb/asterix-installer/src/test/resources/docker/id_rsa
deleted file mode 100644
index 7d6a083..0000000
--- a/asterixdb/asterix-installer/src/test/resources/docker/id_rsa
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzI
-w+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoP
-kcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2
-hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NO
-Td0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcW
-yLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQIBIwKCAQEA4iqWPJXtzZA68mKd
-ELs4jJsdyky+ewdZeNds5tjcnHU5zUYE25K+ffJED9qUWICcLZDc81TGWjHyAqD1
-Bw7XpgUwFgeUJwUlzQurAv+/ySnxiwuaGJfhFM1CaQHzfXphgVml+fZUvnJUTvzf
-TK2Lg6EdbUE9TarUlBf/xPfuEhMSlIE5keb/Zz3/LUlRg8yDqz5w+QWVJ4utnKnK
-iqwZN0mwpwU7YSyJhlT4YV1F3n4YjLswM5wJs2oqm0jssQu/BT0tyEXNDYBLEF4A
-sClaWuSJ2kjq7KhrrYXzagqhnSei9ODYFShJu8UWVec3Ihb5ZXlzO6vdNQ1J9Xsf
-4m+2ywKBgQD6qFxx/Rv9CNN96l/4rb14HKirC2o/orApiHmHDsURs5rUKDx0f9iP
-cXN7S1uePXuJRK/5hsubaOCx3Owd2u9gD6Oq0CsMkE4CUSiJcYrMANtx54cGH7Rk
-EjFZxK8xAv1ldELEyxrFqkbE4BKd8QOt414qjvTGyAK+OLD3M2QdCQKBgQDtx8pN
-CAxR7yhHbIWT1AH66+XWN8bXq7l3RO/ukeaci98JfkbkxURZhtxV/HHuvUhnPLdX
-3TwygPBYZFNo4pzVEhzWoTtnEtrFueKxyc3+LjZpuo+mBlQ6ORtfgkr9gBVphXZG
-YEzkCD3lVdl8L4cw9BVpKrJCs1c5taGjDgdInQKBgHm/fVvv96bJxc9x1tffXAcj
-3OVdUN0UgXNCSaf/3A/phbeBQe9xS+3mpc4r6qvx+iy69mNBeNZ0xOitIjpjBo2+
-dBEjSBwLk5q5tJqHmy/jKMJL4n9ROlx93XS+njxgibTvU6Fp9w+NOFD/HvxB3Tcz
-6+jJF85D5BNAG3DBMKBjAoGBAOAxZvgsKN+JuENXsST7F89Tck2iTcQIT8g5rwWC
-P9Vt74yboe2kDT531w8+egz7nAmRBKNM751U/95P9t88EDacDI/Z2OwnuFQHCPDF
-llYOUI+SpLJ6/vURRbHSnnn8a/XG+nzedGH5JGqEJNQsz+xT2axM0/W/CRknmGaJ
-kda/AoGANWrLCz708y7VYgAtW2Uf1DPOIYMdvo6fxIB5i9ZfISgcJ/bbCUkFrhoH
-+vq/5CIWxCPp0f85R4qxxQ5ihxJ0YDQT9Jpx4TMss4PSavPaBH3RXow5Ohe+bYoQ
-NE5OgEXk2wVfZczCZpigBKbKZHNYcelXtTt/nP3rsCuGcM4h53s=
------END RSA PRIVATE KEY-----
diff --git a/asterixdb/asterix-installer/src/test/resources/docker/id_rsa.pub b/asterixdb/asterix-installer/src/test/resources/docker/id_rsa.pub
deleted file mode 100644
index f762934..0000000
--- a/asterixdb/asterix-installer/src/test/resources/docker/id_rsa.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.12.mgx.aql b/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.12.mgx.aql
deleted file mode 100644
index 369659b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.12.mgx.aql
+++ /dev/null
@@ -1,19 +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.
-#
-startnode -n asterix -nodes nc2
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.17.mgx.aql b/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.17.mgx.aql
deleted file mode 100644
index 78a79c3..0000000
--- a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.17.mgx.aql
+++ /dev/null
@@ -1,19 +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.
-#
-startnode -n asterix -nodes nc1
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.5.mgx.aql b/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.5.mgx.aql
deleted file mode 100644
index 78a79c3..0000000
--- a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.5.mgx.aql
+++ /dev/null
@@ -1,19 +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.
-#
-startnode -n asterix -nodes nc1
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.8.mgx.aql b/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.8.mgx.aql
deleted file mode 100644
index 78a79c3..0000000
--- a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.8.mgx.aql
+++ /dev/null
@@ -1,19 +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.
-#
-startnode -n asterix -nodes nc1
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.3.update.aql
deleted file mode 100644
index f48ccd5..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.3.update.aql
+++ /dev/null
@@ -1,24 +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.
- */
-
-use dataverse recovery;
-
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.3.update.aql
deleted file mode 100644
index f48ccd5..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.3.update.aql
+++ /dev/null
@@ -1,24 +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.
- */
-
-use dataverse recovery;
-
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.3.update.aql
deleted file mode 100644
index f48ccd5..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.3.update.aql
+++ /dev/null
@@ -1,24 +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.
- */
-
-use dataverse recovery;
-
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.3.update.aql
deleted file mode 100644
index 66adcef..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.3.update.aql
+++ /dev/null
@@ -1,30 +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.
- */
-/* 
- * Test case Name  : primary_plus_keyword_secondary_index.aql
- * Description     : Check that abort from duplicate key exception works and crash recovery works after the abort.   
- * Expected Result : Success
- * Date            : Oct 15 2013
- */
-
-use dataverse recovery;
-
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.3.update.aql
deleted file mode 100644
index 0f245b5..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.3.update.aql
+++ /dev/null
@@ -1,30 +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.
- */
-/*
- * Test case Name  : primary_plus_keyword_secondary_index.aql
- * Description     : Check that abort from duplicate key exception works and crash recovery works after the abort.
- * Expected Result : Success
- * Date            : Oct 15 2013
- */
-
-use dataverse recovery;
-
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.3.update.aql
deleted file mode 100644
index ce01110..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.3.update.aql
+++ /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.
- */
-/* 
- * Test case Name  : primary_plus_default_secondary_index.aql
- * Description     : Check that abort from duplicate key exception works and crash recovery works after the abort.   
- * Expected Result : Success
- * Date            : Oct 15 2013
- */
-
-use dataverse recovery;
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.3.update.aql
deleted file mode 100644
index 9bbef93..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.3.update.aql
+++ /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.
- */
-/*
- * Test case Name  : primary_plus_default_secondary_index.aql
- * Description     : Check that abort from duplicate key exception works and crash recovery works after the abort.
- * Expected Result : Success
- * Date            : Oct 15 2013
- */
-
-use dataverse recovery;
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.3.update.aql
deleted file mode 100644
index 66adcef..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.3.update.aql
+++ /dev/null
@@ -1,30 +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.
- */
-/* 
- * Test case Name  : primary_plus_keyword_secondary_index.aql
- * Description     : Check that abort from duplicate key exception works and crash recovery works after the abort.   
- * Expected Result : Success
- * Date            : Oct 15 2013
- */
-
-use dataverse recovery;
-
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.3.update.aql
deleted file mode 100644
index 0f245b5..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.3.update.aql
+++ /dev/null
@@ -1,30 +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.
- */
-/*
- * Test case Name  : primary_plus_keyword_secondary_index.aql
- * Description     : Check that abort from duplicate key exception works and crash recovery works after the abort.
- * Expected Result : Success
- * Date            : Oct 15 2013
- */
-
-use dataverse recovery;
-
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.3.update.aql
deleted file mode 100644
index 1d24079..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.3.update.aql
+++ /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.
- */
-/*
- * Test case Name  : primary_plus_rtree_index_insert_and_delete.aql
- * Description     : Check that abort from duplicate key exception works and crash recovery works after the abort.
- * Expected Result : Success
- */
-
-use dataverse recovery;
-
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.3.update.aql
deleted file mode 100644
index ab07679..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.3.update.aql
+++ /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.
- */
-/* 
- * Test case Name  : primary_index_only.aql
- * Description     : Check that abort from duplicate key exception works and crash recovery works after the abort.   
- * Expected Result : Success
- * Date            : September 25 2013
- */
-
-use dataverse recovery;
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.3.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.3.update.aql
deleted file mode 100644
index ab07679..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.3.update.aql
+++ /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.
- */
-/* 
- * Test case Name  : primary_index_only.aql
- * Description     : Check that abort from duplicate key exception works and crash recovery works after the abort.   
- * Expected Result : Success
- * Date            : September 25 2013
- */
-
-use dataverse recovery;
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.5.update.aql b/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.5.update.aql
deleted file mode 100644
index ab07679..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.5.update.aql
+++ /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.
- */
-/* 
- * Test case Name  : primary_index_only.aql
- * Description     : Check that abort from duplicate key exception works and crash recovery works after the abort.   
- * Expected Result : Success
- * Date            : September 25 2013
- */
-
-use dataverse recovery;
-
-load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/results/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.5.adm b/asterixdb/asterix-installer/src/test/resources/transactionts/results/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.5.adm
deleted file mode 100644
index c31da8b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/results/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.5.adm
+++ /dev/null
@@ -1 +0,0 @@
-804
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/create_and_start.sh
deleted file mode 100755
index 3af1095..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/create_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix 1>/dev/null 2>&1;
-$MANAGIX_HOME/bin/managix delete -n asterix 1>/dev/null 2>&1;
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/stop_and_delete.sh
deleted file mode 100755
index 38b0f7a..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/stop_and_delete.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/stop_and_start.sh
deleted file mode 100755
index d692d12..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/stop_and_start.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/configure_and_validate.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/configure_and_validate.sh
deleted file mode 100755
index e30be0c..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/configure_and_validate.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix configure;
-$MANAGIX_HOME/bin/managix validate;
-$MANAGIX_HOME/bin/managix validate -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/create_and_start.sh
deleted file mode 100755
index 3af1095..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/create_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix 1>/dev/null 2>&1;
-$MANAGIX_HOME/bin/managix delete -n asterix 1>/dev/null 2>&1;
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/create_and_start.sh
deleted file mode 100755
index 5a78f87..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/create_and_start.sh
+++ /dev/null
@@ -1,21 +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.
-#
-$MANAGIX_HOME/bin/managix stop -n asterix 1>/dev/null 2>&1;
-$MANAGIX_HOME/bin/managix delete -n asterix 1>/dev/null 2>&1;
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/stop_and_delete.sh
deleted file mode 100755
index 66f27a2..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/stop_and_delete.sh
+++ /dev/null
@@ -1,21 +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.
-#
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/stop_and_start.sh
deleted file mode 100755
index 0e51f68..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/stop_and_start.sh
+++ /dev/null
@@ -1,20 +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.
-#
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/create_and_start.sh
deleted file mode 100755
index 6c39194..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/create_and_start.sh
+++ /dev/null
@@ -1,25 +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.
-#
-$MANAGIX_HOME/bin/managix stop -n nc1 1>/dev/null 2>&1;
-$MANAGIX_HOME/bin/managix delete -n nc1 1>/dev/null 2>&1;
-$MANAGIX_HOME/bin/managix create -n nc1 -c $MANAGIX_HOME/clusters/local/local.xml;
-$MANAGIX_HOME/bin/managix stop -n nc1;
-cp $MANAGIX_HOME/../../../asterix-external-data/target/asterix-external-data-*-tests.jar \
-    $MANAGIX_HOME/clusters/local/working_dir/asterix/repo/
-$MANAGIX_HOME/bin/managix start -n nc1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/stop_and_delete.sh
deleted file mode 100755
index 7002d00..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/stop_and_delete.sh
+++ /dev/null
@@ -1,21 +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.
-#
-$MANAGIX_HOME/bin/managix stop -n nc1;
-$MANAGIX_HOME/bin/managix delete -n nc1;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/stop_and_start.sh
deleted file mode 100755
index 654fc22..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/stop_and_start.sh
+++ /dev/null
@@ -1,20 +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.
-#
-$MANAGIX_HOME/bin/managix stop -n nc1;
-$MANAGIX_HOME/bin/managix start -n nc1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/external_index/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/external_index/create_and_start.sh
deleted file mode 100755
index ac2cc79..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/external_index/create_and_start.sh
+++ /dev/null
@@ -1,21 +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.
-#
-$MANAGIX_HOME/bin/managix stop -n nc1 1>/dev/null 2>&1;
-$MANAGIX_HOME/bin/managix delete -n nc1 1>/dev/null 2>&1;
-$MANAGIX_HOME/bin/managix create -n nc1 -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/external_index/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/external_index/stop_and_delete.sh
deleted file mode 100755
index 7002d00..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/external_index/stop_and_delete.sh
+++ /dev/null
@@ -1,21 +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.
-#
-$MANAGIX_HOME/bin/managix stop -n nc1;
-$MANAGIX_HOME/bin/managix delete -n nc1;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/external_index/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/external_index/stop_and_start.sh
deleted file mode 100755
index 654fc22..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/query_after_restart/external_index/stop_and_start.sh
+++ /dev/null
@@ -1,20 +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.
-#
-$MANAGIX_HOME/bin/managix stop -n nc1;
-$MANAGIX_HOME/bin/managix start -n nc1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/create_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/create_and_start.sh
deleted file mode 100755
index 789914b..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/create_and_start.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix create -n asterix -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/stop_and_start.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/stop_and_start.sh
deleted file mode 100755
index 2fb80ce..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/stop_and_start.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix start -n asterix;
-
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/setup_teardown/configure_and_validate.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/setup_teardown/configure_and_validate.sh
deleted file mode 100755
index e30be0c..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/setup_teardown/configure_and_validate.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix configure;
-$MANAGIX_HOME/bin/managix validate;
-$MANAGIX_HOME/bin/managix validate -c $MANAGIX_HOME/clusters/local/local.xml;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/setup_teardown/stop_and_delete.sh b/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/setup_teardown/stop_and_delete.sh
deleted file mode 100755
index eb1c01e..0000000
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/setup_teardown/stop_and_delete.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-$MANAGIX_HOME/bin/managix stop -n asterix;
-$MANAGIX_HOME/bin/managix delete -n asterix;
-
diff --git a/asterixdb/asterix-metadata/pom.xml b/asterixdb/asterix-metadata/pom.xml
index 9784c5e..606b474 100644
--- a/asterixdb/asterix-metadata/pom.xml
+++ b/asterixdb/asterix-metadata/pom.xml
@@ -56,12 +56,6 @@
       <scope>compile</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.asterix</groupId>
-      <artifactId>asterix-events</artifactId>
-      <version>${project.version}</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
       <groupId>org.apache.hyracks</groupId>
       <artifactId>hyracks-storage-am-lsm-invertedindex</artifactId>
     </dependency>
@@ -118,10 +112,6 @@
       <artifactId>algebricks-core</artifactId>
     </dependency>
     <dependency>
-      <groupId>javax.xml.bind</groupId>
-      <artifactId>jaxb-api</artifactId>
-    </dependency>
-    <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
     </dependency>
@@ -190,4 +180,4 @@
       <artifactId>hadoop-common</artifactId>
     </dependency>
   </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IClusterManager.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IClusterManager.java
deleted file mode 100644
index 8459f70..0000000
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IClusterManager.java
+++ /dev/null
@@ -1,59 +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.metadata.api;
-
-import java.util.Set;
-
-import org.apache.asterix.common.api.IClusterEventsSubscriber;
-import org.apache.asterix.common.dataflow.ICcApplicationContext;
-import org.apache.asterix.common.exceptions.AsterixException;
-import org.apache.asterix.event.schema.cluster.Node;
-
-public interface IClusterManager {
-
-    /**
-     * @param node
-     * @throws Exception
-     */
-    public void addNode(ICcApplicationContext appCtx, Node node) throws Exception;
-
-    /**
-     * @param node
-     * @throws Exception
-     */
-    public void removeNode(Node node) throws Exception;
-
-    /**
-     * @param subscriber
-     */
-    public void registerSubscriber(IClusterEventsSubscriber subscriber);
-
-    /**
-     * @param sunscriber
-     * @return
-     */
-    public boolean deregisterSubscriber(IClusterEventsSubscriber sunscriber);
-
-    /**
-     * @return
-     */
-    public Set<IClusterEventsSubscriber> getRegisteredClusterEventSubscribers();
-
-    void notifyStartupCompleted() throws Exception;
-}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
index 0303392..bf8079e 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
@@ -65,6 +65,7 @@
 import org.apache.asterix.metadata.utils.MetadataUtil;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.runtime.formats.NonTaggedDataFormat;
+import org.apache.asterix.runtime.utils.ClusterStateManager;
 import org.apache.asterix.transaction.management.opcallbacks.PrimaryIndexOperationTrackerFactory;
 import org.apache.asterix.transaction.management.opcallbacks.SecondaryIndexOperationTrackerFactory;
 import org.apache.asterix.transaction.management.resource.DatasetLocalResourceFactory;
@@ -108,14 +109,14 @@
     private static String metadataNodeName;
     private static List<String> nodeNames;
     private static boolean isNewUniverse;
-    private static final IMetadataIndex[] PRIMARY_INDEXES =
-            new IMetadataIndex[] { MetadataPrimaryIndexes.DATAVERSE_DATASET, MetadataPrimaryIndexes.DATASET_DATASET,
-                    MetadataPrimaryIndexes.DATATYPE_DATASET, MetadataPrimaryIndexes.INDEX_DATASET,
-                    MetadataPrimaryIndexes.NODE_DATASET, MetadataPrimaryIndexes.NODEGROUP_DATASET,
-                    MetadataPrimaryIndexes.FUNCTION_DATASET, MetadataPrimaryIndexes.DATASOURCE_ADAPTER_DATASET,
-                    MetadataPrimaryIndexes.FEED_DATASET, MetadataPrimaryIndexes.FEED_POLICY_DATASET,
-                    MetadataPrimaryIndexes.LIBRARY_DATASET, MetadataPrimaryIndexes.COMPACTION_POLICY_DATASET,
-                    MetadataPrimaryIndexes.EXTERNAL_FILE_DATASET, MetadataPrimaryIndexes.FEED_CONNECTION_DATASET };
+    private static final IMetadataIndex[] PRIMARY_INDEXES = new IMetadataIndex[] {
+            MetadataPrimaryIndexes.DATAVERSE_DATASET, MetadataPrimaryIndexes.DATASET_DATASET,
+            MetadataPrimaryIndexes.DATATYPE_DATASET, MetadataPrimaryIndexes.INDEX_DATASET,
+            MetadataPrimaryIndexes.NODE_DATASET, MetadataPrimaryIndexes.NODEGROUP_DATASET,
+            MetadataPrimaryIndexes.FUNCTION_DATASET, MetadataPrimaryIndexes.DATASOURCE_ADAPTER_DATASET,
+            MetadataPrimaryIndexes.FEED_DATASET, MetadataPrimaryIndexes.FEED_POLICY_DATASET,
+            MetadataPrimaryIndexes.LIBRARY_DATASET, MetadataPrimaryIndexes.COMPACTION_POLICY_DATASET,
+            MetadataPrimaryIndexes.EXTERNAL_FILE_DATASET, MetadataPrimaryIndexes.FEED_CONNECTION_DATASET };
 
     private MetadataBootstrap() {
     }
@@ -265,9 +266,9 @@
 
     private static void insertInitialCompactionPolicies(MetadataTransactionContext mdTxnCtx)
             throws AlgebricksException {
-        String[] builtInCompactionPolicyClassNames =
-                new String[] { ConstantMergePolicyFactory.class.getName(), PrefixMergePolicyFactory.class.getName(),
-                        NoMergePolicyFactory.class.getName(), CorrelatedPrefixMergePolicyFactory.class.getName() };
+        String[] builtInCompactionPolicyClassNames = new String[] { ConstantMergePolicyFactory.class.getName(),
+                PrefixMergePolicyFactory.class.getName(), NoMergePolicyFactory.class.getName(),
+                CorrelatedPrefixMergePolicyFactory.class.getName() };
         for (String policyClassName : builtInCompactionPolicyClassNames) {
             CompactionPolicy compactionPolicy = getCompactionPolicyEntity(policyClassName);
             MetadataManager.INSTANCE.addCompactionPolicy(mdTxnCtx, compactionPolicy);
@@ -287,8 +288,8 @@
     private static CompactionPolicy getCompactionPolicyEntity(String compactionPolicyClassName)
             throws AlgebricksException {
         try {
-            String policyName =
-                    ((ILSMMergePolicyFactory) (Class.forName(compactionPolicyClassName).newInstance())).getName();
+            String policyName = ((ILSMMergePolicyFactory) (Class.forName(compactionPolicyClassName).newInstance()))
+                    .getName();
             return new CompactionPolicy(MetadataConstants.METADATA_DATAVERSE_NAME, policyName,
                     compactionPolicyClassName);
         } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
@@ -325,13 +326,13 @@
         // We are unable to do this since IStorageManager needs a dataset to determine
         // the appropriate
         // objects
-        ILSMOperationTrackerFactory opTrackerFactory =
-                index.isPrimaryIndex() ? new PrimaryIndexOperationTrackerFactory(datasetId)
-                        : new SecondaryIndexOperationTrackerFactory(datasetId);
-        ILSMComponentIdGeneratorFactory idGeneratorProvider =
-                new DatasetLSMComponentIdGeneratorFactory(index.getDatasetId().getId());
-        ILSMIOOperationCallbackFactory ioOpCallbackFactory =
-                new LSMBTreeIOOperationCallbackFactory(idGeneratorProvider);
+        ILSMOperationTrackerFactory opTrackerFactory = index.isPrimaryIndex()
+                ? new PrimaryIndexOperationTrackerFactory(datasetId)
+                : new SecondaryIndexOperationTrackerFactory(datasetId);
+        ILSMComponentIdGeneratorFactory idGeneratorProvider = new DatasetLSMComponentIdGeneratorFactory(
+                index.getDatasetId().getId());
+        ILSMIOOperationCallbackFactory ioOpCallbackFactory = new LSMBTreeIOOperationCallbackFactory(
+                idGeneratorProvider);
         IStorageComponentProvider storageComponentProvider = appContext.getStorageComponentProvider();
         if (isNewUniverse()) {
             LSMBTreeLocalResourceFactory lsmBtreeFactory = new LSMBTreeLocalResourceFactory(
@@ -341,8 +342,8 @@
                     storageComponentProvider.getIoOperationSchedulerProvider(),
                     appContext.getMetadataMergePolicyFactory(), GlobalConfig.DEFAULT_COMPACTION_POLICY_PROPERTIES, true,
                     bloomFilterKeyFields, appContext.getBloomFilterFalsePositiveRate(), true, null);
-            DatasetLocalResourceFactory dsLocalResourceFactory =
-                    new DatasetLocalResourceFactory(datasetId, lsmBtreeFactory);
+            DatasetLocalResourceFactory dsLocalResourceFactory = new DatasetLocalResourceFactory(datasetId,
+                    lsmBtreeFactory);
             // TODO(amoudi) Creating the index should be done through the same code path as
             // other indexes
             // This is to be done by having a metadata dataset associated with each index
@@ -362,8 +363,8 @@
             if (index.getResourceId() != resource.getId()) {
                 throw new HyracksDataException("Resource Id doesn't match expected metadata index resource id");
             }
-            IndexDataflowHelper indexHelper =
-                    new IndexDataflowHelper(ncServiceCtx, storageComponentProvider.getStorageManager(), file);
+            IndexDataflowHelper indexHelper = new IndexDataflowHelper(ncServiceCtx,
+                    storageComponentProvider.getStorageManager(), file);
             indexHelper.open(); // Opening the index through the helper will ensure it gets instantiated
             indexHelper.close();
         }
@@ -418,8 +419,8 @@
                 LOGGER.info("Dropped a pending dataverse: " + dataverse.getDataverseName());
             }
         } else {
-            List<Dataset> datasets =
-                    MetadataManager.INSTANCE.getDataverseDatasets(mdTxnCtx, dataverse.getDataverseName());
+            List<Dataset> datasets = MetadataManager.INSTANCE.getDataverseDatasets(mdTxnCtx,
+                    dataverse.getDataverseName());
             for (Dataset dataset : datasets) {
                 recoverDataset(mdTxnCtx, dataset);
             }
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/cluster/ClusterManager.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/cluster/ClusterManager.java
deleted file mode 100644
index c1c19a4..0000000
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/cluster/ClusterManager.java
+++ /dev/null
@@ -1,168 +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.metadata.cluster;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.asterix.common.api.IClusterEventsSubscriber;
-import org.apache.asterix.common.api.IClusterManagementWork;
-import org.apache.asterix.common.config.ClusterProperties;
-import org.apache.asterix.common.config.ExternalProperties;
-import org.apache.asterix.common.dataflow.ICcApplicationContext;
-import org.apache.asterix.common.exceptions.AsterixException;
-import org.apache.asterix.event.management.AsterixEventServiceClient;
-import org.apache.asterix.event.model.AsterixInstance;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.event.schema.pattern.Pattern;
-import org.apache.asterix.event.schema.pattern.Patterns;
-import org.apache.asterix.event.service.AsterixEventService;
-import org.apache.asterix.event.service.AsterixEventServiceUtil;
-import org.apache.asterix.event.service.ILookupService;
-import org.apache.asterix.event.service.ServiceProvider;
-import org.apache.asterix.event.util.PatternCreator;
-import org.apache.asterix.installer.schema.conf.Configuration;
-import org.apache.asterix.metadata.api.IClusterManager;
-
-public class ClusterManager implements IClusterManager {
-
-    private static final Logger LOGGER = Logger.getLogger(ClusterManager.class.getName());
-
-    public static final IClusterManager INSTANCE = ClusterManagerProvider.getClusterManager();
-
-    private final AsterixEventServiceClient client;
-
-    private final ILookupService lookupService;
-
-    private final Set<IClusterEventsSubscriber> eventSubscribers = new HashSet<>();
-
-    ClusterManager(String eventHome) {
-        String asterixDir = System.getProperty("user.dir") + File.separator + "asterix";
-        File configFile = new File(System.getProperty("user.dir") + File.separator + "configuration.xml");
-        Configuration configuration = null;
-
-        try {
-            JAXBContext configCtx = JAXBContext.newInstance(Configuration.class);
-            Unmarshaller unmarshaller = configCtx.createUnmarshaller();
-            configuration = (Configuration) unmarshaller.unmarshal(configFile);
-            AsterixEventService.initialize(configuration, asterixDir, eventHome);
-            client = AsterixEventService.getAsterixEventServiceClient(ClusterProperties.INSTANCE.getCluster());
-
-            lookupService = ServiceProvider.INSTANCE.getLookupService();
-            if (!lookupService.isRunning(configuration)) {
-                if (LOGGER.isLoggable(Level.INFO)) {
-                    LOGGER.info("Lookup service not running. Starting lookup service ...");
-                }
-                lookupService.startService(configuration);
-            } else {
-                if (LOGGER.isLoggable(Level.INFO)) {
-                    LOGGER.info("Lookup service running");
-                }
-            }
-
-        } catch (Exception e) {
-            throw new IllegalStateException("Unable to initialize cluster manager" + e);
-        }
-    }
-
-    @Override
-    public void addNode(ICcApplicationContext appCtx, Node node) throws Exception {
-        Cluster cluster = ClusterProperties.INSTANCE.getCluster();
-        List<Pattern> pattern = new ArrayList<>();
-        String asterixInstanceName = appCtx.getMetadataProperties().getInstanceName();
-        Patterns prepareNode = PatternCreator.INSTANCE.createPrepareNodePattern(asterixInstanceName,
-                ClusterProperties.INSTANCE.getCluster(), node);
-        cluster.getNode().add(node);
-        client.submit(prepareNode);
-
-        ExternalProperties externalProps = appCtx.getExternalProperties();
-        AsterixEventServiceUtil.poulateClusterEnvironmentProperties(cluster, externalProps.getCCJavaParams(),
-                externalProps.getNCJavaParams());
-
-        pattern.clear();
-        String ccHost = cluster.getMasterNode().getClusterIp();
-        String hostId = node.getId();
-        String nodeControllerId = asterixInstanceName + "_" + node.getId();
-        String iodevices = node.getIodevices() == null ? cluster.getIodevices() : node.getIodevices();
-        Pattern startNC =
-                PatternCreator.INSTANCE.createNCStartPattern(ccHost, hostId, nodeControllerId, iodevices, false);
-        pattern.add(startNC);
-        Patterns startNCPattern = new Patterns(pattern);
-        client.submit(startNCPattern);
-
-        removeNode(cluster.getSubstituteNodes().getNode(), node);
-
-        AsterixInstance instance = lookupService.getAsterixInstance(cluster.getInstanceName());
-        instance.getCluster().getNode().add(node);
-        removeNode(instance.getCluster().getSubstituteNodes().getNode(), node);
-        lookupService.updateAsterixInstance(instance);
-    }
-
-    private void removeNode(List<Node> list, Node node) {
-        Node nodeToRemove = null;
-        for (Node n : list) {
-            if (n.getId().equals(node.getId())) {
-                nodeToRemove = n;
-                break;
-            }
-        }
-        if (nodeToRemove != null) {
-            boolean removed = list.remove(nodeToRemove);
-            if (LOGGER.isLoggable(Level.INFO)) {
-                LOGGER.info("attempt to remove node :" + nodeToRemove + " successful " + removed);
-            }
-        }
-    }
-
-    @Override
-    public void removeNode(Node node) {
-        // to be implemented later.
-    }
-
-    @Override
-    public void registerSubscriber(IClusterEventsSubscriber subscriber) {
-        eventSubscribers.add(subscriber);
-    }
-
-    @Override
-    public boolean deregisterSubscriber(IClusterEventsSubscriber subscriber) {
-        return eventSubscribers.remove(subscriber);
-    }
-
-    @Override
-    public Set<IClusterEventsSubscriber> getRegisteredClusterEventSubscribers() {
-        return eventSubscribers;
-    }
-
-    @Override
-    public void notifyStartupCompleted() throws Exception {
-        // Notify Zookeeper that the startup is complete
-        lookupService.reportClusterState(ClusterProperties.INSTANCE.getCluster().getInstanceName(),
-                IClusterManagementWork.ClusterState.ACTIVE);
-    }
-}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/cluster/ClusterManagerProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/cluster/ClusterManagerProvider.java
deleted file mode 100644
index 2b7c9df..0000000
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/cluster/ClusterManagerProvider.java
+++ /dev/null
@@ -1,90 +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.metadata.cluster;
-
-import java.util.Collections;
-import java.util.Set;
-
-import org.apache.asterix.common.api.IClusterEventsSubscriber;
-import org.apache.asterix.common.config.ClusterProperties;
-import org.apache.asterix.common.dataflow.ICcApplicationContext;
-import org.apache.asterix.common.exceptions.AsterixException;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
-import org.apache.asterix.metadata.api.IClusterManager;
-
-public class ClusterManagerProvider {
-
-    private ClusterManagerProvider() {
-    }
-
-    public static IClusterManager getClusterManager() {
-        return Holder.INSTANCE;
-    }
-
-    private static final class Holder {
-        static final IClusterManager INSTANCE;
-
-        static {
-            Cluster asterixCluster = ClusterProperties.INSTANCE.getCluster();
-            String eventHome = asterixCluster == null ? null
-                    : asterixCluster.getWorkingDir() == null ? null : asterixCluster.getWorkingDir().getDir();
-
-            if (eventHome != null) {
-                INSTANCE = new ClusterManager(eventHome);
-            } else {
-                INSTANCE = new NoopClusterManager();
-            }
-        }
-
-        private Holder() {
-        }
-    }
-    private static class NoopClusterManager implements IClusterManager {
-        @Override
-        public void addNode(ICcApplicationContext appCtx, Node node) {
-            // no-op
-        }
-
-        @Override
-        public void removeNode(Node node) {
-            // no-op
-        }
-
-        @Override
-        public void registerSubscriber(IClusterEventsSubscriber subscriber) {
-            // no-op
-        }
-
-        @Override
-        public boolean deregisterSubscriber(IClusterEventsSubscriber sunscriber) {
-            return true;
-        }
-
-        @Override
-        public Set<IClusterEventsSubscriber> getRegisteredClusterEventSubscribers() {
-            return Collections.emptySet();
-        }
-
-        @Override
-        public void notifyStartupCompleted() {
-            // no-op
-        }
-    }
-}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
index 1e0d597..0398f1a 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
@@ -284,8 +284,8 @@
     }
 
     public Dataset findDataset(String dataverse, String dataset) throws AlgebricksException {
-        String dv =
-                dataverse == null ? (defaultDataverse == null ? null : defaultDataverse.getDataverseName()) : dataverse;
+        String dv = dataverse == null ? (defaultDataverse == null ? null : defaultDataverse.getDataverseName())
+                : dataverse;
         if (dv == null) {
             return null;
         }
@@ -409,8 +409,8 @@
                         policyAccessor, factoryOutput.second);
                 break;
             case EXTERNAL:
-                String libraryName =
-                        feed.getAdapterName().trim().split(FeedConstants.NamingConstants.LIBRARY_NAME_SEPARATOR)[0];
+                String libraryName = feed.getAdapterName().trim()
+                        .split(FeedConstants.NamingConstants.LIBRARY_NAME_SEPARATOR)[0];
                 feedIngestor = new FeedIntakeOperatorDescriptor(jobSpec, feed, libraryName,
                         adapterFactory.getClass().getName(), recordType, policyAccessor, factoryOutput.second);
                 break;
@@ -433,19 +433,21 @@
         if (primaryIndex != null && (dataset.getDatasetType() != DatasetType.EXTERNAL)) {
             isSecondary = !indexName.equals(primaryIndex.getIndexName());
         }
-        Index theIndex = isSecondary ? MetadataManager.INSTANCE.getIndex(mdTxnCtx, dataset.getDataverseName(),
-                dataset.getDatasetName(), indexName) : primaryIndex;
+        Index theIndex = isSecondary
+                ? MetadataManager.INSTANCE.getIndex(mdTxnCtx, dataset.getDataverseName(), dataset.getDatasetName(),
+                        indexName)
+                : primaryIndex;
         int numPrimaryKeys = dataset.getPrimaryKeys().size();
         RecordDescriptor outputRecDesc = JobGenHelper.mkRecordDescriptor(typeEnv, opSchema, context);
-        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> spPc =
-                getSplitProviderAndConstraints(dataset, theIndex.getIndexName());
+        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> spPc = getSplitProviderAndConstraints(dataset,
+                theIndex.getIndexName());
         int[] primaryKeyFields = new int[numPrimaryKeys];
         for (int i = 0; i < numPrimaryKeys; i++) {
             primaryKeyFields[i] = i;
         }
 
-        ISearchOperationCallbackFactory searchCallbackFactory = dataset.getSearchCallbackFactory(
-                storageComponentProvider, theIndex, IndexOperation.SEARCH, primaryKeyFields);
+        ISearchOperationCallbackFactory searchCallbackFactory = dataset
+                .getSearchCallbackFactory(storageComponentProvider, theIndex, IndexOperation.SEARCH, primaryKeyFields);
         IStorageManager storageManager = getStorageComponentProvider().getStorageManager();
         IIndexDataflowHelperFactory indexHelperFactory = new IndexDataflowHelperFactory(storageManager, spPc.first);
         BTreeSearchOperatorDescriptor btreeSearchOp;
@@ -476,8 +478,8 @@
                     "Code generation error: no index " + indexName + " for dataset " + dataset.getDatasetName());
         }
         RecordDescriptor outputRecDesc = JobGenHelper.mkRecordDescriptor(typeEnv, opSchema, context);
-        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> spPc =
-                getSplitProviderAndConstraints(dataset, secondaryIndex.getIndexName());
+        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> spPc = getSplitProviderAndConstraints(dataset,
+                secondaryIndex.getIndexName());
         int[] primaryKeyFields = new int[numPrimaryKeys];
         for (int i = 0; i < numPrimaryKeys; i++) {
             primaryKeyFields[i] = i;
@@ -486,8 +488,8 @@
         ISearchOperationCallbackFactory searchCallbackFactory = dataset.getSearchCallbackFactory(
                 storageComponentProvider, secondaryIndex, IndexOperation.SEARCH, primaryKeyFields);
         RTreeSearchOperatorDescriptor rtreeSearchOp;
-        IIndexDataflowHelperFactory indexDataflowHelperFactory =
-                new IndexDataflowHelperFactory(storageComponentProvider.getStorageManager(), spPc.first);
+        IIndexDataflowHelperFactory indexDataflowHelperFactory = new IndexDataflowHelperFactory(
+                storageComponentProvider.getStorageManager(), spPc.first);
         if (dataset.getDatasetType() == DatasetType.INTERNAL) {
             rtreeSearchOp = new RTreeSearchOperatorDescriptor(jobSpec, outputRecDesc, keyFields, true, true,
                     indexDataflowHelperFactory, retainInput, retainMissing, context.getMissingWriterFactory(),
@@ -512,8 +514,8 @@
         File outFile = new File(fs.getPath());
         String nodeId = fs.getNodeName();
 
-        SinkWriterRuntimeFactory runtime =
-                new SinkWriterRuntimeFactory(printColumns, printerFactories, outFile, getWriterFactory(), inputDesc);
+        SinkWriterRuntimeFactory runtime = new SinkWriterRuntimeFactory(printColumns, printerFactories, outFile,
+                getWriterFactory(), inputDesc);
         AlgebricksPartitionConstraint apc = new AlgebricksAbsolutePartitionConstraint(new String[] { nodeId });
         return new Pair<>(runtime, apc);
     }
@@ -562,16 +564,16 @@
             fieldPermutation[numKeys + 1] = idx;
         }
 
-        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> splitsAndConstraint =
-                getSplitProviderAndConstraints(dataset);
+        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> splitsAndConstraint = getSplitProviderAndConstraints(
+                dataset);
         long numElementsHint = getCardinalityPerPartitionHint(dataset);
         // TODO
         // figure out the right behavior of the bulkload and then give the
         // right callback
         // (ex. what's the expected behavior when there is an error during
         // bulkload?)
-        IIndexDataflowHelperFactory indexHelperFactory =
-                new IndexDataflowHelperFactory(storageComponentProvider.getStorageManager(), splitsAndConstraint.first);
+        IIndexDataflowHelperFactory indexHelperFactory = new IndexDataflowHelperFactory(
+                storageComponentProvider.getStorageManager(), splitsAndConstraint.first);
         LSMIndexBulkLoadOperatorDescriptor btreeBulkLoad = new LSMIndexBulkLoadOperatorDescriptor(spec, null,
                 fieldPermutation, GlobalConfig.DEFAULT_TREE_FILL_FACTOR, false, numElementsHint, true,
                 indexHelperFactory, null, BulkLoadUsage.LOAD, dataset.getDatasetId());
@@ -688,8 +690,8 @@
             numElementsHint = Long.parseLong(numElementsHintString);
         }
         int numPartitions = 0;
-        List<String> nodeGroup =
-                MetadataManager.INSTANCE.getNodegroup(mdTxnCtx, dataset.getNodeGroupName()).getNodeNames();
+        List<String> nodeGroup = MetadataManager.INSTANCE.getNodegroup(mdTxnCtx, dataset.getNodeGroupName())
+                .getNodeNames();
         IClusterStateManager csm = appCtx.getClusterStateManager();
         for (String nd : nodeGroup) {
             numPartitions += csm.getNodePartitionsCount(nd);
@@ -705,9 +707,9 @@
                     getApplicationContext().getServiceContext(), adapterName, configuration, itemType, metaType);
 
             // check to see if dataset is indexed
-            Index filesIndex =
-                    MetadataManager.INSTANCE.getIndex(mdTxnCtx, dataset.getDataverseName(), dataset.getDatasetName(),
-                            dataset.getDatasetName().concat(IndexingConstants.EXTERNAL_FILE_INDEX_NAME_SUFFIX));
+            Index filesIndex = MetadataManager.INSTANCE.getIndex(mdTxnCtx, dataset.getDataverseName(),
+                    dataset.getDatasetName(),
+                    dataset.getDatasetName().concat(IndexingConstants.EXTERNAL_FILE_INDEX_NAME_SUFFIX));
 
             if (filesIndex != null && filesIndex.getPendingOp() == 0) {
                 // get files
@@ -743,7 +745,7 @@
 
     public FileSplit[] splitsForIndex(MetadataTransactionContext mdTxnCtx, Dataset dataset, String indexName)
             throws AlgebricksException {
-        return SplitsAndConstraintsUtil.getIndexSplits(appCtx.getClusterStateManager(), dataset, indexName, mdTxnCtx);
+        return SplitsAndConstraintsUtil.getIndexSplits(dataset, indexName, mdTxnCtx, appCtx.getClusterStateManager());
     }
 
     public DatasourceAdapter getAdapter(MetadataTransactionContext mdTxnCtx, String dataverseName, String adapterName)
@@ -769,21 +771,22 @@
             MetadataProvider metadataProvider, boolean retainMissing) throws AlgebricksException {
         try {
             // Get data type
-            ARecordType itemType =
-                    (ARecordType) MetadataManager.INSTANCE.getDatatype(metadataProvider.getMetadataTxnContext(),
-                            dataset.getDataverseName(), dataset.getItemTypeName()).getDatatype();
+            ARecordType itemType = (ARecordType) MetadataManager.INSTANCE
+                    .getDatatype(metadataProvider.getMetadataTxnContext(), dataset.getDataverseName(),
+                            dataset.getItemTypeName())
+                    .getDatatype();
             ExternalDatasetDetails datasetDetails = (ExternalDatasetDetails) dataset.getDatasetDetails();
             LookupAdapterFactory<?> adapterFactory = AdapterFactoryProvider.getLookupAdapterFactory(
                     getApplicationContext().getServiceContext(), datasetDetails.getProperties(), itemType, ridIndexes,
                     retainInput, retainMissing, context.getMissingWriterFactory());
             String fileIndexName = IndexingConstants.getFilesIndexName(dataset.getDatasetName());
-            Pair<IFileSplitProvider, AlgebricksPartitionConstraint> spPc =
-                    metadataProvider.getSplitProviderAndConstraints(dataset, fileIndexName);
+            Pair<IFileSplitProvider, AlgebricksPartitionConstraint> spPc = metadataProvider
+                    .getSplitProviderAndConstraints(dataset, fileIndexName);
             Index fileIndex = MetadataManager.INSTANCE.getIndex(mdTxnCtx, dataset.getDataverseName(),
                     dataset.getDatasetName(), fileIndexName);
             // Create the file index data flow helper
-            IIndexDataflowHelperFactory indexDataflowHelperFactory =
-                    new IndexDataflowHelperFactory(storageComponentProvider.getStorageManager(), spPc.first);
+            IIndexDataflowHelperFactory indexDataflowHelperFactory = new IndexDataflowHelperFactory(
+                    storageComponentProvider.getStorageManager(), spPc.first);
             // Create the out record descriptor, appContext and fileSplitProvider for the
             // files index
             RecordDescriptor outRecDesc = JobGenHelper.mkRecordDescriptor(typeEnv, opSchema, context);
@@ -849,12 +852,12 @@
             throw new AlgebricksException("Can only scan datasets of records.");
         }
 
-        ISerializerDeserializer<?> payloadSerde =
-                getDataFormat().getSerdeProvider().getSerializerDeserializer(itemType);
+        ISerializerDeserializer<?> payloadSerde = getDataFormat().getSerdeProvider()
+                .getSerializerDeserializer(itemType);
         RecordDescriptor scannerDesc = new RecordDescriptor(new ISerializerDeserializer[] { payloadSerde });
 
-        ExternalScanOperatorDescriptor dataScanner =
-                new ExternalScanOperatorDescriptor(jobSpec, scannerDesc, adapterFactory);
+        ExternalScanOperatorDescriptor dataScanner = new ExternalScanOperatorDescriptor(jobSpec, scannerDesc,
+                adapterFactory);
 
         AlgebricksPartitionConstraint constraint;
         try {
@@ -880,9 +883,9 @@
 
         int i = 0;
         for (; i < sidxKeyFieldCount; ++i) {
-            Pair<IAType, Boolean> keyPairType =
-                    Index.getNonNullableOpenFieldType(sidxKeyFieldTypes.get(i), sidxKeyFieldNames.get(i),
-                            (hasMeta && secondaryIndexIndicators.get(i).intValue() == 1) ? metaType : recType);
+            Pair<IAType, Boolean> keyPairType = Index.getNonNullableOpenFieldType(sidxKeyFieldTypes.get(i),
+                    sidxKeyFieldNames.get(i),
+                    (hasMeta && secondaryIndexIndicators.get(i).intValue() == 1) ? metaType : recType);
             IAType keyType = keyPairType.first;
             comparatorFactories[i] = BinaryComparatorFactoryProvider.INSTANCE.getBinaryComparatorFactory(keyType, true);
             typeTraits[i] = TypeTraitProvider.INSTANCE.getTypeTrait(keyType);
@@ -920,8 +923,8 @@
             List<LogicalVariable> additionalNonFilteringFields) throws AlgebricksException {
 
         String datasetName = dataSource.getId().getDatasourceName();
-        Dataset dataset =
-                MetadataManagerUtil.findExistingDataset(mdTxnCtx, dataSource.getId().getDataverseName(), datasetName);
+        Dataset dataset = MetadataManagerUtil.findExistingDataset(mdTxnCtx, dataSource.getId().getDataverseName(),
+                datasetName);
         int numKeys = keys.size();
         int numFilterFields = DatasetUtil.getFilterField(dataset) == null ? 0 : 1;
         // Move key fields to front.
@@ -949,18 +952,18 @@
 
         Index primaryIndex = MetadataManager.INSTANCE.getIndex(mdTxnCtx, dataset.getDataverseName(),
                 dataset.getDatasetName(), dataset.getDatasetName());
-        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> splitsAndConstraint =
-                getSplitProviderAndConstraints(dataset);
+        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> splitsAndConstraint = getSplitProviderAndConstraints(
+                dataset);
 
         // prepare callback
         int[] primaryKeyFields = new int[numKeys];
         for (i = 0; i < numKeys; i++) {
             primaryKeyFields[i] = i;
         }
-        IModificationOperationCallbackFactory modificationCallbackFactory = dataset.getModificationCallbackFactory(
-                storageComponentProvider, primaryIndex, indexOp, primaryKeyFields);
-        IIndexDataflowHelperFactory idfh =
-                new IndexDataflowHelperFactory(storageComponentProvider.getStorageManager(), splitsAndConstraint.first);
+        IModificationOperationCallbackFactory modificationCallbackFactory = dataset
+                .getModificationCallbackFactory(storageComponentProvider, primaryIndex, indexOp, primaryKeyFields);
+        IIndexDataflowHelperFactory idfh = new IndexDataflowHelperFactory(storageComponentProvider.getStorageManager(),
+                splitsAndConstraint.first);
         IOperatorDescriptor op;
         if (bulkload) {
             long numElementsHint = getCardinalityPerPartitionHint(dataset);
@@ -1119,8 +1122,8 @@
                 dataset.getDatasetName(), indexName);
         List<List<String>> secondaryKeyExprs = secondaryIndex.getKeyFieldNames();
         List<IAType> secondaryKeyTypes = secondaryIndex.getKeyFieldTypes();
-        Pair<IAType, Boolean> keyPairType =
-                Index.getNonNullableOpenFieldType(secondaryKeyTypes.get(0), secondaryKeyExprs.get(0), recType);
+        Pair<IAType, Boolean> keyPairType = Index.getNonNullableOpenFieldType(secondaryKeyTypes.get(0),
+                secondaryKeyExprs.get(0), recType);
         IAType spatialType = keyPairType.first;
         int dimension = NonTaggedFormatUtil.getNumDimensions(spatialType.getTypeTag());
         int numSecondaryKeys = dimension * 2;
@@ -1173,14 +1176,14 @@
                 prevFieldPermutation[numKeys] = idx;
             }
         }
-        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> splitsAndConstraint =
-                getSplitProviderAndConstraints(dataset, secondaryIndex.getIndexName());
+        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> splitsAndConstraint = getSplitProviderAndConstraints(
+                dataset, secondaryIndex.getIndexName());
 
         // prepare callback
         IModificationOperationCallbackFactory modificationCallbackFactory = dataset.getModificationCallbackFactory(
                 storageComponentProvider, secondaryIndex, indexOp, modificationCallbackPrimaryKeyFields);
-        IIndexDataflowHelperFactory indexDataflowHelperFactory =
-                new IndexDataflowHelperFactory(storageComponentProvider.getStorageManager(), splitsAndConstraint.first);
+        IIndexDataflowHelperFactory indexDataflowHelperFactory = new IndexDataflowHelperFactory(
+                storageComponentProvider.getStorageManager(), splitsAndConstraint.first);
         IOperatorDescriptor op;
         if (bulkload) {
             long numElementsHint = getCardinalityPerPartitionHint(dataset);
@@ -1501,8 +1504,8 @@
             return null;
         }
         IExpressionRuntimeProvider expressionRuntimeProvider = context.getExpressionRuntimeProvider();
-        IScalarEvaluatorFactory filterEvalFactory =
-                expressionRuntimeProvider.createEvaluatorFactory(filterExpr, typeEnv, inputSchemas, context);
+        IScalarEvaluatorFactory filterEvalFactory = expressionRuntimeProvider.createEvaluatorFactory(filterExpr,
+                typeEnv, inputSchemas, context);
         return new AsterixTupleFilterFactory(filterEvalFactory, context.getBinaryBooleanInspectorFactory());
     }
 
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SplitsAndConstraintsUtil.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SplitsAndConstraintsUtil.java
index 7ac6183..2a6d0e8 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SplitsAndConstraintsUtil.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SplitsAndConstraintsUtil.java
@@ -24,6 +24,7 @@
 
 import org.apache.asterix.common.cluster.ClusterPartition;
 import org.apache.asterix.common.cluster.IClusterStateManager;
+import org.apache.asterix.common.exceptions.MetadataException;
 import org.apache.asterix.common.utils.StoragePathUtil;
 import org.apache.asterix.metadata.MetadataManager;
 import org.apache.asterix.metadata.MetadataTransactionContext;
@@ -52,14 +53,18 @@
         return splits.toArray(new FileSplit[] {});
     }
 
-    public static FileSplit[] getIndexSplits(IClusterStateManager clusterStateManager, Dataset dataset,
-            String indexName, MetadataTransactionContext mdTxnCtx) throws AlgebricksException {
-        NodeGroup nodeGroup = MetadataManager.INSTANCE.getNodegroup(mdTxnCtx, dataset.getNodeGroupName());
-        if (nodeGroup == null) {
-            throw new AlgebricksException("Couldn't find node group " + dataset.getNodeGroupName());
+    public static FileSplit[] getIndexSplits(Dataset dataset, String indexName, MetadataTransactionContext mdTxnCtx,
+            IClusterStateManager csm) throws AlgebricksException {
+        try {
+            NodeGroup nodeGroup = MetadataManager.INSTANCE.getNodegroup(mdTxnCtx, dataset.getNodeGroupName());
+            if (nodeGroup == null) {
+                throw new AlgebricksException("Couldn't find node group " + dataset.getNodeGroupName());
+            }
+            List<String> nodeList = nodeGroup.getNodeNames();
+            return getIndexSplits(csm, dataset, indexName, nodeList);
+        } catch (MetadataException me) {
+            throw new AlgebricksException(me);
         }
-        List<String> nodeList = nodeGroup.getNodeNames();
-        return getIndexSplits(clusterStateManager, dataset, indexName, nodeList);
     }
 
     public static FileSplit[] getIndexSplits(IClusterStateManager clusterStateManager, Dataset dataset,
diff --git a/asterixdb/asterix-replication/pom.xml b/asterixdb/asterix-replication/pom.xml
index 2b5fe0c..41afc1d 100644
--- a/asterixdb/asterix-replication/pom.xml
+++ b/asterixdb/asterix-replication/pom.xml
@@ -72,6 +72,14 @@
       <version>${project.version}</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.hyracks</groupId>
+      <artifactId>hyracks-control-nc</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hyracks</groupId>
+      <artifactId>hyracks-control-common</artifactId>
+    </dependency>
+    <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-core</artifactId>
     </dependency>
diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicaStateChecker.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicaStateChecker.java
index be7cdc5..e260de5 100644
--- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicaStateChecker.java
+++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicaStateChecker.java
@@ -25,7 +25,6 @@
 import java.nio.channels.UnresolvedAddressException;
 import java.util.concurrent.Callable;
 
-import org.apache.asterix.common.config.ReplicationProperties;
 import org.apache.asterix.common.replication.Replica;
 import org.apache.asterix.common.replication.Replica.ReplicaState;
 import org.apache.asterix.replication.functions.ReplicationProtocol;
@@ -36,15 +35,13 @@
     private final Replica replica;
     private final int replicationTimeOut;
     private final ReplicationManager replicationManager;
-    private final ReplicationProperties asterixReplicationProperties;
     private final boolean suspendReplication;
 
     public ReplicaStateChecker(Replica replica, int replicationTimeOut, ReplicationManager replicationManager,
-            ReplicationProperties asterixReplicationProperties, boolean suspendReplication) {
+            boolean suspendReplication) {
         this.replica = replica;
         this.replicationTimeOut = replicationTimeOut;
         this.replicationManager = replicationManager;
-        this.asterixReplicationProperties = asterixReplicationProperties;
         this.suspendReplication = suspendReplication;
     }
 
@@ -53,7 +50,8 @@
         Thread.currentThread().setName("ReplicaConnector Thread");
 
         long startTime = System.currentTimeMillis();
-        InetSocketAddress replicaAddress = replica.getAddress(asterixReplicationProperties);
+        InetSocketAddress replicaAddress = InetSocketAddress.createUnresolved(replica.getClusterIp(),
+                replica.getPort());
 
         while (true) {
             try (SocketChannel connection = SocketChannel.open()) {
diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicationChannel.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicationChannel.java
index ba24e07..32e9498 100644
--- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicationChannel.java
+++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicationChannel.java
@@ -28,6 +28,7 @@
 import java.nio.channels.FileChannel;
 import java.nio.channels.ServerSocketChannel;
 import java.nio.channels.SocketChannel;
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -54,6 +55,7 @@
 import org.apache.asterix.common.replication.IReplicationManager;
 import org.apache.asterix.common.replication.IReplicationStrategy;
 import org.apache.asterix.common.replication.IReplicationThread;
+import org.apache.asterix.common.replication.Replica;
 import org.apache.asterix.common.replication.ReplicaEvent;
 import org.apache.asterix.common.storage.DatasetResourceReference;
 import org.apache.asterix.common.storage.IIndexCheckpointManager;
@@ -82,6 +84,8 @@
 import org.apache.asterix.transaction.management.resource.PersistentLocalResourceRepository;
 import org.apache.asterix.transaction.management.service.logging.LogBuffer;
 import org.apache.hyracks.api.application.INCServiceContext;
+import org.apache.hyracks.control.common.controllers.NCConfig;
+import org.apache.hyracks.control.nc.NodeControllerService;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.storage.am.lsm.common.api.LSMOperationType;
 import org.apache.hyracks.storage.am.lsm.common.impls.AbstractLSMIndex;
@@ -116,12 +120,16 @@
     private final Object flushLogslock = new Object();
     private final IDatasetLifecycleManager dsLifecycleManager;
     private final PersistentLocalResourceRepository localResourceRep;
+    private final IReplicationStrategy replicationStrategy;
+    private final NCConfig ncConfig;
+    private Set nodeHostedPartitions;
     private final IIndexCheckpointManagerProvider indexCheckpointManagerProvider;
     private final INcApplicationContext appCtx;
 
     public ReplicationChannel(String nodeId, ReplicationProperties replicationProperties, ILogManager logManager,
             IReplicaResourcesManager replicaResoucesManager, IReplicationManager replicationManager,
-            INCServiceContext ncServiceContext, IAppRuntimeContextProvider asterixAppRuntimeContextProvider) {
+            INCServiceContext ncServiceContext, IAppRuntimeContextProvider asterixAppRuntimeContextProvider,
+            IReplicationStrategy replicationStrategy) {
         this.logManager = logManager;
         this.localNodeID = nodeId;
         this.replicaResourcesManager = (ReplicaResourcesManager) replicaResoucesManager;
@@ -129,8 +137,10 @@
         this.replicationProperties = replicationProperties;
         this.appContextProvider = asterixAppRuntimeContextProvider;
         this.dsLifecycleManager = asterixAppRuntimeContextProvider.getDatasetLifecycleManager();
-        this.localResourceRep =
-                (PersistentLocalResourceRepository) asterixAppRuntimeContextProvider.getLocalResourceRepository();
+        this.localResourceRep = (PersistentLocalResourceRepository) asterixAppRuntimeContextProvider
+                .getLocalResourceRepository();
+        this.replicationStrategy = replicationStrategy;
+        this.ncConfig = ((NodeControllerService) ncServiceContext.getControllerService()).getConfiguration();
         lsmComponentRemoteLSN2LocalLSNMappingTaskQ = new LinkedBlockingQueue<>();
         pendingNotificationRemoteLogsQ = new LinkedBlockingQueue<>();
         lsmComponentId2PropertiesMap = new ConcurrentHashMap<>();
@@ -139,21 +149,34 @@
         lsmComponentLSNMappingService = new LSMComponentsSyncService();
         replicationNotifier = new ReplicationNotifier();
         replicationThreads = Executors.newCachedThreadPool(ncServiceContext.getThreadFactory());
+        Map<String, ClusterPartition[]> nodePartitions = asterixAppRuntimeContextProvider.getAppContext()
+                .getMetadataProperties().getNodePartitions();
+        Set<String> nodeReplicationClients = replicationStrategy.getRemotePrimaryReplicas(nodeId).stream()
+                .map(Replica::getId).collect(Collectors.toSet());
+        List<Integer> clientsPartitions = new ArrayList<>();
+        for (String clientId : nodeReplicationClients) {
+            for (ClusterPartition clusterPartition : nodePartitions.get(clientId)) {
+                clientsPartitions.add(clusterPartition.getPartitionId());
+            }
+        }
+        nodeHostedPartitions = new HashSet<>(clientsPartitions.size());
+        nodeHostedPartitions.addAll(clientsPartitions);
+        this.indexCheckpointManagerProvider =
+                ((INcApplicationContext) ncServiceContext.getApplicationContext()).getIndexCheckpointManagerProvider();
         this.appCtx = (INcApplicationContext) ncServiceContext.getApplicationContext();
-        this.indexCheckpointManagerProvider = appCtx.getIndexCheckpointManagerProvider();
     }
 
     @Override
     public void run() {
         Thread.currentThread().setName("Replication Channel Thread");
 
-        String nodeIP = replicationProperties.getReplicaIPAddress(localNodeID);
-        int dataPort = replicationProperties.getDataReplicationPort(localNodeID);
+        String nodeIP = replicationProperties.getNodeIpFromId(localNodeID);
+        int dataPort = ncConfig.getReplicationPublicPort();
         try {
             serverSocketChannel = ServerSocketChannel.open();
             serverSocketChannel.configureBlocking(true);
-            InetSocketAddress replicationChannelAddress =
-                    new InetSocketAddress(InetAddress.getByName(nodeIP), dataPort);
+            InetSocketAddress replicationChannelAddress = new InetSocketAddress(InetAddress.getByName(nodeIP),
+                    dataPort);
             serverSocketChannel.socket().bind(replicationChannelAddress);
             lsmComponentLSNMappingService.start();
             replicationNotifier.start();
@@ -182,9 +205,8 @@
         if (remainingFile == 0) {
             if (lsmCompProp.getOpType() == LSMOperationType.FLUSH && lsmCompProp.getReplicaLSN() != null
                     && replicaUniqueLSN2RemoteMapping.containsKey(lsmCompProp.getNodeUniqueLSN())) {
-                int remainingIndexes =
-                        replicaUniqueLSN2RemoteMapping.get(lsmCompProp.getNodeUniqueLSN()).numOfFlushedIndexes
-                                .decrementAndGet();
+                int remainingIndexes = replicaUniqueLSN2RemoteMapping
+                        .get(lsmCompProp.getNodeUniqueLSN()).numOfFlushedIndexes.decrementAndGet();
                 if (remainingIndexes == 0) {
                     /**
                      * Note: there is a chance that this will never be removed because some
@@ -228,8 +250,8 @@
         public void run() {
             Thread.currentThread().setName("Replication Thread");
             try {
-                ReplicationRequestType replicationFunction =
-                        ReplicationProtocol.getRequestType(socketChannel, inBuffer);
+                ReplicationRequestType replicationFunction = ReplicationProtocol.getRequestType(socketChannel,
+                        inBuffer);
                 while (replicationFunction != ReplicationRequestType.GOODBYE) {
                     switch (replicationFunction) {
                         case REPLICATE_LOG:
@@ -275,7 +297,7 @@
                 }
             } catch (Exception e) {
                 if (LOGGER.isLoggable(Level.WARNING)) {
-                    LOGGER.log(Level.WARNING, "Unexpectedly error during replication.", e);
+                    LOGGER.log(Level.WARNING, "Unexpected error during replication.", e);
                 }
             } finally {
                 if (socketChannel.isOpen()) {
@@ -305,8 +327,8 @@
             Set<Integer> datasetsToForceFlush = new HashSet<>();
             for (IndexInfo iInfo : openIndexesInfo) {
                 if (requestedIndexesToBeFlushed.contains(iInfo.getResourceId())) {
-                    AbstractLSMIOOperationCallback ioCallback =
-                            (AbstractLSMIOOperationCallback) iInfo.getIndex().getIOOperationCallback();
+                    AbstractLSMIOOperationCallback ioCallback = (AbstractLSMIOOperationCallback) iInfo.getIndex()
+                            .getIOOperationCallback();
                     //if an index has a pending flush, then the request to flush it will succeed.
                     if (ioCallback.hasPendingFlush()) {
                         //remove index to indicate that it will be flushed
@@ -400,12 +422,11 @@
             List<String> filesList;
             Set<Integer> partitionIds = request.getPartitionIds();
             Set<String> requesterExistingFiles = request.getExistingFiles();
-            Map<Integer, ClusterPartition> clusterPartitions =
-                    appContextProvider.getAppContext().getMetadataProperties().getClusterPartitions();
+            Map<Integer, ClusterPartition> clusterPartitions = appContextProvider.getAppContext()
+                    .getMetadataProperties().getClusterPartitions();
 
-            final IReplicationStrategy repStrategy = replicationProperties.getReplicationStrategy();
             // Flush replicated datasets to generate the latest LSM components
-            dsLifecycleManager.flushDataset(repStrategy);
+            dsLifecycleManager.flushDataset(replicationStrategy);
             for (Integer partitionId : partitionIds) {
                 ClusterPartition partition = clusterPartitions.get(partitionId);
                 filesList = replicaResourcesManager.getPartitionIndexesFiles(partition.getPartitionId(), false);
@@ -413,7 +434,7 @@
                 for (String filePath : filesList) {
                     // Send only files of datasets that are replciated.
                     DatasetResourceReference indexFileRef = localResourceRep.getLocalResourceReference(filePath);
-                    if (!repStrategy.isMatch(indexFileRef.getDatasetId())) {
+                    if (!replicationStrategy.isMatch(indexFileRef.getDatasetId())) {
                         continue;
                     }
                     String relativeFilePath = StoragePathUtil.getIndexFileRelativePath(filePath);
diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicationManager.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicationManager.java
index b933db8..c0c491a 100644
--- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicationManager.java
+++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/management/ReplicationManager.java
@@ -54,7 +54,6 @@
 import java.util.stream.Collectors;
 
 import org.apache.asterix.common.cluster.ClusterPartition;
-import org.apache.asterix.common.config.ClusterProperties;
 import org.apache.asterix.common.config.ReplicationProperties;
 import org.apache.asterix.common.replication.IPartitionReplica;
 import org.apache.asterix.common.replication.IReplicaResourcesManager;
@@ -64,6 +63,7 @@
 import org.apache.asterix.common.replication.Replica.ReplicaState;
 import org.apache.asterix.common.replication.ReplicaEvent;
 import org.apache.asterix.common.replication.ReplicationJob;
+import org.apache.asterix.common.replication.ReplicationStrategyFactory;
 import org.apache.asterix.common.storage.DatasetResourceReference;
 import org.apache.asterix.common.storage.IIndexCheckpointManagerProvider;
 import org.apache.asterix.common.storage.ResourceReference;
@@ -71,7 +71,6 @@
 import org.apache.asterix.common.transactions.ILogManager;
 import org.apache.asterix.common.transactions.ILogRecord;
 import org.apache.asterix.common.transactions.LogType;
-import org.apache.asterix.event.schema.cluster.Node;
 import org.apache.asterix.replication.functions.ReplicaFilesRequest;
 import org.apache.asterix.replication.functions.ReplicaIndexFlushRequest;
 import org.apache.asterix.replication.functions.ReplicationProtocol;
@@ -83,11 +82,16 @@
 import org.apache.asterix.replication.storage.ReplicaResourcesManager;
 import org.apache.asterix.transaction.management.resource.PersistentLocalResourceRepository;
 import org.apache.hyracks.api.application.IClusterLifecycleListener.ClusterEventType;
+import org.apache.hyracks.api.application.INCServiceContext;
+import org.apache.hyracks.api.config.IApplicationConfig;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.api.replication.IReplicationJob;
 import org.apache.hyracks.api.replication.IReplicationJob.ReplicationExecutionType;
 import org.apache.hyracks.api.replication.IReplicationJob.ReplicationJobType;
 import org.apache.hyracks.api.replication.IReplicationJob.ReplicationOperation;
+import org.apache.hyracks.control.common.controllers.NCConfig;
+import org.apache.hyracks.control.nc.NodeControllerService;
+import org.apache.hyracks.storage.am.lsm.common.api.ILSMDiskComponent;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMIndexReplicationJob;
 import org.apache.hyracks.util.StorageUtil;
 import org.apache.hyracks.util.StorageUtil.StorageUnit;
@@ -137,26 +141,33 @@
     private Future<? extends Object> txnLogReplicatorTask;
     private SocketChannel[] logsRepSockets;
     private final ByteBuffer txnLogsBatchSizeBuffer = ByteBuffer.allocate(Integer.BYTES);
-    private final IReplicationStrategy replicationStrategy;
+    private IReplicationStrategy replicationStrategy;
     private final PersistentLocalResourceRepository localResourceRepo;
+    private NCConfig ncConfig;
     private final IIndexCheckpointManagerProvider indexCheckpointManagerProvider;
 
     //TODO this class needs to be refactored by moving its private classes to separate files
     //and possibly using MessageBroker to send/receive remote replicas events.
     public ReplicationManager(String nodeId, ReplicationProperties replicationProperties,
             IReplicaResourcesManager remoteResoucesManager, ILogManager logManager,
-            IAppRuntimeContextProvider asterixAppRuntimeContextProvider) {
+            IAppRuntimeContextProvider asterixAppRuntimeContextProvider, INCServiceContext ncServiceContext) {
         this.nodeId = nodeId;
+        this.ncConfig = ((NodeControllerService) ncServiceContext.getControllerService()).getConfiguration();
         this.replicationProperties = replicationProperties;
-        replicationStrategy = replicationProperties.getReplicationStrategy();
+        try {
+            replicationStrategy = ReplicationStrategyFactory.create(replicationProperties.getReplicationStrategy(),
+                    replicationProperties, ncConfig.getConfigManager());
+        } catch (HyracksDataException e) {
+            LOGGER.log(Level.WARNING, "Couldn't initialize replication strategy", e);
+        }
         this.replicaResourcesManager = (ReplicaResourcesManager) remoteResoucesManager;
         this.asterixAppRuntimeContextProvider = asterixAppRuntimeContextProvider;
         this.logManager = logManager;
-        this.indexCheckpointManagerProvider =
-                asterixAppRuntimeContextProvider.getAppContext().getIndexCheckpointManagerProvider();
         localResourceRepo =
                 (PersistentLocalResourceRepository) asterixAppRuntimeContextProvider.getLocalResourceRepository();
-        this.hostIPAddressFirstOctet = replicationProperties.getReplicaIPAddress(nodeId).substring(0, 3);
+        this.hostIPAddressFirstOctet = ncConfig.getPublicAddress().substring(0, 3);
+        this.indexCheckpointManagerProvider =
+                asterixAppRuntimeContextProvider.getAppContext().getIndexCheckpointManagerProvider();
         replicas = new HashMap<>();
         replicationJobsQ = new LinkedBlockingQueue<>();
         replicaEventsQ = new LinkedBlockingQueue<>();
@@ -169,7 +180,7 @@
         dataBuffer = ByteBuffer.allocate(INITIAL_BUFFER_SIZE);
         replicationMonitor = new ReplicasEventsMonitor();
         //add list of replicas from configurations (To be read from another source e.g. Zookeeper)
-        Set<Replica> replicaNodes = replicationProperties.getReplicationStrategy().getRemoteReplicas(nodeId);
+        Set<Replica> replicaNodes = replicationStrategy.getRemoteReplicas(nodeId);
 
         //Used as async listeners from replicas
         replicationListenerThreads = Executors.newCachedThreadPool();
@@ -181,11 +192,11 @@
         for (Replica replica : replicaNodes) {
             replicas.put(replica.getId(), replica);
             //for each remote replica, get the list of replication clients
-            Set<String> nodeReplicationClients = replicationProperties.getRemotePrimaryReplicasIds(replica.getId());
+            Set<Replica> nodeReplicationClients = replicationStrategy.getRemotePrimaryReplicas(replica.getId());
             //get the partitions of each client
             List<Integer> clientPartitions = new ArrayList<>();
-            for (String clientId : nodeReplicationClients) {
-                for (ClusterPartition clusterPartition : nodePartitions.get(clientId)) {
+            for (Replica client : nodeReplicationClients) {
+                for (ClusterPartition clusterPartition : nodePartitions.get(client.getId())) {
                     clientPartitions.add(clusterPartition.getPartitionId());
                 }
             }
@@ -313,8 +324,8 @@
                         //send LSMComponent properties
                         LSMComponentJob = (ILSMIndexReplicationJob) job;
                         LSMComponentProperties lsmCompProp = new LSMComponentProperties(LSMComponentJob, nodeId);
-                        requestBuffer =
-                                ReplicationProtocol.writeLSMComponentPropertiesRequest(lsmCompProp, requestBuffer);
+                        requestBuffer = ReplicationProtocol.writeLSMComponentPropertiesRequest(lsmCompProp, //NOSONAR
+                                requestBuffer);
                         sendRequest(replicasSockets, requestBuffer);
                     }
 
@@ -438,17 +449,17 @@
 
     @Override
     public boolean isReplicationEnabled() {
-        return replicationProperties.isParticipant(nodeId);
+        return replicationStrategy.isParticipant(nodeId);
     }
 
     @Override
     public synchronized void updateReplicaInfo(Replica replicaNode) {
-        Replica replica = replicas.get(replicaNode.getNode().getId());
+        Replica replica = replicas.get(replicaNode.getId());
         //should not update the info of an active replica
         if (replica.getState() == ReplicaState.ACTIVE) {
             return;
         }
-        replica.getNode().setClusterIp(replicaNode.getNode().getClusterIp());
+        replica.setClusterIp(replicaNode.getClusterIp());
     }
 
     /**
@@ -616,10 +627,8 @@
      * @throws IOException
      */
     private void sendShutdownNotifiction() throws IOException {
-        Node node = new Node();
-        node.setId(nodeId);
-        node.setClusterIp(NetworkingUtil.getHostAddress(hostIPAddressFirstOctet));
-        Replica replica = new Replica(node);
+        Replica replica = new Replica(nodeId, NetworkingUtil.getHostAddress(hostIPAddressFirstOctet),
+                ncConfig.getReplicationPublicPort());
         ReplicaEvent event = new ReplicaEvent(replica, ClusterEventType.NODE_SHUTTING_DOWN);
         ByteBuffer buffer = ReplicationProtocol.writeReplicaEventRequest(event);
         Map<String, SocketChannel> replicaSockets = getActiveRemoteReplicasSockets();
@@ -678,7 +687,7 @@
     @Override
     public void initializeReplicasState() {
         for (Replica replica : replicas.values()) {
-            checkReplicaState(replica.getNode().getId(), false, false);
+            checkReplicaState(replica.getId(), false, false);
         }
     }
 
@@ -696,7 +705,7 @@
         Replica replica = replicas.get(replicaId);
 
         ReplicaStateChecker connector = new ReplicaStateChecker(replica, replicationProperties.getReplicationTimeOut(),
-                this, replicationProperties, suspendReplication);
+                this, suspendReplication);
         Future<? extends Object> ft = asterixAppRuntimeContextProvider.getThreadExecutor().submit(connector);
 
         if (!async) {
@@ -848,11 +857,11 @@
      * @throws IOException
      */
     private SocketChannel getReplicaSocket(String replicaId) throws IOException {
-        Replica replica = replicationProperties.getReplicaById(replicaId);
         SocketChannel sc = SocketChannel.open();
         sc.configureBlocking(true);
-        InetSocketAddress address = replica.getAddress(replicationProperties);
-        sc.connect(new InetSocketAddress(address.getHostString(), address.getPort()));
+        IApplicationConfig config = ncConfig.getConfigManager().getNodeEffectiveConfig(replicaId);
+        sc.connect(new InetSocketAddress(config.getString(NCConfig.Option.REPLICATION_LISTEN_ADDRESS),
+                config.getInt(NCConfig.Option.REPLICATION_LISTEN_PORT)));
         return sc;
     }
 
@@ -861,7 +870,7 @@
         Set<String> replicasIds = new HashSet<>();
         for (Replica replica : replicas.values()) {
             if (replica.getState() == ReplicaState.DEAD) {
-                replicasIds.add(replica.getNode().getId());
+                replicasIds.add(replica.getId());
             }
         }
         return replicasIds;
@@ -872,7 +881,7 @@
         Set<String> replicasIds = new HashSet<>();
         for (Replica replica : replicas.values()) {
             if (replica.getState() == ReplicaState.ACTIVE) {
-                replicasIds.add(replica.getNode().getId());
+                replicasIds.add(replica.getId());
             }
         }
         return replicasIds;
@@ -970,9 +979,8 @@
     private String getReplicaIdBySocket(SocketChannel socketChannel) {
         InetSocketAddress socketAddress = NetworkingUtil.getSocketAddress(socketChannel);
         for (Replica replica : replicas.values()) {
-            InetSocketAddress replicaAddress = replica.getAddress(replicationProperties);
-            if (replicaAddress.getHostName().equals(socketAddress.getHostName())
-                    && replicaAddress.getPort() == socketAddress.getPort()) {
+            if (replica.getClusterIp().equals(socketAddress.getHostName())
+                    && ncConfig.getReplicationPublicPort() == socketAddress.getPort()) {
                 return replica.getId();
             }
         }
@@ -1176,21 +1184,21 @@
                 buffer.reset();
             }
         }
-        //move the buffer position to the sent limit
+        //move the bufeer position to the sent limit
         buffer.position(buffer.limit());
     }
 
     @Override
     public void register(IPartitionReplica replica) {
         // find the replica node based on ip and replication port
-        final Optional<Node> replicaNode = ClusterProperties.INSTANCE.getCluster().getNode().stream()
+        Optional<Replica> replicaNode = replicationStrategy.getRemoteReplicasAndSelf(nodeId).stream()
                 .filter(node -> node.getClusterIp().equals(replica.getIdentifier().getLocation().getHostString())
-                        && node.getReplicationPort().intValue() == replica.getIdentifier().getLocation().getPort())
+                        && node.getPort() == replica.getIdentifier().getLocation().getPort())
                 .findAny();
         if (!replicaNode.isPresent()) {
             throw new IllegalStateException("Couldn't find node for replica: " + replica);
         }
-        Replica replicaRef = new Replica(replicaNode.get());
+        Replica replicaRef = replicaNode.get();
         final String replicaId = replicaRef.getId();
         replicas.putIfAbsent(replicaId, replicaRef);
         replica2PartitionsMap.computeIfAbsent(replicaId, k -> new HashSet<>());
@@ -1353,4 +1361,9 @@
             }
         }
     }
-}
\ No newline at end of file
+
+    @Override
+    public IReplicationStrategy getReplicationStrategy() {
+        return replicationStrategy;
+    }
+}
diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/recovery/RemoteRecoveryManager.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/recovery/RemoteRecoveryManager.java
index f3eea32..54d8562 100644
--- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/recovery/RemoteRecoveryManager.java
+++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/recovery/RemoteRecoveryManager.java
@@ -32,11 +32,12 @@
 import org.apache.asterix.common.api.IDatasetLifecycleManager;
 import org.apache.asterix.common.api.INcApplicationContext;
 import org.apache.asterix.common.cluster.ClusterPartition;
-import org.apache.asterix.common.config.ClusterProperties;
 import org.apache.asterix.common.config.ReplicationProperties;
 import org.apache.asterix.common.exceptions.ACIDException;
 import org.apache.asterix.common.replication.IRemoteRecoveryManager;
 import org.apache.asterix.common.replication.IReplicationManager;
+import org.apache.asterix.common.replication.IReplicationStrategy;
+import org.apache.asterix.common.replication.Replica;
 import org.apache.asterix.common.transactions.ILogManager;
 import org.apache.asterix.common.transactions.IRecoveryManager;
 import org.apache.asterix.common.utils.StorageConstants;
@@ -51,33 +52,35 @@
     private final INcApplicationContext runtimeContext;
     private final ReplicationProperties replicationProperties;
     private Map<String, Set<String>> failbackRecoveryReplicas;
+    private IReplicationStrategy replicationStrategy;
 
     public RemoteRecoveryManager(IReplicationManager replicationManager, INcApplicationContext runtimeContext,
             ReplicationProperties replicationProperties) {
         this.replicationManager = replicationManager;
         this.runtimeContext = runtimeContext;
         this.replicationProperties = replicationProperties;
+        this.replicationStrategy = replicationManager.getReplicationStrategy();
     }
 
     private Map<String, Set<String>> constructRemoteRecoveryPlan() {
         //1. identify which replicas reside in this node
         String localNodeId = runtimeContext.getTransactionSubsystem().getId();
 
-        Set<String> nodes = replicationProperties.getNodeReplicasIds(localNodeId);
+        Set<Replica> replicas = replicationStrategy.getRemoteReplicasAndSelf(localNodeId);
         Map<String, Set<String>> recoveryCandidates = new HashMap<>();
         Map<String, Integer> candidatesScore = new HashMap<>();
 
         //2. identify which nodes has backup per lost node data
-        for (String node : nodes) {
-            Set<String> locations = replicationProperties.getNodeReplicasIds(node);
+        for (Replica node : replicas) {
+            Set<Replica> locations = replicationStrategy.getRemoteReplicasAndSelf(node.getId());
 
             //since the local node just started, remove it from candidates
-            locations.remove(localNodeId);
+            locations.remove(new Replica(localNodeId, "", -1));
 
             //remove any dead replicas
             Set<String> deadReplicas = replicationManager.getDeadReplicasIds();
             for (String deadReplica : deadReplicas) {
-                locations.remove(deadReplica);
+                locations.remove(new Replica(deadReplica, "", -1));
             }
 
             //no active replicas to recover from
@@ -85,14 +88,15 @@
                 throw new IllegalStateException("Could not find any ACTIVE replica to recover " + node + " data.");
             }
 
-            for (String location : locations) {
+            for (Replica locationRep : locations) {
+                String location = locationRep.getId();
                 if (candidatesScore.containsKey(location)) {
                     candidatesScore.put(location, candidatesScore.get(location) + 1);
                 } else {
                     candidatesScore.put(location, 1);
                 }
             }
-            recoveryCandidates.put(node, locations);
+            recoveryCandidates.put(node.getId(), locations.stream().map(Replica::getId).collect(Collectors.toSet()));
         }
 
         Map<String, Set<String>> recoveryList = new HashMap<>();
@@ -156,8 +160,8 @@
         replayReplicaPartitionLogs(partitionsToTakeover, false);
 
         //mark these partitions as active in this node
-        PersistentLocalResourceRepository resourceRepository =
-                (PersistentLocalResourceRepository) runtimeContext.getLocalResourceRepository();
+        PersistentLocalResourceRepository resourceRepository = (PersistentLocalResourceRepository) runtimeContext
+                .getLocalResourceRepository();
         for (Integer patitionId : partitions) {
             resourceRepository.addActivePartition(patitionId);
         }
@@ -166,8 +170,8 @@
     @Override
     public void startFailbackProcess() {
         int maxRecoveryAttempts = replicationProperties.getMaxRemoteRecoveryAttempts();
-        PersistentLocalResourceRepository resourceRepository =
-                (PersistentLocalResourceRepository) runtimeContext.getLocalResourceRepository();
+        PersistentLocalResourceRepository resourceRepository = (PersistentLocalResourceRepository) runtimeContext
+                .getLocalResourceRepository();
         IDatasetLifecycleManager datasetLifeCycleManager = runtimeContext.getDatasetLifecycleManager();
         Map<String, ClusterPartition[]> nodePartitions = runtimeContext.getMetadataProperties().getNodePartitions();
 
@@ -223,8 +227,8 @@
     @Override
     public void completeFailbackProcess() throws IOException, InterruptedException {
         ILogManager logManager = runtimeContext.getTransactionSubsystem().getLogManager();
-        ReplicaResourcesManager replicaResourcesManager =
-                (ReplicaResourcesManager) runtimeContext.getReplicaResourcesManager();
+        ReplicaResourcesManager replicaResourcesManager = (ReplicaResourcesManager) runtimeContext
+                .getReplicaResourcesManager();
         Map<String, ClusterPartition[]> nodePartitions = runtimeContext.getMetadataProperties().getNodePartitions();
 
         /*
@@ -278,8 +282,8 @@
     @Override
     public void doRemoteRecoveryPlan(Map<String, Set<Integer>> recoveryPlan) throws HyracksDataException {
         int maxRecoveryAttempts = replicationProperties.getMaxRemoteRecoveryAttempts();
-        PersistentLocalResourceRepository resourceRepository =
-                (PersistentLocalResourceRepository) runtimeContext.getLocalResourceRepository();
+        PersistentLocalResourceRepository resourceRepository = (PersistentLocalResourceRepository) runtimeContext
+                .getLocalResourceRepository();
         IDatasetLifecycleManager datasetLifeCycleManager = runtimeContext.getDatasetLifecycleManager();
         ILogManager logManager = runtimeContext.getTransactionSubsystem().getLogManager();
         while (true) {
@@ -320,4 +324,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/recovery/ReplicaSynchronizer.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/recovery/ReplicaSynchronizer.java
index 5c88460..1fa3246 100644
--- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/recovery/ReplicaSynchronizer.java
+++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/recovery/ReplicaSynchronizer.java
@@ -51,8 +51,7 @@
         final ReplicaFilesSynchronizer fileSync = new ReplicaFilesSynchronizer(appCtx, replica);
         fileSync.sync();
         // flush replicated dataset to generate disk component for any remaining in-memory components
-        final ReplicationProperties repl = appCtx.getReplicationProperties();
-        final IReplicationStrategy replStrategy = repl.getReplicationStrategy();
+        final IReplicationStrategy replStrategy = appCtx.getReplicationManager().getReplicationStrategy();
         appCtx.getDatasetLifecycleManager().flushDataset(replStrategy);
         // sync any newly generated files
         fileSync.sync();
diff --git a/asterixdb/asterix-replication/src/test/resources/scripts/kill_cc_and_nc.sh b/asterixdb/asterix-replication/src/test/resources/scripts/kill_cc_and_nc.sh
index 4b876be..9c6b9f5 100755
--- a/asterixdb/asterix-replication/src/test/resources/scripts/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-replication/src/test/resources/scripts/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/message/ReplicaEventMessage.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/message/ReplicaEventMessage.java
index fe230b4..8ae1bd7 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/message/ReplicaEventMessage.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/message/ReplicaEventMessage.java
@@ -22,7 +22,6 @@
 import org.apache.asterix.common.messaging.api.INcAddressedMessage;
 import org.apache.asterix.common.replication.Replica;
 import org.apache.asterix.common.replication.ReplicaEvent;
-import org.apache.asterix.event.schema.cluster.Node;
 import org.apache.hyracks.api.application.IClusterLifecycleListener.ClusterEventType;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 
@@ -32,10 +31,12 @@
     private final String nodeId;
     private final ClusterEventType event;
     private final String nodeIPAddress;
+    private final int nodePort;
 
-    public ReplicaEventMessage(String nodeId, String nodeIPAddress, ClusterEventType event) {
+    public ReplicaEventMessage(String nodeId, String nodeIPAddress, int nodePort, ClusterEventType event) {
         this.nodeId = nodeId;
         this.nodeIPAddress = nodeIPAddress;
+        this.nodePort = nodePort;
         this.event = event;
     }
 
@@ -53,10 +54,7 @@
 
     @Override
     public void handle(INcApplicationContext appContext) throws HyracksDataException, InterruptedException {
-        Node node = new Node();
-        node.setId(nodeId);
-        node.setClusterIp(nodeIPAddress);
-        Replica replica = new Replica(node);
+        Replica replica = new Replica(nodeId, nodeIPAddress, nodePort);
         appContext.getReplicationManager().reportReplicaEvent(new ReplicaEvent(replica, event));
     }
 
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java
index 10926e0..ead5f53 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/utils/ClusterStateManager.java
@@ -35,14 +35,11 @@
 import org.apache.asterix.common.api.IClusterManagementWork.ClusterState;
 import org.apache.asterix.common.cluster.ClusterPartition;
 import org.apache.asterix.common.cluster.IClusterStateManager;
-import org.apache.asterix.common.config.ClusterProperties;
-import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.replication.IFaultToleranceStrategy;
+import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.transactions.IResourceIdManager;
-import org.apache.asterix.event.schema.cluster.Cluster;
-import org.apache.asterix.event.schema.cluster.Node;
 import org.apache.hyracks.algebricks.common.constraints.AlgebricksAbsolutePartitionConstraint;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.api.config.IOption;
@@ -71,7 +68,6 @@
     private static final Logger LOGGER = Logger.getLogger(ClusterStateManager.class.getName());
     private final Map<String, Map<IOption, Object>> ncConfigMap = new HashMap<>();
     private Set<String> pendingRemoval = new HashSet<>();
-    private final Cluster cluster;
     private ClusterState state = ClusterState.UNUSABLE;
     private AlgebricksAbsolutePartitionConstraint clusterPartitionConstraint;
     private Map<String, ClusterPartition[]> node2PartitionsMap;
@@ -83,10 +79,6 @@
     private IFaultToleranceStrategy ftStrategy;
     private ICcApplicationContext appCtx;
 
-    public ClusterStateManager() {
-        cluster = ClusterProperties.INSTANCE.getCluster();
-    }
-
     @Override
     public void setCcAppCtx(ICcApplicationContext appCtx) {
         this.appCtx = appCtx;
@@ -179,8 +171,8 @@
         }
         resetClusterPartitionConstraint();
         // if the cluster has no registered partitions or all partitions are pending activation -> UNUSABLE
-        if (clusterPartitions.isEmpty() || clusterPartitions.values().stream()
-                .allMatch(ClusterPartition::isPendingActivation)) {
+        if (clusterPartitions.isEmpty()
+                || clusterPartitions.values().stream().allMatch(ClusterPartition::isPendingActivation)) {
             LOGGER.info("Cluster does not have any registered partitions");
             setState(ClusterState.UNUSABLE);
             return;
@@ -262,12 +254,6 @@
     }
 
     @Override
-    public synchronized Node getAvailableSubstitutionNode() {
-        List<Node> subNodes = cluster.getSubstituteNodes() == null ? null : cluster.getSubstituteNodes().getNode();
-        return subNodes == null || subNodes.isEmpty() ? null : subNodes.get(0);
-    }
-
-    @Override
     public synchronized Set<String> getParticipantNodes() {
         return new HashSet<>(participantNodes);
     }
@@ -302,10 +288,6 @@
 
     @Override
     public synchronized boolean isClusterActive() {
-        if (cluster == null) {
-            // this is a virtual cluster
-            return true;
-        }
         return state == ClusterState.ACTIVE;
     }
 
@@ -456,6 +438,11 @@
         }
     }
 
+    @Override
+    public Map<String, Map<IOption, Object>> getActiveNcConfiguration() {
+        return ncConfigMap;
+    }
+
     public synchronized Set<String> getNodesPendingRemoval() {
         return new HashSet<>(pendingRemoval);
     }
@@ -470,4 +457,8 @@
         });
     }
 
+    public String getStoragePathPrefix() {
+        return appCtx.getNodeProperties().getStorageSubdir();
+    }
+
 }
diff --git a/asterixdb/asterix-server/pom.xml b/asterixdb/asterix-server/pom.xml
index cdd680b..7780f8b 100644
--- a/asterixdb/asterix-server/pom.xml
+++ b/asterixdb/asterix-server/pom.xml
@@ -20,6 +20,16 @@
   <modelVersion>4.0.0</modelVersion>
   <artifactId>asterix-server</artifactId>
   <name>asterix-server</name>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <appendedResourcesDirectory>${basedir}/src/main/appended-resources</appendedResourcesDirectory>
+    <failsafe.test.excludes>**/DmlRecoveryIT.java</failsafe.test.excludes>
+    <cluster.test.excludes>**/AsterixClusterLifeCycleIT.java</cluster.test.excludes>
+    <cluster.extest.excludes>**/ClusterExecutionIT.java</cluster.extest.excludes>
+    <appendedResourcesDirectory>${basedir}/../src/main/appended-resources</appendedResourcesDirectory>
+  </properties>
+
   <parent>
     <groupId>org.apache.asterix</groupId>
     <artifactId>apache-asterixdb</artifactId>
@@ -35,10 +45,6 @@
     </license>
   </licenses>
 
-  <properties>
-    <appendedResourcesDirectory>${basedir}/../src/main/appended-resources</appendedResourcesDirectory>
-  </properties>
-
   <build>
     <plugins>
       <plugin>
@@ -334,6 +340,27 @@
         </executions>
       </plugin>
       <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <configuration>
+          <excludes combine.children="append">
+            <exclude>${failsafe.test.excludes}</exclude>
+            <exclude>${cluster.test.excludes}</exclude>
+            <exclude>${cluster.extest.excludes}</exclude>
+          </excludes>
+          <executions>
+              <execution>
+                  <id>run-tests</id>
+                  <phase>integration-test</phase>
+                  <goals>
+                      <goal>integration-test</goal>
+                      <goal>verify</goal>
+                  </goals>
+              </execution>
+          </executions>
+        </configuration>
+      </plugin>
+      <plugin>
         <artifactId>maven-assembly-plugin</artifactId>
         <executions>
           <execution>
@@ -552,6 +579,16 @@
       <classifier>assembly</classifier>
     </dependency>
     <dependency>
+      <groupId>org.apache.asterix</groupId>
+      <artifactId>asterix-external-data</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>3.0.24</version>
+    </dependency>
+    <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
     </dependency>
diff --git a/asterixdb/asterix-server/src/main/opt/local/conf/cc.conf b/asterixdb/asterix-server/src/main/opt/local/conf/cc.conf
index bec2122..cc2d9bd 100644
--- a/asterixdb/asterix-server/src/main/opt/local/conf/cc.conf
+++ b/asterixdb/asterix-server/src/main/opt/local/conf/cc.conf
@@ -15,13 +15,13 @@
 ; specific language governing permissions and limitations
 ; under the License.
 
-[nc/red]
+[nc/asterix_nc1]
 txn.log.dir=data/red/txnlog
 core.dump.dir=data/red/coredump
 iodevices=data/red
 nc.api.port=19004
 
-[nc/blue]
+[nc/asterix_nc2]
 ncservice.port=9091
 txn.log.dir=data/blue/txnlog
 core.dump.dir=data/blue/coredump
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AbstractExecutionIT.java b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/AbstractExecutionIT.java
similarity index 64%
rename from asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AbstractExecutionIT.java
rename to asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/AbstractExecutionIT.java
index 06e5aed..6c14aa0 100644
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/AbstractExecutionIT.java
+++ b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/AbstractExecutionIT.java
@@ -12,20 +12,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.asterix.installer.test;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+package org.apache.asterix.server.test;
 
 import org.apache.asterix.external.util.ExternalDataConstants;
 import org.apache.asterix.external.util.IdentitiyResolverFactory;
 import org.apache.asterix.test.base.RetainLogsRule;
 import org.apache.asterix.test.common.TestExecutor;
-import org.apache.asterix.test.runtime.HDFSCluster;
 import org.apache.asterix.testframework.context.TestCaseContext;
 import org.apache.asterix.testframework.context.TestFileContext;
 import org.apache.asterix.testframework.xml.TestCase.CompilationUnit;
@@ -42,6 +34,15 @@
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import static org.apache.hyracks.util.file.FileUtil.joinPath;
+
 /**
  * Runs the runtime test cases under 'asterix-app/src/test/resources/runtimets'.
  */
@@ -50,9 +51,8 @@
 
     protected static final Logger LOGGER = Logger.getLogger(AbstractExecutionIT.class.getName());
 
-    protected static final String PATH_ACTUAL = "target" + File.separator + "ittest" + File.separator;
-    protected static final String PATH_BASE = StringUtils
-            .join(new String[] { "..", "asterix-app", "src", "test", "resources", "runtimets" }, File.separator);
+    protected static final String PATH_ACTUAL = joinPath("target", "ittest");
+    protected static final String PATH_BASE = joinPath("..", "asterix-app", "src", "test", "resources", "runtimets");
 
     protected static final String HDFS_BASE = "../asterix-app/";
 
@@ -62,12 +62,10 @@
 
     private static final List<String> badTestCases = new ArrayList<>();
 
-    private static String reportPath =
-            new File(FileUtil.joinPath("target", "failsafe-reports")).getAbsolutePath();
+    private static String reportPath = new File(joinPath("target", "failsafe-reports")).getAbsolutePath();
 
     @Rule
-    public TestRule retainLogs = new RetainLogsRule(
-            AsterixInstallerIntegrationUtil.getManagixHome(), reportPath, this);
+    public TestRule retainLogs = new RetainLogsRule(NCServiceExecutionIT.LOG_DIR, reportPath, this);
 
     @BeforeClass
     public static void setUp() throws Exception {
@@ -78,47 +76,27 @@
         File outdir = new File(PATH_ACTUAL);
         outdir.mkdirs();
 
-        HDFSCluster.getInstance().setup(HDFS_BASE);
+        File externalTestsJar =
+                new File(StringUtils.join(new String[] { "..", "asterix-external-data", "target" }, File.separator))
+                        .listFiles((dir, name) -> name.matches("asterix-external-data-.*-tests.jar"))[0];
 
-        //This is nasty but there is no very nice way to set a system property on each NC that I can figure.
-        //The main issue is that we need the NC resolver to be the IdentityResolver and not the DNSResolver.
-        FileUtils
-                .copyFile(
-                        new File(StringUtils.join(new String[] { "src", "test", "resources", "integrationts",
-                                "asterix-configuration.xml" }, File.separator)),
-                        new File(AsterixInstallerIntegrationUtil.getManagixHome() + "/conf/asterix-configuration.xml"));
+        FileUtils.copyFile(externalTestsJar,
+                new File(NCServiceExecutionIT.APP_HOME + "/repo", externalTestsJar.getName()));
 
-        AsterixLifecycleIT.setUp();
+        NCServiceExecutionIT.setUp();
 
-        File externalTestsJar = new File(StringUtils.join(
-                new String[] { "..", "asterix-external-data", "target" }, File.separator)).listFiles(
-                        (dir, name) -> name.matches("asterix-external-data-.*-tests.jar"))[0];
+        FileUtils.copyDirectoryStructure(new File(joinPath("..", "asterix-app", "data")),
+                new File(NCServiceExecutionIT.ASTERIX_APP_DIR + "/clusters/local/working_dir/data"));
 
-        FileUtils.copyFile(externalTestsJar, new File(
-                AsterixInstallerIntegrationUtil.getManagixHome() + "/clusters/local/working_dir/asterix/repo/",
-                externalTestsJar.getName()));
-
-        AsterixLifecycleIT.restartInstance();
-
-        FileUtils.copyDirectoryStructure(
-                new File(FileUtil.joinPath("..", "asterix-app", "data")),
-                new File(AsterixInstallerIntegrationUtil.getManagixHome() + "/clusters/local/working_dir/data"));
-
-        FileUtils.copyDirectoryStructure(
-                new File(FileUtil.joinPath("..", "asterix-app", "target", "data")),
-                new File(AsterixInstallerIntegrationUtil.getManagixHome() + "/clusters/local/working_dir/target/data"));
-
-        FileUtils.copyDirectoryStructure(new File(FileUtil.joinPath("target", "data")),
-                new File(AsterixInstallerIntegrationUtil.getManagixHome()
-                        + "/clusters/local/working_dir/target/data/csv"));
+        FileUtils.copyDirectoryStructure(new File(joinPath("..", "asterix-app", "target", "data")),
+                new File(NCServiceExecutionIT.ASTERIX_APP_DIR + "/clusters/local/working_dir/target/data"));
 
         // Set the node resolver to be the identity resolver that expects node names
         // to be node controller ids; a valid assumption in test environment.
         System.setProperty(ExternalDataConstants.NODE_RESOLVER_FACTORY_PROPERTY,
                 IdentitiyResolverFactory.class.getName());
 
-        reportPath = new File(FileUtil.joinPath("target", "failsafe-reports"))
-                .getAbsolutePath();
+        reportPath = new File(joinPath("target", "failsafe-reports")).getAbsolutePath();
     }
 
     @AfterClass
@@ -128,8 +106,8 @@
         if ((files == null) || (files.length == 0)) {
             outdir.delete();
         }
-        AsterixLifecycleIT.tearDown();
-        HDFSCluster.getInstance().cleanup();
+        //AsterixLifecycleIT.tearDown();
+        NCServiceExecutionIT.tearDown();
         if (!badTestCases.isEmpty()) {
             System.out.println("The following test cases left some data");
             for (String testCase : badTestCases) {
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/transaction/DmlRecoveryIT.java b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/DmlRecoveryIT.java
similarity index 98%
rename from asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/transaction/DmlRecoveryIT.java
rename to asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/DmlRecoveryIT.java
index 4f04e79..bc209c3 100644
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/transaction/DmlRecoveryIT.java
+++ b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/DmlRecoveryIT.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.asterix.installer.transaction;
+package org.apache.asterix.server.test;
 
 import java.io.File;
 import java.io.FilenameFilter;
diff --git a/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/MetadataReplicationIT.java b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/MetadataReplicationIT.java
new file mode 100644
index 0000000..445f53f
--- /dev/null
+++ b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/MetadataReplicationIT.java
@@ -0,0 +1,167 @@
+/*
+ * 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.server.test;
+
+import java.io.File;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import java.util.logging.Logger;
+
+import org.apache.asterix.test.base.RetainLogsRule;
+import org.apache.asterix.test.common.TestExecutor;
+import org.apache.asterix.testframework.context.TestCaseContext;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.hyracks.server.process.HyracksCCProcess;
+import org.apache.hyracks.server.process.HyracksNCServiceProcess;
+import org.apache.hyracks.server.process.HyracksVirtualCluster;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestRule;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public class MetadataReplicationIT {
+
+    // Important paths and files for this test.
+
+    // The "target" subdirectory of asterix-server. All outputs go here.
+    public static final String TARGET_DIR = StringUtils.join(new String[] { "../asterix-server/target" },
+            File.separator);
+
+    // Directory where the NCs create and store all data, as configured by
+    // src/test/resources/NCServiceExecutionIT/cc.conf.
+    public static final String INSTANCE_DIR = StringUtils.join(new String[] { TARGET_DIR, "tmp" }, File.separator);
+
+    // The log directory, where all CC, NCService, and NC logs are written. CC and
+    // NCService logs are configured on the HyracksVirtualCluster below. NC logs
+    // are configured in src/test/resources/NCServiceExecutionIT/ncservice*.conf.
+    public static final String LOG_DIR = StringUtils.join(new String[] { TARGET_DIR, "failsafe-reports" },
+            File.separator);
+
+    // Directory where *.conf files are located.
+    public static final String CONF_DIR = StringUtils
+            .join(new String[] { TARGET_DIR, "test-classes", "MetadataReplicationIT" }, File.separator);
+
+    // The app.home specified for HyracksVirtualCluster. The NCService expects
+    // to find the NC startup script in ${app.home}/bin.
+    public static final String APP_HOME = StringUtils.join(new String[] { TARGET_DIR, "appassembler" }, File.separator);
+
+    // Path to the asterix-app directory. This is used as the current working
+    // directory for the CC and NCService processes, which allows relative file
+    // paths in "load" statements in test queries to find the right data. It is
+    // also used for HDFSCluster.
+    public static final String ASTERIX_APP_DIR = StringUtils.join(new String[] { "..", "asterix-app" }, File.separator);
+
+    // Path to the actual AQL test files, which we borrow from asterix-app. This is
+    // passed to TestExecutor.
+    protected static final String TESTS_DIR = StringUtils
+            .join(new String[] { ASTERIX_APP_DIR, "src", "test", "resources", "runtimets" }, File.separator);
+
+    // Path that actual results are written to. We create and clean this directory
+    // here, and also pass it to TestExecutor which writes the test output there.
+    public static final String ACTUAL_RESULTS_DIR = StringUtils.join(new String[] { TARGET_DIR, "ittest" },
+            File.separator);
+    private static final String PATH_BASE = Paths
+            .get("src", "test", "resources", "integrationts", "metadata_only_replication").toString() + File.separator;
+    private static final String PATH_ACTUAL = "target" + File.separator + "ittest" + File.separator;
+
+    private static final Logger LOGGER = Logger.getLogger(MetadataReplicationIT.class.getName());
+    private static String reportPath = new File(
+            StringUtils.join(new String[] { "target", "failsafe-reports" }, File.separator)).getAbsolutePath();
+
+    private final TestExecutor testExecutor = new TestExecutor();
+    private TestCaseContext tcCtx;
+    private static String scriptHomePath;
+    private static File asterixInstallerPath;
+    private static ProcessBuilder pb;
+    private static Map<String, String> env;
+
+    private static HyracksCCProcess cc;
+    private static HyracksNCServiceProcess nc1;
+    private static HyracksNCServiceProcess nc2;
+    private static HyracksVirtualCluster cluster;
+
+    public MetadataReplicationIT(TestCaseContext tcCtx) {
+        this.tcCtx = tcCtx;
+    }
+
+    @Rule
+    public TestRule retainLogs = new RetainLogsRule(NCServiceExecutionIT.ASTERIX_APP_DIR, reportPath, this);
+
+    @Before
+    public void before() throws Exception {
+        LOGGER.info("Creating new instance...");
+        File instanceDir = new File(INSTANCE_DIR);
+        if (instanceDir.isDirectory()) {
+            FileUtils.deleteDirectory(instanceDir);
+        }
+
+        // HDFSCluster requires the input directory to end with a file separator.
+
+        cluster = new HyracksVirtualCluster(new File(APP_HOME), new File(ASTERIX_APP_DIR));
+        nc1 = cluster.addNCService(new File(CONF_DIR, "ncservice1.conf"), new File(LOG_DIR, "ncservice1.log"));
+
+        nc2 = cluster.addNCService(new File(CONF_DIR, "ncservice2.conf"), new File(LOG_DIR, "ncservice2.log"));
+
+        // Start CC
+        cc = cluster.start(new File(CONF_DIR, "cc.conf"), new File(LOG_DIR, "cc.log"));
+
+        LOGGER.info("Instance created.");
+        testExecutor.waitForClusterActive(30, TimeUnit.SECONDS);
+        LOGGER.info("Instance is in ACTIVE state.");
+
+    }
+
+    @After
+    public void after() throws Exception {
+        LOGGER.info("Destroying instance...");
+        cluster.stop();
+        LOGGER.info("Instance destroyed.");
+    }
+
+    @Test
+    public void test() throws Exception {
+        testExecutor.executeTest(PATH_ACTUAL, tcCtx, null, false);
+    }
+
+    @Parameterized.Parameters(name = "MetadataReplicationIT {index}: {0}")
+    public static Collection<Object[]> tests() throws Exception {
+        Collection<Object[]> testArgs = buildTestsInXml(TestCaseContext.DEFAULT_TESTSUITE_XML_NAME);
+        if (testArgs.size() == 0) {
+            testArgs = buildTestsInXml(TestCaseContext.DEFAULT_TESTSUITE_XML_NAME);
+        }
+        return testArgs;
+    }
+
+    protected static Collection<Object[]> buildTestsInXml(String xmlfile) throws Exception {
+        Collection<Object[]> testArgs = new ArrayList<>();
+        TestCaseContext.Builder b = new TestCaseContext.Builder();
+        for (TestCaseContext ctx : b.build(new File(PATH_BASE), xmlfile)) {
+            testArgs.add(new Object[] { ctx });
+        }
+        return testArgs;
+    }
+}
diff --git a/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/NCServiceExecutionIT.java b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/NCServiceExecutionIT.java
index 7b926a6..93b26dc 100644
--- a/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/NCServiceExecutionIT.java
+++ b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/NCServiceExecutionIT.java
@@ -54,48 +54,42 @@
     // Important paths and files for this test.
 
     // The "target" subdirectory of asterix-server. All outputs go here.
-    private static final String TARGET_DIR = StringUtils
-            .join(new String[] { "target" }, File.separator);
+    public static final String TARGET_DIR = StringUtils.join(new String[] { "../asterix-server/target" },
+            File.separator);
 
     // Directory where the NCs create and store all data, as configured by
     // src/test/resources/NCServiceExecutionIT/cc.conf.
-    private static final String INSTANCE_DIR = StringUtils
-            .join(new String[] { TARGET_DIR, "tmp" }, File.separator);
+    public static final String INSTANCE_DIR = StringUtils.join(new String[] { TARGET_DIR, "tmp" }, File.separator);
 
     // The log directory, where all CC, NCService, and NC logs are written. CC and
     // NCService logs are configured on the HyracksVirtualCluster below. NC logs
     // are configured in src/test/resources/NCServiceExecutionIT/ncservice*.conf.
-    private static final String LOG_DIR = StringUtils
-            .join(new String[] { TARGET_DIR, "failsafe-reports" }, File.separator);
+    public static final String LOG_DIR = StringUtils.join(new String[] { TARGET_DIR, "failsafe-reports" },
+            File.separator);
 
     // Directory where *.conf files are located.
-    private static final String CONF_DIR = StringUtils
-            .join(new String[] { TARGET_DIR, "test-classes", "NCServiceExecutionIT" },
-                    File.separator);
+    public static final String CONF_DIR = StringUtils
+            .join(new String[] { TARGET_DIR, "test-classes", "NCServiceExecutionIT" }, File.separator);
 
     // The app.home specified for HyracksVirtualCluster. The NCService expects
     // to find the NC startup script in ${app.home}/bin.
-    private static final String APP_HOME = StringUtils
-            .join(new String[] { TARGET_DIR, "appassembler" }, File.separator);
+    public static final String APP_HOME = StringUtils.join(new String[] { TARGET_DIR, "appassembler" }, File.separator);
 
     // Path to the asterix-app directory. This is used as the current working
     // directory for the CC and NCService processes, which allows relative file
     // paths in "load" statements in test queries to find the right data. It is
     // also used for HDFSCluster.
-    private static final String ASTERIX_APP_DIR = StringUtils
-            .join(new String[] { "..", "asterix-app" },
-                    File.separator);
+    public static final String ASTERIX_APP_DIR = StringUtils.join(new String[] { "..", "asterix-app" }, File.separator);
 
     // Path to the actual AQL test files, which we borrow from asterix-app. This is
     // passed to TestExecutor.
     protected static final String TESTS_DIR = StringUtils
-            .join(new String[] { ASTERIX_APP_DIR, "src", "test", "resources", "runtimets" },
-                    File.separator);
+            .join(new String[] { ASTERIX_APP_DIR, "src", "test", "resources", "runtimets" }, File.separator);
 
     // Path that actual results are written to. We create and clean this directory
     // here, and also pass it to TestExecutor which writes the test output there.
-    private static final String ACTUAL_RESULTS_DIR = StringUtils
-            .join(new String[] { TARGET_DIR, "ittest" }, File.separator);
+    public static final String ACTUAL_RESULTS_DIR = StringUtils.join(new String[] { TARGET_DIR, "ittest" },
+            File.separator);
 
     private static final Logger LOGGER = Logger.getLogger(NCServiceExecutionIT.class.getName());
 
@@ -138,18 +132,12 @@
         HDFSCluster.getInstance().setup(ASTERIX_APP_DIR + File.separator);
 
         cluster = new HyracksVirtualCluster(new File(APP_HOME), new File(ASTERIX_APP_DIR));
-        nc1 = cluster.addNCService(
-                new File(CONF_DIR, "ncservice1.conf"),
-                new File(LOG_DIR, "ncservice1.log"));
+        nc1 = cluster.addNCService(new File(CONF_DIR, "ncservice1.conf"), new File(LOG_DIR, "ncservice1.log"));
 
-        nc2 = cluster.addNCService(
-                new File(CONF_DIR, "ncservice2.conf"),
-                new File(LOG_DIR, "ncservice2.log"));
+        nc2 = cluster.addNCService(new File(CONF_DIR, "ncservice2.conf"), new File(LOG_DIR, "ncservice2.log"));
 
         // Start CC
-        cc = cluster.start(
-                new File(CONF_DIR, "cc.conf"),
-                new File(LOG_DIR, "cc.log"));
+        cc = cluster.start(new File(CONF_DIR, "cc.conf"), new File(LOG_DIR, "cc.log"));
 
         testExecutor.waitForClusterActive(30, TimeUnit.SECONDS);
         clusterActive = true;
@@ -184,7 +172,7 @@
             // let's kill something every 50 tests
             if (testArgs.size() % 50 == 0) {
                 final KillCommand killCommand = KillCommand.values()[random.nextInt(KillCommand.values().length)];
-                testArgs.add(new Object[] { killCommand, null, killCommand});
+                testArgs.add(new Object[] { killCommand, null, killCommand });
             }
         }
         return testArgs;
@@ -211,8 +199,7 @@
     private static boolean skip(TestCaseContext tcCtx) {
         // For now we skip feeds tests, external-library, and api tests.
         for (TestGroup group : tcCtx.getTestGroups()) {
-            if (group.getName().startsWith("external-")
-                    || group.getName().equals("feeds")
+            if (group.getName().startsWith("external-") || group.getName().equals("feeds")
                     || group.getName().equals("api")) {
                 LOGGER.info("Skipping test: " + tcCtx.toString());
                 return true;
@@ -251,6 +238,7 @@
                     nc1.stop(); // we can't kill due to ASTERIXDB-1941
                     testExecutor.waitForClusterState("UNUSABLE", 60, TimeUnit.SECONDS); // wait for missed heartbeats...
                     nc1.start(); // this restarts the NC service
+                    testExecutor.startNC("asterix_nc1");
                     break;
 
                 case NC2:
@@ -258,6 +246,7 @@
                     nc2.stop(); // we can't kill due to ASTERIXDB-1941
                     testExecutor.waitForClusterState("UNUSABLE", 60, TimeUnit.SECONDS); // wait for missed heartbeats...
                     nc2.start(); // this restarts the NC service
+                    testExecutor.startNC("asterix_nc2");
                     break;
 
                 default:
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/transaction/RecoveryIT.java b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/RecoveryIT.java
similarity index 70%
rename from asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/transaction/RecoveryIT.java
rename to asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/RecoveryIT.java
index 0e7ac8b..21e3068 100644
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/transaction/RecoveryIT.java
+++ b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/RecoveryIT.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.asterix.installer.transaction;
+package org.apache.asterix.server.test;
 
 import java.io.File;
 import java.io.FilenameFilter;
@@ -30,6 +30,7 @@
 import org.apache.asterix.test.runtime.HDFSCluster;
 import org.apache.asterix.testframework.context.TestCaseContext;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Rule;
@@ -49,8 +50,8 @@
     private TestCaseContext tcCtx;
     private static File asterixInstallerPath;
     private static File installerTargetPath;
-    private static String managixHomeDirName;
-    private static String managixHomePath;
+    private static String ncServiceHomeDirName;
+    private static String ncServiceHomePath;
     private static String scriptHomePath;
     private static String reportPath;
     private static ProcessBuilder pb;
@@ -58,37 +59,45 @@
     private final TestExecutor testExecutor = new TestExecutor();
 
     @Rule
-    public TestRule retainLogs = new RetainLogsRule(managixHomePath, reportPath, this);
+    public TestRule retainLogs = new RetainLogsRule(ncServiceHomePath, reportPath, this);
 
     @BeforeClass
     public static void setUp() throws Exception {
         File outdir = new File(PATH_ACTUAL);
         outdir.mkdirs();
 
+        File externalTestsJar = new File(
+                StringUtils.join(new String[] { "..", "asterix-external-data", "target" }, File.separator))
+                        .listFiles((dir, name) -> name.matches("asterix-external-data-.*-tests.jar"))[0];
+
         asterixInstallerPath = new File(System.getProperty("user.dir"));
-        installerTargetPath = new File(asterixInstallerPath, "target");
+        installerTargetPath = new File(new File(asterixInstallerPath.getParentFile(), "asterix-server"), "target");
         reportPath = new File(installerTargetPath, "failsafe-reports").getAbsolutePath();
-        managixHomeDirName = installerTargetPath.list(new FilenameFilter() {
+        ncServiceHomeDirName = installerTargetPath.list(new FilenameFilter() {
             @Override
             public boolean accept(File dir, String name) {
-                return new File(dir, name).isDirectory() && name.startsWith("asterix-installer")
+                return new File(dir, name).isDirectory() && name.startsWith("asterix-server")
                         && name.endsWith("binary-assembly");
             }
         })[0];
-        managixHomePath = new File(installerTargetPath, managixHomeDirName).getAbsolutePath();
-        LOGGER.info("MANAGIX_HOME=" + managixHomePath);
+        ncServiceHomePath = new File(installerTargetPath, ncServiceHomeDirName).getAbsolutePath();
+
+        LOGGER.info("NCSERVICE_HOME=" + ncServiceHomePath);
+
+        FileUtils.copyFile(externalTestsJar, new File(ncServiceHomePath + "/repo", externalTestsJar.getName()));
 
         pb = new ProcessBuilder();
         env = pb.environment();
-        env.put("MANAGIX_HOME", managixHomePath);
+        env.put("NCSERVICE_HOME", ncServiceHomePath);
+        env.put("JAVA_HOME", System.getProperty("java.home"));
         scriptHomePath = asterixInstallerPath + File.separator + "src" + File.separator + "test" + File.separator
                 + "resources" + File.separator + "transactionts" + File.separator + "scripts";
         env.put("SCRIPT_HOME", scriptHomePath);
 
-        TestExecutor.executeScript(pb, scriptHomePath + File.separator + "setup_teardown" + File.separator
-                + "configure_and_validate.sh");
-        TestExecutor.executeScript(pb, scriptHomePath + File.separator + "setup_teardown" + File.separator
-                + "stop_and_delete.sh");
+        TestExecutor.executeScript(pb,
+                scriptHomePath + File.separator + "setup_teardown" + File.separator + "configure_and_validate.sh");
+        TestExecutor.executeScript(pb,
+                scriptHomePath + File.separator + "setup_teardown" + File.separator + "stop_and_delete.sh");
         HDFSCluster.getInstance().setup(HDFS_BASE);
     }
 
@@ -97,12 +106,10 @@
         File outdir = new File(PATH_ACTUAL);
         FileUtils.deleteDirectory(outdir);
         File dataCopyDir = new File(
-                managixHomePath + File.separator + ".." + File.separator + ".." + File.separator + "data");
+                ncServiceHomePath + File.separator + ".." + File.separator + ".." + File.separator + "data");
         FileUtils.deleteDirectory(dataCopyDir);
-        TestExecutor.executeScript(pb, scriptHomePath + File.separator + "setup_teardown" + File.separator
-                + "stop_and_delete.sh");
-        TestExecutor.executeScript(pb, scriptHomePath + File.separator + "setup_teardown" + File.separator
-                + "shutdown.sh");
+        TestExecutor.executeScript(pb,
+                scriptHomePath + File.separator + "setup_teardown" + File.separator + "stop_and_delete.sh");
         HDFSCluster.getInstance().cleanup();
     }
 
diff --git a/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/ReplicationIT.java b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/ReplicationIT.java
new file mode 100644
index 0000000..6ebb632
--- /dev/null
+++ b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/ReplicationIT.java
@@ -0,0 +1,127 @@
+/*
+ * 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.server.test;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.concurrent.TimeUnit;
+import java.util.logging.Logger;
+
+import org.apache.asterix.test.base.RetainLogsRule;
+import org.apache.asterix.test.common.TestExecutor;
+import org.apache.asterix.testframework.context.TestCaseContext;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.hyracks.server.process.HyracksCCProcess;
+import org.apache.hyracks.server.process.HyracksNCServiceProcess;
+import org.apache.hyracks.server.process.HyracksVirtualCluster;
+import org.apache.hyracks.util.file.FileUtil;
+import org.junit.*;
+import org.junit.rules.TestRule;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import static org.apache.asterix.server.test.NCServiceExecutionIT.APP_HOME;
+import static org.apache.asterix.server.test.NCServiceExecutionIT.INSTANCE_DIR;
+import static org.apache.asterix.server.test.NCServiceExecutionIT.TARGET_DIR;
+import static org.apache.asterix.server.test.NCServiceExecutionIT.ASTERIX_APP_DIR;
+import static org.apache.asterix.server.test.NCServiceExecutionIT.LOG_DIR;
+
+@RunWith(Parameterized.class)
+public class ReplicationIT {
+
+    private static final String PATH_BASE = FileUtil.joinPath("src", "test", "resources", "integrationts",
+            "replication");
+    public static final String CONF_DIR = StringUtils.join(new String[] { TARGET_DIR, "test-classes", "ReplicationIT" },
+            File.separator);
+    private static final String PATH_ACTUAL = FileUtil.joinPath("target", "ittest");
+    private static final Logger LOGGER = Logger.getLogger(ReplicationIT.class.getName());
+    private static String reportPath = new File(FileUtil.joinPath("target", "failsafe-reports")).getAbsolutePath();
+
+    private final TestExecutor testExecutor = new TestExecutor();
+    private TestCaseContext tcCtx;
+    private static ProcessBuilder pb;
+
+    private static HyracksCCProcess cc;
+    private static HyracksNCServiceProcess nc1;
+    private static HyracksNCServiceProcess nc2;
+    private static HyracksVirtualCluster cluster;
+
+    public ReplicationIT(TestCaseContext tcCtx) {
+        this.tcCtx = tcCtx;
+    }
+
+    @Rule
+    public TestRule retainLogs = new RetainLogsRule(NCServiceExecutionIT.ASTERIX_APP_DIR, reportPath, this);
+
+    @Before
+    public void before() throws Exception {
+        LOGGER.info("Creating new instance...");
+        File instanceDir = new File(INSTANCE_DIR);
+        if (instanceDir.isDirectory()) {
+            FileUtils.deleteDirectory(instanceDir);
+        }
+
+        // HDFSCluster requires the input directory to end with a file separator.
+
+        cluster = new HyracksVirtualCluster(new File(APP_HOME), new File(ASTERIX_APP_DIR));
+        nc1 = cluster.addNCService(new File(CONF_DIR, "ncservice1.conf"), new File(LOG_DIR, "ncservice1.log"));
+
+        nc2 = cluster.addNCService(new File(CONF_DIR, "ncservice2.conf"), new File(LOG_DIR, "ncservice2.log"));
+
+        // Start CC
+        cc = cluster.start(new File(CONF_DIR, "cc.conf"), new File(LOG_DIR, "cc.log"));
+
+        LOGGER.info("Instance created.");
+        testExecutor.waitForClusterActive(30, TimeUnit.SECONDS);
+        LOGGER.info("Instance is in ACTIVE state.");
+
+    }
+
+    @After
+    public void after() throws Exception {
+        LOGGER.info("Destroying instance...");
+        cluster.stop();
+        LOGGER.info("Instance destroyed.");
+    }
+
+    @Test
+    public void test() throws Exception {
+        testExecutor.executeTest(PATH_ACTUAL, tcCtx, null, false);
+    }
+
+    @Parameterized.Parameters(name = "ReplicationIT {index}: {0}")
+    public static Collection<Object[]> tests() throws Exception {
+        Collection<Object[]> testArgs = buildTestsInXml(TestCaseContext.DEFAULT_TESTSUITE_XML_NAME);
+        if (testArgs.size() == 0) {
+            testArgs = buildTestsInXml(TestCaseContext.DEFAULT_TESTSUITE_XML_NAME);
+        }
+        return testArgs;
+    }
+
+    protected static Collection<Object[]> buildTestsInXml(String xmlfile) throws Exception {
+        Collection<Object[]> testArgs = new ArrayList<>();
+        TestCaseContext.Builder b = new TestCaseContext.Builder();
+        for (TestCaseContext ctx : b.build(new File(PATH_BASE), xmlfile)) {
+            testArgs.add(new Object[] { ctx });
+        }
+        return testArgs;
+    }
+}
diff --git a/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/SampleLocalClusterIT.java b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/SampleLocalClusterIT.java
index 0beb38d..b6cb030 100644
--- a/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/SampleLocalClusterIT.java
+++ b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/SampleLocalClusterIT.java
@@ -79,10 +79,11 @@
         String installerZip = joinPath(pathElements);
 
         TestHelper.unzip(installerZip, OUTPUT_DIR);
+
     }
 
     private static List<File> findLogFiles(File directory, List<File> fileList) {
-        File [] match = directory.listFiles(pathname -> pathname.isDirectory() || pathname.toString().endsWith(".log"));
+        File[] match = directory.listFiles(pathname -> pathname.isDirectory() || pathname.toString().endsWith(".log"));
         if (match != null) {
             for (File file : match) {
                 if (file.isDirectory()) {
@@ -118,8 +119,7 @@
     public void test1_sanityQuery() throws Exception {
         TestExecutor testExecutor = new TestExecutor();
         InputStream resultStream = testExecutor.executeQuery("1+1", OutputFormat.ADM,
-                new URI("http", null, "127.0.0.1", 19002, Servlets.AQL_QUERY, null, null),
-                Collections.emptyList());
+                new URI("http", null, "127.0.0.1", 19002, Servlets.AQL_QUERY, null, null), Collections.emptyList());
         StringWriter sw = new StringWriter();
         IOUtils.copy(resultStream, sw);
         Assert.assertEquals("2", sw.toString().trim());
@@ -127,8 +127,8 @@
 
     @Test
     public void test2_stopCluster() throws Exception {
-        Process process =
-                new ProcessBuilder(joinPath(LOCAL_SAMPLES_DIR, "bin/stop-sample-cluster.sh")).inheritIO().start();
+        Process process = new ProcessBuilder(joinPath(LOCAL_SAMPLES_DIR, "bin/stop-sample-cluster.sh")).inheritIO()
+                .start();
         Assert.assertEquals(0, process.waitFor());
         try {
             new URL("http://127.0.0.1:19002").openConnection().connect();
diff --git a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/ManagixSqlppExecutionIT.java b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/SqlppExecutionIT.java
similarity index 87%
rename from asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/ManagixSqlppExecutionIT.java
rename to asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/SqlppExecutionIT.java
index 2eada38..066ddd9 100644
--- a/asterixdb/asterix-installer/src/test/java/org/apache/asterix/installer/test/ManagixSqlppExecutionIT.java
+++ b/asterixdb/asterix-server/src/test/java/org/apache/asterix/server/test/SqlppExecutionIT.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.asterix.installer.test;
+package org.apache.asterix.server.test;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -27,9 +27,9 @@
  * Runs the runtime test cases under 'asterix-app/src/test/resources/runtimets'.
  */
 @RunWith(Parameterized.class)
-public class ManagixSqlppExecutionIT extends ManagixExecutionIT {
+public class SqlppExecutionIT extends AbstractExecutionIT {
 
-    @Parameters(name = "ManagixSqlppExecutionIT {index}: {0}")
+    @Parameters(name = "SqlppExecutionIT {index}: {0}")
     public static Collection<Object[]> tests() throws Exception {
         Collection<Object[]> testArgs = buildTestsInXml("only_sqlpp.xml");
         if (testArgs.size() == 0) {
@@ -48,7 +48,7 @@
 
     }
 
-    public ManagixSqlppExecutionIT(TestCaseContext tcCtx) {
+    public SqlppExecutionIT(TestCaseContext tcCtx) {
         super(tcCtx);
     }
 }
diff --git a/asterixdb/asterix-server/src/test/resources/MetadataReplicationIT/cc.conf b/asterixdb/asterix-server/src/test/resources/MetadataReplicationIT/cc.conf
new file mode 100644
index 0000000..32e38ae
--- /dev/null
+++ b/asterixdb/asterix-server/src/test/resources/MetadataReplicationIT/cc.conf
@@ -0,0 +1,52 @@
+; 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.
+
+[nc/asterix_nc1]
+txn.log.dir=../asterix-server/target/tmp/asterix_nc1/txnlog
+core.dump.dir=../asterix-server/target/tmp/asterix_nc1/coredump
+iodevices=../asterix-server/target/tmp/asterix_nc1/iodevice1,../asterix-server/target/tmp/asterix_nc1/iodevice2
+jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006
+replication.listen.port=2001
+nc.api.port=19004
+
+[nc/asterix_nc2]
+ncservice.port=9091
+txn.log.dir=../asterix-server/target/tmp/asterix_nc2/txnlog
+core.dump.dir=../asterix-server/target/tmp/asterix_nc2/coredump
+iodevices=../asterix-server/target/tmp/asterix_nc2/iodevice1,../asterix-server/target/tmp/asterix_nc2/iodevice2
+jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5007
+replication.listen.port=2002
+nc.api.port=19005
+
+[nc]
+address=127.0.0.1
+command=asterixnc
+app.class=org.apache.asterix.hyracks.bootstrap.NCApplication
+jvm.args=-Xmx4096m -Dnode.Resolver="org.apache.asterix.external.util.IdentitiyResolverFactory"
+storage.subdir=test_storage
+storage.memorycomponent.globalbudget = 1073741824
+
+[cc]
+address = 127.0.0.1
+app.class=org.apache.asterix.hyracks.bootstrap.CCApplication
+heartbeat.period=2000
+
+[common]
+log.level = INFO
+replication.enabled=true
+replication.factor=2
+replication.strategy=metadata_only
diff --git a/asterixdb/asterix-server/src/test/resources/MetadataReplicationIT/ncservice1.conf b/asterixdb/asterix-server/src/test/resources/MetadataReplicationIT/ncservice1.conf
new file mode 100644
index 0000000..ba10142
--- /dev/null
+++ b/asterixdb/asterix-server/src/test/resources/MetadataReplicationIT/ncservice1.conf
@@ -0,0 +1,20 @@
+; 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.
+
+[ncservice]
+logdir=../asterix-server/target/failsafe-reports
+
diff --git a/asterixdb/asterix-server/src/test/resources/MetadataReplicationIT/ncservice2.conf b/asterixdb/asterix-server/src/test/resources/MetadataReplicationIT/ncservice2.conf
new file mode 100644
index 0000000..2036584
--- /dev/null
+++ b/asterixdb/asterix-server/src/test/resources/MetadataReplicationIT/ncservice2.conf
@@ -0,0 +1,21 @@
+; 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.
+
+[ncservice]
+logdir=../asterix-server/target/failsafe-reports
+port=9091
+
diff --git a/asterixdb/asterix-server/src/test/resources/ReplicationIT/cc.conf b/asterixdb/asterix-server/src/test/resources/ReplicationIT/cc.conf
new file mode 100644
index 0000000..776a89a
--- /dev/null
+++ b/asterixdb/asterix-server/src/test/resources/ReplicationIT/cc.conf
@@ -0,0 +1,51 @@
+; 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.
+
+[nc/asterix_nc1]
+txn.log.dir=../asterix-server/target/tmp/asterix_nc1/txnlog
+core.dump.dir=../asterix-server/target/tmp/asterix_nc1/coredump
+iodevices=../asterix-server/target/tmp/asterix_nc1/iodevice1,../asterix-server/target/tmp/asterix_nc1/iodevice2
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5006
+replication.listen.port=2001
+nc.api.port=19004
+
+[nc/asterix_nc2]
+ncservice.port=9091
+txn.log.dir=../asterix-server/target/tmp/asterix_nc2/txnlog
+core.dump.dir=../asterix-server/target/tmp/asterix_nc2/coredump
+iodevices=../asterix-server/target/tmp/asterix_nc2/iodevice1,../asterix-server/target/tmp/asterix_nc2/iodevice2
+#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5007
+replication.listen.port=2002
+nc.api.port=19005
+
+[nc]
+address=127.0.0.1
+command=asterixnc
+app.class=org.apache.asterix.hyracks.bootstrap.NCApplication
+jvm.args=-Xmx4096m -Dnode.Resolver="org.apache.asterix.external.util.IdentitiyResolverFactory"
+storage.subdir=test_storage
+storage.memorycomponent.globalbudget = 1073741824
+
+[cc]
+address = 127.0.0.1
+app.class=org.apache.asterix.hyracks.bootstrap.CCApplication
+heartbeat.period=2000
+
+[common]
+log.level = INFO
+replication.enabled=true
+replication.factor=2
diff --git a/asterixdb/asterix-server/src/test/resources/ReplicationIT/ncservice1.conf b/asterixdb/asterix-server/src/test/resources/ReplicationIT/ncservice1.conf
new file mode 100644
index 0000000..ba10142
--- /dev/null
+++ b/asterixdb/asterix-server/src/test/resources/ReplicationIT/ncservice1.conf
@@ -0,0 +1,20 @@
+; 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.
+
+[ncservice]
+logdir=../asterix-server/target/failsafe-reports
+
diff --git a/asterixdb/asterix-server/src/test/resources/ReplicationIT/ncservice2.conf b/asterixdb/asterix-server/src/test/resources/ReplicationIT/ncservice2.conf
new file mode 100644
index 0000000..2036584
--- /dev/null
+++ b/asterixdb/asterix-server/src/test/resources/ReplicationIT/ncservice2.conf
@@ -0,0 +1,21 @@
+; 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.
+
+[ncservice]
+logdir=../asterix-server/target/failsafe-reports
+port=9091
+
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/asterix-configuration.xml b/asterixdb/asterix-server/src/test/resources/integrationts/asterix-configuration.xml
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/asterix-configuration.xml
rename to asterixdb/asterix-server/src/test/resources/integrationts/asterix-configuration.xml
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-adapters/typed_adapter/typed_adapter.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-adapters/typed_adapter/typed_adapter.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-adapters/typed_adapter/typed_adapter.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-adapters/typed_adapter/typed_adapter.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-adapters/typed_adapter/typed_adapter.2.update.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-adapters/typed_adapter/typed_adapter.2.update.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-adapters/typed_adapter/typed_adapter.2.update.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-adapters/typed_adapter/typed_adapter.2.update.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-adapters/typed_adapter/typed_adapter.3.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-adapters/typed_adapter/typed_adapter.3.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-adapters/typed_adapter/typed_adapter.3.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-adapters/typed_adapter/typed_adapter.3.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.2.update.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.2.update.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.2.update.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.2.update.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.3.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.3.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.3.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.3.sleep.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.4.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.4.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.4.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-feeds/feed_ingest/feed_ingest.4.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/getCapital/getCapital.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/getCapital/getCapital.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/getCapital/getCapital.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/getCapital/getCapital.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/getCapital/getCapital.2.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/getCapital/getCapital.2.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/getCapital/getCapital.2.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/getCapital/getCapital.2.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.2.update.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.2.update.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.2.update.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.2.update.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.3.update.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.3.update.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.3.update.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.3.update.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.4.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.4.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.4.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/insert-from-select/insert-from-select.4.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/mysum/mysum.1.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/mysum/mysum.1.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/mysum/mysum.1.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/mysum/mysum.1.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/toUpper/toUpper.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/toUpper/toUpper.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/toUpper/toUpper.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/toUpper/toUpper.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/toUpper/toUpper.2.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/toUpper/toUpper.2.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-functions/toUpper/toUpper.2.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-functions/toUpper/toUpper.2.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-metadata/dataverseDataset/dataverseDataset.1.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-metadata/dataverseDataset/dataverseDataset.1.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-metadata/dataverseDataset/dataverseDataset.1.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-metadata/dataverseDataset/dataverseDataset.1.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-metadata/functionDataset/functionDataset.1.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-metadata/functionDataset/functionDataset.1.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-metadata/functionDataset/functionDataset.1.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-metadata/functionDataset/functionDataset.1.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-metadata/libraryDataset/libraryDataset.1.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-metadata/libraryDataset/libraryDataset.1.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-metadata/libraryDataset/libraryDataset.1.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-metadata/libraryDataset/libraryDataset.1.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-parsers/record-parser/record-parser.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-parsers/record-parser/record-parser.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-parsers/record-parser/record-parser.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-parsers/record-parser/record-parser.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-parsers/record-parser/record-parser.2.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-parsers/record-parser/record-parser.2.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/queries/library-parsers/record-parser/record-parser.2.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/queries/library-parsers/record-parser/record-parser.2.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-adapters/typed_adapter/typed_adapter.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-adapters/typed_adapter/typed_adapter.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-adapters/typed_adapter/typed_adapter.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-adapters/typed_adapter/typed_adapter.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-feeds/feed_ingest/feed_ingest.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-feeds/feed_ingest/feed_ingest.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-feeds/feed_ingest/feed_ingest.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-feeds/feed_ingest/feed_ingest.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-functions/getCapital/getCapital.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-functions/getCapital/getCapital.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-functions/getCapital/getCapital.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-functions/getCapital/getCapital.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-functions/insert-from-select/insert-from-select.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-functions/insert-from-select/insert-from-select.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-functions/insert-from-select/insert-from-select.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-functions/insert-from-select/insert-from-select.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-functions/mysum/mysum.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-functions/mysum/mysum.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-functions/mysum/mysum.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-functions/mysum/mysum.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-functions/toUpper/toUpper.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-functions/toUpper/toUpper.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-functions/toUpper/toUpper.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-functions/toUpper/toUpper.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-metadata/dataverseDataset/dataverseDataset.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-metadata/dataverseDataset/dataverseDataset.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-metadata/dataverseDataset/dataverseDataset.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-metadata/dataverseDataset/dataverseDataset.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-metadata/functionDataset/functionDataset.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-metadata/functionDataset/functionDataset.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-metadata/functionDataset/functionDataset.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-metadata/functionDataset/functionDataset.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-metadata/libraryDataset/libraryDataset.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-metadata/libraryDataset/libraryDataset.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-metadata/libraryDataset/libraryDataset.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-metadata/libraryDataset/libraryDataset.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-parsers/record-parser/record-parser.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-parsers/record-parser/record-parser.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/results/library-parsers/record-parser/record-parser.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-parsers/record-parser/record-parser.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/library/testsuite.xml b/asterixdb/asterix-server/src/test/resources/integrationts/library/testsuite.xml
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/library/testsuite.xml
rename to asterixdb/asterix-server/src/test/resources/integrationts/library/testsuite.xml
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.2.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.2.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.2.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.2.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.3.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.3.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.3.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.3.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.4.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.4.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.4.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.4.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.5.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.5.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.5.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.5.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.6.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.6.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.6.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.6.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.7.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.7.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.7.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.7.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.8.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.8.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.8.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.8.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.9.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.9.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.9.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/backupRestore/backupRestore.9.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.1.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.1.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.1.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.1.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.2.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.2.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.2.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.2.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.3.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.3.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.3.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.3.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.4.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.4.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.4.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/installLibrary/installLibrary.4.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.1.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.1.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.1.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.1.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.2.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.2.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.2.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.2.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.3.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.3.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.3.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.3.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.4.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.4.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.4.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/queries/asterix-lifecycle/uninstallLibrary/uninstallLibrary.4.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/results/asterix-lifecycle/backupRestore/backupRestore.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/results/asterix-lifecycle/backupRestore/backupRestore.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/results/asterix-lifecycle/backupRestore/backupRestore.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/results/asterix-lifecycle/backupRestore/backupRestore.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/results/asterix-lifecycle/installLibrary/installLibrary.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/results/asterix-lifecycle/installLibrary/installLibrary.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/results/asterix-lifecycle/installLibrary/installLibrary.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/results/asterix-lifecycle/installLibrary/installLibrary.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/results/asterix-lifecycle/uninstallLibrary/uninstallLibrary.1.adm b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/results/asterix-lifecycle/uninstallLibrary/uninstallLibrary.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/results/asterix-lifecycle/uninstallLibrary/uninstallLibrary.1.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/results/asterix-lifecycle/uninstallLibrary/uninstallLibrary.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/testsuite.xml b/asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/testsuite.xml
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/lifecycle/testsuite.xml
rename to asterixdb/asterix-server/src/test/resources/integrationts/lifecycle/testsuite.xml
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.10.node.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.10.node.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.10.node.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.10.node.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.11.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.11.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.11.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.11.sleep.aql
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/delete.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.12.node.aql
similarity index 89%
rename from asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/delete.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.12.node.aql
index 8079f66..26a6503 100644
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/delete.aql
+++ b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.12.node.aql
@@ -16,7 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-use dataverse TinySocial;
-
-delete $user from dataset MugshotUsers
-where $user.id = 999;
+start asterix_nc2
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.13.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.13.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.13.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.13.sleep.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.14.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.14.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.14.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.14.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.15.node.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.15.node.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.15.node.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.15.node.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.16.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.16.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.16.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.16.sleep.aql
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/delete.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.17.node.aql
similarity index 89%
copy from asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/delete.aql
copy to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.17.node.aql
index 8079f66..b750c64 100644
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/delete.aql
+++ b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.17.node.aql
@@ -16,7 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-use dataverse TinySocial;
-
-delete $user from dataset MugshotUsers
-where $user.id = 999;
+start asterix_nc1
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.18.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.18.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.18.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.18.sleep.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.19.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.19.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.19.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.19.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.2.node.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.2.node.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.2.node.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.2.node.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.3.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.3.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.3.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.3.sleep.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.4.get.http b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.4.get.http
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.4.get.http
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.4.get.http
diff --git a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/delete.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.5.node.aql
similarity index 89%
copy from asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/delete.aql
copy to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.5.node.aql
index 8079f66..b750c64 100644
--- a/asterixdb/asterix-installer/src/main/resources/examples/mugshot/aql/delete.aql
+++ b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.5.node.aql
@@ -16,7 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-use dataverse TinySocial;
-
-delete $user from dataset MugshotUsers
-where $user.id = 999;
+start asterix_nc1
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.6.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.6.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.6.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.6.sleep.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.7.get.http b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.7.get.http
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.7.get.http
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.7.get.http
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.8.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.8.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.8.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.8.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.9.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.9.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.9.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/queries/metadata_recovery/metadata_node_recovery/metadata_node_recovery.9.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.cluster_state.4.adm b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.cluster_state.4.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.cluster_state.4.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.cluster_state.4.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.cluster_state.7.adm b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.cluster_state.7.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.cluster_state.7.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.cluster_state.7.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.query.19.adm b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.query.19.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.query.19.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.query.19.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.query.8.adm b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.query.8.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.query.8.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/results/metadata_recovery/metadata_node_recovery/metadata_node_recovery.query.8.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/testsuite.xml b/asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/testsuite.xml
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/metadata_only_replication/testsuite.xml
rename to asterixdb/asterix-server/src/test/resources/integrationts/metadata_only_replication/testsuite.xml
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/data/fbu.adm b/asterixdb/asterix-server/src/test/resources/integrationts/replication/data/fbu.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/data/fbu.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/data/fbu.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.10.get.http b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.10.get.http
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.10.get.http
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.10.get.http
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.11.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.11.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.11.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.11.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.2.update.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.2.update.aql
similarity index 93%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.2.update.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.2.update.aql
index e10896a..377e097 100644
--- a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.2.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.2.update.aql
@@ -30,7 +30,7 @@
 use dataverse TinySocial;
 
 load dataset FacebookUsers using localfs
-(("path"="asterix_nc1://../../../../../src/test/resources/integrationts/replication/data/fbu.adm"),
+(("path"="asterix_nc1://../asterix-server/src/test/resources/integrationts/replication/data/fbu.adm"),
 ("format"="adm"));
 
 insert into dataset TinySocial.FacebookUsersInMemory(for $x in dataset TinySocial.FacebookUsers return $x);
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.3.node.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.3.node.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.3.node.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.3.node.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.4.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.4.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.4.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.4.sleep.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.5.get.http b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.5.get.http
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.5.get.http
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.5.get.http
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.6.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.6.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.6.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.6.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.7.update.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.7.update.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.7.update.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.7.update.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.2.update.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.8.node.aql
similarity index 85%
copy from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.2.update.aql
copy to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.8.node.aql
index 90ef6a7..98e2761 100644
--- a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.2.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.8.node.aql
@@ -25,9 +25,4 @@
  * Expected Result : Success
  * Date            : January 6 2016
  */
-
-use dataverse TinySocial;
-
-load dataset FacebookUsers using localfs
-(("path"="asterix_nc1://../../../../../src/test/resources/integrationts/replication/data/fbu.adm"),
-("format"="adm"));
\ No newline at end of file
+start asterix_nc1
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.9.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.9.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.9.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failback/node_failback/node_failback.9.sleep.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.2.update.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.2.update.aql
similarity index 92%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.2.update.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.2.update.aql
index 90ef6a7..3cb5e80 100644
--- a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.2.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.2.update.aql
@@ -29,5 +29,5 @@
 use dataverse TinySocial;
 
 load dataset FacebookUsers using localfs
-(("path"="asterix_nc1://../../../../../src/test/resources/integrationts/replication/data/fbu.adm"),
+(("path"="asterix_nc1://../asterix-server/src/test/resources/integrationts/replication/data/fbu.adm"),
 ("format"="adm"));
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.3.node.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.3.node.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.3.node.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.3.node.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.4.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.4.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.4.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.4.sleep.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.5.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.5.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.5.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/bulkload/bulkload.5.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.2.update.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.2.update.aql
similarity index 92%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.2.update.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.2.update.aql
index 18ce908..6dd2cea 100644
--- a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.2.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.2.update.aql
@@ -29,6 +29,6 @@
 use dataverse TinySocial;
 
 load dataset FacebookUsers using localfs
-(("path"="asterix_nc1://../../../../../src/test/resources/integrationts/replication/data/fbu.adm"),("format"="adm"));
+(("path"="asterix_nc1://../asterix-server/src/test/resources/integrationts/replication/data/fbu.adm"),("format"="adm"));
 
 insert into dataset TinySocial.FacebookUsersInMemory(for $x in dataset TinySocial.FacebookUsers return $x);
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.3.node.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.3.node.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.3.node.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.3.node.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.4.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.4.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.4.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.4.sleep.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.5.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.5.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.5.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/mem_component_recovery/mem_component_recovery.5.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.2.node.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.2.node.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.2.node.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.2.node.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.3.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.3.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.3.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.3.sleep.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.4.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.4.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.4.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/queries/failover/metadata_node/metadata_node.4.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.10.adm b/asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.10.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.10.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.10.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.5.adm b/asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.5.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.5.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.cluster_state.5.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.query.11.adm b/asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.query.11.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.query.11.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.query.11.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.query.6.adm b/asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.query.6.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.query.6.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failback/node_failback/node_failback.query.6.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failover/bulkload/bulkload.5.adm b/asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failover/bulkload/bulkload.5.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failover/bulkload/bulkload.5.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failover/bulkload/bulkload.5.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failover/mem_component_recovery/mem_component_recovery.5.adm b/asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failover/mem_component_recovery/mem_component_recovery.5.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failover/mem_component_recovery/mem_component_recovery.5.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failover/mem_component_recovery/mem_component_recovery.5.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failover/metadata_node/metadata_node.4.adm b/asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failover/metadata_node/metadata_node.4.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/results/failover/metadata_node/metadata_node.4.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/results/failover/metadata_node/metadata_node.4.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/replication/testsuite.xml b/asterixdb/asterix-server/src/test/resources/integrationts/replication/testsuite.xml
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/replication/testsuite.xml
rename to asterixdb/asterix-server/src/test/resources/integrationts/replication/testsuite.xml
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/828.h1w.adm b/asterixdb/asterix-server/src/test/resources/integrationts/restart/828.h1w.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/828.h1w.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/828.h1w.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/hugeobject.adm b/asterixdb/asterix-server/src/test/resources/integrationts/restart/hugeobject.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/hugeobject.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/hugeobject.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.01.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.01.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.01.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.01.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.02.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.02.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.02.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.02.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.03.script.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.03.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.03.script.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.03.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.04.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.04.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.04.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.04.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.05.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.05.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.05.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.05.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.06.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.06.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.06.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.06.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.07.script.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.07.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.07.script.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.07.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.08.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.08.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.08.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.08.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.09.sleep.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.09.sleep.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.09.sleep.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.09.sleep.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.10.script.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.10.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.10.script.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.10.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.11.script.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.11.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.11.script.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/feed-restart/issue-1636/issue-1636.11.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.1.ddl.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.1.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.1.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.1.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.2.update.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.2.update.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.2.update.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.2.update.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.3.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.3.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.3.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.3.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.4.mgx.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.4.mgx.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.4.mgx.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.4.mgx.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.5.query.aql b/asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.5.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.5.query.aql
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/queries/storage-restart/issue-1725/issue-1725.5.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/results/storage-restart/issue-1725/issue-1725.5.adm b/asterixdb/asterix-server/src/test/resources/integrationts/restart/results/storage-restart/issue-1725/issue-1725.5.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/results/storage-restart/issue-1725/issue-1725.5.adm
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/results/storage-restart/issue-1725/issue-1725.5.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/cat.sh b/asterixdb/asterix-server/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/cat.sh
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/cat.sh
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/cat.sh
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/grep_log.sh b/asterixdb/asterix-server/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/grep_log.sh
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/grep_log.sh
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/grep_log.sh
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/kill_cc_and_nc.sh
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/kill_cc_and_nc.sh
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/touch.sh b/asterixdb/asterix-server/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/touch.sh
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/touch.sh
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/scripts/feed-restart/issue-1636/touch.sh
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/testsuite.xml b/asterixdb/asterix-server/src/test/resources/integrationts/restart/testsuite.xml
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/testsuite.xml
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/testsuite.xml
diff --git a/asterixdb/asterix-installer/src/test/resources/integrationts/restart/tweets.json b/asterixdb/asterix-server/src/test/resources/integrationts/restart/tweets.json
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/integrationts/restart/tweets.json
rename to asterixdb/asterix-server/src/test/resources/integrationts/restart/tweets.json
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.3.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.3.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.3.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.3.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.4.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.4.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.4.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.4.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.5.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.5.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.5.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/dml_after_restart/multiple_secondary_indices/multiple_secondary_indices.5.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.3.update.aql
similarity index 88%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.3.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.3.update.aql
index b99ccdc..9b2960d 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.3.update.aql
@@ -29,4 +29,4 @@
 
 load dataset testds
 using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/target/data/big-object/big_object_20M.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/target/data/big-object/big_object_20M.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.4.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.4.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.4.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.4.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.5.query.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.5.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.5.query.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.5.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/big_object_20M/big_object_20M.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.3.update.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.3.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.3.update.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.4.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.4.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.4.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.4.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.5.query.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.5.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.5.query.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.5.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.3.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.3.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.3.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.3.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.4.query.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.4.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.4.query.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.4.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.5.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.5.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.5.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/query_after_restart/external_index/external_index.5.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql
similarity index 88%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql
index ab07679..31fd5e3 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql
@@ -26,4 +26,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.3.update.aql
similarity index 88%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.3.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.3.update.aql
index cb8afd6..a44f3f1 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.3.update.aql
@@ -26,4 +26,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only_filtered/primary_index_only_filtered.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.10.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.10.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.10.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.10.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql
similarity index 88%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql
index 5558005..f55701e 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql
@@ -20,4 +20,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.5.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.5.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.5.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.5.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.6.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.6.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.6.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.6.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.8.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.8.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.8.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.8.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.9.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.9.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.9.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.9.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.10.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.10.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.10.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.10.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.3.update.aql
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.3.update.aql
index 5558005..9b0e47d 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.3.update.aql
@@ -19,5 +19,6 @@
 
 use dataverse recovery;
 
+
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.5.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.5.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.5.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.5.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.6.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.6.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.6.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.6.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.8.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.8.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.8.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.8.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.9.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.9.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.9.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_rtree_index/primary_plus_correlated_rtree_index.9.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.10.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.10.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.10.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.10.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.3.update.aql
similarity index 90%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.3.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.3.update.aql
index 6a18e6e..7c99165 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.3.update.aql
@@ -26,4 +26,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.5.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.5.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.5.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.5.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.6.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.6.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.6.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.6.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.8.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.8.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.8.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.8.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.9.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.9.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.9.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_correlated_secondary_index/primary_plus_default_correlated_secondary_index.9.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.3.update.aql
similarity index 90%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.3.update.aql
index 9bbef93..e286a80 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.3.update.aql
@@ -26,4 +26,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
similarity index 90%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
index 9bbef93..e286a80 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
@@ -26,4 +26,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.10.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.10.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.10.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.10.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.3.update.aql
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.3.update.aql
index 5558005..9b0e47d 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.3.update.aql
@@ -19,5 +19,6 @@
 
 use dataverse recovery;
 
+
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.5.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.5.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.5.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.5.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.6.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.6.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.6.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.6.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.8.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.8.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.8.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.8.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.9.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.9.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.9.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_correlated_secondary_index/primary_plus_keyword_correlated_secondary_index.9.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.3.update.aql
similarity index 90%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.3.update.aql
index 9bbef93..e286a80 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.3.update.aql
@@ -26,4 +26,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.3.update.aql
similarity index 90%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.3.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.3.update.aql
index 0f245b5..d52fe3e 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.3.update.aql
@@ -27,4 +27,4 @@
 
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.10.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.10.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.10.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.10.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.3.update.aql
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.3.update.aql
index 5558005..9b0e47d 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_correlated_ngram_index/primary_plus_correlated_ngram_index.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.3.update.aql
@@ -19,5 +19,6 @@
 
 use dataverse recovery;
 
+
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.5.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.5.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.5.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.5.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.6.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.6.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.6.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.6.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.8.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.8.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.8.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.8.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.9.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.9.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.9.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/primary_plus_multiple_correlated_secondary_indices.9.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.3.update.aql
similarity index 90%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.3.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.3.update.aql
index 66adcef..cc626b5 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index/primary_plus_keyword_secondary_index.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.3.update.aql
@@ -27,4 +27,4 @@
 
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices/primary_plus_multiple_secondary_indices.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.3.update.aql
similarity index 90%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.3.update.aql
index 0f245b5..d52fe3e 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.3.update.aql
@@ -27,4 +27,4 @@
 
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/primary_plus_multiple_secondary_indices_filtered.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.3.update.aql
similarity index 90%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.3.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.3.update.aql
index ce01110..eef562a 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index/primary_plus_default_secondary_index.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.3.update.aql
@@ -26,4 +26,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index/primary_plus_ngram_index.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.3.update.aql
similarity index 90%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.3.update.aql
index 9bbef93..e286a80 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.3.update.aql
@@ -26,4 +26,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_ngram_index_filtered/primary_plus_ngram_index_filtered.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.3.update.aql
similarity index 90%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.3.update.aql
index 9bbef93..e286a80 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_default_secondary_index_filtered/primary_plus_default_secondary_index_filtered.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.3.update.aql
@@ -26,4 +26,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index/primary_plus_rtree_index.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.3.update.aql
similarity index 90%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.3.update.aql
index 0f245b5..d52fe3e 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_keyword_secondary_index_filtered/primary_plus_keyword_secondary_index_filtered.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.3.update.aql
@@ -27,4 +27,4 @@
 
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_filtered/primary_plus_rtree_index_filtered.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.3.update.aql
similarity index 90%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.3.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.3.update.aql
index 1d24079..ef59319 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.3.update.aql
@@ -26,4 +26,4 @@
 
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.3.update.aql
similarity index 90%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.3.update.aql
index 1d24079..ef59319 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete/primary_plus_rtree_index_insert_and_delete.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.3.update.aql
@@ -26,4 +26,4 @@
 
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_02.adm"),("format"="adm")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.4.txneu.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.4.txneu.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.4.txneu.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.4.txneu.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.5.txnqbc.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.5.txnqbc.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.5.txnqbc.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.5.txnqbc.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.6.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.6.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.6.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.6.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.8.txnqar.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.8.txnqar.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.8.txnqar.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.8.txnqar.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.9.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.9.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.9.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/primary_plus_rtree_index_insert_and_delete_filtered.9.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.3.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.3.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.3.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.3.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.4.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.4.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.4.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.4.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.5.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.5.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.5.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.5.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.6.errddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.6.errddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.6.errddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.6.errddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataset_recovery/dataset_recovery.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.3.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.3.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.3.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.3.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.4.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.4.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.4.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.4.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.5.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.5.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.5.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.5.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.6.errddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.6.errddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.6.errddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.6.errddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/datatype_recovery/datatype_recovery.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.3.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.3.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.3.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.3.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.4.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.4.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.4.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.4.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.5.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.5.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.5.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.5.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.6.errddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.6.errddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.6.errddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.6.errddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/dataverse_recovery/dataverse_recovery.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.3.update.aql
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.3.update.aql
index ab07679..31fd5e3 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.3.update.aql
@@ -26,4 +26,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.4.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.4.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.4.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.4.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.5.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.5.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.5.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.5.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.6.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.6.update.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.6.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.6.update.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.7.query.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.7.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.7.query.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.7.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.8.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.8.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.8.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/delete_after_recovery/delete_after_recovery.8.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.3.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.3.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.3.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.3.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.4.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.4.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.4.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.4.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.5.query.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.5.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.5.query.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.5.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.6.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.6.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.6.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.6.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.7.errddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.7.errddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.7.errddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.7.errddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.8.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.8.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.8.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/function_recovery/function_recovery.8.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.3.update.aql
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.3.update.aql
index ab07679..31fd5e3 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.3.update.aql
@@ -26,4 +26,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.4.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.4.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.4.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.4.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.5.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.5.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.5.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.5.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.6.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.6.update.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.6.update.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.6.update.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.7.query.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.7.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.7.query.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.7.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.8.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.8.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.8.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/insert_after_recovery/insert_after_recovery.8.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.3.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.3.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.3.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.3.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.4.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.4.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.4.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.4.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.5.update.aql
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql
copy to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.5.update.aql
index ab07679..31fd5e3 100644
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recover_after_abort/primary_index_only/primary_index_only.3.update.aql
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.5.update.aql
@@ -26,4 +26,4 @@
 use dataverse recovery;
 
 load dataset Fragile_raw using localfs
-(("path"="asterix_nc1://../../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
+(("path"="asterix_nc1://../../../../../asterix-app/data/csv/fragile_01.csv"),("format"="delimited-text"),("delimiter"=",")) pre-sorted;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.6.query.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.6.query.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.6.query.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.6.query.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/load_after_recovery/load_after_recovery.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.1.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.1.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.1.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.1.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.2.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.2.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.2.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.2.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.3.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.3.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.3.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.3.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.4.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.4.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.4.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.4.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.5.ddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.5.ddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.5.ddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.5.ddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.6.errddl.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.6.errddl.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.6.errddl.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.6.errddl.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.7.script.aql b/asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.7.script.aql
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.7.script.aql
rename to asterixdb/asterix-server/src/test/resources/transactionts/queries/recovery_ddl/secondary_index_recovery/secondary_index_recovery.7.script.aql
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/results/query_after_restart/big_object_20M/big_object_20M.1.adm.template b/asterixdb/asterix-server/src/test/resources/transactionts/results/query_after_restart/big_object_20M/big_object_20M.1.adm.template
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/results/query_after_restart/big_object_20M/big_object_20M.1.adm.template
rename to asterixdb/asterix-server/src/test/resources/transactionts/results/query_after_restart/big_object_20M/big_object_20M.1.adm.template
diff --git a/asterixdb/asterix-server/src/test/resources/transactionts/results/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.5.adm b/asterixdb/asterix-server/src/test/resources/transactionts/results/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.5.adm
new file mode 100644
index 0000000..a58cdef
--- /dev/null
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/results/query_after_restart/dataset-with-meta-record/dataset-with-meta-record.5.adm
@@ -0,0 +1 @@
+802
\ No newline at end of file
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/results/query_after_restart/external_index/external_index.1.adm b/asterixdb/asterix-server/src/test/resources/transactionts/results/query_after_restart/external_index/external_index.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/results/query_after_restart/external_index/external_index.1.adm
rename to asterixdb/asterix-server/src/test/resources/transactionts/results/query_after_restart/external_index/external_index.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/results/recovery_ddl/delete_after_recovery/delete_after_recovery.1.adm b/asterixdb/asterix-server/src/test/resources/transactionts/results/recovery_ddl/delete_after_recovery/delete_after_recovery.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/results/recovery_ddl/delete_after_recovery/delete_after_recovery.1.adm
rename to asterixdb/asterix-server/src/test/resources/transactionts/results/recovery_ddl/delete_after_recovery/delete_after_recovery.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/results/recovery_ddl/function_recovery/function_recovery.1.adm b/asterixdb/asterix-server/src/test/resources/transactionts/results/recovery_ddl/function_recovery/function_recovery.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/results/recovery_ddl/function_recovery/function_recovery.1.adm
rename to asterixdb/asterix-server/src/test/resources/transactionts/results/recovery_ddl/function_recovery/function_recovery.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/results/recovery_ddl/insert_after_recovery/insert_after_recovery.1.adm b/asterixdb/asterix-server/src/test/resources/transactionts/results/recovery_ddl/insert_after_recovery/insert_after_recovery.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/results/recovery_ddl/insert_after_recovery/insert_after_recovery.1.adm
rename to asterixdb/asterix-server/src/test/resources/transactionts/results/recovery_ddl/insert_after_recovery/insert_after_recovery.1.adm
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/results/recovery_ddl/load_after_recovery/load_after_recovery.1.adm b/asterixdb/asterix-server/src/test/resources/transactionts/results/recovery_ddl/load_after_recovery/load_after_recovery.1.adm
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/results/recovery_ddl/load_after_recovery/load_after_recovery.1.adm
rename to asterixdb/asterix-server/src/test/resources/transactionts/results/recovery_ddl/load_after_recovery/load_after_recovery.1.adm
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/stop_and_delete.sh
similarity index 89%
rename from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_after_restart/multiple_secondary_indices/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/configure_and_validate.sh
similarity index 92%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/configure_and_validate.sh
index 83cc43c..ab09dd2 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/configure_and_validate.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/dml_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/big_object_20M/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/create_and_start.sh
similarity index 92%
rename from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/create_and_start.sh
index 83cc43c..8a7c9fe 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh ;
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/dataset-with-meta-record/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/external_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/external_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/external_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/external_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/external_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/external_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/external_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/external_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/query_after_restart/external_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_index_only_filtered/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_ngram_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_correlated_rtree_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_correlated_secondary_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index_filtered/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_correlated_secondary_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index_filtered/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_correlated_secondary_indices/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices_filtered/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_ngram_index_filtered/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_filtered/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_rtree_index_insert_and_delete_filtered/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_index_only/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_index_only/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_index_only/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_index_only/kill_cc_and_nc.sh
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_index_only/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_index_only/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_index_only/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_index_only/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_index_only/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_index_only/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_index_only/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_index_only/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_default_secondary_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_default_secondary_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_default_secondary_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_default_secondary_index/kill_cc_and_nc.sh
similarity index 89%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/kill_cc_and_nc.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_default_secondary_index/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_default_secondary_index/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_default_secondary_index/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_default_secondary_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_default_secondary_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_default_secondary_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_default_secondary_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_default_secondary_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_default_secondary_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_keyword_secondary_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_keyword_secondary_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_keyword_secondary_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_keyword_secondary_index/kill_cc_and_nc.sh
similarity index 89%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/kill_cc_and_nc.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_keyword_secondary_index/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_keyword_secondary_index/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_keyword_secondary_index/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_keyword_secondary_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_keyword_secondary_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_keyword_secondary_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_keyword_secondary_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_keyword_secondary_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_keyword_secondary_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_multiple_secondary_indices/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_multiple_secondary_indices/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_multiple_secondary_indices/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_multiple_secondary_indices/kill_cc_and_nc.sh
similarity index 89%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/kill_cc_and_nc.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_multiple_secondary_indices/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recover_after_abort/primary_plus_multiple_secondary_indices/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_multiple_secondary_indices/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_multiple_secondary_indices/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_multiple_secondary_indices/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_multiple_secondary_indices/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_multiple_secondary_indices/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_multiple_secondary_indices/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_multiple_secondary_indices/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_ngram_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_ngram_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_ngram_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_ngram_index/kill_cc_and_nc.sh
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_ngram_index/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_ngram_index/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_ngram_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_ngram_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_ngram_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_ngram_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_ngram_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_ngram_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_rtree_index/create_and_start.sh
similarity index 90%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_rtree_index/create_and_start.sh
index 83cc43c..e358618 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_rtree_index/create_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_rtree_index/kill_cc_and_nc.sh
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_rtree_index/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_rtree_index/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_rtree_index/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_rtree_index/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_rtree_index/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_rtree_index/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_rtree_index/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recover_after_abort/temp_primary_plus_rtree_index/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/create_and_start.sh
similarity index 91%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataset_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/datatype_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/dataverse_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/delete_after_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/function_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/insert_after_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/load_after_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/secondary_index_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_dataset_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_dataset_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_dataset_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_dataset_recovery/kill_cc_and_nc.sh
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_dataset_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_dataset_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_dataset_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_dataset_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_dataset_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_dataset_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_dataset_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_dataset_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_delete_after_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_delete_after_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_delete_after_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_delete_after_recovery/kill_cc_and_nc.sh
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_delete_after_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_delete_after_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_delete_after_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_delete_after_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_delete_after_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_delete_after_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_delete_after_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_delete_after_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_insert_after_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_insert_after_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_insert_after_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_insert_after_recovery/kill_cc_and_nc.sh
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_insert_after_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_insert_after_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_insert_after_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_insert_after_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_insert_after_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_insert_after_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_insert_after_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_insert_after_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_load_after_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_load_after_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_load_after_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_load_after_recovery/kill_cc_and_nc.sh
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_load_after_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_load_after_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_load_after_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_load_after_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_load_after_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_load_after_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_load_after_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_load_after_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_secondary_index_recovery/create_and_start.sh
similarity index 91%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_secondary_index_recovery/create_and_start.sh
index e46b4e5..e358618 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/shutdown.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_secondary_index_recovery/create_and_start.sh
@@ -15,4 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-$MANAGIX_HOME/bin/managix shutdown;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh 1>/dev/null 2>&1;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_secondary_index_recovery/kill_cc_and_nc.sh
similarity index 88%
copy from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_secondary_index_recovery/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/dml_recovery/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_secondary_index_recovery/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_secondary_index_recovery/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_secondary_index_recovery/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_secondary_index_recovery/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_secondary_index_recovery/stop_and_start.sh
similarity index 87%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_secondary_index_recovery/stop_and_start.sh
index 83cc43c..9a0c506 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/recovery_ddl/temp_secondary_index_recovery/stop_and_start.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/setup_teardown/configure_and_validate.sh
similarity index 92%
copy from asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/setup_teardown/configure_and_validate.sh
index 83cc43c..ab09dd2 100755
--- a/asterixdb/asterix-events/src/main/resources/scripts/prepare.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/setup_teardown/configure_and_validate.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,3 +15,4 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/start-sample-cluster.sh;
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/setup_teardown/kill_cc_and_nc.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/setup_teardown/kill_cc_and_nc.sh
similarity index 89%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/setup_teardown/kill_cc_and_nc.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/setup_teardown/kill_cc_and_nc.sh
index 4b876be..b6326cc 100755
--- a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/setup_teardown/kill_cc_and_nc.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/setup_teardown/kill_cc_and_nc.sh
@@ -16,3 +16,4 @@
 # specific language governing permissions and limitations
 # under the License.
 ps -ef | awk '/java.*org\.apache\.hyracks\.control\.[cn]c\.[CN]CDriver/ {print $2}' | xargs -n 1 kill -9
+ps -ef | awk '/java.*org\.apache\.hyracks\.control\.nc\.service\.NCService/ {print $2}' | xargs -n 1 kill -9
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/scripts/setup_teardown/shutdown.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/setup_teardown/shutdown.sh
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/scripts/setup_teardown/shutdown.sh
rename to asterixdb/asterix-server/src/test/resources/transactionts/scripts/setup_teardown/shutdown.sh
diff --git a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/setup_teardown/stop_and_delete.sh
similarity index 89%
copy from asterixdb/asterix-events/src/main/resources/events/file/delete.sh
copy to asterixdb/asterix-server/src/test/resources/transactionts/scripts/setup_teardown/stop_and_delete.sh
index 9c8b0e0..818d17d 100755
--- a/asterixdb/asterix-events/src/main/resources/events/file/delete.sh
+++ b/asterixdb/asterix-server/src/test/resources/transactionts/scripts/setup_teardown/stop_and_delete.sh
@@ -1,5 +1,4 @@
 #!/usr/bin/env bash
-#/*
 # 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
@@ -16,7 +15,6 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+$NCSERVICE_HOME/opt/local/bin/stop-sample-cluster.sh;
+rm -rf $NCSERVICE_HOME/opt/local/data;
 
-PATH_TO_DELETE=$1
-echo "rm -rf $PATH_TO_DELETE" >> ~/backup.log
-rm -rf $PATH_TO_DELETE
diff --git a/asterixdb/asterix-installer/src/test/resources/transactionts/testsuite.xml b/asterixdb/asterix-server/src/test/resources/transactionts/testsuite.xml
similarity index 100%
rename from asterixdb/asterix-installer/src/test/resources/transactionts/testsuite.xml
rename to asterixdb/asterix-server/src/test/resources/transactionts/testsuite.xml
diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java
index ba43fb7..601dec3 100644
--- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java
+++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java
@@ -126,6 +126,7 @@
         //initially the node active partitions are the same as the original partitions
         nodeOriginalPartitions = new HashSet<>(nodePartitions.length);
         nodeActivePartitions = new HashSet<>(nodePartitions.length);
+        nodeInactivePartitions = new HashSet<>(nodePartitions.length);
         for (ClusterPartition partition : nodePartitions) {
             nodeOriginalPartitions.add(partition.getPartitionId());
             nodeActivePartitions.add(partition.getPartitionId());
@@ -169,8 +170,8 @@
             throw HyracksDataException.create(CANNOT_CREATE_FILE, parent.getAbsolutePath());
         }
 
-        try (FileOutputStream fos = new FileOutputStream(
-                resourceFile.getFile()); ObjectOutputStream oosToFos = new ObjectOutputStream(fos)) {
+        try (FileOutputStream fos = new FileOutputStream(resourceFile.getFile());
+                ObjectOutputStream oosToFos = new ObjectOutputStream(fos)) {
             oosToFos.writeObject(resource);
             oosToFos.flush();
         } catch (IOException e) {
@@ -200,8 +201,8 @@
             resourceCache.invalidate(relativePath);
             IoUtil.delete(resourceFile);
         } else {
-            throw HyracksDataException
-                    .create(org.apache.hyracks.api.exceptions.ErrorCode.RESOURCE_DOES_NOT_EXIST, relativePath);
+            throw HyracksDataException.create(org.apache.hyracks.api.exceptions.ErrorCode.RESOURCE_DOES_NOT_EXIST,
+                    relativePath);
         }
     }
 
@@ -242,14 +243,13 @@
     }
 
     private static String getFileName(String path) {
-        return path.endsWith(File.separator) ?
-                (path + StorageConstants.METADATA_FILE_NAME) :
-                (path + File.separator + StorageConstants.METADATA_FILE_NAME);
+        return path.endsWith(File.separator) ? (path + StorageConstants.METADATA_FILE_NAME)
+                : (path + File.separator + StorageConstants.METADATA_FILE_NAME);
     }
 
     public static LocalResource readLocalResource(File file) throws HyracksDataException {
-        try (FileInputStream fis = new FileInputStream(file); ObjectInputStream oisFromFis = new ObjectInputStream(
-                fis)) {
+        try (FileInputStream fis = new FileInputStream(file);
+                ObjectInputStream oisFromFis = new ObjectInputStream(fis)) {
             LocalResource resource = (LocalResource) oisFromFis.readObject();
             if (resource.getVersion() == ITreeIndexFrame.Constants.VERSION) {
                 return resource;
diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java
index 3f94749..99f365a 100644
--- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java
+++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java
@@ -34,12 +34,11 @@
 public class LogManagerWithReplication extends LogManager {
 
     private IReplicationManager replicationManager;
-    private final IReplicationStrategy replicationStrategy;
+    private IReplicationStrategy replicationStrategy;
     private final Set<Long> replicatedTxn = ConcurrentHashMap.newKeySet();
 
-    public LogManagerWithReplication(ITransactionSubsystem txnSubsystem, IReplicationStrategy replicationStrategy) {
+    public LogManagerWithReplication(ITransactionSubsystem txnSubsystem) {
         super(txnSubsystem);
-        this.replicationStrategy = replicationStrategy;
     }
 
     @Override
@@ -144,6 +143,7 @@
     @Override
     public void setReplicationManager(IReplicationManager replicationManager) {
         this.replicationManager = replicationManager;
+        this.replicationStrategy = replicationManager.getReplicationStrategy();
     }
 
 }
diff --git a/asterixdb/pom.xml b/asterixdb/pom.xml
index b968fcc..32a5d1b 100644
--- a/asterixdb/pom.xml
+++ b/asterixdb/pom.xml
@@ -150,7 +150,9 @@
           <excludes combine.children="append">
             <exclude>src/main/licenses/**</exclude>
             <exclude>**/*.iml</exclude>
+            <exclude>**/*.json</exclude>
             <exclude>**/*.adm</exclude>
+            <exclude>**/*.template</exclude>
             <exclude>asterix-installer/**</exclude> <!-- in case -DskipInstaller -->
           </excludes>
         </configuration>
@@ -680,17 +682,6 @@
         </plugins>
       </build>
     </profile>
-    <profile>
-      <id>include-managix</id>
-      <activation>
-        <property>
-          <name>!skipManagix</name>
-        </property>
-      </activation>
-      <modules>
-        <module>asterix-installer</module>
-      </modules>
-    </profile>
   </profiles>
 
   <modules>
@@ -711,7 +702,6 @@
     <module>asterix-test-framework</module>
     <module>asterix-maven-plugins</module>
     <module>asterix-server</module>
-    <module>asterix-events</module>
     <module>asterix-doc</module>
     <module>asterix-fuzzyjoin</module>
     <module>asterix-replication</module>
@@ -720,6 +710,7 @@
     <module>asterix-active</module>
     <module>asterix-client-helper</module>
     <module>asterix-license</module>
+    <module>asterix-installer</module>
   </modules>
 
   <dependencyManagement>
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/ICCApplication.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/ICCApplication.java
index d4269d5..6bcdd8a 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/ICCApplication.java
+++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/application/ICCApplication.java
@@ -18,10 +18,12 @@
  */
 package org.apache.hyracks.api.application;
 
+import org.apache.hyracks.api.config.IConfigManager;
 import org.apache.hyracks.api.job.resource.IJobCapacityController;
 
 public interface ICCApplication extends IApplication {
 
     IJobCapacityController getJobCapacityController();
 
+    IConfigManager getConfigManager();
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/BaseCCApplication.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/BaseCCApplication.java
index 5ea51d1..b2478a3 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/BaseCCApplication.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/BaseCCApplication.java
@@ -35,6 +35,7 @@
 public class BaseCCApplication implements ICCApplication {
     private static final Logger LOGGER = Logger.getLogger(BaseCCApplication.class.getName());
     public static final ICCApplication INSTANCE = new BaseCCApplication();
+    private IConfigManager configManager;
 
     protected BaseCCApplication() {
     }
@@ -68,6 +69,7 @@
 
     @Override
     public void registerConfig(IConfigManager configManager) {
+        this.configManager = configManager;
         configManager.addIniParamOptions(ControllerConfig.Option.CONFIG_FILE, ControllerConfig.Option.CONFIG_FILE_URL);
         configManager.addCmdLineSections(Section.CC, Section.COMMON);
         configManager.setUsageFilter(getUsageFilter());
@@ -84,4 +86,9 @@
         Logger.getLogger("org.apache.hyracks").setLevel(level);
     }
 
+    @Override
+    public IConfigManager getConfigManager() {
+        return configManager;
+    }
+
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java
index 713bddd..fd53c25 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java
@@ -171,8 +171,8 @@
         final ClusterTopology topology = computeClusterTopology(ccConfig);
         ccContext = new ClusterControllerContext(topology);
         sweeper = new DeadNodeSweeper();
-        datasetDirectoryService =
-                new DatasetDirectoryService(ccConfig.getResultTTL(), ccConfig.getResultSweepThreshold());
+        datasetDirectoryService = new DatasetDirectoryService(ccConfig.getResultTTL(),
+                ccConfig.getResultSweepThreshold());
 
         deploymentRunMap = new HashMap<>();
         stateDumpRunMap = new HashMap<>();
@@ -270,8 +270,8 @@
 
     private void connectNCs() {
         getNCServices().forEach((key, value) -> {
-            final TriggerNCWork triggerWork = new TriggerNCWork(ClusterControllerService.this,
-                    value.getLeft(), value.getRight(), key);
+            final TriggerNCWork triggerWork = new TriggerNCWork(ClusterControllerService.this, value.getLeft(),
+                    value.getRight(), key);
             executor.submit(triggerWork);
         });
         serviceCtx.addClusterLifecycleListener(new IClusterLifecycleListener() {
@@ -284,18 +284,22 @@
             @Override
             public void notifyNodeFailure(Collection<String> deadNodeIds) throws HyracksException {
                 LOGGER.log(Level.WARNING, "Getting notified that nodes: " + deadNodeIds + " has failed");
-                for (String nodeId : deadNodeIds) {
-                    Pair<String, Integer> ncService = getNCService(nodeId);
-                    if (ncService.getRight() != NCConfig.NCSERVICE_PORT_DISABLED) {
-                        final TriggerNCWork triggerWork = new TriggerNCWork(ClusterControllerService.this,
-                                ncService.getLeft(), ncService.getRight(), nodeId);
-                        executor.submit(triggerWork);
-                    }
-                }
             }
         });
     }
 
+    public boolean startNC(String nodeId) {
+        Pair<String, Integer> ncServiceAddress = getNCService(nodeId);
+        if (ncServiceAddress == null) {
+            return false;
+        }
+        final TriggerNCWork startNc = new TriggerNCWork(ClusterControllerService.this, ncServiceAddress.getLeft(),
+                ncServiceAddress.getRight(), nodeId);
+        executor.submit(startNc);
+        return true;
+
+    }
+
     private void terminateNCServices() throws Exception {
         List<ShutdownNCServiceWork> shutdownNCServiceWorks = new ArrayList<>();
         getNCServices().forEach((key, value) -> {
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/StartNodeApiServlet.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/StartNodeApiServlet.java
new file mode 100644
index 0000000..4fd69ad
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/StartNodeApiServlet.java
@@ -0,0 +1,54 @@
+/*
+ * 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.hyracks.control.cc.web;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import io.netty.handler.codec.http.HttpResponseStatus;
+import org.apache.hyracks.control.cc.ClusterControllerService;
+import org.apache.hyracks.http.api.IServletRequest;
+import org.apache.hyracks.http.api.IServletResponse;
+import org.apache.hyracks.http.server.AbstractServlet;
+
+import java.io.PrintWriter;
+import java.util.Date;
+import java.util.concurrent.ConcurrentMap;
+
+public class StartNodeApiServlet extends AbstractServlet {
+    private ClusterControllerService ccs;
+
+    public StartNodeApiServlet(ConcurrentMap<String, Object> ctx, String[] paths, ClusterControllerService ccs) {
+        super(ctx, paths);
+        this.ccs = ccs;
+    }
+
+    @Override
+    protected void post(IServletRequest request, IServletResponse response) {
+        String nodeId = request.getParameter("node");
+        response.setStatus(HttpResponseStatus.OK);
+        ObjectMapper om = new ObjectMapper();
+        ObjectNode jsonObject = om.createObjectNode();
+        jsonObject.put("date", new Date().toString());
+        jsonObject.put("status", ccs.startNC(nodeId));
+        final PrintWriter writer = response.writer();
+        writer.print(jsonObject.toString());
+        writer.close();
+    }
+
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/WebServer.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/WebServer.java
index f79a178..f413fe5 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/WebServer.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/web/WebServer.java
@@ -49,6 +49,7 @@
         addJSONHandler("/rest/jobs/*", new JobsRESTAPIFunction(ccs));
         addJSONHandler("/rest/nodes/*", new NodesRESTAPIFunction(ccs));
         addJSONHandler("/rest/statedump", new StateDumpRESTAPIFunction(ccs));
+        server.addServlet(new StartNodeApiServlet(ctx, new String[] { "/rest/startnode" }, ccs));
         server.addServlet(new StaticResourceServlet(ctx, new String[] { "/static/*" }));
         server.addServlet(new ApplicationInstallationHandler(ctx, new String[] { "/applications/*" }, ccs));
     }
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
index 147e5e8..142afbf 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
@@ -29,6 +29,7 @@
 import java.util.EnumMap;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -307,7 +308,6 @@
                     .parseSectionName(section.getParent() == null ? section.getName() : section.getParent().getName());
             String node;
             if (rootSection == Section.EXTENSION) {
-                parseExtensionIniSection(section);
                 continue;
             } else if (rootSection == Section.NC) {
                 node = section.getName().equals(section.getSimpleName()) ? null : section.getSimpleName();
@@ -332,10 +332,6 @@
         }
     }
 
-    private void parseExtensionIniSection(Profile.Section section) {
-        // TODO(mblow): parse extensions
-    }
-
     private void handleUnknownOption(Profile.Section section, String name) throws HyracksException {
         Set<String> matches = new HashSet<>();
         for (IOption registeredOption : registeredOptions) {
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
index e8c96d4..0a5ba30 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java
@@ -63,6 +63,10 @@
         MESSAGING_LISTEN_PORT(INTEGER, 0),
         MESSAGING_PUBLIC_ADDRESS(STRING, PUBLIC_ADDRESS),
         MESSAGING_PUBLIC_PORT(INTEGER, MESSAGING_LISTEN_PORT),
+        REPLICATION_PUBLIC_ADDRESS(STRING, PUBLIC_ADDRESS),
+        REPLICATION_PUBLIC_PORT(INTEGER, 2000),
+        REPLICATION_LISTEN_ADDRESS(STRING, ADDRESS),
+        REPLICATION_LISTEN_PORT(INTEGER, 2000),
         CLUSTER_CONNECT_RETRIES(INTEGER, 5),
         IODEVICES(
                 STRING_ARRAY,
@@ -115,6 +119,7 @@
         }
 
         @Override
+        @SuppressWarnings("squid:MethodCyclomaticComplexity")
         public String description() {
             switch (this) {
                 case ADDRESS:
@@ -128,8 +133,8 @@
                 case NCSERVICE_ADDRESS:
                     return "Address the CC should use to contact the NCService associated with this NC";
                 case NCSERVICE_PORT:
-                    return "Port the CC should use to contact the NCService associated with this NC (-1 to not use " +
-                            "NCService to start this NC)";
+                    return "Port the CC should use to contact the NCService associated with this NC (-1 to not use "
+                            + "NCService to start this NC)";
                 case CLUSTER_ADDRESS:
                     return "Cluster Controller address (required unless specified in config file)";
                 case CLUSTER_PORT:
@@ -167,6 +172,14 @@
                     return "Public IP Address to announce messaging listener";
                 case MESSAGING_PUBLIC_PORT:
                     return "Public IP port to announce messaging listener";
+                case REPLICATION_PUBLIC_ADDRESS:
+                    return "Public address to advertise for replication service";
+                case REPLICATION_PUBLIC_PORT:
+                    return "Public port to advertise for replication service";
+                case REPLICATION_LISTEN_ADDRESS:
+                    return "Replication bind address";
+                case REPLICATION_LISTEN_PORT:
+                    return "Port to listen on for replication service";
                 case CLUSTER_CONNECT_RETRIES:
                     return "Number of attempts to retry contacting CC before giving up";
                 case IODEVICES:
@@ -219,6 +232,10 @@
 
     }
 
+    public String getReplicationPublicAddress() {
+        return appConfig.getString(Option.REPLICATION_LISTEN_ADDRESS);
+    }
+
     public static final int NCSERVICE_PORT_DISABLED = -1;
 
     private List<String> appArgs = new ArrayList<>();
@@ -427,6 +444,10 @@
         configManager.set(nodeId, Option.MESSAGING_PUBLIC_PORT, messagingPublicPort);
     }
 
+    public int getReplicationPublicPort() {
+        return appConfig.getInt(Option.REPLICATION_LISTEN_PORT);
+    }
+
     public int getClusterConnectRetries() {
         return appConfig.getInt(Option.CLUSTER_CONNECT_RETRIES);
     }
diff --git a/hyracks-fullstack/hyracks/hyracks-server/src/main/java/org/apache/hyracks/server/process/HyracksCCProcess.java b/hyracks-fullstack/hyracks/hyracks-server/src/main/java/org/apache/hyracks/server/process/HyracksCCProcess.java
index b2aa2d1..354dc32 100644
--- a/hyracks-fullstack/hyracks/hyracks-server/src/main/java/org/apache/hyracks/server/process/HyracksCCProcess.java
+++ b/hyracks-fullstack/hyracks/hyracks-server/src/main/java/org/apache/hyracks/server/process/HyracksCCProcess.java
@@ -23,6 +23,7 @@
 
 import org.apache.hyracks.control.cc.CCDriver;
 
+@SuppressWarnings("squid:CommentedOutCodeLine")
 public class HyracksCCProcess extends HyracksServerProcess {
 
     public HyracksCCProcess(File configFile, File logFile, File appHome, File workingDir) {
@@ -41,6 +42,6 @@
     protected void addJvmArgs(List<String> cList) {
         // CC needs more than default memory
         cList.add("-Xmx1024m");
-        //cList.add("-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005");
+        //cList.add("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"); //NOSONAR
     }
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-server/src/main/java/org/apache/hyracks/server/process/HyracksServerProcess.java b/hyracks-fullstack/hyracks/hyracks-server/src/main/java/org/apache/hyracks/server/process/HyracksServerProcess.java
index 7bb3332..c387ceb 100644
--- a/hyracks-fullstack/hyracks/hyracks-server/src/main/java/org/apache/hyracks/server/process/HyracksServerProcess.java
+++ b/hyracks-fullstack/hyracks/hyracks-server/src/main/java/org/apache/hyracks/server/process/HyracksServerProcess.java
@@ -24,6 +24,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -65,7 +66,13 @@
     public void stop() {
         process.destroy();
         try {
-            process.waitFor();
+            boolean success = process.waitFor(30, TimeUnit.SECONDS);
+            if (LOGGER.isLoggable(Level.WARNING)) {
+                LOGGER.warning("Killing unresponsive NC Process");
+            }
+            if (!success) {
+                process.destroyForcibly();
+            }
         } catch (InterruptedException e) {
             Thread.currentThread().interrupt();
         }
