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(); JobScheduler scheduler = getJobScheduler();
TokenNameLookup tokenNameLookup = new SilentTokenNameLookup( ktx.tokenRead() ); TokenNameLookup tokenNameLookup = new SilentTokenNameLookup( ktx.tokenRead() );


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


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


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


public void triggerIndexSampling( IndexSamplingMode mode ) 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 ); samplingController.sampleIndexes( mode );
} }


public void triggerIndexSampling( SchemaDescriptor descriptor, IndexSamplingMode mode ) public void triggerIndexSampling( SchemaDescriptor descriptor, IndexSamplingMode mode )
throws IndexNotFoundKernelException throws IndexNotFoundKernelException
{ {
String description = descriptor.userDescription( tokenNameLookup ); 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 ); samplingController.sampleIndex( indexMapRef.getIndexId( descriptor ), mode );
} }


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


private IndexPopulationJob newIndexPopulationJob( EntityType type, boolean verifyBeforeFlipping ) 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 ); 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(); List<IndexLogRecord> logRecords = indexStateEntry.getValue();
for ( IndexLogRecord logRecord : logRecords ) 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 ) 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() ) if ( anyDeprecated.getValue() )
{ {
// todo use userLog here userLog.info( joiner.toString() );
log.info( joiner.toString() );
} }
} }


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


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


integrityValidator = new IntegrityValidator( neoStores, indexingService ); 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 ) private void repopulateAllIndexes( NativeLabelScanStore labelIndex )
{ {
LogProvider logProvider = logService.getInternalLogProvider(); LogProvider logProvider = logService.getInternalLogProvider();
LogProvider userLogProvider = logService.getUserLogProvider();
IndexStoreView indexStoreView = new DynamicIndexStoreView( storeIndexStoreView, labelIndex, NO_LOCK_SERVICE, neoStores, logProvider ); IndexStoreView indexStoreView = new DynamicIndexStoreView( storeIndexStoreView, labelIndex, NO_LOCK_SERVICE, neoStores, logProvider );
IndexingService indexingService = life.add( IndexingServiceFactory.createIndexingService( config, jobScheduler, indexProviderMap, indexStoreView, IndexingService indexingService = IndexingServiceFactory
new NonTransactionalTokenNameLookup( tokenHolders ), emptyList(), logProvider, NO_MONITOR, new DatabaseSchemaState( logProvider ) ) ); .createIndexingService( config, jobScheduler, indexProviderMap, indexStoreView, new NonTransactionalTokenNameLookup( tokenHolders ),
emptyList(), logProvider, userLogProvider, NO_MONITOR, new DatabaseSchemaState( logProvider ) );
life.add( indexingService );
try try
{ {
StoreIndexDescriptor[] descriptors = getIndexesNeedingPopulation(); StoreIndexDescriptor[] descriptors = getIndexesNeedingPopulation();
Expand Down

0 comments on commit eb6b88d

Please sign in to comment.