public BackgroundObserverMBean getMBean(){ return checkNotNull(backgroundObserver).getMBean(); }
public BackgroundObserverMBean getMBean(){ return checkNotNull(backgroundObserver).getMBean(); }
private void registerObserver(BundleContext bundleContext, Map<String, ?> config) { boolean enableAsyncIndexOpen = PropertiesUtil.toBoolean(config.get(PROP_ASYNC_INDEX_OPEN), true); Observer observer = indexProvider; if (enableAsyncIndexOpen) { backgroundObserver = new BackgroundObserver(indexProvider, getExecutorService(), 5); observer = backgroundObserver; oakRegs.add(registerMBean(whiteboard, BackgroundObserverMBean.class, backgroundObserver.getMBean(), BackgroundObserverMBean.TYPE, "LuceneIndexConfigObserver queue stats")); log.info("Registering the LuceneIndexProvider as a BackgroundObserver"); } regs.add(bundleContext.registerService(Observer.class.getName(), observer, null)); }
private void registerObserver(BundleContext bundleContext, Map<String, ?> config) { boolean enableAsyncIndexOpen = PropertiesUtil.toBoolean(config.get(PROP_ASYNC_INDEX_OPEN), true); Observer observer = indexProvider; if (enableAsyncIndexOpen) { backgroundObserver = new BackgroundObserver(indexProvider, getExecutorService(), 5); observer = backgroundObserver; oakRegs.add(registerMBean(whiteboard, BackgroundObserverMBean.class, backgroundObserver.getMBean(), BackgroundObserverMBean.TYPE, "LuceneIndexConfigObserver queue stats")); log.info("Registering the LuceneIndexProvider as a BackgroundObserver"); } regs.add(bundleContext.registerService(Observer.class.getName(), observer, null)); }
private void registerObserver(Observer observer, Configuration config) { boolean enableAsyncObserver = config.enableAsyncObserver(); int queueSize = config.observerQueueSize(); if (enableAsyncObserver){ BackgroundObserver bgObserver = new BackgroundObserver(observer, executor, queueSize); oakRegs.add(registerMBean(whiteboard, BackgroundObserverMBean.class, bgObserver.getMBean(), BackgroundObserverMBean.TYPE, "Secondary NodeStore observer stats")); observer = bgObserver; log.info("Configuring the observer for secondary NodeStore as " + "Background Observer with queue size {}", queueSize); } //Ensure that our observer comes first in processing Hashtable<String, Object> props = new Hashtable<>(); props.put(Constants.SERVICE_RANKING, 10000); regs.add(bundleContext.registerService(Observer.class.getName(), observer, props)); }
private void registerObserver(Observer observer, Configuration config) { boolean enableAsyncObserver = config.enableAsyncObserver(); int queueSize = config.observerQueueSize(); if (enableAsyncObserver){ BackgroundObserver bgObserver = new BackgroundObserver(observer, executor, queueSize); oakRegs.add(registerMBean(whiteboard, BackgroundObserverMBean.class, bgObserver.getMBean(), BackgroundObserverMBean.TYPE, "Secondary NodeStore observer stats")); observer = bgObserver; log.info("Configuring the observer for secondary NodeStore as " + "Background Observer with queue size {}", queueSize); } //Ensure that our observer comes first in processing Hashtable<String, Object> props = new Hashtable<>(); props.put(Constants.SERVICE_RANKING, 10000); regs.add(bundleContext.registerService(Observer.class.getName(), observer, props)); }
private void registerLocalIndexObserver(BundleContext bundleContext, IndexTracker tracker, Map<String, ?> config) { if (!hybridIndex){ log.info("Hybrid indexing feature disabled"); return; } int queueSize = PropertiesUtil.toInteger(config.get(PROP_HYBRID_QUEUE_SIZE), PROP_HYBRID_QUEUE_SIZE_DEFAULT); documentQueue = new DocumentQueue(queueSize, tracker, getExecutorService(), statisticsProvider); LocalIndexObserver localIndexObserver = new LocalIndexObserver(documentQueue, statisticsProvider); regs.add(bundleContext.registerService(Observer.class.getName(), localIndexObserver, null)); int observerQueueSize = 1000; int builderMaxSize = 5000; regs.add(bundleContext.registerService(JournalPropertyService.class.getName(), new LuceneJournalPropertyService(builderMaxSize), null)); ExternalObserverBuilder builder = new ExternalObserverBuilder(documentQueue, tracker, statisticsProvider, getExecutorService(), observerQueueSize); log.info("Configured JournalPropertyBuilder with max size {} and backed by BackgroundObserver " + "with queue size {}", builderMaxSize, observerQueueSize); Observer observer = builder.build(); externalIndexObserver = builder.getBackgroundObserver(); regs.add(bundleContext.registerService(Observer.class.getName(), observer, null)); oakRegs.add(registerMBean(whiteboard, BackgroundObserverMBean.class, externalIndexObserver.getMBean(), BackgroundObserverMBean.TYPE, "LuceneExternalIndexObserver queue stats")); log.info("Hybrid indexing enabled for configured indexes with queue size of {}", queueSize); }
private void registerLocalIndexObserver(BundleContext bundleContext, IndexTracker tracker, Map<String, ?> config) { if (!hybridIndex){ log.info("Hybrid indexing feature disabled"); return; } int queueSize = PropertiesUtil.toInteger(config.get(PROP_HYBRID_QUEUE_SIZE), PROP_HYBRID_QUEUE_SIZE_DEFAULT); documentQueue = new DocumentQueue(queueSize, tracker, getExecutorService(), statisticsProvider); LocalIndexObserver localIndexObserver = new LocalIndexObserver(documentQueue, statisticsProvider); regs.add(bundleContext.registerService(Observer.class.getName(), localIndexObserver, null)); int observerQueueSize = 1000; int builderMaxSize = 5000; regs.add(bundleContext.registerService(JournalPropertyService.class.getName(), new LuceneJournalPropertyService(builderMaxSize), null)); ExternalObserverBuilder builder = new ExternalObserverBuilder(documentQueue, tracker, statisticsProvider, getExecutorService(), observerQueueSize); log.info("Configured JournalPropertyBuilder with max size {} and backed by BackgroundObserver " + "with queue size {}", builderMaxSize, observerQueueSize); Observer observer = builder.build(); externalIndexObserver = builder.getBackgroundObserver(); regs.add(bundleContext.registerService(Observer.class.getName(), observer, null)); oakRegs.add(registerMBean(whiteboard, BackgroundObserverMBean.class, externalIndexObserver.getMBean(), BackgroundObserverMBean.TYPE, "LuceneExternalIndexObserver queue stats")); log.info("Hybrid indexing enabled for configured indexes with queue size of {}", queueSize); }
while (backgroundObserver.getMBean().getQueueSize()> 0 && ++sleepCount < 100) { TimeUnit.MILLISECONDS.sleep(100);
tracker.getListenerMBean(), "EventListener", name, attrs), registerMBean(whiteboard, BackgroundObserverMBean.class, filteringObserver.getBackgroundObserver().getMBean(), BackgroundObserverMBean.TYPE, name, attrs), registerMBean(whiteboard, ChangeProcessorMBean.class, getMBean(), ChangeProcessorMBean.TYPE, name, attrs),
tracker.getListenerMBean(), "EventListener", name, attrs), registerMBean(whiteboard, BackgroundObserverMBean.class, filteringObserver.getBackgroundObserver().getMBean(), BackgroundObserverMBean.TYPE, name, attrs), registerMBean(whiteboard, ChangeProcessorMBean.class, getMBean(), ChangeProcessorMBean.TYPE, name, attrs),
tracker.getListenerMBean(), "EventListener", name, attrs), registerMBean(whiteboard, BackgroundObserverMBean.class, filteringObserver.getBackgroundObserver().getMBean(), BackgroundObserverMBean.TYPE, name, attrs), registerMBean(whiteboard, ChangeProcessorMBean.class, getMBean(), ChangeProcessorMBean.TYPE, name, attrs),
if (testPattern.expectedQueueSizeAtStart >= 0) { assertEquals("loopCnt="+loopCnt+", queue size mis-match at start", testPattern.expectedQueueSizeAtStart, filteringObserver.getBackgroundObserver().getMBean().getQueueSize()); if (testPattern.expectedQueueSizeAtEnd >= 0) { assertEquals("loopCnt="+loopCnt+", queue size mis-match at end", testPattern.expectedQueueSizeAtEnd, filteringObserver.getBackgroundObserver().getMBean().getQueueSize());