protected WorkspaceHolder createWorkspaceHolder(String indexName, Properties cfg, WorkerBuildContext buildContext) { WorkspaceHolder backend = new WorkspaceHolder(); backend.initialize( cfg, buildContext, this ); return backend; }
@Override public void performStreamOperation(LuceneWork singleOperation, IndexingMonitor monitor, boolean forceAsync) { //TODO implement async workspaceHolder.applyStreamWork( singleOperation, monitor ); }
@Override public void flushAndReleaseResources() { workspaceHolder.flushAndReleaseResources(); }
@Override protected WorkspaceHolder createWorkspaceHolder(String indexName, Properties cfg, WorkerBuildContext buildContext) { String backend = cfg.getProperty( Environment.WORKER_BACKEND ); if ( backend != null ) { log.ignoringBackendOptionForIndex( indexName, "near-real-time" ); } WorkspaceHolder backendQueueProcessor = new WorkspaceHolder(); nrtWorkspace = new NRTWorkspaceImpl( this, buildContext, cfg ); backendQueueProcessor.setCustomWorkspace( nrtWorkspace ); backendQueueProcessor.initialize( cfg, buildContext, this ); return backendQueueProcessor; }
/** * This essentially kills the backend: needed to release the IndexWriter lock * so that the CheckIndex task can be run. * You'll need to ignore further issues if indexing is attempted, and even shutdown * might not be graceful (the shutdown is not designed to be recoverable). */ private static void stopBackend(DirectoryBasedIndexManager directoryBasedIndexManager) { WorkspaceHolder backendQueueProcessor = (WorkspaceHolder) directoryBasedIndexManager.getWorkspaceHolder(); backendQueueProcessor.getIndexResources().shutdown(); }
@Override public void applyWork(List<LuceneWork> workList, IndexingMonitor monitor, IndexManager indexManager) { log.applyingChangeListLocally(workList); workspaceHolder.applyWork(workList, monitor); }
private void triggerWorkspaceReconfiguration() { if ( boundSearchIntegrator != null ) { //otherwise it's too early workspaceHolder.indexMappingChanged(); } }
@Override public void flushAndClose(IndexingBackend replacement) { workspaceHolder.close(); log.debug("Downgraded from Master role: Index lock released."); }
public Lock getDirectoryModificationLock() { return workspaceHolder.getExclusiveWriteLock(); }
private void assertExclusiveIsEnabled(IndexManagerHolder allIndexesManager, String indexName, boolean expectExclusive) { DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) allIndexesManager.getIndexManager( indexName ); WorkspaceHolder workspaceHolder = indexManager.getWorkspaceHolder(); AbstractWorkspaceImpl workspace = workspaceHolder.getIndexResources().getWorkspace(); if ( expectExclusive ) { assertEquals( ExclusiveIndexWorkspaceImpl.class, workspace.getClass() ); } else { assertEquals( SharedIndexWorkspaceImpl.class, workspace.getClass() ); } }
@Override protected WorkspaceHolder createWorkspaceHolder(String indexName, Properties cfg, WorkerBuildContext buildContext) { String backend = cfg.getProperty( Environment.WORKER_BACKEND ); if ( backend != null ) { log.ignoringBackendOptionForIndex( indexName, "near-real-time" ); } WorkspaceHolder backendQueueProcessor = new WorkspaceHolder(); nrtWorkspace = new NRTWorkspaceImpl( this, buildContext, cfg ); backendQueueProcessor.setCustomWorkspace( nrtWorkspace ); backendQueueProcessor.initialize( cfg, buildContext, this ); return backendQueueProcessor; }
@Override public void applyWork(List<LuceneWork> workList, IndexingMonitor monitor, IndexManager indexManager) { log.applyingChangeListLocally(workList); workspaceHolder.applyWork(workList, monitor); }
private void triggerWorkspaceReconfiguration() { if ( boundSearchIntegrator != null ) { //otherwise it's too early workspaceHolder.indexMappingChanged(); } }
@Override public void flushAndClose(IndexingBackend replacement) { workspaceHolder.close(); log.debug("Downgraded from Master role: Index lock released."); }
public Lock getDirectoryModificationLock() { return workspaceHolder.getExclusiveWriteLock(); }
protected WorkspaceHolder createWorkspaceHolder(String indexName, Properties cfg, WorkerBuildContext buildContext) { WorkspaceHolder backend = new WorkspaceHolder(); backend.initialize( cfg, buildContext, this ); return backend; }
public AbstractWorkspaceImpl extractWorkspace(IndexedTypeIdentifier indexedType) { DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) extractIndexManager( indexedType ); WorkspaceHolder backend = indexManager.getWorkspaceHolder(); return backend.getIndexResources().getWorkspace(); }
@Override public void performOperations(List<LuceneWork> workList, IndexingMonitor monitor) { if ( log.isDebugEnabled() ) { log.debug( "Applying work via workspace holder of type " + workspaceHolder.getClass() ); } workspaceHolder.applyWork( workList, monitor ); }
@Override public void performStreamOperation(LuceneWork singleOperation, IndexingMonitor monitor, boolean forceAsync) { //TODO implement async workspaceHolder.applyStreamWork( singleOperation, monitor ); }
@Override public void flushAndReleaseResources() { workspaceHolder.flushAndReleaseResources(); }