コード例 #1
0
            internal virtual void AwaitPopulationStarted(GraphDatabaseService db)
            {
                ControlledIndexProvider provider = ( ControlledIndexProvider )PerDbIndexProvider[db];

                if (provider != null)
                {
                    provider.Latch.waitForAllToStart();
                }
            }
コード例 #2
0
            internal virtual void TriggerFinish(GraphDatabaseService db)
            {
                ControlledIndexProvider provider = ( ControlledIndexProvider )PerDbIndexProvider[db];

                if (provider != null)
                {
                    provider.Latch.finish();
                }
            }
コード例 #3
0
            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);
                }
            }