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}" )
public static List<GraphDatabaseSettings.SchemaIndex> providers()
{
List<GraphDatabaseSettings.SchemaIndex> providers = new ArrayList<>();
providers.addAll( Arrays.asList( GraphDatabaseSettings.SchemaIndex.values() ) );
List<GraphDatabaseSettings.SchemaIndex> providers = new ArrayList<>( Arrays.asList( GraphDatabaseSettings.SchemaIndex.values() ) );
providers.add( null ); // <-- to exercise the default option
return providers;
}
Expand Down
Expand Up @@ -27,8 +27,6 @@
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;

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

import org.neo4j.graphdb.DependencyResolver;
Expand All @@ -43,23 +41,17 @@
import org.neo4j.internal.kernel.api.InternalIndexState;
import org.neo4j.internal.kernel.api.Kernel;
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.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.index.TestIndexDescriptorFactory;
import org.neo4j.kernel.extension.KernelExtensionFactory;
import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge;
import org.neo4j.kernel.impl.store.UnderlyingStorageException;
import org.neo4j.kernel.internal.GraphDatabaseAPI;
import org.neo4j.storageengine.api.schema.PopulationProgress;
import org.neo4j.test.TestGraphDatabaseFactory;
import org.neo4j.test.rule.fs.EphemeralFileSystemRule;

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

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

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

@Parameterized.Parameter( 1 )
public IndexProviderDescriptor indexDescriptor;
@Parameterized.Parameter()
public GraphDatabaseSettings.SchemaIndex schemaIndex;

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

import java.io.UncheckedIOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
Expand All @@ -39,6 +38,7 @@
import org.neo4j.graphdb.Label;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.helpers.collection.Iterators;
import org.neo4j.helpers.collection.Visitor;
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.IndexEntryConflictException;
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.IndexProvider;
import org.neo4j.kernel.api.labelscan.LabelScanStore;
import org.neo4j.kernel.api.labelscan.NodeLabelUpdate;
import org.neo4j.kernel.api.schema.SchemaDescriptorFactory;
Expand Down Expand Up @@ -91,7 +89,6 @@
import org.neo4j.values.storable.Values;

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

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

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

private IndexingService indexService;
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 )
{
IndexProvider lookup = getIndexProviderMap().lookup( schemaIndex.providerIdentifier() );
IndexProviderDescriptor providerDescriptor = lookup.getProviderDescriptor();
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 );
}

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

import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.graphdb.mockfs.EphemeralFileSystemAbstraction;
import org.neo4j.helpers.collection.Iterables;
import org.neo4j.helpers.collection.MapUtil;
import org.neo4j.kernel.api.impl.schema.NativeLuceneFusionIndexProviderFactory20;
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.fs.EphemeralFileSystemRule;
import org.neo4j.unsafe.batchinsert.internal.FileSystemClosingBatchInserter;
Expand All @@ -40,7 +41,6 @@
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
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;

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

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

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 )
Expand Down
Expand Up @@ -26,8 +26,6 @@
import org.junit.runners.Parameterized;

import java.io.File;
import java.util.Arrays;
import java.util.Collection;
import java.util.Map;
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 );

@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 )
Expand Down
Expand Up @@ -69,6 +69,7 @@
import org.neo4j.kernel.api.schema.index.TestIndexDescriptorFactory;
import org.neo4j.kernel.extension.KernelExtensionFactory;
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.scan.FullStoreChangeStream;
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.MapUtil.map;
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.impl.api.index.SchemaIndexTestHelper.singleInstanceIndexProviderFactory;
import static org.neo4j.kernel.impl.store.RecordStore.getRecord;
Expand All @@ -139,13 +138,15 @@
@RunWith( Parameterized.class )
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 final int denseNodeThreshold;
// 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 internalUniqueIndex = TestIndexDescriptorFactory.uniqueForLabel( 0, 0 );

@Parameterized.Parameters
@Parameterized.Parameters( name = "{index} denseNodeThreshold={0}")
public static Collection<Integer> data()
{
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 providerVersion;
private final String providerIdentifier;

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

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

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

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

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

import java.util.Map;

import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.helpers.collection.Iterables;
import org.neo4j.helpers.collection.MapUtil;
import org.neo4j.kernel.api.impl.schema.NativeLuceneFusionIndexProviderFactory20;
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.TestDirectoryExtension;
import org.neo4j.test.rule.TestDirectory;

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;

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

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()
{
return Iterables.asIterable( new NativeLuceneFusionIndexProviderFactory20() );
return Iterables.asIterable( new GenericNativeIndexProviderFactory() );
}
}

0 comments on commit e4ad111

Please sign in to comment.