Skip to content

Commit

Permalink
Schema index logging with monitor
Browse files Browse the repository at this point in the history
  • Loading branch information
burqen committed Sep 25, 2017
1 parent 0cd13b5 commit c9502c9
Show file tree
Hide file tree
Showing 25 changed files with 183 additions and 104 deletions.
@@ -0,0 +1,53 @@
/*
* Copyright (c) 2002-2017 "Neo Technology,"
* Network Engine for Objects in Lund AB [http://neotechnology.com]
*
* This file is part of Neo4j.
*
* Neo4j is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.kernel.api.index;

import java.util.Map;

import org.neo4j.kernel.api.schema.index.IndexDescriptor;
import org.neo4j.logging.Log;

import static java.lang.String.format;

public class LoggingMonitor implements SchemaIndexProvider.Monitor
{
private final Log log;

public LoggingMonitor( Log log )
{
this.log = log;
}

@Override
public void failedToOpenIndex( long indexId, IndexDescriptor indexDescriptor, String action, Exception cause )
{
log.error( "Failed to open index:" + indexId + ". " + action, cause );
}

@Override
public void recoveryCompleted( long indexId, IndexDescriptor indexDescriptor, Map<String,Object> data )
{
StringBuilder builder =
new StringBuilder(
"Schema index recovery completed: indexId: " + indexId + " descriptor: " + indexDescriptor.toString() );
data.forEach( ( key, value ) -> builder.append( format( " %s: %s", key, value ) ) );
log.info( builder.toString() );
}
}
Expand Up @@ -21,6 +21,7 @@


import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Map;


import org.neo4j.graphdb.ResourceIterator; import org.neo4j.graphdb.ResourceIterator;
import org.neo4j.helpers.collection.Iterators; import org.neo4j.helpers.collection.Iterators;
Expand Down Expand Up @@ -92,6 +93,28 @@
*/ */
public abstract class SchemaIndexProvider extends LifecycleAdapter implements Comparable<SchemaIndexProvider> public abstract class SchemaIndexProvider extends LifecycleAdapter implements Comparable<SchemaIndexProvider>
{ {
public interface Monitor
{
Monitor EMPTY = new Monitor.Adaptor();

class Adaptor implements Monitor
{
@Override
public void failedToOpenIndex( long indexId, IndexDescriptor indexDescriptor, String action, Exception cause )
{ // no-op
}

@Override
public void recoveryCompleted( long indexId, IndexDescriptor indexDescriptor, Map<String,Object> data )
{ // no-op
}
}

void failedToOpenIndex( long indexId, IndexDescriptor indexDescriptor, String action, Exception cause );

void recoveryCompleted( long indexId, IndexDescriptor indexDescriptor, Map<String,Object> data );
}

public static final SchemaIndexProvider NO_INDEX_PROVIDER = public static final SchemaIndexProvider NO_INDEX_PROVIDER =
new SchemaIndexProvider( new Descriptor( "no-index-provider", "1.0" ), -1, IndexDirectoryStructure.NONE ) new SchemaIndexProvider( new Descriptor( "no-index-provider", "1.0" ), -1, IndexDirectoryStructure.NONE )
{ {
Expand Down
Expand Up @@ -27,11 +27,11 @@
import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.io.fs.FileSystemAbstraction;
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.api.index.SchemaIndexProvider;
import org.neo4j.kernel.api.schema.index.IndexDescriptor; import org.neo4j.kernel.api.schema.index.IndexDescriptor;
import org.neo4j.kernel.impl.api.index.sampling.DefaultNonUniqueIndexSampler; import org.neo4j.kernel.impl.api.index.sampling.DefaultNonUniqueIndexSampler;
import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig;
import org.neo4j.kernel.impl.api.index.sampling.NonUniqueIndexSampler; import org.neo4j.kernel.impl.api.index.sampling.NonUniqueIndexSampler;
import org.neo4j.logging.Log;
import org.neo4j.storageengine.api.schema.IndexSample; import org.neo4j.storageengine.api.schema.IndexSample;


/** /**
Expand All @@ -45,9 +45,9 @@ class NativeNonUniqueSchemaNumberIndexPopulator<KEY extends SchemaNumberKey, VAL
private NonUniqueIndexSampler sampler; private NonUniqueIndexSampler sampler;


NativeNonUniqueSchemaNumberIndexPopulator( PageCache pageCache, FileSystemAbstraction fs, File storeFile, Layout<KEY,VALUE> layout, NativeNonUniqueSchemaNumberIndexPopulator( PageCache pageCache, FileSystemAbstraction fs, File storeFile, Layout<KEY,VALUE> layout,
IndexSamplingConfig samplingConfig, Log log, IndexDescriptor descriptor, long indexId ) IndexSamplingConfig samplingConfig, SchemaIndexProvider.Monitor monitor, IndexDescriptor descriptor, long indexId )
{ {
super( pageCache, fs, storeFile, layout, log, descriptor, indexId ); super( pageCache, fs, storeFile, layout, monitor, descriptor, indexId );
this.samplingConfig = samplingConfig; this.samplingConfig = samplingConfig;
this.sampler = new DefaultNonUniqueIndexSampler( samplingConfig.sampleSizeLimit() ); this.sampler = new DefaultNonUniqueIndexSampler( samplingConfig.sampleSizeLimit() );
} }
Expand Down
Expand Up @@ -30,11 +30,12 @@
import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.io.fs.FileSystemAbstraction;
import org.neo4j.io.pagecache.PageCache; import org.neo4j.io.pagecache.PageCache;
import org.neo4j.io.pagecache.PageCursor; import org.neo4j.io.pagecache.PageCursor;
import org.neo4j.kernel.api.index.SchemaIndexProvider;
import org.neo4j.kernel.api.schema.index.IndexDescriptor; import org.neo4j.kernel.api.schema.index.IndexDescriptor;
import org.neo4j.kernel.impl.index.GBPTreeFileUtil; import org.neo4j.kernel.impl.index.GBPTreeFileUtil;
import org.neo4j.logging.Log;


import static org.neo4j.helpers.Format.duration; import static org.neo4j.helpers.Format.duration;
import static org.neo4j.helpers.collection.MapUtil.map;
import static org.neo4j.index.internal.gbptree.GBPTree.NO_HEADER_READER; import static org.neo4j.index.internal.gbptree.GBPTree.NO_HEADER_READER;


class NativeSchemaNumberIndex<KEY extends SchemaNumberKey, VALUE extends SchemaNumberValue> class NativeSchemaNumberIndex<KEY extends SchemaNumberKey, VALUE extends SchemaNumberValue>
Expand All @@ -43,22 +44,22 @@ class NativeSchemaNumberIndex<KEY extends SchemaNumberKey, VALUE extends SchemaN
final File storeFile; final File storeFile;
final Layout<KEY,VALUE> layout; final Layout<KEY,VALUE> layout;
final GBPTreeFileUtil gbpTreeFileUtil; final GBPTreeFileUtil gbpTreeFileUtil;
private final Log log;
private final IndexDescriptor descriptor; private final IndexDescriptor descriptor;
private final long indexId; private final long indexId;
private final SchemaIndexProvider.Monitor monitor;


GBPTree<KEY,VALUE> tree; GBPTree<KEY,VALUE> tree;


NativeSchemaNumberIndex( PageCache pageCache, FileSystemAbstraction fs, File storeFile, Layout<KEY,VALUE> layout, Log log, NativeSchemaNumberIndex( PageCache pageCache, FileSystemAbstraction fs, File storeFile, Layout<KEY,VALUE> layout,
IndexDescriptor descriptor, long indexId ) SchemaIndexProvider.Monitor monitor, IndexDescriptor descriptor, long indexId )
{ {
this.pageCache = pageCache; this.pageCache = pageCache;
this.storeFile = storeFile; this.storeFile = storeFile;
this.layout = layout; this.layout = layout;
this.gbpTreeFileUtil = new GBPTreeFileSystemFileUtil( fs ); this.gbpTreeFileUtil = new GBPTreeFileSystemFileUtil( fs );
this.log = log;
this.descriptor = descriptor; this.descriptor = descriptor;
this.indexId = indexId; this.indexId = indexId;
this.monitor = monitor;
} }


void instantiateTree( RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, Consumer<PageCursor> headerWriter ) void instantiateTree( RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, Consumer<PageCursor> headerWriter )
Expand All @@ -76,19 +77,14 @@ private GBPTree.Monitor treeMonitor( )
@Override @Override
public void cleanupFinished( long numberOfPagesVisited, long numberOfCleanedCrashPointers, long durationMillis ) public void cleanupFinished( long numberOfPagesVisited, long numberOfCleanedCrashPointers, long durationMillis )
{ {
log.info( String.format( monitor.recoveryCompleted( indexId, descriptor, map(
"%s Schema index recovery completed. Number of pages visited: %d. Number of cleaned crashed pointers: %d. Time " + "Number of pages visited", numberOfPagesVisited,
"spent: %s.", "Number of cleaned crashed pointers", numberOfCleanedCrashPointers,
indexDescription(), numberOfPagesVisited, numberOfCleanedCrashPointers, duration( durationMillis ) ) ); "Time spent", duration( durationMillis ) ) );
} }
}; };
} }


private String indexDescription()
{
return String.format( "[indexId:%d, descriptor:'%s']", indexId, descriptor );
}

private void ensureDirectoryExist() throws IOException private void ensureDirectoryExist() throws IOException
{ {
// This will create the directory on the "normal" file system. // This will create the directory on the "normal" file system.
Expand Down
Expand Up @@ -34,9 +34,9 @@
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.index.SchemaIndexProvider;
import org.neo4j.kernel.api.schema.index.IndexDescriptor; 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.logging.Log;
import org.neo4j.storageengine.api.schema.IndexReader; import org.neo4j.storageengine.api.schema.IndexReader;


import static org.neo4j.helpers.collection.Iterators.asResourceIterator; import static org.neo4j.helpers.collection.Iterators.asResourceIterator;
Expand All @@ -49,10 +49,10 @@ public class NativeSchemaNumberIndexAccessor<KEY extends SchemaNumberKey, VALUE
private final NativeSchemaNumberIndexUpdater<KEY,VALUE> singleUpdater; private final NativeSchemaNumberIndexUpdater<KEY,VALUE> singleUpdater;


NativeSchemaNumberIndexAccessor( PageCache pageCache, FileSystemAbstraction fs, File storeFile, NativeSchemaNumberIndexAccessor( PageCache pageCache, FileSystemAbstraction fs, File storeFile,
Layout<KEY,VALUE> layout, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, Log log, IndexDescriptor descriptor, Layout<KEY,VALUE> layout, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, SchemaIndexProvider.Monitor monitor,
long indexId ) throws IOException IndexDescriptor descriptor, long indexId ) throws IOException
{ {
super( pageCache, fs, storeFile, layout, log, descriptor, indexId ); super( pageCache, fs, storeFile, layout, monitor, descriptor, indexId );
singleUpdater = new NativeSchemaNumberIndexUpdater<>( layout.newKey(), layout.newValue() ); singleUpdater = new NativeSchemaNumberIndexUpdater<>( layout.newKey(), layout.newValue() );
instantiateTree( recoveryCleanupWorkCollector, NO_HEADER_WRITER ); instantiateTree( recoveryCleanupWorkCollector, NO_HEADER_WRITER );
} }
Expand Down
Expand Up @@ -41,8 +41,8 @@
import org.neo4j.kernel.api.index.IndexPopulator; import org.neo4j.kernel.api.index.IndexPopulator;
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.index.SchemaIndexProvider;
import org.neo4j.kernel.api.schema.index.IndexDescriptor; import org.neo4j.kernel.api.schema.index.IndexDescriptor;
import org.neo4j.logging.Log;


import static org.neo4j.index.internal.gbptree.GBPTree.NO_HEADER_WRITER; import static org.neo4j.index.internal.gbptree.GBPTree.NO_HEADER_WRITER;


Expand All @@ -68,10 +68,10 @@ public abstract class NativeSchemaNumberIndexPopulator<KEY extends SchemaNumberK
private byte[] failureBytes; private byte[] failureBytes;
private boolean dropped; private boolean dropped;


NativeSchemaNumberIndexPopulator( PageCache pageCache, FileSystemAbstraction fs, File storeFile, Layout<KEY,VALUE> layout, Log log, NativeSchemaNumberIndexPopulator( PageCache pageCache, FileSystemAbstraction fs, File storeFile, Layout<KEY,VALUE> layout,
IndexDescriptor descriptor, long indexId ) SchemaIndexProvider.Monitor monitor, IndexDescriptor descriptor, long indexId )
{ {
super( pageCache, fs, storeFile, layout, log, descriptor, indexId ); super( pageCache, fs, storeFile, layout, monitor, descriptor, indexId );
this.treeKey = layout.newKey(); this.treeKey = layout.newKey();
this.treeValue = layout.newValue(); this.treeValue = layout.newValue();
this.conflictDetectingValueMerger = new ConflictDetectingValueMerger<>(); this.conflictDetectingValueMerger = new ConflictDetectingValueMerger<>();
Expand Down
Expand Up @@ -35,8 +35,6 @@
import org.neo4j.kernel.api.schema.index.IndexDescriptor; import org.neo4j.kernel.api.schema.index.IndexDescriptor;
import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig;
import org.neo4j.kernel.impl.storemigration.StoreMigrationParticipant; import org.neo4j.kernel.impl.storemigration.StoreMigrationParticipant;
import org.neo4j.logging.Log;
import org.neo4j.logging.LogProvider;


import static org.neo4j.kernel.impl.index.schema.NativeSchemaNumberIndexPopulator.BYTE_FAILED; import static org.neo4j.kernel.impl.index.schema.NativeSchemaNumberIndexPopulator.BYTE_FAILED;
import static org.neo4j.kernel.impl.index.schema.NativeSchemaNumberIndexPopulator.BYTE_ONLINE; import static org.neo4j.kernel.impl.index.schema.NativeSchemaNumberIndexPopulator.BYTE_ONLINE;
Expand All @@ -52,17 +50,18 @@ public class NativeSchemaNumberIndexProvider extends SchemaIndexProvider


private final PageCache pageCache; private final PageCache pageCache;
private final FileSystemAbstraction fs; private final FileSystemAbstraction fs;
private final Log log; private final Monitor monitor;
private final RecoveryCleanupWorkCollector recoveryCleanupWorkCollector; private final RecoveryCleanupWorkCollector recoveryCleanupWorkCollector;
private final boolean readOnly; private final boolean readOnly;


public NativeSchemaNumberIndexProvider( PageCache pageCache, FileSystemAbstraction fs, IndexDirectoryStructure.Factory directoryStructure, public NativeSchemaNumberIndexProvider( PageCache pageCache, FileSystemAbstraction fs,
LogProvider logging, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, boolean readOnly ) IndexDirectoryStructure.Factory directoryStructure, Monitor monitor, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector,
boolean readOnly )
{ {
super( NATIVE_PROVIDER_DESCRIPTOR, 0, directoryStructure ); super( NATIVE_PROVIDER_DESCRIPTOR, 0, directoryStructure );
this.pageCache = pageCache; this.pageCache = pageCache;
this.fs = fs; this.fs = fs;
this.log = logging.getLog( getClass() ); this.monitor = monitor;
this.recoveryCleanupWorkCollector = recoveryCleanupWorkCollector; this.recoveryCleanupWorkCollector = recoveryCleanupWorkCollector;
this.readOnly = readOnly; this.readOnly = readOnly;
} }
Expand All @@ -80,9 +79,9 @@ public IndexPopulator getPopulator( long indexId, IndexDescriptor descriptor, In
{ {
case GENERAL: case GENERAL:
return new NativeNonUniqueSchemaNumberIndexPopulator<>( pageCache, fs, storeFile, new NonUniqueNumberLayout(), samplingConfig, return new NativeNonUniqueSchemaNumberIndexPopulator<>( pageCache, fs, storeFile, new NonUniqueNumberLayout(), samplingConfig,
log, descriptor, indexId ); monitor, descriptor, indexId );
case UNIQUE: case UNIQUE:
return new NativeUniqueSchemaNumberIndexPopulator<>( pageCache, fs, storeFile, new UniqueNumberLayout(), log, descriptor, return new NativeUniqueSchemaNumberIndexPopulator<>( pageCache, fs, storeFile, new UniqueNumberLayout(), monitor, descriptor,
indexId ); indexId );
default: default:
throw new UnsupportedOperationException( "Can not create index populator of type " + descriptor.type() ); throw new UnsupportedOperationException( "Can not create index populator of type " + descriptor.type() );
Expand All @@ -106,7 +105,7 @@ public IndexAccessor getOnlineAccessor( long indexId, IndexDescriptor descriptor
default: default:
throw new UnsupportedOperationException( "Can not create index accessor of type " + descriptor.type() ); throw new UnsupportedOperationException( "Can not create index accessor of type " + descriptor.type() );
} }
return new NativeSchemaNumberIndexAccessor<>( pageCache, fs, storeFile, layout, recoveryCleanupWorkCollector, log, descriptor, return new NativeSchemaNumberIndexAccessor<>( pageCache, fs, storeFile, layout, recoveryCleanupWorkCollector, monitor, descriptor,
indexId ); indexId );
} }


Expand Down Expand Up @@ -158,7 +157,7 @@ public InternalIndexState getInitialState( long indexId, IndexDescriptor descrip
} }
catch ( IOException e ) catch ( IOException e )
{ {
log.error( "Failed to open index:" + indexId + ", requesting re-population.", e ); monitor.failedToOpenIndex( indexId, descriptor, "Requesting re-population.", e );
return InternalIndexState.POPULATING; return InternalIndexState.POPULATING;
} }
} }
Expand Down
Expand Up @@ -25,9 +25,9 @@
import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.io.fs.FileSystemAbstraction;
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.api.index.SchemaIndexProvider;
import org.neo4j.kernel.api.schema.index.IndexDescriptor; import org.neo4j.kernel.api.schema.index.IndexDescriptor;
import org.neo4j.kernel.impl.api.index.sampling.UniqueIndexSampler; import org.neo4j.kernel.impl.api.index.sampling.UniqueIndexSampler;
import org.neo4j.logging.Log;
import org.neo4j.storageengine.api.schema.IndexSample; import org.neo4j.storageengine.api.schema.IndexSample;


/** /**
Expand All @@ -39,9 +39,9 @@ class NativeUniqueSchemaNumberIndexPopulator<KEY extends SchemaNumberKey, VALUE
private final UniqueIndexSampler sampler; private final UniqueIndexSampler sampler;


NativeUniqueSchemaNumberIndexPopulator( PageCache pageCache, FileSystemAbstraction fs, File storeFile, Layout<KEY,VALUE> layout, NativeUniqueSchemaNumberIndexPopulator( PageCache pageCache, FileSystemAbstraction fs, File storeFile, Layout<KEY,VALUE> layout,
Log log, IndexDescriptor descriptor, long indexId ) SchemaIndexProvider.Monitor monitor, IndexDescriptor descriptor, long indexId )
{ {
super( pageCache, fs, storeFile, layout, log, descriptor, indexId ); super( pageCache, fs, storeFile, layout, monitor, descriptor, indexId );
this.sampler = new UniqueIndexSampler(); this.sampler = new UniqueIndexSampler();
} }


Expand Down
Expand Up @@ -45,7 +45,7 @@ public class NativeNonUniqueSchemaNumberIndexPopulatorTest
NativeSchemaNumberIndexPopulator<SchemaNumberKey,SchemaNumberValue> createPopulator( PageCache pageCache, FileSystemAbstraction fs, NativeSchemaNumberIndexPopulator<SchemaNumberKey,SchemaNumberValue> createPopulator( PageCache pageCache, FileSystemAbstraction fs,
File indexFile, Layout<SchemaNumberKey,SchemaNumberValue> layout, IndexSamplingConfig samplingConfig ) File indexFile, Layout<SchemaNumberKey,SchemaNumberValue> layout, IndexSamplingConfig samplingConfig )
{ {
return new NativeNonUniqueSchemaNumberIndexPopulator<>( pageCache, fs, indexFile, layout, samplingConfig, log, indexDescriptor, return new NativeNonUniqueSchemaNumberIndexPopulator<>( pageCache, fs, indexFile, layout, samplingConfig, monitor, indexDescriptor,
indexId ); indexId );
} }


Expand Down
Expand Up @@ -83,7 +83,7 @@ public abstract class NativeSchemaNumberIndexAccessorTest<KEY extends SchemaNumb
@Before @Before
public void setupAccessor() throws IOException public void setupAccessor() throws IOException
{ {
accessor = new NativeSchemaNumberIndexAccessor<>( pageCache, fs, indexFile, layout, IMMEDIATE, log, indexDescriptor, indexId ); accessor = new NativeSchemaNumberIndexAccessor<>( pageCache, fs, indexFile, layout, IMMEDIATE, monitor, indexDescriptor, indexId );
} }


@After @After
Expand Down
Expand Up @@ -35,6 +35,8 @@
import org.neo4j.kernel.api.index.IndexPopulator; import org.neo4j.kernel.api.index.IndexPopulator;
import org.neo4j.kernel.api.index.IndexUpdater; import org.neo4j.kernel.api.index.IndexUpdater;
import org.neo4j.kernel.api.index.InternalIndexState; import org.neo4j.kernel.api.index.InternalIndexState;
import org.neo4j.kernel.api.index.LoggingMonitor;
import org.neo4j.kernel.api.index.SchemaIndexProvider;
import org.neo4j.kernel.api.schema.index.IndexDescriptor; import org.neo4j.kernel.api.schema.index.IndexDescriptor;
import org.neo4j.kernel.api.schema.index.IndexDescriptorFactory; import org.neo4j.kernel.api.schema.index.IndexDescriptorFactory;
import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.configuration.Config;
Expand All @@ -50,7 +52,6 @@
import static org.junit.Assert.assertThat; import static org.junit.Assert.assertThat;
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.index.internal.gbptree.RecoveryCleanupWorkCollector.IMMEDIATE; import static org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector.IMMEDIATE;
import static org.neo4j.kernel.api.index.IndexDirectoryStructure.directoriesByProvider; import static org.neo4j.kernel.api.index.IndexDirectoryStructure.directoriesByProvider;


Expand All @@ -64,6 +65,7 @@ public class NativeSchemaNumberIndexProviderTest
private static final int propId = 1; private static final int propId = 1;
private NativeSchemaNumberIndexProvider provider; private NativeSchemaNumberIndexProvider provider;
private final AssertableLogProvider logging = new AssertableLogProvider(); private final AssertableLogProvider logging = new AssertableLogProvider();
private SchemaIndexProvider.Monitor monitor = new LoggingMonitor( logging.getLog( "test" ) );


@Before @Before
public void setup() throws IOException public void setup() throws IOException
Expand Down Expand Up @@ -387,12 +389,12 @@ private IndexDescriptor descriptorUnique()


private NativeSchemaNumberIndexProvider newProvider() private NativeSchemaNumberIndexProvider newProvider()
{ {
return new NativeSchemaNumberIndexProvider( pageCache(), fs(), directoriesByProvider( baseDir() ), logging, IMMEDIATE, false ); return new NativeSchemaNumberIndexProvider( pageCache(), fs(), directoriesByProvider( baseDir() ), monitor, IMMEDIATE, false );
} }


private NativeSchemaNumberIndexProvider newReadOnlyProvider() private NativeSchemaNumberIndexProvider newReadOnlyProvider()
{ {
return new NativeSchemaNumberIndexProvider( pageCache(), fs(), directoriesByProvider( baseDir() ), logging, IMMEDIATE, true ); return new NativeSchemaNumberIndexProvider( pageCache(), fs(), directoriesByProvider( baseDir() ), monitor, IMMEDIATE, true );
} }


private PageCache pageCache() private PageCache pageCache()
Expand Down
Expand Up @@ -47,7 +47,7 @@ NativeSchemaNumberIndexPopulator<SchemaNumberKey,SchemaNumberValue> createPopula
PageCache pageCache, FileSystemAbstraction fs, File indexFile, PageCache pageCache, FileSystemAbstraction fs, File indexFile,
Layout<SchemaNumberKey,SchemaNumberValue> layout, IndexSamplingConfig samplingConfig ) Layout<SchemaNumberKey,SchemaNumberValue> layout, IndexSamplingConfig samplingConfig )
{ {
return new NativeUniqueSchemaNumberIndexPopulator<>( pageCache, fs, indexFile, layout, log, indexDescriptor, indexId ); return new NativeUniqueSchemaNumberIndexPopulator<>( pageCache, fs, indexFile, layout, monitor, indexDescriptor, indexId );
} }


@Override @Override
Expand Down

0 comments on commit c9502c9

Please sign in to comment.