Search in sources :

Example 11 with TitanGraph

use of com.thinkaurelius.titan.core.TitanGraph in project titan by thinkaurelius.

the class VertexIDAssignerTest method testIDAssignment.

@Test
public void testIDAssignment() {
    LongSet vertexIds = new LongHashSet();
    LongSet relationIds = new LongHashSet();
    int totalRelations = 0;
    int totalVertices = 0;
    for (int trial = 0; trial < 10; trial++) {
        for (boolean flush : new boolean[] { true, false }) {
            TitanGraph graph = getInMemoryGraph();
            int numVertices = 1000;
            List<TitanVertex> vertices = new ArrayList<TitanVertex>(numVertices);
            List<InternalRelation> relations = new ArrayList<InternalRelation>();
            TitanVertex old = null;
            totalRelations += 2 * numVertices;
            totalVertices += numVertices;
            try {
                for (int i = 0; i < numVertices; i++) {
                    TitanVertex next = graph.addVertex();
                    InternalRelation edge = null;
                    if (old != null) {
                        edge = (InternalRelation) old.addEdge("knows", next);
                    }
                    InternalRelation property = (InternalRelation) next.property("age", 25);
                    if (flush) {
                        idAssigner.assignID((InternalVertex) next, next.vertexLabel());
                        idAssigner.assignID(property);
                        if (edge != null)
                            idAssigner.assignID(edge);
                    }
                    relations.add(property);
                    if (edge != null)
                        relations.add(edge);
                    vertices.add(next);
                    old = next;
                }
                if (!flush)
                    idAssigner.assignIDs(relations);
                //Check if we should have exhausted the id pools
                if (totalRelations > maxIDAssignments || totalVertices > maxIDAssignments)
                    fail();
                //Verify that ids are set and unique
                for (TitanVertex v : vertices) {
                    assertTrue(v.hasId());
                    long id = v.longId();
                    assertTrue(id > 0 && id < Long.MAX_VALUE);
                    assertTrue(vertexIds.add(id));
                }
                for (InternalRelation r : relations) {
                    assertTrue(r.hasId());
                    long id = r.longId();
                    assertTrue(id > 0 && id < Long.MAX_VALUE);
                    assertTrue(relationIds.add(id));
                }
            } catch (IDPoolExhaustedException e) {
                //Since the id assignment process is randomized, we divide by 3/2 to account for minor variations
                assertTrue("Max Avail: " + maxIDAssignments + " vs. [" + totalVertices + "," + totalRelations + "]", totalRelations >= maxIDAssignments / 3 * 2 || totalVertices >= maxIDAssignments / 3 * 2);
            } finally {
                graph.tx().rollback();
                graph.close();
            }
        }
    }
}
Also used : TitanGraph(com.thinkaurelius.titan.core.TitanGraph) LongHashSet(com.carrotsearch.hppc.LongHashSet) TitanVertex(com.thinkaurelius.titan.core.TitanVertex) LongSet(com.carrotsearch.hppc.LongSet) ArrayList(java.util.ArrayList) IDPoolExhaustedException(com.thinkaurelius.titan.graphdb.database.idassigner.IDPoolExhaustedException) InternalRelation(com.thinkaurelius.titan.graphdb.internal.InternalRelation) Test(org.junit.Test)

Example 12 with TitanGraph

use of com.thinkaurelius.titan.core.TitanGraph in project incubator-atlas by apache.

the class Titan0Graph method clear.

@Override
public void clear() {
    TitanGraph graph = getGraph();
    if (graph.isOpen()) {
        // only a shut down graph can be cleared
        graph.shutdown();
    }
    TitanCleanup.clear(graph);
}
Also used : TitanGraph(com.thinkaurelius.titan.core.TitanGraph)

Example 13 with TitanGraph

use of com.thinkaurelius.titan.core.TitanGraph in project incubator-atlas by apache.

the class Titan1Graph method clear.

@Override
public void clear() {
    TitanGraph graph = getGraph();
    if (graph.isOpen()) {
        // only a shut down graph can be cleared
        graph.close();
    }
    TitanCleanup.clear(graph);
}
Also used : TitanGraph(com.thinkaurelius.titan.core.TitanGraph)

Aggregations

TitanGraph (com.thinkaurelius.titan.core.TitanGraph)13 Test (org.junit.Test)5 StandardTitanGraph (com.thinkaurelius.titan.graphdb.database.StandardTitanGraph)3 TitanFactory (com.thinkaurelius.titan.core.TitanFactory)2 TitanVertex (com.thinkaurelius.titan.core.TitanVertex)2 TitanManagement (com.thinkaurelius.titan.core.schema.TitanManagement)2 LongHashSet (com.carrotsearch.hppc.LongHashSet)1 LongSet (com.carrotsearch.hppc.LongSet)1 RelationType (com.thinkaurelius.titan.core.RelationType)1 TitanSchemaType (com.thinkaurelius.titan.core.schema.TitanSchemaType)1 BasicConfiguration (com.thinkaurelius.titan.diskstorage.configuration.BasicConfiguration)1 ModifiableConfiguration (com.thinkaurelius.titan.diskstorage.configuration.ModifiableConfiguration)1 WriteConfiguration (com.thinkaurelius.titan.diskstorage.configuration.WriteConfiguration)1 CommonsConfiguration (com.thinkaurelius.titan.diskstorage.configuration.backend.CommonsConfiguration)1 TitanIndexTest (com.thinkaurelius.titan.graphdb.TitanIndexTest)1 IDPoolExhaustedException (com.thinkaurelius.titan.graphdb.database.idassigner.IDPoolExhaustedException)1 InternalRelation (com.thinkaurelius.titan.graphdb.internal.InternalRelation)1 InternalRelationType (com.thinkaurelius.titan.graphdb.internal.InternalRelationType)1 VertexScanJob (com.thinkaurelius.titan.graphdb.olap.VertexScanJob)1 VertexArrayList (com.thinkaurelius.titan.graphdb.query.vertex.VertexArrayList)1