@Override protected Id getId( final MarkedEdge edge ) { return edge.getSourceNode(); } }
@Override protected DirectedEdge createColumn( final MarkedEdge last ) { return new DirectedEdge( last.getSourceNode(), last.getTimestamp() ); }
final Long sourceTimestamp = markedVersions.get( edge.getSourceNode() ); return new SimpleMarkedEdge( edge.getSourceNode(), edge.getType(), edge.getTargetNode(), edge.getTimestamp(), edge.isDeleted(), isSourceDeleted, isTargetDeleted );
new SimpleSearchByEdge( edge.getSourceNode(), edge.getType(), edge.getTargetNode(), Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING, Optional.absent() ); return gm.loadEdgeVersions( searchByEdge )
/** * Write the source write operation */ private EdgeVersions( final EdgeColumnFamilies edgeColumnFamilies, final MarkedEdge markedEdge, final DirectedEdgeMeta directedEdgeMeta ) { this.columnFamily = edgeColumnFamilies.getGraphEdgeVersions(); this.targetNode = markedEdge.getTargetNode(); this.sourceNode = markedEdge.getSourceNode(); this.type = markedEdge.getType(); this.isDeleted = markedEdge.isDeleted(); this.edgeVersion = markedEdge.getTimestamp(); this.directedEdgeMeta = directedEdgeMeta; }
/** * Write the source write operation */ private SourceWriteOp( final EdgeColumnFamilies edgeColumnFamilies, final MarkedEdge markedEdge, final DirectedEdgeMeta directedEdgeMeta ) { this.columnFamily = edgeColumnFamilies.getSourceNodeCfName(); this.sourceNodeId = markedEdge.getSourceNode(); this.type = markedEdge.getType(); this.isDeleted = markedEdge.isDeleted(); this.directedEdge = new DirectedEdge( markedEdge.getTargetNode(), markedEdge.getTimestamp() ); this.directedEdgeMeta = directedEdgeMeta; }
/** * Write the source write operation */ private TargetWriteOp( final EdgeColumnFamilies edgeColumnFamilies, final MarkedEdge markedEdge, final DirectedEdgeMeta directedEdgeMeta ) { this.columnFamily = edgeColumnFamilies.getTargetNodeCfName(); this.targetNode = markedEdge.getTargetNode(); this.type = markedEdge.getType(); this.isDeleted = markedEdge.isDeleted(); this.directedEdge = new DirectedEdge( markedEdge.getSourceNode(), markedEdge.getTimestamp() ); this.directedEdgeMeta = directedEdgeMeta; }
/** * Write the source write operation */ private SourceTargetTypeWriteOp( final EdgeColumnFamilies edgeColumnFamilies, final MarkedEdge markedEdge, final DirectedEdgeMeta directedEdgeMeta ) { this.columnFamily = edgeColumnFamilies.getSourceNodeTargetTypeCfName(); this.sourceNodeId = markedEdge.getSourceNode(); this.type = markedEdge.getType(); this.targetId = markedEdge.getTargetNode(); this.isDeleted = markedEdge.isDeleted(); this.directedEdge = new DirectedEdge( targetId, markedEdge.getTimestamp() ); this.directedEdgeMeta = directedEdgeMeta; }
/** * Write the source write operation */ private TargetSourceTypeWriteOp( final EdgeColumnFamilies edgeColumnFamilies, final MarkedEdge markedEdge, final DirectedEdgeMeta directedEdgeMeta ) { this.columnFamily = edgeColumnFamilies.getSourceNodeTargetTypeCfName(); this.targetNode = markedEdge.getTargetNode(); this.sourceNode = markedEdge.getSourceNode(); this.type = markedEdge.getType(); this.isDeleted = markedEdge.isDeleted(); this.directedEdge = new DirectedEdge( sourceNode, markedEdge.getTimestamp() ); this.directedEdgeMeta = directedEdgeMeta; }
public Observable<Integer> receive( final ApplicationScope scope, final MarkedEdge edge, final UUID eventTimestamp ) { final long maxTimestamp = edge.getTimestamp(); return edgeDeleteRepair.repair( scope, edge, eventTimestamp ) .flatMap( markedEdge -> { Observable<Integer> sourceDelete = edgeMetaRepair .repairSources( scope, edge.getSourceNode(), edge.getType(), maxTimestamp ); Observable<Integer> targetDelete = edgeMetaRepair .repairTargets( scope, edge.getTargetNode(), edge.getType(), maxTimestamp ); return MathObservable.sumInteger( Observable.merge( sourceDelete, targetDelete ) ); } ); } }
@Override public void deleteConnection( ConnectionRef connectionRef ) throws Exception { // First, clean up the dictionary records of the connection EntityRef connectingEntityRef = connectionRef.getSourceRefs(); // source EntityRef connectedEntityRef = connectionRef.getTargetRefs(); // target String connectionType = connectionRef.getTargetRefs().getConnectionType(); if ( logger.isTraceEnabled() ) { logger.trace( "Deleting connection '{}' from source {}:{} \n to target {}:{}", connectionType, connectingEntityRef.getType(), connectingEntityRef.getUuid(), connectedEntityRef.getType(), connectedEntityRef.getUuid() ); } Id entityId = new SimpleId( connectedEntityRef.getUuid(), connectedEntityRef.getType() ); org.apache.usergrid.persistence.model.entity.Entity targetEntity = ( ( CpEntityManager ) em ).load( entityId ); GraphManager gm = managerCache.getGraphManager( applicationScope ); final Id sourceId = new SimpleId( connectingEntityRef.getUuid(), connectingEntityRef.getType() ); final SearchByEdge search = createConnectionSearchByEdge( sourceId, connectionType, targetEntity.getId() ); //delete all the edges and queue their processing gm.loadEdgeVersions( search ).flatMap( returnedEdge -> gm.markEdge( returnedEdge ) ) .doOnNext( returnedEdge -> { if ( !skipIndexingForType( returnedEdge.getSourceNode().getType() ) || !skipIndexingForType( returnedEdge.getTargetNode().getType() ) ) { indexService.queueDeleteEdge(applicationScope, returnedEdge); } }).toBlocking() .lastOrDefault( null ); }
assertEquals( "Edges correct", edge2.getSourceNode(), results.next().getSourceNode() ); assertEquals( "Edges correct", edge1.getSourceNode(), results.next().getSourceNode() ); assertEquals( "Edges correct", edge2.getSourceNode(), results.next().getSourceNode() ); assertEquals( "Edges correct", edge2.getSourceNode(), results.next().getSourceNode() );
@Test public void cleanSourceSingleEdge() throws ConnectionException { MarkedEdge edge = createEdge( "source", "test", "target" ); storageEdgeSerialization.writeEdge( scope, edge, UUIDGenerator.newTimeUUID() ).execute(); edgeMetadataSerialization.writeEdge( scope, edge ).execute(); int value = edgeMetaRepair.repairSources( scope, edge.getSourceNode(), edge.getType(), edge.getTimestamp() ) .toBlocking().single(); assertEquals( "No subtypes removed, edge exists", 1, value ); //now delete the edge storageEdgeSerialization.deleteEdge( scope, edge, UUIDGenerator.newTimeUUID() ).execute(); value = edgeMetaRepair.repairSources( scope, edge.getSourceNode(), edge.getType(), edge.getTimestamp() ) .toBlocking().single(); assertEquals( "Single subtype should be removed", 0, value ); //now verify they're gone Iterator<String> edgeTypes = edgeMetadataSerialization .getEdgeTypesFromSource( scope, new SimpleSearchEdgeType( edge.getSourceNode(), null, null ) ); assertFalse( "No edge types exist", edgeTypes.hasNext() ); Iterator<String> sourceTypes = edgeMetadataSerialization .getIdTypesFromSource( scope, new SimpleSearchIdType( edge.getSourceNode(), edge.getType(),null, null ) ); assertFalse( "No edge types exist", sourceTypes.hasNext() ); }
final MarkedEdge edge1 = createEdge( "source", "edge1", "target" ); final Id sourceId = edge1.getSourceNode(); final Id targetId = edge1.getTargetNode();
/** * Test paging by resuming the search from the edge */ @Test public void testPaging() throws ConnectionException { final MarkedEdge edge1 = createEdge( "source", "edge", "target", 0 ); final Id sourceId = edge1.getSourceNode(); final Id targetId = edge1.getTargetNode(); final MarkedEdge edge2 = createEdge( sourceId, "edge", targetId, 1 ); serialization.writeEdge( scope, edge1, UUIDGenerator.newTimeUUID() ).execute(); serialization.writeEdge( scope, edge2, UUIDGenerator.newTimeUUID() ).execute(); long now = System.currentTimeMillis(); //get our edges out by name Iterator<MarkedEdge> results = serialization.getEdgesFromSource( scope, createSearchByEdge( sourceId, "edge", now, edge2 ) ); assertEquals( edge1, results.next() ); assertFalse( results.hasNext() ); //test getting the next edge results = serialization.getEdgesFromSource( scope, createSearchByEdge( sourceId, "edge", now, edge1 ) ); assertFalse( "No results should be returned", results.hasNext() ); //test getting source edges from the target results = serialization.getEdgesToTarget( scope, createSearchByEdge( targetId, "edge", now, edge2 ) ); assertEquals( edge1, results.next() ); assertFalse( results.hasNext() ); results = serialization.getEdgesToTarget( scope, createSearchByEdge( targetId, "edge", now, edge1 ) ); assertFalse( "No results should be returned", results.hasNext() ); //test resume by name }
int value = edgeMetaRepair.repairSources( scope, edge1.getSourceNode(), edge1.getType(), cleanupVersion ) .toBlocking().single(); value = edgeMetaRepair.repairSources( scope, edge1.getSourceNode(), edge1.getType(), cleanupVersion ) .toBlocking().single(); value = edgeMetaRepair.repairSources( scope, edge1.getSourceNode(), edge1.getType(), cleanupVersion ) .toBlocking().single(); value = edgeMetaRepair.repairSources( scope, edge1.getSourceNode(), edge1.getType(), cleanupVersion ) .toBlocking().single(); .getEdgeTypesFromSource( scope, new SimpleSearchEdgeType( edge1.getSourceNode(),null, null ) ); .getIdTypesFromSource( scope, new SimpleSearchIdType( edge1.getSourceNode(), edge1.getType(),null, null ) );
assertEquals( "Edges correct", edge2.getSourceNode(), results.next().getSourceNode() );
final MarkedEdge edge1 = createEdge( "source", "edge", "target" ); final Id sourceId = edge1.getSourceNode(); final Id targetId1 = edge1.getTargetNode();
final MarkedEdge edge1 = createEdge( "source", "edge", "target", timestamp ); final Id sourceId = edge1.getSourceNode(); final Id targetId1 = edge1.getTargetNode();
final MarkedEdge edgev1 = createEdge( "source", "edge1", "target", timestamp ); final Id sourceId = edgev1.getSourceNode(); final Id targetId = edgev1.getTargetNode();