Search in sources :

Example 1 with BBoxDB

use of org.bboxdb.network.client.BBoxDB in project bboxdb by jnidzwetzki.

the class TestBBoxDBCluster method testInsertAndBoundingBoxTimeQuery.

/**
 * Insert some tuples and start a bounding box query afterwards
 * @throws ExecutionException
 * @throws InterruptedException
 * @throws BBoxDBException
 */
@Test(timeout = 60000)
public void testInsertAndBoundingBoxTimeQuery() throws InterruptedException, ExecutionException, BBoxDBException {
    System.out.println("=== Running cluster testInsertAndBoundingBoxTimeQuery");
    final BBoxDB bboxDBClient = connectToServer();
    NetworkQueryHelper.executeBoudingboxAndTimeQuery(bboxDBClient, DISTRIBUTION_GROUP);
    System.out.println("=== End cluster testInsertAndBoundingBoxTimeQuery");
    disconnect(bboxDBClient);
}
Also used : BBoxDB(org.bboxdb.network.client.BBoxDB) Test(org.junit.Test)

Example 2 with BBoxDB

use of org.bboxdb.network.client.BBoxDB in project bboxdb by jnidzwetzki.

the class TestBBoxDBCluster method testInsertAndBoundingBoxContinousQuery.

/**
 * Insert some tuples and start a bounding box query afterwards
 * @throws ExecutionException
 * @throws InterruptedException
 * @throws BBoxDBException
 */
@Test(timeout = 60000)
public void testInsertAndBoundingBoxContinousQuery() throws InterruptedException, ExecutionException, BBoxDBException {
    final BBoxDB bboxDBClient = connectToServer();
    final String table = DISTRIBUTION_GROUP + "_relation9991";
    // Create table
    final EmptyResultFuture resultCreateTable = bboxDBClient.createTable(table, new TupleStoreConfiguration());
    resultCreateTable.waitForAll();
    Assert.assertFalse(resultCreateTable.isFailed());
    // Execute query
    final TupleListFuture result = bboxDBClient.queryBoundingBoxContinuous(table, new BoundingBox(-1d, 2d, -1d, 2d));
    Assert.assertFalse(result.isFailed());
    disconnect(bboxDBClient);
}
Also used : BBoxDB(org.bboxdb.network.client.BBoxDB) TupleStoreConfiguration(org.bboxdb.storage.entity.TupleStoreConfiguration) TupleListFuture(org.bboxdb.network.client.future.TupleListFuture) BoundingBox(org.bboxdb.commons.math.BoundingBox) EmptyResultFuture(org.bboxdb.network.client.future.EmptyResultFuture) Test(org.junit.Test)

Example 3 with BBoxDB

use of org.bboxdb.network.client.BBoxDB in project bboxdb by jnidzwetzki.

the class TestBBoxDBCluster method testInsertAndDelete.

/**
 * The the insert and the deletion of a tuple
 * @throws ExecutionException
 * @throws InterruptedException
 * @throws BBoxDBException
 */
@Test(timeout = 60000)
public void testInsertAndDelete() throws InterruptedException, ExecutionException, BBoxDBException {
    System.out.println("=== Running cluster testInsertAndDelete");
    final BBoxDB bboxdbClient = connectToServer();
    NetworkQueryHelper.testInsertAndDeleteTuple(bboxdbClient, DISTRIBUTION_GROUP);
    System.out.println("=== End cluster testInsertAndDelete");
    disconnect(bboxdbClient);
}
Also used : BBoxDB(org.bboxdb.network.client.BBoxDB) Test(org.junit.Test)

Example 4 with BBoxDB

use of org.bboxdb.network.client.BBoxDB in project bboxdb by jnidzwetzki.

the class BBoxDBClientExample method main.

/**
 * Connect to the BBoxDB Server at localhost and insert some tuples
 *
 * @param args
 * @throws ExecutionException
 * @throws InterruptedException
 * @throws BBoxDBException
 */
