use of org.neo4j.kernel.impl.store.id.IdType in project neo4j by neo4j.
the class LabelsAcceptanceTest method beansAPIWithNoMoreLabelIds.
@SuppressWarnings("deprecation")
private GraphDatabaseService beansAPIWithNoMoreLabelIds() {
final EphemeralIdGenerator.Factory idFactory = new EphemeralIdGenerator.Factory() {
private IdTypeConfigurationProvider idTypeConfigurationProvider = new CommunityIdTypeConfigurationProvider();
@Override
public IdGenerator open(File fileName, int grabSize, IdType idType, long highId, long maxId) {
if (idType == IdType.LABEL_TOKEN) {
IdGenerator generator = generators.get(idType);
if (generator == null) {
IdTypeConfiguration idTypeConfiguration = idTypeConfigurationProvider.getIdTypeConfiguration(idType);
generator = new EphemeralIdGenerator(idType, idTypeConfiguration) {
@Override
public long nextId() {
// Same exception as the one thrown by IdGeneratorImpl
throw new UnderlyingStorageException("Id capacity exceeded");
}
};
generators.put(idType, generator);
}
return generator;
}
return super.open(fileName, grabSize, idType, Long.MAX_VALUE, Long.MAX_VALUE);
}
};
TestGraphDatabaseFactory dbFactory = new TestGraphDatabaseFactory() {
@Override
protected GraphDatabaseBuilder.DatabaseCreator createImpermanentDatabaseCreator(final File storeDir, final TestGraphDatabaseFactoryState state) {
return new GraphDatabaseBuilder.DatabaseCreator() {
@Override
public GraphDatabaseService newDatabase(Map<String, String> config) {
return newDatabase(Config.embeddedDefaults(config));
}
@Override
public GraphDatabaseService newDatabase(@Nonnull Config config) {
return new ImpermanentGraphDatabase(storeDir, config, GraphDatabaseDependencies.newDependencies(state.databaseDependencies())) {
@Override
protected void create(File storeDir, Config config, GraphDatabaseFacadeFactory.Dependencies dependencies) {
Function<PlatformModule, EditionModule> factory = (platformModule) -> new CommunityEditionModule(platformModule) {
@Override
protected IdGeneratorFactory createIdGeneratorFactory(FileSystemAbstraction fs, IdTypeConfigurationProvider idTypeConfigurationProvider) {
return idFactory;
}
};
new GraphDatabaseFacadeFactory(DatabaseInfo.COMMUNITY, factory) {
@Override
protected PlatformModule createPlatform(File storeDir, Config config, Dependencies dependencies, GraphDatabaseFacade graphDatabaseFacade) {
return new ImpermanentPlatformModule(storeDir, config, databaseInfo, dependencies, graphDatabaseFacade);
}
}.initFacade(storeDir, config, dependencies, this);
}
};
}
};
}
};
return dbFactory.newImpermanentDatabase();
}
use of org.neo4j.kernel.impl.store.id.IdType in project neo4j by neo4j.
the class ReplicatedIdAllocationRequestSerializer method unmarshal.
public static ReplicatedIdAllocationRequest unmarshal(ReadableChannel channel) throws IOException, EndOfStreamException {
MemberId owner = new MemberId.Marshal().unmarshal(channel);
IdType idType = IdType.values()[channel.getInt()];
long idRangeStart = channel.getLong();
int idRangeLength = channel.getInt();
return new ReplicatedIdAllocationRequest(owner, idType, idRangeStart, idRangeLength);
}
use of org.neo4j.kernel.impl.store.id.IdType in project neo4j by neo4j.
the class ReplicatedIdAllocationStateMachine method applyCommand.
@Override
public synchronized void applyCommand(ReplicatedIdAllocationRequest request, long commandIndex, Consumer<Result> callback) {
if (commandIndex <= state().logIndex()) {
return;
}
state().logIndex(commandIndex);
IdType idType = request.idType();
boolean requestAccepted = request.idRangeStart() == firstUnallocated(idType);
if (requestAccepted) {
state().firstUnallocated(idType, request.idRangeStart() + request.idRangeLength());
}
callback.accept(Result.of(requestAccepted));
}
use of org.neo4j.kernel.impl.store.id.IdType in project neo4j by neo4j.
the class EnterpriseEditionSettingsTest method assertIdTypesToReuseAllows.
private static void assertIdTypesToReuseAllows(IdType type, IdType... otherTypes) {
Config config = configWithIdTypes(type, otherTypes);
List<IdType> types = config.get(idTypesToReuse);
assertEquals(asList(type, otherTypes), types);
}
use of org.neo4j.kernel.impl.store.id.IdType in project neo4j by neo4j.
the class MasterClient214 method allocateIds.
@Override
public Response<IdAllocation> allocateIds(RequestContext context, final IdType idType) {
Serializer serializer = buffer -> buffer.writeByte(idType.ordinal());
Deserializer<IdAllocation> deserializer = (buffer, temporaryBuffer) -> readIdAllocation(buffer);
return sendRequest(requestTypes.type(HaRequestTypes.Type.ALLOCATE_IDS), context, serializer, deserializer);
}
Aggregations