From 9c0f29edd3233a67643b426ff5b1c1f1d779e66d Mon Sep 17 00:00:00 2001 From: Mikhaylo Demianenko Date: Tue, 20 Sep 2016 12:26:26 +0200 Subject: [PATCH] Restore QUEUE_THRESHOLD, javadocs. Remove unrelated code style changes, renaming stuff. --- .../ExpressionSelectivityCalculatorTest.scala | 4 +- .../kernel/api/index/IndexPopulator.java | 9 ++- .../index/BatchingMultipleIndexPopulator.java | 2 +- .../api/index/MultipleIndexPopulator.java | 2 +- .../recordstorage/RecordStorageEngine.java | 4 +- ...reView.java => DynamicIndexStoreView.java} | 13 ++-- .../kernel/impl/api/index/IndexCRUDIT.java | 2 +- .../impl/api/index/IndexingServiceTest.java | 2 - .../api/index/inmemory/InMemoryIndex.java | 2 +- ...st.java => DynamicIndexStoreViewTest.java} | 25 +++++-- ...PartitionedLuceneLabelScanStoreReader.java | 2 +- ...RangeDocumentLabelScanStorageStrategy.java | 1 - .../NonUniqueLuceneIndexPopulator.java | 6 +- .../populator/UniqueLuceneIndexPopulator.java | 2 +- ...ltiIndexPopulationConcurrentUpdatesIT.java | 18 ++--- .../org/neo4j/kernel/api/SchemaIndexHaIT.java | 4 +- ...xStoreIT.java => DynamicIndexStoreIT.java} | 69 ++++++++++--------- 17 files changed, 97 insertions(+), 70 deletions(-) rename community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/storeview/{AdaptableIndexStoreView.java => DynamicIndexStoreView.java} (86%) rename community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/storeview/{AdaptableIndexStoreViewTest.java => DynamicIndexStoreViewTest.java} (88%) rename enterprise/kernel/src/test/java/org/neo4j/kernel/impl/enterprise/{AdaptableIndexStoreIT.java => DynamicIndexStoreIT.java} (74%) diff --git a/community/cypher/cypher-compiler-3.0/src/test/scala/org/neo4j/cypher/internal/compiler/v3_0/planner/logical/cardinality/ExpressionSelectivityCalculatorTest.scala b/community/cypher/cypher-compiler-3.0/src/test/scala/org/neo4j/cypher/internal/compiler/v3_0/planner/logical/cardinality/ExpressionSelectivityCalculatorTest.scala index 8aaa9228b4d1..069b1e858e30 100644 --- a/community/cypher/cypher-compiler-3.0/src/test/scala/org/neo4j/cypher/internal/compiler/v3_0/planner/logical/cardinality/ExpressionSelectivityCalculatorTest.scala +++ b/community/cypher/cypher-compiler-3.0/src/test/scala/org/neo4j/cypher/internal/compiler/v3_0/planner/logical/cardinality/ExpressionSelectivityCalculatorTest.scala @@ -20,8 +20,8 @@ package org.neo4j.cypher.internal.compiler.v3_0.planner.logical.cardinality import org.mockito.Mockito.when -import org.neo4j.cypher.internal.compiler.v3_0.planner.logical.{Cardinality, Selectivity} import org.neo4j.cypher.internal.compiler.v3_0.planner.logical.plans.IdName +import org.neo4j.cypher.internal.compiler.v3_0.planner.logical.{Cardinality, Selectivity} import org.neo4j.cypher.internal.compiler.v3_0.planner.{Predicate, Selections} import org.neo4j.cypher.internal.compiler.v3_0.spi.GraphStatistics import org.neo4j.cypher.internal.frontend.v3_0.ast._ @@ -152,6 +152,6 @@ class ExpressionSelectivityCalculatorTest extends CypherFunSuite with AstConstru implicit val selections = mock[Selections] val expr = HasLabels(null, Seq(LabelName("Foo")(pos)))(pos) -// calculator(expr) should equal(Selectivity(1.0 / 10.0)) + calculator(expr) should equal(Selectivity(1.0 / 10.0)) } } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/index/IndexPopulator.java b/community/kernel/src/main/java/org/neo4j/kernel/api/index/IndexPopulator.java index 4c341eae9a7e..4fcfaacd5264 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/index/IndexPopulator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/index/IndexPopulator.java @@ -110,7 +110,12 @@ void add( Collection updates ) */ void includeSample( NodePropertyUpdate update ); - void configureSampling( boolean fullIndexSampling ); + /** + * Configure specific type of sampling that should be used during index population. + * Depends from type of node scan that is used during index population + * @param onlineSampling should online (sampling based on index population and updates) be used + */ + void configureSampling( boolean onlineSampling ); IndexSample sampleResult(); @@ -158,7 +163,7 @@ public void includeSample( NodePropertyUpdate update ) } @Override - public void configureSampling( boolean fullIndexSampling ) + public void configureSampling( boolean onlineSampling ) { } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/BatchingMultipleIndexPopulator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/BatchingMultipleIndexPopulator.java index d061e6db3402..512df19bd10e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/BatchingMultipleIndexPopulator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/BatchingMultipleIndexPopulator.java @@ -77,7 +77,7 @@ public class BatchingMultipleIndexPopulator extends MultipleIndexPopulator private static final String EOL = System.lineSeparator(); private static final String FLUSH_THREAD_NAME_PREFIX = "Index Population Flush Thread"; - private final int QUEUE_THRESHOLD = FeatureToggles.getInteger( getClass(), QUEUE_THRESHOLD_NAME, 1 ); + private final int QUEUE_THRESHOLD = FeatureToggles.getInteger( getClass(), QUEUE_THRESHOLD_NAME, 20_000 ); private final int TASK_QUEUE_SIZE = FeatureToggles.getInteger( getClass(), TASK_QUEUE_SIZE_NAME, getNumberOfPopulationWorkers() * 2 ); private final int AWAIT_TIMEOUT_MINUTES = FeatureToggles.getInteger( getClass(), AWAIT_TIMEOUT_MINUTES_NAME, 30 ); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulator.java index 63eb634c7925..9e21c9e1e0ac 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/MultipleIndexPopulator.java @@ -270,7 +270,7 @@ public void includeSample( NodePropertyUpdate update ) } @Override - public void configureSampling( boolean fullIndexSampling ) + public void configureSampling( boolean onlineSampling ) { throw new UnsupportedOperationException( "Multiple index populator can't be configured." ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/RecordStorageEngine.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/RecordStorageEngine.java index a731d0af50ae..7a6435b8a3e3 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/RecordStorageEngine.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/RecordStorageEngine.java @@ -96,7 +96,7 @@ import org.neo4j.kernel.impl.transaction.state.RelationshipDeleter; import org.neo4j.kernel.impl.transaction.state.RelationshipGroupGetter; import org.neo4j.kernel.impl.transaction.state.TransactionRecordState; -import org.neo4j.kernel.impl.transaction.state.storeview.AdaptableIndexStoreView; +import org.neo4j.kernel.impl.transaction.state.storeview.DynamicIndexStoreView; import org.neo4j.kernel.impl.transaction.state.storeview.NeoStoreIndexStoreView; import org.neo4j.kernel.impl.util.DependencySatisfier; import org.neo4j.kernel.impl.util.IdOrderingQueue; @@ -216,7 +216,7 @@ public RecordStorageEngine( labelScanStore = labelScanStoreProvider.getLabelScanStore(); schemaIndexProviderMap = new DefaultSchemaIndexProviderMap( indexProvider ); - indexStoreView = new AdaptableIndexStoreView( labelScanStore, lockService, neoStores ); + indexStoreView = new DynamicIndexStoreView( labelScanStore, lockService, neoStores ); indexingService = IndexingServiceFactory.createIndexingService( config, scheduler, schemaIndexProviderMap, indexStoreView, tokenNameLookup, Iterators.asList( new SchemaStorage( neoStores.getSchemaStore() ).allIndexRules() ), logProvider, diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/storeview/AdaptableIndexStoreView.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/storeview/DynamicIndexStoreView.java similarity index 86% rename from community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/storeview/AdaptableIndexStoreView.java rename to community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/storeview/DynamicIndexStoreView.java index 559b1bfd9d3c..0d499df00e36 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/storeview/AdaptableIndexStoreView.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/storeview/DynamicIndexStoreView.java @@ -39,15 +39,15 @@ * Store view that will try to use label scan store {@link LabelScanStore} for cases when estimated number of nodes * is bellow certain threshold otherwise will fallback to whole store scan */ -public class AdaptableIndexStoreView extends NeoStoreIndexStoreView +public class DynamicIndexStoreView extends NeoStoreIndexStoreView { private static final int VISIT_ALL_NODES_THRESHOLD_PERCENTAGE = - FeatureToggles.getInteger( AdaptableIndexStoreView.class, "all.nodes.visit.percentage.threshold", 50 ); + FeatureToggles.getInteger( DynamicIndexStoreView.class, "all.nodes.visit.percentage.threshold", 50 ); private final LabelScanStore labelScanStore; private final CountsTracker counts; - public AdaptableIndexStoreView( LabelScanStore labelScanStore, LockService locks, NeoStores neoStores ) + public DynamicIndexStoreView( LabelScanStore labelScanStore, LockService locks, NeoStores neoStores ) { super( locks, neoStores ); this.counts = neoStores.getCounts(); @@ -59,7 +59,7 @@ public StoreScan visitNodes( int[] labelIds IntPredicate propertyKeyIdFilter, Visitor propertyUpdatesVisitor, Visitor labelUpdateVisitor ) { - if ( ArrayUtils.isEmpty( labelIds ) || isEmptyLabelScanStore() || isNumberOfLabeledNodesExceedThreshold( labelIds ) ) + if ( useAllNodeStoreScan( labelIds ) ) { return super.visitNodes( labelIds, propertyKeyIdFilter, propertyUpdatesVisitor, labelUpdateVisitor ); } @@ -67,6 +67,11 @@ public StoreScan visitNodes( int[] labelIds propertyUpdatesVisitor, labelIds, propertyKeyIdFilter ); } + private boolean useAllNodeStoreScan( int[] labelIds ) + { + return ArrayUtils.isEmpty( labelIds ) || isEmptyLabelScanStore() || isNumberOfLabeledNodesExceedThreshold( labelIds ); + } + private boolean isEmptyLabelScanStore() { return labelScanStore.allNodeLabelRanges().maxCount() == 0; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexCRUDIT.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexCRUDIT.java index 76a53721fe01..fc2b51eeb758 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexCRUDIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexCRUDIT.java @@ -271,7 +271,7 @@ public void includeSample( NodePropertyUpdate update ) } @Override - public void configureSampling( boolean fullIndexSampling ) + public void configureSampling( boolean onlineSampling ) { // nothing } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexingServiceTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexingServiceTest.java index 00f043a4c1aa..3e660a3f36f3 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexingServiceTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexingServiceTest.java @@ -251,13 +251,11 @@ public void shouldDeliverUpdatesThatOccurDuringPopulationToPopulator() throws Ex order.verify( populator ).includeSample( add( 1, "value1" ) ); order.verify( populator ).add( Mockito.anyListOf (NodePropertyUpdate.class)); - // invoked from indexAllNodes(), empty because the id we added (2) is bigger than the one we indexed (1) // // (We don't get an update for value2 here because we mock a fake store that doesn't contain it // just for the purpose of testing this behavior) order.verify( populator ).newPopulatingUpdater( storeView ); - order.verify( updater ).close(); order.verify( populator ).verifyDeferredConstraints( storeView ); order.verify( populator ).sampleResult(); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/inmemory/InMemoryIndex.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/inmemory/InMemoryIndex.java index faca8afb707b..3c9b0b5cbb81 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/inmemory/InMemoryIndex.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/inmemory/InMemoryIndex.java @@ -179,7 +179,7 @@ public void includeSample( NodePropertyUpdate update ) } @Override - public void configureSampling( boolean fullIndexSampling ) + public void configureSampling( boolean onlineSampling ) { //nothing } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/storeview/AdaptableIndexStoreViewTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/storeview/DynamicIndexStoreViewTest.java similarity index 88% rename from community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/storeview/AdaptableIndexStoreViewTest.java rename to community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/storeview/DynamicIndexStoreViewTest.java index f330be5267e7..22650a76444c 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/storeview/AdaptableIndexStoreViewTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/transaction/state/storeview/DynamicIndexStoreViewTest.java @@ -19,7 +19,9 @@ */ package org.neo4j.kernel.impl.transaction.state.storeview; +import org.junit.AfterClass; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mockito; @@ -42,6 +44,7 @@ import org.neo4j.register.Register; import org.neo4j.register.Registers; import org.neo4j.storageengine.api.schema.LabelScanReader; +import org.neo4j.unsafe.impl.internal.dragons.FeatureToggles; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyLong; @@ -50,7 +53,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.when; -public class AdaptableIndexStoreViewTest +public class DynamicIndexStoreViewTest { private LabelScanStore labelScanStore = mock( LabelScanStore.class ); @@ -62,6 +65,18 @@ public class AdaptableIndexStoreViewTest private IntPredicate propertyKeyIdFilter = mock( IntPredicate.class ); private AllEntriesLabelScanReader nodeLabelRanges = mock( AllEntriesLabelScanReader.class ); + @BeforeClass + public static void init() + { + FeatureToggles.set( DynamicIndexStoreView.class, "use.label.index", true ); + } + + @AfterClass + public static void cleanup() + { + FeatureToggles.set( DynamicIndexStoreView.class, "use.label.index", false ); + } + @Before public void setUp() { @@ -83,8 +98,8 @@ public void visitAllNodesWhenThresholdReached() throws Exception mockLabelNodeCount( countStore, 2 ); mockLabelNodeCount( countStore, 3 ); - AdaptableIndexStoreView storeView = - new AdaptableIndexStoreView( labelScanStore, LockService.NO_LOCK_SERVICE, neoStores ); + DynamicIndexStoreView storeView = + new DynamicIndexStoreView( labelScanStore, LockService.NO_LOCK_SERVICE, neoStores ); StoreScan storeScan = storeView .visitNodes( new int[]{1, 2, 3}, propertyKeyIdFilter, propertyUpdateVisitor, labelUpdateVisitor ); @@ -110,8 +125,8 @@ public void visitOnlyLabeledNodesWhenThresholdNotReached() throws Exception mockLabelNodeCount( countStore, 2 ); mockLabelNodeCount( countStore, 6 ); - AdaptableIndexStoreView storeView = - new AdaptableIndexStoreView( labelScanStore, LockService.NO_LOCK_SERVICE, neoStores ); + DynamicIndexStoreView storeView = + new DynamicIndexStoreView( labelScanStore, LockService.NO_LOCK_SERVICE, neoStores ); StoreScan storeScan = storeView .visitNodes( new int[]{2, 6}, propertyKeyIdFilter, propertyUpdateVisitor, labelUpdateVisitor ); diff --git a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/labelscan/reader/PartitionedLuceneLabelScanStoreReader.java b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/labelscan/reader/PartitionedLuceneLabelScanStoreReader.java index 547a5d528de1..9fd397ef5a03 100644 --- a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/labelscan/reader/PartitionedLuceneLabelScanStoreReader.java +++ b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/labelscan/reader/PartitionedLuceneLabelScanStoreReader.java @@ -44,7 +44,7 @@ public class PartitionedLuceneLabelScanStoreReader implements LabelScanReader private final List storeReaders; public PartitionedLuceneLabelScanStoreReader( List searchers, - LabelScanStorageStrategy storageStrategy) + LabelScanStorageStrategy storageStrategy ) { this( searchers.stream() .map( searcher -> new SimpleLuceneLabelScanStoreReader( searcher, storageStrategy ) ) diff --git a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/labelscan/storestrategy/NodeRangeDocumentLabelScanStorageStrategy.java b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/labelscan/storestrategy/NodeRangeDocumentLabelScanStorageStrategy.java index 489b531c420e..01e48c66fdf0 100644 --- a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/labelscan/storestrategy/NodeRangeDocumentLabelScanStorageStrategy.java +++ b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/labelscan/storestrategy/NodeRangeDocumentLabelScanStorageStrategy.java @@ -150,5 +150,4 @@ else if ( topDocs.scoreDocs.length > 1 ) throw new RuntimeException( e ); } } - } diff --git a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/populator/NonUniqueLuceneIndexPopulator.java b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/populator/NonUniqueLuceneIndexPopulator.java index 18d4aafd026a..61041b47d7c2 100644 --- a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/populator/NonUniqueLuceneIndexPopulator.java +++ b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/populator/NonUniqueLuceneIndexPopulator.java @@ -49,10 +49,10 @@ public NonUniqueLuceneIndexPopulator( SchemaIndex luceneIndex, IndexSamplingConf } @Override - public void configureSampling( boolean fullIndexSampling ) + public void configureSampling( boolean onlineSampling ) { - this.updateSampling = fullIndexSampling; - this.sampler = fullIndexSampling ? createDefaultSampler() + this.updateSampling = onlineSampling; + this.sampler = onlineSampling ? createDefaultSampler() : new DirectNonUniqueIndexSampler( luceneIndex ); } diff --git a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/populator/UniqueLuceneIndexPopulator.java b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/populator/UniqueLuceneIndexPopulator.java index 657897a5d146..91ad9d62e057 100644 --- a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/populator/UniqueLuceneIndexPopulator.java +++ b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/populator/UniqueLuceneIndexPopulator.java @@ -67,7 +67,7 @@ public void includeSample( NodePropertyUpdate update ) } @Override - public void configureSampling( boolean fullIndexSampling ) + public void configureSampling( boolean onlineSampling ) { // nothing to configure so far } diff --git a/community/neo4j/src/test/java/schema/MultiIndexPopulationConcurrentUpdatesIT.java b/community/neo4j/src/test/java/schema/MultiIndexPopulationConcurrentUpdatesIT.java index a3f7661e1904..47ce7e864b80 100644 --- a/community/neo4j/src/test/java/schema/MultiIndexPopulationConcurrentUpdatesIT.java +++ b/community/neo4j/src/test/java/schema/MultiIndexPopulationConcurrentUpdatesIT.java @@ -65,7 +65,7 @@ import org.neo4j.kernel.impl.store.record.IndexRule; import org.neo4j.kernel.impl.store.record.NodeRecord; import org.neo4j.kernel.impl.transaction.state.DefaultSchemaIndexProviderMap; -import org.neo4j.kernel.impl.transaction.state.storeview.AdaptableIndexStoreView; +import org.neo4j.kernel.impl.transaction.state.storeview.DynamicIndexStoreView; import org.neo4j.kernel.impl.transaction.state.storeview.LabelScanViewNodeStoreScan; import org.neo4j.kernel.impl.transaction.state.storeview.NeoStoreIndexStoreView; import org.neo4j.kernel.impl.util.JobScheduler; @@ -216,8 +216,8 @@ private void launchCustomIndexPopulation( Map labelNameIdMap, in { Statement statement = transactionStatementContextBridge.get(); - AdaptableIndexStoreView storeView = - new AdaptableIndexStoreViewWrapper( labelScanStore, LockService.NO_LOCK_SERVICE, neoStores, + DynamicIndexStoreView storeView = + new DynamicIndexStoreViewWrapper( labelScanStore, LockService.NO_LOCK_SERVICE, neoStores, updates ); SchemaIndexProviderMap providerMap = new DefaultSchemaIndexProviderMap( getSchemaIndexProvider() ); @@ -363,11 +363,11 @@ private JobScheduler getJobScheduler() return embeddedDatabase.getDependencyResolver().resolveDependency( JobScheduler.class ); } - private class AdaptableIndexStoreViewWrapper extends AdaptableIndexStoreView + private class DynamicIndexStoreViewWrapper extends DynamicIndexStoreView { private List updates; - AdaptableIndexStoreViewWrapper( LabelScanStore labelScanStore, LockService locks, NeoStores neoStores, + DynamicIndexStoreViewWrapper( LabelScanStore labelScanStore, LockService locks, NeoStores neoStores, List updates ) { super( labelScanStore, locks, neoStores ); @@ -392,7 +392,7 @@ public StoreScan visitNodes( int[] labelIds private class LabelScanViewNodeStoreWrapper extends LabelScanViewNodeStoreScan { private LabelScanViewNodeStoreScan delegate; - private AdaptableIndexStoreViewWrapper adaptableIndexStoreViewWrapper; + private DynamicIndexStoreViewWrapper adaptableIndexStoreViewWrapper; private List updates; public LabelScanViewNodeStoreWrapper( NeoStoreIndexStoreView storeView, NodeStore nodeStore, LockService locks, @@ -400,7 +400,7 @@ public LabelScanViewNodeStoreWrapper( NeoStoreIndexStoreView storeView, NodeStor LabelScanStore labelScanStore, Visitor labelUpdateVisitor, Visitor propertyUpdatesVisitor, int[] labelIds, IntPredicate propertyKeyIdFilter, LabelScanViewNodeStoreScan delegate, - AdaptableIndexStoreViewWrapper adaptableIndexStoreViewWrapper, + DynamicIndexStoreViewWrapper adaptableIndexStoreViewWrapper, List updates ) { super( storeView, nodeStore, locks, propertyStore, labelScanStore, labelUpdateVisitor, @@ -428,7 +428,7 @@ public PrimitiveLongResourceIterator getNodeIdIterator() private class DelegatingPrimitiveLongResourceIterator implements PrimitiveLongResourceIterator { - private AdaptableIndexStoreViewWrapper adaptableIndexStoreViewWrapper; + private DynamicIndexStoreViewWrapper adaptableIndexStoreViewWrapper; private List updates; private LabelScanViewNodeStoreWrapper storeScan; private PrimitiveLongResourceIterator delegate; @@ -436,7 +436,7 @@ private class DelegatingPrimitiveLongResourceIterator implements PrimitiveLongRe DelegatingPrimitiveLongResourceIterator( LabelScanViewNodeStoreWrapper storeScan, PrimitiveLongResourceIterator delegate, - AdaptableIndexStoreViewWrapper adaptableIndexStoreViewWrapper, + DynamicIndexStoreViewWrapper adaptableIndexStoreViewWrapper, List updates ) { this.storeScan = storeScan; diff --git a/enterprise/ha/src/test/java/org/neo4j/kernel/api/SchemaIndexHaIT.java b/enterprise/ha/src/test/java/org/neo4j/kernel/api/SchemaIndexHaIT.java index 5def1415044d..016652ff611e 100644 --- a/enterprise/ha/src/test/java/org/neo4j/kernel/api/SchemaIndexHaIT.java +++ b/enterprise/ha/src/test/java/org/neo4j/kernel/api/SchemaIndexHaIT.java @@ -478,9 +478,9 @@ public void includeSample( NodePropertyUpdate update ) } @Override - public void configureSampling( boolean fullIndexSampling ) + public void configureSampling( boolean onlineSampling ) { - delegate.configureSampling( fullIndexSampling ); + delegate.configureSampling( onlineSampling ); } @Override diff --git a/enterprise/kernel/src/test/java/org/neo4j/kernel/impl/enterprise/AdaptableIndexStoreIT.java b/enterprise/kernel/src/test/java/org/neo4j/kernel/impl/enterprise/DynamicIndexStoreIT.java similarity index 74% rename from enterprise/kernel/src/test/java/org/neo4j/kernel/impl/enterprise/AdaptableIndexStoreIT.java rename to enterprise/kernel/src/test/java/org/neo4j/kernel/impl/enterprise/DynamicIndexStoreIT.java index 74c9278d5055..e75463276856 100644 --- a/enterprise/kernel/src/test/java/org/neo4j/kernel/impl/enterprise/AdaptableIndexStoreIT.java +++ b/enterprise/kernel/src/test/java/org/neo4j/kernel/impl/enterprise/DynamicIndexStoreIT.java @@ -42,7 +42,7 @@ import org.neo4j.test.SuppressOutput; import org.neo4j.test.TargetDirectory; -public class AdaptableIndexStoreIT +public class DynamicIndexStoreIT { private SuppressOutput suppressOutput = SuppressOutput.suppressAll(); @@ -56,48 +56,53 @@ public void populateDb() throws Exception { GraphDatabaseService database = new GraphDatabaseFactory().newEmbeddedDatabase( testDirectory.graphDbDir() ); - int counter = 1; - for ( int j = 0; j < 10000; j++ ) + try { - try ( Transaction transaction = database.beginTx() ) + int counter = 1; + for ( int j = 0; j < 10000; j++ ) { - for ( int i = 0; i < 5; i++ ) + try ( Transaction transaction = database.beginTx() ) { - Node node = database.createNode( Label.label( "label" + counter ) ); - node.setProperty( "property" , ThreadLocalRandom.current().nextInt() ); + for ( int i = 0; i < 5; i++ ) + { + Node node = database.createNode( Label.label( "label" + counter ) ); + node.setProperty( "property", ThreadLocalRandom.current().nextInt() ); + } + transaction.success(); } - transaction.success(); + counter++; } - counter++; - } - List populators = new ArrayList<>(); - for ( int i = 0; i < 10; i++ ) - { - Populator populator = new Populator( database, counter ); - populators.add( populator ); - populator.start(); - } + List populators = new ArrayList<>(); + for ( int i = 0; i < 10; i++ ) + { + Populator populator = new Populator( database, counter ); + populators.add( populator ); + populator.start(); + } - try ( Transaction transaction = database.beginTx() ) - { - database.schema().indexFor( Label.label( "label10" ) ).on( "property" ).create(); - transaction.success(); - } + try ( Transaction transaction = database.beginTx() ) + { + database.schema().indexFor( Label.label( "label10" ) ).on( "property" ).create(); + transaction.success(); + } - try ( Transaction transaction = database.beginTx() ) + try ( Transaction transaction = database.beginTx() ) + { + database.schema().awaitIndexesOnline( 5, TimeUnit.MINUTES ); + transaction.success(); + } + + populators.forEach( Populator::terminate ); + } + finally { - database.schema().awaitIndexesOnline( 5, TimeUnit.MINUTES ); - transaction.success(); + database.shutdown(); + ConsistencyCheckService consistencyCheckService = new ConsistencyCheckService(); + consistencyCheckService.runFullConsistencyCheck( testDirectory.graphDbDir(), Config.empty(), + ProgressMonitorFactory.NONE, FormattedLogProvider.toOutputStream( System.out ), false ); } - - populators.forEach( Populator::terminate ); - database.shutdown(); - - ConsistencyCheckService consistencyCheckService = new ConsistencyCheckService(); - consistencyCheckService.runFullConsistencyCheck( testDirectory.graphDbDir(), Config.empty(), - ProgressMonitorFactory.NONE, FormattedLogProvider.toOutputStream( System.out ), false ); } private class Populator extends Thread