Skip to content

Commit

Permalink
Cleanup usage of IndexProviderDescriptor and use all SchemaIndex vari…
Browse files Browse the repository at this point in the history
…ants where suitable
  • Loading branch information
burqen committed Oct 5, 2018
1 parent eb68a4a commit e4ad111
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 49 deletions.
Expand Up @@ -56,8 +56,7 @@ public class DefaultSchemaIndexConfigTest
@Parameterized.Parameters( name = "{0}" ) @Parameterized.Parameters( name = "{0}" )
public static List<GraphDatabaseSettings.SchemaIndex> providers() public static List<GraphDatabaseSettings.SchemaIndex> providers()
{ {
List<GraphDatabaseSettings.SchemaIndex> providers = new ArrayList<>(); List<GraphDatabaseSettings.SchemaIndex> providers = new ArrayList<>( Arrays.asList( GraphDatabaseSettings.SchemaIndex.values() ) );
providers.addAll( Arrays.asList( GraphDatabaseSettings.SchemaIndex.values() ) );
providers.add( null ); // <-- to exercise the default option providers.add( null ); // <-- to exercise the default option
return providers; return providers;
} }
Expand Down
Expand Up @@ -27,8 +27,6 @@
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.junit.runners.Parameterized; import org.junit.runners.Parameterized;


import java.util.Collection;
import java.util.Collections;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;


import org.neo4j.graphdb.DependencyResolver; import org.neo4j.graphdb.DependencyResolver;
Expand All @@ -43,23 +41,17 @@
import org.neo4j.internal.kernel.api.InternalIndexState; import org.neo4j.internal.kernel.api.InternalIndexState;
import org.neo4j.internal.kernel.api.Kernel; import org.neo4j.internal.kernel.api.Kernel;
import org.neo4j.internal.kernel.api.exceptions.schema.IndexNotFoundKernelException; import org.neo4j.internal.kernel.api.exceptions.schema.IndexNotFoundKernelException;
import org.neo4j.internal.kernel.api.schema.IndexProviderDescriptor;
import org.neo4j.io.pagecache.IOLimiter; import org.neo4j.io.pagecache.IOLimiter;
import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.KernelTransaction;
import org.neo4j.kernel.api.impl.schema.LuceneIndexProviderFactory;
import org.neo4j.kernel.api.impl.schema.NativeLuceneFusionIndexProviderFactory10;
import org.neo4j.kernel.api.impl.schema.NativeLuceneFusionIndexProviderFactory20;
import org.neo4j.kernel.api.schema.RelationTypeSchemaDescriptor; import org.neo4j.kernel.api.schema.RelationTypeSchemaDescriptor;
import org.neo4j.kernel.api.schema.index.TestIndexDescriptorFactory; import org.neo4j.kernel.api.schema.index.TestIndexDescriptorFactory;
import org.neo4j.kernel.extension.KernelExtensionFactory;
import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge; import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge;
import org.neo4j.kernel.impl.store.UnderlyingStorageException; import org.neo4j.kernel.impl.store.UnderlyingStorageException;
import org.neo4j.kernel.internal.GraphDatabaseAPI; import org.neo4j.kernel.internal.GraphDatabaseAPI;
import org.neo4j.storageengine.api.schema.PopulationProgress; import org.neo4j.storageengine.api.schema.PopulationProgress;
import org.neo4j.test.TestGraphDatabaseFactory; import org.neo4j.test.TestGraphDatabaseFactory;
import org.neo4j.test.rule.fs.EphemeralFileSystemRule; import org.neo4j.test.rule.fs.EphemeralFileSystemRule;


import static java.util.Arrays.asList;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.neo4j.internal.kernel.api.Transaction.Type.explicit; import static org.neo4j.internal.kernel.api.Transaction.Type.explicit;
import static org.neo4j.internal.kernel.api.security.LoginContext.AUTH_DISABLED; import static org.neo4j.internal.kernel.api.security.LoginContext.AUTH_DISABLED;
Expand All @@ -81,29 +73,22 @@ public class IndexingServiceIntegrationTest
private GraphDatabaseService database; private GraphDatabaseService database;


