[ASTERIXDB-1723] Delete managix
- user model changes: yes
- storage format changes: no
- interface changes: yes
Details:
- Delete managix installer method and all dependencies
- Remove xml-based configuration
Change-Id: I5c710b6ec870bedd49dd46b74ed96a3665670e9b
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2155
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mblow@apache.org>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
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();
}