本文整理了Java中org.neo4j.kernel.impl.store.NodeStore.getDynamicLabelStore()
方法的一些代码示例,展示了NodeStore.getDynamicLabelStore()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。NodeStore.getDynamicLabelStore()
方法的具体详情如下:
包路径:org.neo4j.kernel.impl.store.NodeStore
类名称:NodeStore
方法名:getDynamicLabelStore
暂无
代码示例来源:origin: neo4j/neo4j
private void setNodeLabels( NodeRecord nodeRecord, Label... labels )
{
NodeLabels nodeLabels = parseLabelsField( nodeRecord );
nodeLabels.put( getOrCreateLabelIds( labels ), nodeStore, nodeStore.getDynamicLabelStore() );
labelsTouched = true;
}
代码示例来源:origin: neo4j/neo4j
@Override
public boolean visitNodeCommand( NodeCommand command )
{
NodeStore nodeStore = neoStores.getNodeStore();
track( nodeStore, command );
track( nodeStore.getDynamicLabelStore(), command.getAfter().getDynamicLabelRecords() );
return false;
}
代码示例来源:origin: neo4j/neo4j
void addLabelToNode( long labelId, long nodeId )
{
NodeRecord nodeRecord = recordChangeSet.getNodeRecords().getOrLoad( nodeId, null ).forChangingData();
parseLabelsField( nodeRecord ).add( labelId, nodeStore, nodeStore.getDynamicLabelStore() );
}
代码示例来源:origin: neo4j/neo4j
private Collection<DynamicRecord> allocateAndApply( NodeStore nodeStore, long nodeId, long[] longs )
{
Collection<DynamicRecord> records = DynamicNodeLabels.allocateRecordsForDynamicLabels( nodeId, longs,
nodeStore.getDynamicLabelStore() );
nodeStore.updateDynamicLabelRecords( records );
return records;
}
代码示例来源:origin: neo4j/neo4j
public static long[] get( NodeRecord node, NodeStore nodeStore )
{
if ( node.isLight() )
{
nodeStore.ensureHeavy( node, firstDynamicLabelRecordId( node.getLabelField() ) );
}
return getDynamicLabelsArray( node.getUsedDynamicLabelRecords(), nodeStore.getDynamicLabelStore() );
}
代码示例来源:origin: neo4j/neo4j
@Before
public void setup()
{
when( neoStores.getMetaDataStore() ).thenReturn( metaDataStore );
when( neoStores.getNodeStore() ).thenReturn( nodeStore );
when( neoStores.getRelationshipStore() ).thenReturn( relationshipStore );
when( neoStores.getPropertyStore() ).thenReturn( propertyStore );
when( neoStores.getRelationshipGroupStore() ).thenReturn( relationshipGroupStore );
when( neoStores.getRelationshipTypeTokenStore() ).thenReturn( relationshipTypeTokenStore );
when( neoStores.getLabelTokenStore() ).thenReturn( labelTokenStore );
when( neoStores.getPropertyKeyTokenStore() ).thenReturn( propertyKeyTokenStore );
when( neoStores.getSchemaStore() ).thenReturn( schemaStore );
when( nodeStore.getDynamicLabelStore() ).thenReturn( dynamicLabelStore );
when( lockService.acquireNodeLock( anyLong(), any() ) )
.thenReturn( LockService.NO_LOCK );
when( lockService.acquireRelationshipLock( anyLong(), any() ) )
.thenReturn( LockService.NO_LOCK );
when( transactionToApply.transactionId() ).thenReturn( transactionId );
}
代码示例来源:origin: neo4j/neo4j
@Test
public void oneDynamicRecordShouldExtendIntoAnAdditionalIfTooManyLabels()
{
// GIVEN
// will occupy 60B of data, i.e. one dynamic record
NodeRecord node = nodeRecordWithDynamicLabels( nodeStore, oneByteLongs( 56 ) );
Collection<DynamicRecord> initialRecords = node.getDynamicLabelRecords();
NodeLabels nodeLabels = NodeLabelsField.parseLabelsField( node );
// WHEN
Set<DynamicRecord> changedDynamicRecords = Iterables.asSet( nodeLabels.add( 1, nodeStore, nodeStore.getDynamicLabelStore() ) );
// THEN
assertTrue( changedDynamicRecords.containsAll( initialRecords ) );
assertEquals( initialRecords.size() + 1, changedDynamicRecords.size() );
}
代码示例来源:origin: neo4j/neo4j
private void assertDynamicLabelRecordInUse( NeoStores store, long id, boolean inUse )
{
DynamicArrayStore dynamicLabelStore = store.getNodeStore().getDynamicLabelStore();
DynamicRecord record = dynamicLabelStore.getRecord( id, dynamicLabelStore.nextRecord(), FORCE );
assertEquals( inUse, record.inUse() );
}
代码示例来源:origin: neo4j/neo4j
@Test
public void shouldReallocateSomeOfPreviousDynamicRecords()
{
// GIVEN
NodeRecord node = nodeRecordWithDynamicLabels( nodeStore, oneByteLongs( 5 ) );
Set<DynamicRecord> initialRecords = Iterables.asUniqueSet( node.getDynamicLabelRecords() );
NodeLabels nodeLabels = NodeLabelsField.parseLabelsField( node );
// WHEN
Set<DynamicRecord> reallocatedRecords = Iterables.asUniqueSet( nodeLabels.put( fourByteLongs( 100 ), nodeStore,
nodeStore.getDynamicLabelStore() ) );
// THEN
assertTrue( reallocatedRecords.containsAll( initialRecords ) );
assertTrue( reallocatedRecords.size() > initialRecords.size() );
}
代码示例来源:origin: neo4j/neo4j
@Test
public void shouldSpillOverToDynamicRecordIfExceedsInlinedSpace()
{
// GIVEN -- the upper limit for a label ID for 3 labels would be 36b/3 - 1 = 12b - 1 = 4095
long labelId1 = 10;
long labelId2 = 30;
long labelId3 = 4096;
NodeRecord node = nodeRecordWithInlinedLabels( labelId1, labelId2 );
NodeLabels nodeLabels = NodeLabelsField.parseLabelsField( node );
// WHEN
Collection<DynamicRecord> changedDynamicRecords = nodeLabels.add( labelId3, nodeStore,
nodeStore.getDynamicLabelStore() );
// THEN
assertEquals( 1, Iterables.count( changedDynamicRecords ) );
assertEquals( dynamicLabelsLongRepresentation( changedDynamicRecords ), node.getLabelField() );
assertTrue( Arrays.equals( new long[] {labelId1, labelId2, labelId3},
DynamicNodeLabels.getDynamicLabelsArray( changedDynamicRecords, nodeStore.getDynamicLabelStore() ) ) );
}
代码示例来源:origin: neo4j/neo4j
@Override
public Collection<DynamicRecord> add( long labelId, NodeStore nodeStore, DynamicRecordAllocator allocator )
{
nodeStore.ensureHeavy( node, firstDynamicLabelRecordId( node.getLabelField() ) );
long[] existingLabelIds = getDynamicLabelsArray( node.getUsedDynamicLabelRecords(),
nodeStore.getDynamicLabelStore() );
long[] newLabelIds = LabelIdArray.concatAndSort( existingLabelIds, labelId );
Collection<DynamicRecord> existingRecords = node.getDynamicLabelRecords();
Collection<DynamicRecord> changedDynamicRecords = allocateRecordsForDynamicLabels( node.getId(), newLabelIds,
new ReusableRecordsCompositeAllocator( existingRecords, allocator ) );
node.setLabelField( dynamicPointer( changedDynamicRecords ), changedDynamicRecords );
return changedDynamicRecords;
}
代码示例来源:origin: neo4j/neo4j
@Test
public void addingAnAlreadyAddedLabelWhenLabelsAreInlinedShouldFail()
{
// GIVEN
int labelId = 1;
NodeRecord node = nodeRecordWithInlinedLabels( labelId );
NodeLabels nodeLabels = NodeLabelsField.parseLabelsField( node );
// WHEN
try
{
nodeLabels.add( labelId, nodeStore, nodeStore.getDynamicLabelStore() );
fail( "Should have thrown exception" );
}
catch ( IllegalStateException e )
{
// THEN
}
}
代码示例来源:origin: neo4j/neo4j
@Test
public void shouldReallocateAllOfPreviousDynamicRecordsAndThenSome()
{
// GIVEN
NodeRecord node = nodeRecordWithDynamicLabels( nodeStore, fourByteLongs( 100 ) );
Set<DynamicRecord> initialRecords = Iterables.asSet( cloned( node.getDynamicLabelRecords(), DynamicRecord.class ) );
NodeLabels nodeLabels = NodeLabelsField.parseLabelsField( node );
// WHEN
Set<DynamicRecord> reallocatedRecords = Iterables.asUniqueSet( nodeLabels.put( fourByteLongs( 5 ), nodeStore,
nodeStore.getDynamicLabelStore() ) );
// THEN
assertTrue( "initial:" + initialRecords + ", reallocated:" + reallocatedRecords ,
initialRecords.containsAll( used( reallocatedRecords ) ) );
assertTrue( used( reallocatedRecords ).size() < initialRecords.size() );
}
代码示例来源:origin: neo4j/neo4j
@Test
public void twoDynamicRecordsShouldShrinkToOneWhenRemovingWithoutChangingItsOwner()
{
// GIVEN
// will occupy 61B of data, i.e. just two dynamic records
Long nodeId = 42L;
NodeRecord node = nodeRecordWithDynamicLabels( nodeId, nodeStore, oneByteLongs( 57 ) );
NodeLabels nodeLabels = NodeLabelsField.parseLabelsField( node );
List<DynamicRecord> changedDynamicRecords = Iterables.addToCollection(
nodeLabels.remove( 255 /*Initial labels go from 255 and down to 255-58*/, nodeStore ),
new ArrayList<>() );
// WHEN
Pair<Long,long[]> changedPair = DynamicNodeLabels.getDynamicLabelsArrayAndOwner( changedDynamicRecords,
nodeStore.getDynamicLabelStore() );
// THEN
assertEquals( nodeId, changedPair.first() );
}
代码示例来源:origin: neo4j/neo4j
@Test
public void oneDynamicRecordShouldStoreItsOwner()
{
// GIVEN
// will occupy 60B of data, i.e. one dynamic record
Long nodeId = 24L;
NodeRecord node = nodeRecordWithDynamicLabels( nodeId, nodeStore, oneByteLongs(56) );
Collection<DynamicRecord> initialRecords = node.getDynamicLabelRecords();
// WHEN
Pair<Long,long[]> pair = DynamicNodeLabels.getDynamicLabelsArrayAndOwner( initialRecords,
nodeStore.getDynamicLabelStore() );
// THEN
assertEquals( nodeId, pair.first() );
}
代码示例来源:origin: neo4j/neo4j
@Test
public void addingAnAlreadyAddedLabelWhenLabelsAreInDynamicRecordsShouldFail()
{
// GIVEN
long[] labels = oneByteLongs( 20 );
NodeRecord node = nodeRecordWithDynamicLabels( nodeStore, labels );
NodeLabels nodeLabels = NodeLabelsField.parseLabelsField( node );
// WHEN
try
{
nodeLabels.add( safeCastLongToInt( labels[0] ), nodeStore, nodeStore.getDynamicLabelStore() );
fail( "Should have thrown exception" );
}
catch ( IllegalStateException e )
{
// THEN
}
}
代码示例来源:origin: neo4j/neo4j
@Test
public void shouldSerializeInlineLabels() throws Exception
{
// Given
NodeRecord before = new NodeRecord( 12, false, 1, 2 );
before.setInUse( true );
NodeRecord after = new NodeRecord( 12, false, 2, 1 );
after.setInUse( true );
NodeLabels nodeLabels = parseLabelsField( after );
nodeLabels.add( 1337, nodeStore, nodeStore.getDynamicLabelStore() );
// When
assertSerializationWorksFor( new Command.NodeCommand( before, after ) );
}
代码示例来源:origin: neo4j/neo4j
@Test
public void maximumOfSevenInlinedLabels()
{
// GIVEN
long[] labels = new long[] {0, 1, 2, 3, 4, 5, 6};
NodeRecord node = nodeRecordWithInlinedLabels( labels );
NodeLabels nodeLabels = NodeLabelsField.parseLabelsField( node );
// WHEN
Iterable<DynamicRecord> changedDynamicRecords = nodeLabels.add( 23, nodeStore, nodeStore.getDynamicLabelStore() );
// THEN
assertEquals( dynamicLabelsLongRepresentation( changedDynamicRecords ), node.getLabelField() );
assertEquals( 1, Iterables.count( changedDynamicRecords ) );
}
代码示例来源:origin: neo4j/neo4j
@Test
public void shouldSerializeDynamicRecordLabels() throws Exception
{
// Given
NodeRecord before = new NodeRecord( 12, false, 1, 2 );
before.setInUse( true );
NodeRecord after = new NodeRecord( 12, false, 2, 1 );
after.setInUse( true );
NodeLabels nodeLabels = parseLabelsField( after );
for ( int i = 10; i < 100; i++ )
{
nodeLabels.add( i, nodeStore, nodeStore.getDynamicLabelStore() );
}
// When
assertSerializationWorksFor( new Command.NodeCommand( before, after ) );
}
代码示例来源:origin: neo4j/neo4j
private Ids createNode( DataImporter.Monitor monitor, NeoStores neoStores, int propertyCount, int labelCount )
{
PropertyStore propertyStore = neoStores.getPropertyStore();
RecordAccess<PropertyRecord,PrimitiveRecord> propertyRecordAccess =
new DirectRecordAccess<>( propertyStore, new Loaders( neoStores ).propertyLoader() );
NodeStore nodeStore = neoStores.getNodeStore();
NodeRecord nodeRecord = nodeStore.newRecord();
nodeRecord.setId( nodeStore.nextId() );
nodeRecord.setInUse( true );
NodeLabelsField.parseLabelsField( nodeRecord ).put( labelIds( labelCount ), nodeStore, nodeStore.getDynamicLabelStore() );
long nextProp = new PropertyCreator( propertyStore, new PropertyTraverser() )
.createPropertyChain( nodeRecord, properties( propertyStore, propertyCount ), propertyRecordAccess );
nodeRecord.setNextProp( nextProp );
nodeStore.updateRecord( nodeRecord );
PropertyRecord[] propertyRecords = extractPropertyRecords( propertyRecordAccess, nextProp );
propertyRecordAccess.close();
monitor.nodesImported( 1 );
monitor.propertiesImported( propertyCount );
return new Ids( nodeRecord, propertyRecords );
}
内容来源于网络,如有侵权,请联系作者删除!