@Parameterized.Parameters( name = "{0}" ) @Parameterized.Parameters( name = "{0}" )
public static Collection<Object[]> parameters() public static GraphDatabaseSettings.SchemaIndex[] parameters()
{ {
return asList( return GraphDatabaseSettings.SchemaIndex.values();
new Object[]{new LuceneIndexProviderFactory(), LuceneIndexProviderFactory.PROVIDER_DESCRIPTOR},
new Object[]{new NativeLuceneFusionIndexProviderFactory10(), NativeLuceneFusionIndexProviderFactory10.DESCRIPTOR},
new Object[]{new NativeLuceneFusionIndexProviderFactory20(), NativeLuceneFusionIndexProviderFactory20.DESCRIPTOR} );
} }


@Parameterized.Parameter( 0 ) @Parameterized.Parameter()
public KernelExtensionFactory<?> kernelExtensionFactory; public GraphDatabaseSettings.SchemaIndex schemaIndex;

@Parameterized.Parameter( 1 )
public IndexProviderDescriptor indexDescriptor;


@Before @Before
public void setUp() public void setUp()
{ {
EphemeralFileSystemAbstraction fileSystem = fileSystemRule.get(); EphemeralFileSystemAbstraction fileSystem = fileSystemRule.get();
database = new TestGraphDatabaseFactory() database = new TestGraphDatabaseFactory()
.setFileSystem( fileSystem ) .setFileSystem( fileSystem )
.setKernelExtensions( Collections.singletonList( kernelExtensionFactory ) )
.newImpermanentDatabaseBuilder() .newImpermanentDatabaseBuilder()
.setConfig( GraphDatabaseSettings.default_schema_provider, indexDescriptor.name() ) .setConfig( GraphDatabaseSettings.default_schema_provider, schemaIndex.providerIdentifier() )
.newGraphDatabase(); .newGraphDatabase();
createData( database, 100 ); createData( database, 100 );
} }
Expand Down
Expand Up @@ -28,7 +28,6 @@


import java.io.UncheckedIOException; import java.io.UncheckedIOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
Expand All @@ -39,6 +38,7 @@
import org.neo4j.graphdb.Label; import org.neo4j.graphdb.Label;
import org.neo4j.graphdb.Node; import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Transaction; import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.helpers.collection.Iterators; import org.neo4j.helpers.collection.Iterators;
import org.neo4j.helpers.collection.Visitor; import org.neo4j.helpers.collection.Visitor;
import org.neo4j.internal.kernel.api.InternalIndexState; import org.neo4j.internal.kernel.api.InternalIndexState;
Expand All @@ -54,10 +54,8 @@
import org.neo4j.kernel.api.exceptions.index.IndexActivationFailedKernelException; import org.neo4j.kernel.api.exceptions.index.IndexActivationFailedKernelException;
import org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException; import org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException;
import org.neo4j.kernel.api.exceptions.index.IndexPopulationFailedKernelException; import org.neo4j.kernel.api.exceptions.index.IndexPopulationFailedKernelException;
import org.neo4j.kernel.api.impl.schema.LuceneIndexProviderFactory;
import org.neo4j.kernel.api.impl.schema.NativeLuceneFusionIndexProviderFactory10;
import org.neo4j.kernel.api.impl.schema.NativeLuceneFusionIndexProviderFactory20;
import org.neo4j.kernel.api.index.IndexEntryUpdate; import org.neo4j.kernel.api.index.IndexEntryUpdate;
import org.neo4j.kernel.api.index.IndexProvider;
import org.neo4j.kernel.api.labelscan.LabelScanStore; import org.neo4j.kernel.api.labelscan.LabelScanStore;
import org.neo4j.kernel.api.labelscan.NodeLabelUpdate; import org.neo4j.kernel.api.labelscan.NodeLabelUpdate;
import org.neo4j.kernel.api.schema.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema.SchemaDescriptorFactory;
Expand Down Expand Up @@ -91,7 +89,6 @@
import org.neo4j.values.storable.Values; import org.neo4j.values.storable.Values;


import static java.lang.String.format; import static java.lang.String.format;
import static java.util.Arrays.asList;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame; import static org.junit.Assert.assertSame;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
Expand All @@ -116,15 +113,13 @@ public class MultiIndexPopulationConcurrentUpdatesIT
private StoreIndexDescriptor[] rules; private StoreIndexDescriptor[] rules;