public static void main(String[] args) throws InterruptedException, ExecutionException, BBoxDBException {
    // A 2 dimensional table (member of distribution group 'mygroup3') with the name 'testdata'
    final int dimensions = 2;
    final String distributionGroup = "mygroup3";
    final String mytable = distributionGroup + "_testdata";
    // The name of the cluster
    final String clustername = "mycluster";
    // The zookeeper connect points
    final List<String> connectPoints = Arrays.asList("localhost:2181");
    // Connect to the server
    final BBoxDB bboxdbClient = new BBoxDBCluster(connectPoints, clustername);
    bboxdbClient.connect();
    // Check the connection state
    if (!bboxdbClient.isConnected()) {
        System.out.println("Error while connecting to the BBoxDB cluster");
        System.exit(-1);
    }
    // Clean the old content of the distribution group
    final EmptyResultFuture deleteGroupResult = bboxdbClient.deleteDistributionGroup(distributionGroup);
    deleteGroupResult.waitForAll();
    if (deleteGroupResult.isFailed()) {
        System.err.println("Unable to delete distribution group: " + distributionGroup);
        System.err.println(deleteGroupResult.getAllMessages());
        System.exit(-1);
    }
    // Create a new distribution group
    final DistributionGroupConfiguration configuration = DistributionGroupConfigurationBuilder.create(dimensions).withReplicationFactor((short) 3).build();
    final EmptyResultFuture createGroupResult = bboxdbClient.createDistributionGroup(distributionGroup, configuration);
    createGroupResult.waitForAll();
    if (createGroupResult.isFailed()) {
        System.err.println("Unable to create distribution group: " + distributionGroup);
        System.err.println(createGroupResult.getAllMessages());
        System.exit(-1);
    }
    // Create the table
    final TupleStoreConfiguration tableConfig = TupleStoreConfigurationBuilder.create().allowDuplicates(false).build();
    final EmptyResultFuture createTableResult = bboxdbClient.createTable(mytable, tableConfig);
    createTableResult.waitForAll();
    if (createTableResult.isFailed()) {
        System.err.println("Unable to create table group: " + mytable);
        System.err.println(createTableResult.getAllMessages());
        System.exit(-1);
    }
    // Insert two new tuples
    final Tuple tuple1 = new Tuple("key1", new BoundingBox(0d, 5d, 0d, 1d), "mydata1".getBytes());
    final EmptyResultFuture insertResult1 = bboxdbClient.insertTuple(mytable, tuple1);
    final Tuple tuple2 = new Tuple("key2", new BoundingBox(-1d, 2d, -1d, 2d), "mydata2".getBytes());
    final EmptyResultFuture insertResult2 = bboxdbClient.insertTuple(mytable, tuple2);
    // Wait for the insert operations to complete
    insertResult1.waitForAll();
    insertResult2.waitForAll();
    if (insertResult1.isFailed()) {
        System.err.println("Unable to insert tuple: " + insertResult1.getAllMessages());
        System.exit(-1);
    }
    if (insertResult2.isFailed()) {
        System.err.println("Unable to insert tuple: " + insertResult2.getAllMessages());
        System.exit(-1);
    }
    // Query by key
    final TupleListFuture resultFuture1 = bboxdbClient.queryKey(mytable, "key");
    // We got a future object, the search is performed asynchronous
    // Wait for the result
    resultFuture1.waitForAll();
    if (resultFuture1.isFailed()) {
        System.err.println("NetworkOperationFuture is failed: " + resultFuture1.getAllMessages());
        System.exit(-1);
    }
    // Output all tuples
    for (final Tuple tuple : resultFuture1) {
        System.out.println(tuple);
    }
    // Query by bounding box
    final TupleListFuture resultFuture2 = bboxdbClient.queryBoundingBox(mytable, new BoundingBox(-0.5d, 1d, -0.5d, 1d));
    // Again, we got a future object, the search is performed asynchronous
    resultFuture2.waitForAll();
    if (resultFuture2.isFailed()) {
        System.err.println("NetworkOperationFuture is failed: " + resultFuture2.getAllMessages());
        System.exit(-1);
    }
    // Output all tuples
    for (final Tuple tuple : resultFuture2) {
        System.out.println("Tuple: " + tuple);
    }
    bboxdbClient.disconnect();
}
Also used : BBoxDB(org.bboxdb.network.client.BBoxDB) TupleStoreConfiguration(org.bboxdb.storage.entity.TupleStoreConfiguration) BoundingBox(org.bboxdb.commons.math.BoundingBox) TupleListFuture(org.bboxdb.network.client.future.TupleListFuture) BBoxDBCluster(org.bboxdb.network.client.BBoxDBCluster) DistributionGroupConfiguration(org.bboxdb.storage.entity.DistributionGroupConfiguration) Tuple(org.bboxdb.storage.entity.Tuple) EmptyResultFuture(org.bboxdb.network.client.future.EmptyResultFuture)

Example 5 with BBoxDB

use of org.bboxdb.network.client.BBoxDB in project bboxdb by jnidzwetzki.

the class TestBoundingBoxQuery method run.

@Override
public void run() {
    System.out.format("# Reading %s%n", filename);
    final BoundingBox boundingBox = ExperimentHelper.determineBoundingBox(filename, format);
    System.out.println("Connecting to BBoxDB cluster");
    final BBoxDB bboxDBConnection = new BBoxDBCluster(endpoint, cluster);
    if (!bboxDBConnection.connect()) {
        System.err.println("Unable to connect to the BBoxDB cluster, exiting");
        System.exit(-1);
    }
    final List<Double> experimentSize = Arrays.asList(0.001, 0.01, 0.1, 1.0);
    experimentSize.forEach(e -> runExperiment(e, boundingBox, bboxDBConnection));
    pendingFutures.shutdown();
}
Also used : BBoxDB(org.bboxdb.network.client.BBoxDB) BoundingBox(org.bboxdb.commons.math.BoundingBox) BBoxDBCluster(org.bboxdb.network.client.BBoxDBCluster)

Aggregations

BBoxDB (org.bboxdb.network.client.BBoxDB)10 Test (org.junit.Test)7 BoundingBox (org.bboxdb.commons.math.BoundingBox)3 BBoxDBCluster (org.bboxdb.network.client.BBoxDBCluster)2 EmptyResultFuture (org.bboxdb.network.client.future.EmptyResultFuture)2 TupleListFuture (org.bboxdb.network.client.future.TupleListFuture)2 TupleStoreConfiguration (org.bboxdb.storage.entity.TupleStoreConfiguration)2 DistributionGroupConfiguration (org.bboxdb.storage.entity.DistributionGroupConfiguration)1 Tuple (org.bboxdb.storage.entity.Tuple)1 Before (org.junit.Before)1