internal virtual void AwaitPopulationStarted(GraphDatabaseService db) { ControlledIndexProvider provider = ( ControlledIndexProvider )PerDbIndexProvider[db]; if (provider != null) { provider.Latch.waitForAllToStart(); } }
internal virtual void TriggerFinish(GraphDatabaseService db) { ControlledIndexProvider provider = ( ControlledIndexProvider )PerDbIndexProvider[db]; if (provider != null) { provider.Latch.finish(); } }
public override Lifecycle NewInstance(KernelContext context, SchemaIndexHaIT.IndexProviderDependencies deps) { PageCache pageCache = deps.PageCache(); File databaseDirectory = context.Directory(); DefaultFileSystemAbstraction fs = FileSystemRule.get(); IndexProvider.Monitor monitor = IndexProvider.Monitor_Fields.EMPTY; Config config = deps.Config(); OperationalMode operationalMode = context.DatabaseInfo().OperationalMode; RecoveryCleanupWorkCollector recoveryCleanupWorkCollector = deps.RecoveryCleanupWorkCollector(); FusionIndexProvider fusionIndexProvider = NativeLuceneFusionIndexProviderFactory20.create(pageCache, databaseDirectory, fs, monitor, config, operationalMode, recoveryCleanupWorkCollector); if (InjectLatchPredicate.test(deps.Db())) { ControlledIndexProvider provider = new ControlledIndexProvider(fusionIndexProvider); PerDbIndexProvider[deps.Db()] = provider; return(provider); } else { return(fusionIndexProvider); } }