Skip to content

Commit

Permalink
Use UserLog for index provider deprecation warnings from IndexingService
Browse files Browse the repository at this point in the history
Deprecation warning will show up in both neo4j.log and debug.log
  • Loading branch information
burqen committed Oct 11, 2018
1 parent 20b0f1e commit eb6b88d
Show file tree
Hide file tree
Showing 9 changed files with 99 additions and 80 deletions.
Expand Up @@ -313,9 +313,10 @@ private void launchCustomIndexPopulation( Map<String,Integer> labelNameIdMap, in
JobScheduler scheduler = getJobScheduler();
TokenNameLookup tokenNameLookup = new SilentTokenNameLookup( ktx.tokenRead() );

NullLogProvider nullLogProvider = NullLogProvider.getInstance();
indexService = IndexingServiceFactory.createIndexingService( Config.defaults(), scheduler,
providerMap, storeView, tokenNameLookup, getIndexRules( neoStores ),
NullLogProvider.getInstance(), IndexingService.NO_MONITOR, getSchemaState() );
nullLogProvider, nullLogProvider, IndexingService.NO_MONITOR, getSchemaState() );
indexService.start();

rules = createIndexRules( labelNameIdMap, propertyId );
Expand Down
Expand Up @@ -176,6 +176,7 @@ public class NeoStoreDataSource extends LifecycleAdapter
private final LogService logService;
private final AutoIndexing autoIndexing;
private final LogProvider logProvider;
private final LogProvider userLogProvider;
private final DependencyResolver dependencyResolver;
private final TokenNameLookup tokenNameLookup;
private final TokenHolders tokenHolders;
Expand Down Expand Up @@ -244,6 +245,7 @@ public NeoStoreDataSource( DatabaseCreationContext context )
this.explicitIndexProvider = context.getExplicitIndexProvider();
this.storeCopyCheckPointMutex = context.getStoreCopyCheckPointMutex();
this.logProvider = context.getLogService().getInternalLogProvider();
this.userLogProvider = context.getLogService().getUserLogProvider();
this.tokenHolders = context.getTokenHolders();
this.locks = context.getLocks();
this.statementLocksFactory = context.getStatementLocksFactory();
Expand Down Expand Up @@ -500,7 +502,7 @@ private StorageEngine buildStorageEngine(
OperationalMode operationalMode, VersionContextSupplier versionContextSupplier )
{
RecordStorageEngine storageEngine =
new RecordStorageEngine( databaseLayout, config, pageCache, fs, logProvider, tokenHolders,
new RecordStorageEngine( databaseLayout, config, pageCache, fs, logProvider, userLogProvider, tokenHolders,
schemaState, constraintSemantics, scheduler,
tokenNameLookup, lockService, indexProviderMap, indexingServiceMonitor, databaseHealth,
explicitIndexProviderLookup, indexConfigStore,
Expand Down
Expand Up @@ -109,10 +109,11 @@ public class IndexingService extends LifecycleAdapter implements IndexingUpdateS
private final IndexProviderMap providerMap;
private final IndexMapReference indexMapRef;
private final Iterable<StoreIndexDescriptor> indexDescriptors;
private final Log log;
private final Log internalLog;
private final Log userLog;
private final TokenNameLookup tokenNameLookup;
private final MultiPopulatorFactory multiPopulatorFactory;
private final LogProvider logProvider;
private final LogProvider internalLogProvider;
private final Monitor monitor;
private final SchemaState schemaState;
private final IndexPopulationJobController populationJobController;
Expand Down Expand Up @@ -181,7 +182,8 @@ public void awaitingPopulationOfRecoveredIndex( StoreIndexDescriptor descriptor
JobScheduler scheduler,
SchemaState schemaState,
MultiPopulatorFactory multiPopulatorFactory,
LogProvider logProvider,
LogProvider internalLogProvider,
LogProvider userLogProvider,
Monitor monitor )
{
this.indexProxyCreator = indexProxyCreator;
Expand All @@ -193,10 +195,11 @@ public void awaitingPopulationOfRecoveredIndex( StoreIndexDescriptor descriptor
this.tokenNameLookup = tokenNameLookup;
this.schemaState = schemaState;
this.multiPopulatorFactory = multiPopulatorFactory;
this.logProvider = logProvider;
this.internalLogProvider = internalLogProvider;
this.monitor = monitor;
this.populationJobController = new IndexPopulationJobController( scheduler );
this.log = logProvider.getLog( getClass() );
this.internalLog = internalLogProvider.getLog( getClass() );
this.userLog = userLogProvider.getLog( getClass() );
}

/**
Expand Down Expand Up @@ -224,7 +227,7 @@ public void init()
indexProviders.computeIfAbsent( providerDescriptor, indexProviderDescriptor -> new ArrayList<>() )
.add( indexLogRecord );

log.debug( indexStateInfo( "init", initialState, indexDescriptor ) );
internalLog.debug( indexStateInfo( "init", initialState, indexDescriptor ) );
switch ( initialState )
{
case ONLINE:
Expand Down Expand Up @@ -293,7 +296,7 @@ public void start()
.add( indexLogRecord );
indexProviders.computeIfAbsent( providerDescriptor, indexProviderDescriptor -> new ArrayList<>() )
.add( indexLogRecord );
log.debug( indexStateInfo( "start", state, descriptor ) );
internalLog.debug( indexStateInfo( "start", state, descriptor ) );
switch ( state )
{
case ONLINE:
Expand Down Expand Up @@ -611,15 +614,15 @@ else if ( index != null )

public void triggerIndexSampling( IndexSamplingMode mode )
{
log.info( "Manual trigger for sampling all indexes [" + mode + "]" );
internalLog.info( "Manual trigger for sampling all indexes [" + mode + "]" );
samplingController.sampleIndexes( mode );
}

public void triggerIndexSampling( SchemaDescriptor descriptor, IndexSamplingMode mode )
throws IndexNotFoundKernelException
{
String description = descriptor.userDescription( tokenNameLookup );
log.info( "Manual trigger for sampling index " + description + " [" + mode + "]" );
internalLog.info( "Manual trigger for sampling index " + description + " [" + mode + "]" );
samplingController.sampleIndex( indexMapRef.getIndexId( descriptor ), mode );
}

Expand All @@ -643,7 +646,7 @@ public void activateIndex( long indexId ) throws
IndexProxy index = getIndexProxy( indexId );
index.awaitStoreScanCompleted();
index.activate();
log.info( "Constraint %s is %s.", index.getDescriptor(), ONLINE.name() );
internalLog.info( "Constraint %s is %s.", index.getDescriptor(), ONLINE.name() );
}
}
catch ( InterruptedException e )
Expand Down Expand Up @@ -716,7 +719,7 @@ private void closeAllIndexes()
}
catch ( Exception e )
{
log.error( "Unable to close index", e );
internalLog.error( "Unable to close index", e );
}
}
// Effectively clearing it
Expand Down Expand Up @@ -747,7 +750,7 @@ public ResourceIterator<File> snapshotIndexFiles() throws IOException

private IndexPopulationJob newIndexPopulationJob( EntityType type, boolean verifyBeforeFlipping )
{
MultipleIndexPopulator multiPopulator = multiPopulatorFactory.create( storeView, logProvider, type, schemaState );
MultipleIndexPopulator multiPopulator = multiPopulatorFactory.create( storeView, internalLogProvider, type, schemaState );
return new IndexPopulationJob( multiPopulator, monitor, verifyBeforeFlipping );
}

Expand Down Expand Up @@ -785,10 +788,10 @@ private void logIndexStateSummary( String method, Map<InternalIndexState,List<In
List<IndexLogRecord> logRecords = indexStateEntry.getValue();
for ( IndexLogRecord logRecord : logRecords )
{
log.info( indexStateInfo( method, state, logRecord.getDescriptor() ) );
internalLog.info( indexStateInfo( method, state, logRecord.getDescriptor() ) );
}
}
log.info( format( "IndexingService.%s: indexes not specifically mentioned above are %s", method, mostPopularState ) );
internalLog.info( format( "IndexingService.%s: indexes not specifically mentioned above are %s", method, mostPopularState ) );
}

private void logIndexProviderSummary( String method, Map<IndexProviderDescriptor,List<IndexLogRecord>> indexProviders )
Expand All @@ -810,8 +813,7 @@ private void logIndexProviderSummary( String method, Map<IndexProviderDescriptor
} );
if ( anyDeprecated.getValue() )
{
// todo use userLog here
log.info( joiner.toString() );
userLog.info( joiner.toString() );
}
}

Expand Down
Expand Up @@ -44,21 +44,22 @@ public static IndexingService createIndexingService( Config config,
IndexStoreView storeView,
TokenNameLookup tokenNameLookup,
Iterable<StoreIndexDescriptor> indexRules,
LogProvider logProvider,
LogProvider internalLogProvider,
LogProvider userLogProvider,
IndexingService.Monitor monitor,
SchemaState schemaState )
{
IndexSamplingConfig samplingConfig = new IndexSamplingConfig( config );
MultiPopulatorFactory multiPopulatorFactory = MultiPopulatorFactory.forConfig( config );
IndexMapReference indexMapRef = new IndexMapReference();
IndexSamplingControllerFactory factory =
new IndexSamplingControllerFactory( samplingConfig, storeView, scheduler, tokenNameLookup, logProvider );
new IndexSamplingControllerFactory( samplingConfig, storeView, scheduler, tokenNameLookup, internalLogProvider );
IndexSamplingController indexSamplingController = factory.create( indexMapRef );
IndexProxyCreator proxySetup =
new IndexProxyCreator( samplingConfig, storeView, providerMap, tokenNameLookup, logProvider );
new IndexProxyCreator( samplingConfig, storeView, providerMap, tokenNameLookup, internalLogProvider );

return new IndexingService( proxySetup, providerMap, indexMapRef, storeView, indexRules,
indexSamplingController, tokenNameLookup, scheduler, schemaState,
multiPopulatorFactory, logProvider, monitor );
multiPopulatorFactory, internalLogProvider, userLogProvider, monitor );
}
}
Expand Up @@ -152,6 +152,7 @@ public RecordStorageEngine(
PageCache pageCache,
FileSystemAbstraction fs,
LogProvider logProvider,
LogProvider userLogProvider,
TokenHolders tokenHolders,
SchemaState schemaState,
ConstraintSemantics constraintSemantics,
Expand Down Expand Up @@ -204,7 +205,7 @@ public RecordStorageEngine(
this.indexProviderMap = indexProviderMap;
indexingService = IndexingServiceFactory.createIndexingService( config, scheduler, indexProviderMap,
indexStoreView, tokenNameLookup,
Iterators.asList( schemaStorage.indexesGetAll() ), logProvider,
Iterators.asList( schemaStorage.indexesGetAll() ), logProvider, userLogProvider,
indexingServiceMonitor, schemaState );

integrityValidator = new IntegrityValidator( neoStores, indexingService );
Expand Down
Expand Up @@ -502,9 +502,12 @@ private IndexReference createIndex( int labelId, int[] propertyKeyIds, Optional<
private void repopulateAllIndexes( NativeLabelScanStore labelIndex )
{
LogProvider logProvider = logService.getInternalLogProvider();
LogProvider userLogProvider = logService.getUserLogProvider();
IndexStoreView indexStoreView = new DynamicIndexStoreView( storeIndexStoreView, labelIndex, NO_LOCK_SERVICE, neoStores, logProvider );
IndexingService indexingService = life.add( IndexingServiceFactory.createIndexingService( config, jobScheduler, indexProviderMap, indexStoreView,
new NonTransactionalTokenNameLookup( tokenHolders ), emptyList(), logProvider, NO_MONITOR, new DatabaseSchemaState( logProvider ) ) );
IndexingService indexingService = IndexingServiceFactory
.createIndexingService( config, jobScheduler, indexProviderMap, indexStoreView, new NonTransactionalTokenNameLookup( tokenHolders ),
emptyList(), logProvider, userLogProvider, NO_MONITOR, new DatabaseSchemaState( logProvider ) );
life.add( indexingService );
try
{
StoreIndexDescriptor[] descriptors = getIndexesNeedingPopulation();
Expand Down

0 comments on commit eb6b88d

Please sign in to comment.