@Override protected MarkedEdge createEdge( final DirectedEdge edge, final boolean marked ) { return new SimpleMarkedEdge( targetId, type, edge.id, edge.timestamp, marked ); } };
final SimpleMarkedEdge skippedEdge = new SimpleMarkedEdge( nodeId, type, IdGenerator.createId( "subType" ), 10000l, false ); final SimpleMarkedEdge returnedEdge = new SimpleMarkedEdge( nodeId, type, IdGenerator.createId( "subType" ), 10005l, false ); assertEquals( "Expected max value to be the same", returnedEdge.getTimestamp(), savedShardPivot );
SimpleMarkedEdge skipped = new SimpleMarkedEdge( nodeId, type, IdGenerator.createId( subType ), 10000, false ); SimpleMarkedEdge keep = new SimpleMarkedEdge( nodeId, type, IdGenerator.createId( subType ), 20000, false ); assertEquals( "Expected max value to be the same", keep.getTimestamp(), savedShardPivot );
@Override protected MarkedEdge createEdge( final DirectedEdge edge, final boolean marked ) { return new SimpleMarkedEdge( sourceId, type, edge.id, edge.timestamp, marked ); } };
@Override protected MarkedEdge createEdge( final DirectedEdge edge, final boolean marked ) { return new SimpleMarkedEdge( edge.id, type, targetId, edge.timestamp, marked ); } };
@Override protected MarkedEdge createEdge( final DirectedEdge edge, final boolean marked ) { return new SimpleMarkedEdge( edge.id, type, targetId, edge.timestamp, marked ); } };
@Override protected MarkedEdge createEdge( final Long column, final boolean marked ) { return new SimpleMarkedEdge( sourceId, type, targetId, column.longValue(), marked ); }
/** * Create an edge with the specified params */ public static MarkedEdge createEdge( final Id sourceId, final String edgeType, final Id targetId, final long timestamp, final boolean deleted ) { return new SimpleMarkedEdge( sourceId, edgeType, targetId, timestamp, deleted ); }
@Nullable @Override public MarkedEdge apply( @Nullable final Edge input ) { if ( input == null ) { return null; } if ( input instanceof MarkedEdge ) { return ( MarkedEdge ) input; } return new SimpleMarkedEdge( input.getSourceNode(), input.getType(), input.getTargetNode(), input.getTimestamp(), false ); } };
@Override public Observable<MarkedEdge> markEdge( final Edge edge ) { GraphValidation.validateEdge( edge ); final MarkedEdge markedEdge = new SimpleMarkedEdge( edge, true ); final Observable<MarkedEdge> observable = Observable.just( markedEdge ).map( edge1 -> { final UUID timestamp = UUIDGenerator.newTimeUUID(); final MutationBatch edgeMutation = storageEdgeSerialization.writeEdge( scope, edge1, timestamp ); if (logger.isTraceEnabled()) { logger.trace("Marking edge {} as deleted to commit log", edge1); } try { edgeMutation.execute(); } catch ( ConnectionException e ) { throw new RuntimeException( "Unable to execute mutation", e ); } return edge1; } ); return ObservableTimer.time( observable, markEdgeTimer ); }
@Override public Observable<MarkedEdge> writeEdge( final Edge edge ) { GraphValidation.validateEdge( edge ); final MarkedEdge markedEdge = new SimpleMarkedEdge( edge, false ); final Observable<MarkedEdge> observable = Observable.just( markedEdge ).map( edge1 -> { final UUID timestamp = UUIDGenerator.newTimeUUID(); final MutationBatch mutation = edgeMetadataSerialization.writeEdge( scope, edge1 ); final MutationBatch edgeMutation = storageEdgeSerialization.writeEdge( scope, edge1, timestamp ); mutation.mergeShallow( edgeMutation ); try { mutation.execute(); } catch ( ConnectionException e ) { throw new RuntimeException( "Unable to execute mutation", e ); } return edge1; } ); return ObservableTimer.time( observable, writeEdgeTimer ); }
return new SimpleMarkedEdge( edge.getSourceNode(), edge.getType(), edge.getTargetNode(), edge.getTimestamp(), edge.isDeleted(), isSourceDeleted, isTargetDeleted );
@Test public void sameEdges() { final Id sourceId = IdGenerator.createId( "source" ); final Id targetId = IdGenerator.createId( "target" ); final String type = "type"; final long timestamp = 10000; final SimpleMarkedEdge markedEdge1 = new SimpleMarkedEdge( sourceId, type, targetId, timestamp, true ); final SimpleMarkedEdge markedEdge2 = new SimpleMarkedEdge( sourceId, type, targetId, timestamp, true ); int compare = comp.compare( markedEdge1, markedEdge2 ); assertEquals( 0, compare ); compare = comp.compare( markedEdge2, markedEdge1 ); assertEquals( 0, compare ); }
@Test public void sameEdges() { final Id sourceId = IdGenerator.createId( "source" ); final Id targetId = IdGenerator.createId( "target" ); final String type = "type"; final long timestamp = 10000; final SimpleMarkedEdge markedEdge1 = new SimpleMarkedEdge( sourceId, type, targetId, timestamp, true ); final SimpleMarkedEdge markedEdge2 = new SimpleMarkedEdge( sourceId, type, targetId, timestamp, true ); int compare = comp.compare( markedEdge1, markedEdge2 ); assertEquals( 0, compare ); compare = comp.compare( markedEdge2, markedEdge1 ); assertEquals( 0, compare ); }
@Test public void timestampDifferent() { final Id sourceId = IdGenerator.createId( "source" ); final Id targetId = IdGenerator.createId( "target" ); final String type = "type"; final long timestamp = 10000; final SimpleMarkedEdge markedEdge1 = new SimpleMarkedEdge( sourceId, type, targetId, timestamp, true ); final SimpleMarkedEdge markedEdge2 = new SimpleMarkedEdge( sourceId, type, targetId, timestamp + 1, true ); //marked edge 1 is less than timestamp, it should be considered "greater" int compare = comp.compare( markedEdge1, markedEdge2 ); assertEquals( 1, compare ); compare = comp.compare( markedEdge2, markedEdge1 ); assertEquals( -1, compare ); }
@Test public void timestampDifferent() { final Id sourceId = IdGenerator.createId( "source" ); final Id targetId = IdGenerator.createId( "target" ); final String type = "type"; final long timestamp = 10000; final SimpleMarkedEdge markedEdge1 = new SimpleMarkedEdge( sourceId, type, targetId, timestamp, true ); final SimpleMarkedEdge markedEdge2 = new SimpleMarkedEdge( sourceId, type, targetId, timestamp + 1, true ); //marked edge 1 is less than timestamp, it should be considered "greater" int compare = comp.compare( markedEdge1, markedEdge2 ); assertEquals( 1, compare ); compare = comp.compare( markedEdge2, markedEdge1 ); assertEquals( -1, compare ); }
new SimpleMarkedEdge( nodeId, type, IdGenerator.createId( "subType" ), 10005l, false );
@Test public void uuidDifferent() { final Id sourceId = IdGenerator.createId( "source" ); final Id targetId1 = IdGenerator.createId( "target" ); final Id targetId2 = IdGenerator.createId( "target" ); final String type = "type"; final long timestamp = 10000; final SimpleMarkedEdge markedEdge1 = new SimpleMarkedEdge( sourceId, type, targetId1, timestamp, true ); final SimpleMarkedEdge markedEdge2 = new SimpleMarkedEdge( sourceId, type, targetId2, timestamp, true ); //marked edge 1 uuid is a is less than target uuid timestamp, it should be considered "greater" int compare = comp.compare( markedEdge1, markedEdge2 ); assertTrue( compare > 0 ); compare = comp.compare( markedEdge2, markedEdge1 ); assertTrue( compare < 0 ); }
@Test public void uuidDifferent() { final Id sourceId1 = IdGenerator.createId( "source" ); final Id sourceId2 = IdGenerator.createId( "source" ); final Id targetId = IdGenerator.createId( "target" ); final String type = "type"; final long timestamp = 10000; final SimpleMarkedEdge markedEdge1 = new SimpleMarkedEdge( sourceId1, type, targetId, timestamp, true ); final SimpleMarkedEdge markedEdge2 = new SimpleMarkedEdge( sourceId2, type, targetId, timestamp, true ); //marked edge 1 uuid is a is less than target uuid timestamp, it should be considered "greater" int compare = comp.compare( markedEdge1, markedEdge2 ); assertTrue( compare > 0 ); compare = comp.compare( markedEdge2, markedEdge1 ); assertTrue( compare < 0 ); }
@Test public void idTypeDifferent() { final UUID sourceId = UUIDGenerator.newTimeUUID(); final Id sourceId1 = IdGenerator.createId( sourceId, "source1" ); final Id sourceId2 = IdGenerator.createId( sourceId, "source2" ); final Id targetId = IdGenerator.createId( "target" ); final String type = "type"; final long timestamp = 10000; final SimpleMarkedEdge markedEdge1 = new SimpleMarkedEdge( sourceId2, type, targetId, timestamp, true ); final SimpleMarkedEdge markedEdge2 = new SimpleMarkedEdge( sourceId1, type, targetId, timestamp, true ); //marked edge 1 is less than timestamp, it should be considered "greater" int compare = comp.compare( markedEdge1, markedEdge2 ); assertEquals( 1, compare ); compare = comp.compare( markedEdge2, markedEdge1 ); assertEquals( -1, compare ); } }