Skip to content

Commit

Permalink
Store migration use fusion index provider
Browse files Browse the repository at this point in the history
  • Loading branch information
burqen committed Aug 15, 2017
1 parent e8adcac commit 761723f
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 221 deletions.
Expand Up @@ -409,10 +409,9 @@ public void start() throws IOException

life.add( recoveryCleanupWorkCollector );

AllByPrioritySelectionStrategy<SchemaIndexProvider> indexProviderSelection =
new AllByPrioritySelectionStrategy<>();
SchemaIndexProvider defaultIndexProvider = dependencyResolver.resolveDependency( SchemaIndexProvider.class,
indexProviderSelection );
AllByPrioritySelectionStrategy<SchemaIndexProvider> indexProviderSelection = new AllByPrioritySelectionStrategy<>();
SchemaIndexProvider defaultIndexProvider =
dependencyResolver.resolveDependency( SchemaIndexProvider.class, indexProviderSelection );

// todo do we really need to have this dependency?
dependencies.satisfyDependency( defaultIndexProvider );
Expand Down

This file was deleted.

Expand Up @@ -56,16 +56,24 @@ public NativeLuceneFusionSchemaIndexProviderFactory()
@Override
public FusionSchemaIndexProvider newInstance( KernelContext context, Dependencies dependencies ) throws Throwable
{
// create native schema index provider
NativeSchemaNumberIndexProvider nativeProvider = nativeSchemaNumberIndexProvider( context, dependencies );
LuceneSchemaIndexProvider luceneProvider = luceneSchemaIndexProvider( context, dependencies );
return new FusionSchemaIndexProvider( nativeProvider, luceneProvider, new NativeSelector(), DESCRIPTOR, 50 );
}

private LuceneSchemaIndexProvider luceneSchemaIndexProvider( KernelContext context,
Dependencies dependencies ) throws Throwable
{
return LuceneSchemaIndexProviderFactory.create( context, dependencies );
}

private NativeSchemaNumberIndexProvider nativeSchemaNumberIndexProvider( KernelContext context,
Dependencies dependencies )
{
boolean readOnly = isReadOnly( dependencies.getConfig(), context.databaseInfo().operationalMode );
LogProvider logging = dependencies.getLogging().getInternalLogProvider();
NativeSchemaNumberIndexProvider nativeProvider = new NativeSchemaNumberIndexProvider( dependencies.pageCache(),
return new NativeSchemaNumberIndexProvider( dependencies.pageCache(),
context.storeDir(), logging, dependencies.recoveryCleanupWorkCollector(), readOnly );

// create lucene schema index provider
LuceneSchemaIndexProvider luceneProvider = LuceneSchemaIndexProviderFactory.create( context, dependencies );

return new FusionSchemaIndexProvider( nativeProvider, luceneProvider, new NativeSelector(), DESCRIPTOR, 50 );
}

private static boolean isReadOnly( Config config, OperationalMode operationalMode )
Expand Down
Expand Up @@ -442,13 +442,6 @@ public void add( Collection<? extends IndexEntryUpdate<?>> updates )
latch.startAndWaitForAllToStartAndFinish();
}

@Override
public void add( IndexEntryUpdate<?> update ) throws IndexEntryConflictException, IOException
{
delegate.add( update );
latch.startAndWaitForAllToStartAndFinish();
}

@Override
public void verifyDeferredConstraints( PropertyAccessor propertyAccessor )
throws IndexEntryConflictException, IOException
Expand Down
14 changes: 10 additions & 4 deletions tools/src/main/java/org/neo4j/tools/migration/StoreMigration.java
Expand Up @@ -35,7 +35,8 @@
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.configuration.Settings;
import org.neo4j.kernel.extension.KernelExtensions;
import org.neo4j.kernel.extension.dependency.HighestSelectionStrategy;
import org.neo4j.kernel.extension.dependency.AllByPrioritySelectionStrategy;
import org.neo4j.kernel.impl.api.index.SchemaIndexProviderMap;
import org.neo4j.kernel.impl.factory.DatabaseInfo;
import org.neo4j.kernel.impl.logging.StoreLogService;
import org.neo4j.kernel.impl.spi.KernelContext;
Expand All @@ -45,6 +46,7 @@
import org.neo4j.kernel.impl.storemigration.StoreUpgrader;
import org.neo4j.kernel.impl.storemigration.monitoring.VisibleMigrationProgressMonitor;
import org.neo4j.kernel.impl.storemigration.participant.StoreMigrator;
import org.neo4j.kernel.impl.transaction.state.DefaultSchemaIndexProviderMap;
import org.neo4j.kernel.impl.util.Dependencies;
import org.neo4j.kernel.lifecycle.LifeSupport;
import org.neo4j.kernel.monitoring.Monitors;
Expand Down Expand Up @@ -121,11 +123,15 @@ public void run( final FileSystemAbstraction fs, final File storeDirectory, Conf
// Add the kernel store migrator
life.start();

SchemaIndexProvider schemaIndexProvider = kernelExtensions.resolveDependency( SchemaIndexProvider.class,
HighestSelectionStrategy.getInstance() );
AllByPrioritySelectionStrategy<SchemaIndexProvider> indexProviderSelection = new AllByPrioritySelectionStrategy<>();
SchemaIndexProvider defaultIndexProvider = kernelExtensions.resolveDependency( SchemaIndexProvider.class,
indexProviderSelection );
SchemaIndexProviderMap schemaIndexProviderMap = new DefaultSchemaIndexProviderMap( defaultIndexProvider,
indexProviderSelection.lowerPrioritizedCandidates() );

long startTime = System.currentTimeMillis();
DatabaseMigrator migrator = new DatabaseMigrator( progressMonitor, fs, config, logService,
schemaIndexProvider, legacyIndexProvider.getIndexProviders(),
schemaIndexProviderMap, legacyIndexProvider.getIndexProviders(),
pageCache, RecordFormatSelector.selectForConfig( config, userLogProvider ) );
migrator.migrate( storeDirectory );
long duration = System.currentTimeMillis() - startTime;
Expand Down

0 comments on commit 761723f

Please sign in to comment.