@Parameterized.Parameters( name = "{0}" ) @Parameterized.Parameters( name = "{0}" )
public static Collection<IndexProviderDescriptor> parameters() public static GraphDatabaseSettings.SchemaIndex[] parameters()
{ {
return asList( LuceneIndexProviderFactory.PROVIDER_DESCRIPTOR, return GraphDatabaseSettings.SchemaIndex.values();
NativeLuceneFusionIndexProviderFactory10.DESCRIPTOR,
NativeLuceneFusionIndexProviderFactory20.DESCRIPTOR );
} }


@Parameterized.Parameter @Parameterized.Parameter
public IndexProviderDescriptor indexDescriptor; public GraphDatabaseSettings.SchemaIndex schemaIndex;


private IndexingService indexService; private IndexingService indexService;
private int propertyId; private int propertyId;
Expand Down Expand Up @@ -382,8 +377,10 @@ private void waitIndexOnline( IndexingService indexService, int propertyId, int


private StoreIndexDescriptor[] createIndexRules( Map<String,Integer> labelNameIdMap, int propertyId ) private StoreIndexDescriptor[] createIndexRules( Map<String,Integer> labelNameIdMap, int propertyId )
{ {
IndexProvider lookup = getIndexProviderMap().lookup( schemaIndex.providerIdentifier() );
IndexProviderDescriptor providerDescriptor = lookup.getProviderDescriptor();
return labelNameIdMap.values().stream() return labelNameIdMap.values().stream()
.map( index -> IndexDescriptorFactory.forSchema( SchemaDescriptorFactory.forLabel( index, propertyId ), indexDescriptor ).withId( index ) ) .map( index -> IndexDescriptorFactory.forSchema( SchemaDescriptorFactory.forLabel( index, propertyId ), providerDescriptor ).withId( index ) )
.toArray( StoreIndexDescriptor[]::new ); .toArray( StoreIndexDescriptor[]::new );
} }


Expand Down
Expand Up @@ -26,11 +26,12 @@
import java.io.IOException; import java.io.IOException;
import java.util.Map; import java.util.Map;


import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.graphdb.mockfs.EphemeralFileSystemAbstraction; import org.neo4j.graphdb.mockfs.EphemeralFileSystemAbstraction;
import org.neo4j.helpers.collection.Iterables; import org.neo4j.helpers.collection.Iterables;
import org.neo4j.helpers.collection.MapUtil; import org.neo4j.helpers.collection.MapUtil;
import org.neo4j.kernel.api.impl.schema.NativeLuceneFusionIndexProviderFactory20;
import org.neo4j.kernel.extension.KernelExtensionFactory; import org.neo4j.kernel.extension.KernelExtensionFactory;
import org.neo4j.kernel.impl.index.schema.GenericNativeIndexProviderFactory;
import org.neo4j.test.rule.TestDirectory; import org.neo4j.test.rule.TestDirectory;
import org.neo4j.test.rule.fs.EphemeralFileSystemRule; import org.neo4j.test.rule.fs.EphemeralFileSystemRule;
import org.neo4j.unsafe.batchinsert.internal.FileSystemClosingBatchInserter; import org.neo4j.unsafe.batchinsert.internal.FileSystemClosingBatchInserter;
Expand All @@ -40,7 +41,6 @@
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat; import static org.junit.Assert.assertThat;
import static org.neo4j.graphdb.factory.GraphDatabaseSettings.default_schema_provider; import static org.neo4j.graphdb.factory.GraphDatabaseSettings.default_schema_provider;
import static org.neo4j.kernel.api.impl.schema.NativeLuceneFusionIndexProviderFactory20.DESCRIPTOR;
import static org.neo4j.unsafe.batchinsert.BatchInserters.inserter; import static org.neo4j.unsafe.batchinsert.BatchInserters.inserter;


public class BatchInsertersTest public class BatchInsertersTest
Expand Down Expand Up @@ -69,12 +69,12 @@ public void providedFileSystemNotClosedAfterShutdown() throws IOException


private static Iterable<KernelExtensionFactory<?>> getKernelExtensions() private static Iterable<KernelExtensionFactory<?>> getKernelExtensions()
{ {
return Iterables.asIterable( new NativeLuceneFusionIndexProviderFactory20() ); return Iterables.asIterable( new GenericNativeIndexProviderFactory() );
} }


private static Map<String,String> getConfig() private static Map<String,String> getConfig()
{ {
return MapUtil.stringMap( default_schema_provider.name(), DESCRIPTOR.name() ); return MapUtil.stringMap( default_schema_provider.name(), GraphDatabaseSettings.SchemaIndex.NATIVE_BTREE10.providerIdentifier() );
} }


private static void verifyProvidedFileSystemOpenAfterShutdown( BatchInserter inserter, EphemeralFileSystemAbstraction fileSystemAbstraction ) private static void verifyProvidedFileSystemOpenAfterShutdown( BatchInserter inserter, EphemeralFileSystemAbstraction fileSystemAbstraction )
Expand Down
Expand Up @@ -26,8 +26,6 @@
import org.junit.runners.Parameterized; import org.junit.runners.Parameterized;


import java.io.File; import java.io.File;
import java.util.Arrays;
import java.util.Collection;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;


Expand Down Expand Up @@ -65,9 +63,9 @@ public class BatchInsertIndexProviderTest
public RuleChain ruleChain = RuleChain.outerRule( storeDir ).around( fileSystemRule ).around( pageCacheRule ); public RuleChain ruleChain = RuleChain.outerRule( storeDir ).around( fileSystemRule ).around( pageCacheRule );


@Parameterized.Parameters( name = "{0}" ) @Parameterized.Parameters( name = "{0}" )
public static Collection<GraphDatabaseSettings.SchemaIndex> data() public static GraphDatabaseSettings.SchemaIndex[] data()
{ {
return Arrays.asList( GraphDatabaseSettings.SchemaIndex.values() ); return GraphDatabaseSettings.SchemaIndex.values();
} }


public BatchInsertIndexProviderTest( GraphDatabaseSettings.SchemaIndex schemaIndex ) public BatchInsertIndexProviderTest( GraphDatabaseSettings.SchemaIndex schemaIndex )
Expand Down
Expand Up @@ -69,6 +69,7 @@
import org.neo4j.kernel.api.schema.index.TestIndexDescriptorFactory; import org.neo4j.kernel.api.schema.index.TestIndexDescriptorFactory;
import org.neo4j.kernel.extension.KernelExtensionFactory; import org.neo4j.kernel.extension.KernelExtensionFactory;
import org.neo4j.kernel.impl.MyRelTypes; import org.neo4j.kernel.impl.MyRelTypes;
import org.neo4j.kernel.impl.api.index.TestIndexProviderDescriptor;
import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig;
import org.neo4j.kernel.impl.api.scan.FullStoreChangeStream; import org.neo4j.kernel.impl.api.scan.FullStoreChangeStream;
import org.neo4j.kernel.impl.index.labelscan.NativeLabelScanStore; import org.neo4j.kernel.impl.index.labelscan.NativeLabelScanStore;
Expand Down Expand Up @@ -126,8 +127,6 @@
import static org.neo4j.helpers.collection.Iterators.iterator; import static org.neo4j.helpers.collection.Iterators.iterator;
import static org.neo4j.helpers.collection.MapUtil.map; import static org.neo4j.helpers.collection.MapUtil.map;
import static org.neo4j.helpers.collection.MapUtil.stringMap; import static org.neo4j.helpers.collection.MapUtil.stringMap;
import static org.neo4j.kernel.api.impl.schema.NativeLuceneFusionIndexProviderFactory20.DESCRIPTOR;
import static org.neo4j.kernel.api.impl.schema.NativeLuceneFusionIndexProviderFactory20.KEY;
import static org.neo4j.kernel.api.index.IndexEntryUpdate.add; import static org.neo4j.kernel.api.index.IndexEntryUpdate.add;
import static org.neo4j.kernel.impl.api.index.SchemaIndexTestHelper.singleInstanceIndexProviderFactory; import static org.neo4j.kernel.impl.api.index.SchemaIndexTestHelper.singleInstanceIndexProviderFactory;
import static org.neo4j.kernel.impl.store.RecordStore.getRecord; import static org.neo4j.kernel.impl.store.RecordStore.getRecord;
Expand All @@ -139,13 +138,15 @@
@RunWith( Parameterized.class ) @RunWith( Parameterized.class )
public class BatchInsertTest public class BatchInsertTest
{ {
private static final IndexProviderDescriptor DESCRIPTOR = TestIndexProviderDescriptor.PROVIDER_DESCRIPTOR;
private static final String KEY = DESCRIPTOR.getKey();
private static final String INTERNAL_LOG_FILE = "debug.log"; private static final String INTERNAL_LOG_FILE = "debug.log";
private final int denseNodeThreshold; private final int denseNodeThreshold;
// This is the assumed internal index descriptor based on knowledge of what ids get assigned // This is the assumed internal index descriptor based on knowledge of what ids get assigned
private static final IndexDescriptor internalIndex = TestIndexDescriptorFactory.forLabel( 0, 0 ); private static final IndexDescriptor internalIndex = TestIndexDescriptorFactory.forLabel( 0, 0 );
private static final IndexDescriptor internalUniqueIndex = TestIndexDescriptorFactory.uniqueForLabel( 0, 0 ); private static final IndexDescriptor internalUniqueIndex = TestIndexDescriptorFactory.uniqueForLabel( 0, 0 );


@Parameterized.Parameters @Parameterized.Parameters( name = "{index} denseNodeThreshold={0}")
public static Collection<Integer> data() public static Collection<Integer> data()
{ {
return Arrays.asList( 5, parseInt( GraphDatabaseSettings.dense_node_threshold.getDefaultValue() ) ); return Arrays.asList( 5, parseInt( GraphDatabaseSettings.dense_node_threshold.getDefaultValue() ) );
Expand Down
Expand Up @@ -620,16 +620,18 @@ public enum SchemaIndex


private final String providerName; private final String providerName;
private final String providerVersion; private final String providerVersion;
private final String providerIdentifier;


SchemaIndex( String providerName, String providerVersion ) SchemaIndex( String providerName, String providerVersion )
{ {
this.providerName = providerName; this.providerName = providerName;
this.providerVersion = providerVersion; this.providerVersion = providerVersion;
this.providerIdentifier = toIdentifier( providerName, providerVersion );
} }


public String providerIdentifier() public String providerIdentifier()
{ {
return providerName + "-" + providerVersion; return providerIdentifier;
} }


public String providerName() public String providerName()
Expand All @@ -641,6 +643,11 @@ public String providerVersion()
{ {
return providerVersion; return providerVersion;
} }

private static String toIdentifier( String providerName, String providerVersion )
{
return providerName + "-" + providerVersion;
}
} }


@Description( @Description(
Expand Down
Expand Up @@ -28,16 +28,16 @@


import java.util.Map; import java.util.Map;


import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.helpers.collection.Iterables; import org.neo4j.helpers.collection.Iterables;
import org.neo4j.helpers.collection.MapUtil; import org.neo4j.helpers.collection.MapUtil;
import org.neo4j.kernel.api.impl.schema.NativeLuceneFusionIndexProviderFactory20;
import org.neo4j.kernel.extension.KernelExtensionFactory; import org.neo4j.kernel.extension.KernelExtensionFactory;
import org.neo4j.kernel.impl.index.schema.GenericNativeIndexProviderFactory;
import org.neo4j.test.extension.Inject; import org.neo4j.test.extension.Inject;
import org.neo4j.test.extension.TestDirectoryExtension; import org.neo4j.test.extension.TestDirectoryExtension;
import org.neo4j.test.rule.TestDirectory; import org.neo4j.test.rule.TestDirectory;


import static org.neo4j.graphdb.factory.GraphDatabaseSettings.default_schema_provider; import static org.neo4j.graphdb.factory.GraphDatabaseSettings.default_schema_provider;
import static org.neo4j.kernel.api.impl.schema.NativeLuceneFusionIndexProviderFactory20.DESCRIPTOR;
import static org.neo4j.unsafe.batchinsert.BatchInserters.inserter; import static org.neo4j.unsafe.batchinsert.BatchInserters.inserter;


@ExtendWith( TestDirectoryExtension.class ) @ExtendWith( TestDirectoryExtension.class )
Expand All @@ -56,11 +56,11 @@ void shouldStartBatchInserterWithRealIndexProvider() throws Exception


private static Map<String,String> getConfig() private static Map<String,String> getConfig()
{ {
return MapUtil.stringMap( default_schema_provider.name(), DESCRIPTOR.name() ); return MapUtil.stringMap( default_schema_provider.name(), GraphDatabaseSettings.SchemaIndex.NATIVE_BTREE10.providerIdentifier() );
} }


private static Iterable<KernelExtensionFactory<?>> getKernelExtensions() private static Iterable<KernelExtensionFactory<?>> getKernelExtensions()
{ {
return Iterables.asIterable( new NativeLuceneFusionIndexProviderFactory20() ); return Iterables.asIterable( new GenericNativeIndexProviderFactory() );
} }
} }

0 comments on commit e4ad111

Please sign in to comment.