@Override public boolean startId( long id ) { relationshipRecord.setFirstNode( id ); return true; }
@Override public boolean startId( Object id, Group group ) { this.startId = id; this.startIdGroup = group; long nodeId = nodeId( id, group ); relationshipRecord.setFirstNode( nodeId ); return true; }
public static Consumer<RelationshipRecord> from( long fromNodeId ) { return n -> n.setFirstNode( fromNodeId ); }
private RelationshipRecord with( RelationshipRecord relationship, long startNode, long endNode, int type ) { relationship.setFirstNode( startNode ); relationship.setSecondNode( endNode ); relationship.setType( type ); return relationship; }
private static RelationshipRecord relationship( long id, long startNodeId, long endNodeId ) { RelationshipRecord record = new RelationshipRecord( id ); record.setInUse( true ); record.setFirstNode( startNodeId ); record.setSecondNode( endNodeId ); return record; } }
@Override protected void transactionData( TransactionDataBuilder tx, IdGenerator next ) { id.set( next.relationship() ); RelationshipRecord relationship = new RelationshipRecord( id.get() ); relationship.setFirstNode( -1 ); relationship.setSecondNode( -1 ); relationship.setInUse( true ); tx.create( relationship ); } } );
private static void testRecordDistribution( QueueDistribution queueDistribution ) throws InterruptedException { ThreadLocalRandom randomGenerator = ThreadLocalRandom.current(); int numberOfThreads = randomGenerator.nextInt( MAX_NUMBER_OF_THREADS ); int recordsPerCpu = randomGenerator.nextInt( Integer.MAX_VALUE ); QueueDistribution.QueueDistributor<RelationshipRecord> distributor = queueDistribution.distributor( recordsPerCpu, numberOfThreads ); for ( int iteration = 0; iteration <= NUMBER_OF_DISTRIBUTION_ITERATIONS; iteration++ ) { RelationshipRecord relationshipRecord = new RelationshipRecord( 1 ); relationshipRecord.setFirstNode( nextLong( randomGenerator ) ); relationshipRecord.setSecondNode( nextLong( randomGenerator ) ); distributor.distribute( relationshipRecord, ( record, qIndex ) -> assertThat( "Distribution index for record " + record + " should be within a range of available " + "executors, while expected records per cpu is: " + recordsPerCpu, qIndex, allOf( greaterThanOrEqualTo( 0 ), lessThan( numberOfThreads ) ) ) ); } }
private RelationshipRecord record( long startNode, int type, long endNode ) { RelationshipRecord record = new RelationshipRecord( 0 ); record.setInUse( true ); record.setFirstNode( startNode ); record.setSecondNode( endNode ); record.setType( type ); return record; } }
if ( cacheAccess.getFromCache( nodeId, SLOT_SOURCE_OR_TARGET ) == SOURCE ) rel.setFirstNode( nodeId );
@Test public void shouldReportCircularRelationshipPropertyRecordChain() throws Exception { int relType = createRelType(); shouldReportCircularPropertyRecordChain( RecordType.RELATIONSHIP, ( tx, next, propertyRecordId ) -> { long node = next.node(); long relationship = next.relationship(); tx.create( new NodeRecord( node ).initialize( true, -1, false, relationship, Record.NO_LABELS_FIELD.longValue() ) ); RelationshipRecord relationshipRecord = new RelationshipRecord( relationship ); relationshipRecord.setFirstNode( node ); relationshipRecord.setSecondNode( node ); relationshipRecord.setType( relType ); relationshipRecord.setNextProp( propertyRecordId ); tx.create( relationshipRecord ); } ); }
@Override public boolean startId( long id ) { relationshipRecord.setFirstNode( id ); return true; }
@Override public boolean startId( Object id, Group group ) { this.startId = id; this.startIdGroup = group; long nodeId = nodeId( id, group ); relationshipRecord.setFirstNode( nodeId ); return true; }