@Override public void consume(Collection<DataEvent<ZoieIndexable<VALUE>, V>> events) throws ZoieException { // updates the in memory status before and after the work synchronized (_optimizeMonitor) { try { _idxMgr.setDiskIndexerStatus(Status.Working); OptimizeType optType = _optScheduler.getScheduledOptimizeType(); _idxMgr.setPartialExpunge(optType == OptimizeType.PARTIAL); try { System.out.println("DiskLuceneIndexDataLoader:consume(): disk consume"); super.consume(events); } finally { _optScheduler.finished(); _idxMgr.setPartialExpunge(false); } if (optType == OptimizeType.FULL) { try { expungeDeletes(); } catch (IOException ioe) { ZoieHealth.setFatal(); throw new ZoieException(ioe.getMessage(), ioe); } finally { _optScheduler.finished(); } } } finally { _idxMgr.setDiskIndexerStatus(Status.Sleep); } } }
@Override public void loadFromIndex(RAMSearchIndex<R, V> ramIndex) throws ZoieException { synchronized (_optimizeMonitor) { try { _idxMgr.setDiskIndexerStatus(Status.Working); OptimizeType optType = _optScheduler.getScheduledOptimizeType(); _idxMgr.setPartialExpunge(optType == OptimizeType.PARTIAL); try { super.loadFromIndex(ramIndex); } finally { _optScheduler.finished(); _idxMgr.setPartialExpunge(false); } if (optType == OptimizeType.FULL) { try { expungeDeletes(); } catch (IOException ioe) { ZoieHealth.setFatal(); throw new ZoieException(ioe.getMessage(), ioe); } finally { _optScheduler.finished(); } } } finally { _idxMgr.setDiskIndexerStatus(Status.Sleep); } } }