Skip to content

Commit

Permalink
Cleanup in native schema index main and test
Browse files Browse the repository at this point in the history
  • Loading branch information
burqen authored and tinwelint committed Jun 26, 2017
1 parent dfcbf62 commit c26c2b1
Show file tree
Hide file tree
Showing 10 changed files with 26 additions and 33 deletions.
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import java.io.IOException; import java.io.IOException;


import org.neo4j.index.internal.gbptree.Layout; import org.neo4j.index.internal.gbptree.Layout;
import org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector;
import org.neo4j.io.pagecache.PageCache; import org.neo4j.io.pagecache.PageCache;
import org.neo4j.kernel.api.index.IndexEntryUpdate; import org.neo4j.kernel.api.index.IndexEntryUpdate;
import org.neo4j.kernel.impl.api.index.sampling.DefaultNonUniqueIndexSampler; import org.neo4j.kernel.impl.api.index.sampling.DefaultNonUniqueIndexSampler;
Expand All @@ -42,7 +41,7 @@ class NativeNonUniqueSchemaNumberIndexPopulator<KEY extends NumberKey, VALUE ext
private NonUniqueIndexSampler sampler; private NonUniqueIndexSampler sampler;


NativeNonUniqueSchemaNumberIndexPopulator( PageCache pageCache, File storeFile, Layout<KEY,VALUE> layout, NativeNonUniqueSchemaNumberIndexPopulator( PageCache pageCache, File storeFile, Layout<KEY,VALUE> layout,
RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, IndexSamplingConfig samplingConfig ) IndexSamplingConfig samplingConfig )
{ {
super( pageCache, storeFile, layout ); super( pageCache, storeFile, layout );
this.samplingConfig = samplingConfig; this.samplingConfig = samplingConfig;
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
import org.neo4j.kernel.api.index.IndexAccessor; import org.neo4j.kernel.api.index.IndexAccessor;
import org.neo4j.kernel.api.index.IndexUpdater; import org.neo4j.kernel.api.index.IndexUpdater;
import org.neo4j.kernel.api.index.PropertyAccessor; import org.neo4j.kernel.api.index.PropertyAccessor;
import org.neo4j.kernel.api.schema.index.IndexDescriptor;
import org.neo4j.kernel.impl.api.index.IndexUpdateMode; import org.neo4j.kernel.impl.api.index.IndexUpdateMode;
import org.neo4j.kernel.impl.index.GBPTreeUtil; import org.neo4j.kernel.impl.index.GBPTreeUtil;
import org.neo4j.storageengine.api.schema.IndexReader; import org.neo4j.storageengine.api.schema.IndexReader;
Expand All @@ -45,14 +44,11 @@ public class NativeSchemaNumberIndexAccessor<KEY extends NumberKey, VALUE extend
extends NativeSchemaNumberIndex<KEY,VALUE> implements IndexAccessor extends NativeSchemaNumberIndex<KEY,VALUE> implements IndexAccessor
{ {
private final NativeSchemaNumberIndexUpdater<KEY,VALUE> singleUpdater; private final NativeSchemaNumberIndexUpdater<KEY,VALUE> singleUpdater;
private final IndexDescriptor indexDescriptor;


NativeSchemaNumberIndexAccessor( PageCache pageCache, File storeFile, NativeSchemaNumberIndexAccessor( PageCache pageCache, File storeFile,
Layout<KEY,VALUE> layout, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, Layout<KEY,VALUE> layout, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector ) throws IOException
IndexDescriptor indexDescriptor ) throws IOException
{ {
super( pageCache, storeFile, layout ); super( pageCache, storeFile, layout );
this.indexDescriptor = indexDescriptor;
singleUpdater = new NativeSchemaNumberIndexUpdater<>( layout.newKey(), layout.newValue() ); singleUpdater = new NativeSchemaNumberIndexUpdater<>( layout.newKey(), layout.newValue() );
instantiateTree( recoveryCleanupWorkCollector ); instantiateTree( recoveryCleanupWorkCollector );
} }
Expand Down Expand Up @@ -93,7 +89,7 @@ public void close() throws IOException
@Override @Override
public IndexReader newReader() public IndexReader newReader()
{ {
return new NativeSchemaNumberIndexReader<>( tree, layout, indexDescriptor ); return new NativeSchemaNumberIndexReader<>( tree, layout );
} }


@Override @Override
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import java.io.File; import java.io.File;


import org.neo4j.index.internal.gbptree.Layout; import org.neo4j.index.internal.gbptree.Layout;
import org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector;
import org.neo4j.io.pagecache.PageCache; import org.neo4j.io.pagecache.PageCache;
import org.neo4j.kernel.api.index.IndexEntryUpdate; import org.neo4j.kernel.api.index.IndexEntryUpdate;
import org.neo4j.kernel.impl.api.index.sampling.UniqueIndexSampler; import org.neo4j.kernel.impl.api.index.sampling.UniqueIndexSampler;
Expand All @@ -36,8 +35,7 @@ class NativeUniqueSchemaNumberIndexPopulator<KEY extends NumberKey, VALUE extend
{ {
private final UniqueIndexSampler sampler; private final UniqueIndexSampler sampler;


NativeUniqueSchemaNumberIndexPopulator( PageCache pageCache, File storeFile, Layout<KEY,VALUE> layout, NativeUniqueSchemaNumberIndexPopulator( PageCache pageCache, File storeFile, Layout<KEY,VALUE> layout )
RecoveryCleanupWorkCollector recoveryCleanupWorkCollector )
{ {
super( pageCache, storeFile, layout ); super( pageCache, storeFile, layout );
this.sampler = new UniqueIndexSampler(); this.sampler = new UniqueIndexSampler();
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public class NumberHitIterator<KEY extends NumberKey, VALUE extends NumberValue>
{ {
private final RawCursor<Hit<KEY,VALUE>,IOException> seeker; private final RawCursor<Hit<KEY,VALUE>,IOException> seeker;


public NumberHitIterator( RawCursor<Hit<KEY,VALUE>,IOException> seeker ) NumberHitIterator( RawCursor<Hit<KEY,VALUE>,IOException> seeker )
{ {
this.seeker = seeker; this.seeker = seeker;
} }
Expand All @@ -50,7 +50,7 @@ protected boolean fetchNext()
{ {
try try
{ {
return seeker.next() ? next( seeker.get().key().entityId ) : false; return seeker.next() && next( seeker.get().key().entityId );
} }
catch ( IOException e ) catch ( IOException e )
{ {
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@ abstract class LayoutTestUtil<KEY extends NumberKey, VALUE extends NumberValue>


protected abstract double fractionDuplicates(); protected abstract double fractionDuplicates();


IndexDescriptor indexDescriptor()
{
return indexDescriptor;
}

void copyValue( VALUE value, VALUE intoValue ) void copyValue( VALUE value, VALUE intoValue )
{ {
intoValue.type = value.type; intoValue.type = value.type;
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
import static org.neo4j.helpers.ArrayUtil.array; import static org.neo4j.helpers.ArrayUtil.array;
import static org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector.IMMEDIATE;
import static org.neo4j.kernel.impl.index.schema.FullScanNonUniqueIndexSamplerTest.countUniqueValues; import static org.neo4j.kernel.impl.index.schema.FullScanNonUniqueIndexSamplerTest.countUniqueValues;


public class NativeNonUniqueSchemaNumberIndexPopulatorTest public class NativeNonUniqueSchemaNumberIndexPopulatorTest
Expand All @@ -48,7 +47,7 @@ public class NativeNonUniqueSchemaNumberIndexPopulatorTest
NativeSchemaNumberIndexPopulator<NumberKey,NumberValue> createPopulator( PageCache pageCache, File indexFile, NativeSchemaNumberIndexPopulator<NumberKey,NumberValue> createPopulator( PageCache pageCache, File indexFile,
Layout<NumberKey,NumberValue> layout, IndexSamplingConfig samplingConfig ) Layout<NumberKey,NumberValue> layout, IndexSamplingConfig samplingConfig )
{ {
return new NativeNonUniqueSchemaNumberIndexPopulator<>( pageCache, indexFile, layout, IMMEDIATE, samplingConfig ); return new NativeNonUniqueSchemaNumberIndexPopulator<>( pageCache, indexFile, layout, samplingConfig );
} }


@Test @Test
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;

import static org.neo4j.collection.primitive.PrimitiveLongCollections.EMPTY_LONG_ARRAY; import static org.neo4j.collection.primitive.PrimitiveLongCollections.EMPTY_LONG_ARRAY;
import static org.neo4j.function.Predicates.all; import static org.neo4j.function.Predicates.all;
import static org.neo4j.function.Predicates.alwaysTrue; import static org.neo4j.function.Predicates.alwaysTrue;
Expand All @@ -70,18 +69,14 @@
public abstract class NativeSchemaNumberIndexAccessorTest<KEY extends NumberKey, VALUE extends NumberValue> public abstract class NativeSchemaNumberIndexAccessorTest<KEY extends NumberKey, VALUE extends NumberValue>
extends SchemaNumberIndexTestUtil<KEY,VALUE> extends SchemaNumberIndexTestUtil<KEY,VALUE>
{ {
private IndexDescriptor indexDescriptor; private NativeSchemaNumberIndexAccessor<KEY,VALUE> accessor;
NativeSchemaNumberIndexAccessor<KEY,VALUE> accessor;


@Before @Before
public void setupAccessor() throws IOException public void setupAccessor() throws IOException
{ {
indexDescriptor = createIndexDescriptor(); accessor = new NativeSchemaNumberIndexAccessor<>( pageCache, indexFile, layout, IMMEDIATE );
accessor = new NativeSchemaNumberIndexAccessor<>( pageCache, indexFile, layout, IMMEDIATE, indexDescriptor );
} }


abstract IndexDescriptor createIndexDescriptor();

@After @After
public void closeAccessor() throws IOException public void closeAccessor() throws IOException
{ {
Expand Down Expand Up @@ -459,7 +454,7 @@ public void shouldHandleMultipleConsecutiveUpdaters() throws Exception
public void requestForSecondUpdaterMustThrow() throws Exception public void requestForSecondUpdaterMustThrow() throws Exception
{ {
// given // given
try ( IndexUpdater updater = accessor.newUpdater( ONLINE ) ) try ( IndexUpdater ignored = accessor.newUpdater( ONLINE ) )
{ {
// when // when
try try
Expand Down Expand Up @@ -581,11 +576,11 @@ private long[] extractEntityIds( IndexEntryUpdate<?>[] updates, Predicate<Object
{ {
long[] entityIds = new long[updates.length]; long[] entityIds = new long[updates.length];
int cursor = 0; int cursor = 0;
for ( int i = 0; i < updates.length; i++ ) for ( IndexEntryUpdate<?> update : updates )
{ {
if ( valueFilter.test( updates[i].values()[0] ) ) if ( valueFilter.test( update.values()[0] ) )
{ {
entityIds[cursor++] = updates[i].getEntityId(); entityIds[cursor++] = update.getEntityId();
} }
} }
return Arrays.copyOf( entityIds, cursor ); return Arrays.copyOf( entityIds, cursor );
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
public abstract class NativeSchemaNumberIndexPopulatorTest<KEY extends NumberKey,VALUE extends NumberValue> public abstract class NativeSchemaNumberIndexPopulatorTest<KEY extends NumberKey,VALUE extends NumberValue>
extends SchemaNumberIndexTestUtil<KEY,VALUE> extends SchemaNumberIndexTestUtil<KEY,VALUE>
{ {
static final int LARGE_AMOUNT_OF_UPDATES = 1_000; private static final int LARGE_AMOUNT_OF_UPDATES = 1_000;
static final PropertyAccessor null_property_accessor = ( nodeId, propKeyId ) -> static final PropertyAccessor null_property_accessor = ( nodeId, propKeyId ) ->
{ {
throw new RuntimeException( "Did not expect an attempt to go to store" ); throw new RuntimeException( "Did not expect an attempt to go to store" );
Expand Down Expand Up @@ -484,7 +484,7 @@ public void unsuccessfulCloseMustThrowAfterDrop() throws Exception
} }
} }


int interleaveLargeAmountOfUpdates( Random updaterRandom, private int interleaveLargeAmountOfUpdates( Random updaterRandom,
Iterator<IndexEntryUpdate<IndexDescriptor>> updates ) throws IOException, IndexEntryConflictException Iterator<IndexEntryUpdate<IndexDescriptor>> updates ) throws IOException, IndexEntryConflictException
{ {
int count = 0; int count = 0;
Expand Down Expand Up @@ -562,7 +562,7 @@ private void applyInterleaved( IndexEntryUpdate<IndexDescriptor>[] updates, Inde
} }
} }


void verifyUpdates( Iterator<IndexEntryUpdate<IndexDescriptor>> indexEntryUpdateIterator, int count ) private void verifyUpdates( Iterator<IndexEntryUpdate<IndexDescriptor>> indexEntryUpdateIterator, int count )
throws IOException throws IOException
{ {
@SuppressWarnings( "unchecked" ) @SuppressWarnings( "unchecked" )
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@


import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
import static org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector.IMMEDIATE;


public class NativeUniqueSchemaNumberIndexPopulatorTest extends NativeSchemaNumberIndexPopulatorTest<NumberKey,NumberValue> public class NativeUniqueSchemaNumberIndexPopulatorTest extends NativeSchemaNumberIndexPopulatorTest<NumberKey,NumberValue>
{ {
Expand All @@ -44,7 +43,7 @@ NativeSchemaNumberIndexPopulator<NumberKey,NumberValue> createPopulator(
PageCache pageCache, File indexFile, PageCache pageCache, File indexFile,
Layout<NumberKey,NumberValue> layout, IndexSamplingConfig samplingConfig ) Layout<NumberKey,NumberValue> layout, IndexSamplingConfig samplingConfig )
{ {
return new NativeUniqueSchemaNumberIndexPopulator<>( pageCache, indexFile, layout, IMMEDIATE ); return new NativeUniqueSchemaNumberIndexPopulator<>( pageCache, indexFile, layout );
} }


@Override @Override
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ public abstract class SchemaNumberIndexTestUtil<KEY extends NumberKey,VALUE exte
@Rule @Rule
public final RuleChain rules = outerRule( fs ).around( directory ).around( pageCacheRule ).around( random ); public final RuleChain rules = outerRule( fs ).around( directory ).around( pageCacheRule ).around( random );


IndexDescriptor indexDescriptor;
LayoutTestUtil<KEY,VALUE> layoutUtil; LayoutTestUtil<KEY,VALUE> layoutUtil;
Layout<KEY,VALUE> layout; Layout<KEY,VALUE> layout;
File indexFile; File indexFile;
Expand All @@ -76,6 +77,7 @@ public abstract class SchemaNumberIndexTestUtil<KEY extends NumberKey,VALUE exte
public void setup() public void setup()
{ {
layoutUtil = createLayoutTestUtil(); layoutUtil = createLayoutTestUtil();
indexDescriptor = layoutUtil.indexDescriptor();
layout = layoutUtil.createLayout(); layout = layoutUtil.createLayout();
indexFile = directory.file( "index" ); indexFile = directory.file( "index" );
pageCache = pageCacheRule.getPageCache( fs ); pageCache = pageCacheRule.getPageCache( fs );
Expand Down Expand Up @@ -184,12 +186,12 @@ private Hit<KEY,VALUE> hit( final KEY key, final VALUE value )
return new SimpleHit( key, value ); return new SimpleHit( key, value );
} }


protected void assertFilePresent() void assertFilePresent()
{ {
assertTrue( fs.fileExists( indexFile ) ); assertTrue( fs.fileExists( indexFile ) );
} }


protected void assertFileNotPresent() void assertFileNotPresent()
{ {
assertFalse( fs.fileExists( indexFile ) ); assertFalse( fs.fileExists( indexFile ) );
} }
Expand Down

0 comments on commit c26c2b1

Please sign in to comment.