use of org.neo4j.internal.batchimport.store.BatchingTokenRepository.BatchingPropertyKeyTokenRepository in project neo4j by neo4j.
the class BatchingTokenRepositoryTest method shouldFlushNewTokens.
@Test
void shouldFlushNewTokens() {
// given
try (NeoStores stores = newNeoStores(StoreType.PROPERTY_KEY_TOKEN, StoreType.PROPERTY_KEY_TOKEN_NAME)) {
TokenStore<PropertyKeyTokenRecord> tokenStore = stores.getPropertyKeyTokenStore();
int rounds = 3;
int tokensPerRound = 4;
BatchingPropertyKeyTokenRepository repo = new BatchingPropertyKeyTokenRepository(tokenStore);
// when first creating some tokens
int expectedId = 0;
int tokenNameAsInt = 0;
for (int round = 0; round < rounds; round++) {
for (int i = 0; i < tokensPerRound; i++) {
int tokenId = repo.getOrCreateId(String.valueOf(tokenNameAsInt++));
assertEquals(expectedId + i, tokenId);
}
assertEquals(expectedId, tokenStore.getHighId());
repo.flush(NULL);
assertEquals(expectedId + tokensPerRound, tokenStore.getHighId());
expectedId += tokensPerRound;
}
repo.flush(NULL);
List<NamedToken> tokens = tokenStore.getTokens(NULL);
assertEquals(tokensPerRound * rounds, tokens.size());
for (NamedToken token : tokens) {
assertEquals(token.id(), parseInt(token.name()));
}
}
}
use of org.neo4j.internal.batchimport.store.BatchingTokenRepository.BatchingPropertyKeyTokenRepository in project neo4j by neo4j.
the class BatchingNeoStores method instantiateStores.
private void instantiateStores() throws IOException {
neoStores = newStoreFactory(databaseLayout, idGeneratorFactory, pageCacheTracer, immutable.empty()).openAllNeoStores(true);
propertyKeyRepository = new BatchingPropertyKeyTokenRepository(neoStores.getPropertyKeyTokenStore());
labelRepository = new BatchingLabelTokenRepository(neoStores.getLabelTokenStore());
relationshipTypeRepository = new BatchingRelationshipTypeTokenRepository(neoStores.getRelationshipTypeTokenStore());
tokenHolders = new TokenHolders(new DelegatingTokenHolder((key, internal) -> propertyKeyRepository.getOrCreateId(key, internal), TYPE_PROPERTY_KEY), new DelegatingTokenHolder((key, internal) -> labelRepository.getOrCreateId(key, internal), TYPE_LABEL), new DelegatingTokenHolder((key, internal) -> relationshipTypeRepository.getOrCreateId(key, internal), TYPE_RELATIONSHIP_TYPE));
tokenHolders.propertyKeyTokens().setInitialTokens(neoStores.getPropertyKeyTokenStore().getTokens(CursorContext.NULL));
temporaryNeoStores = instantiateTempStores();
try (var cursorContext = new CursorContext(pageCacheTracer.createPageCursorTracer(BATCHING_STORE_CREATION_TAG))) {
neoStores.start(cursorContext);
temporaryNeoStores.start(cursorContext);
MetaDataStore metaDataStore = neoStores.getMetaDataStore();
metaDataStore.setLastCommittedAndClosedTransactionId(initialIds.lastCommittedTransactionId(), initialIds.lastCommittedTransactionChecksum(), BASE_TX_COMMIT_TIMESTAMP, initialIds.lastCommittedTransactionLogByteOffset(), initialIds.lastCommittedTransactionLogVersion(), cursorContext);
metaDataStore.setCheckpointLogVersion(initialIds.checkpointLogVersion(), cursorContext);
}
}
Aggregations