Examples of IndexSearcherClosable


Examples of org.apache.blur.server.IndexSearcherClosable

    // _lastMemoryCheck = System.currentTimeMillis();
    // }
  }

  public long getSegmentCount() throws IOException {
    IndexSearcherClosable indexSearcherClosable = getIndexSearcher();
    try {
      IndexReader indexReader = indexSearcherClosable.getIndexReader();
      IndexReaderContext context = indexReader.getContext();
      return context.leaves().size();
    } finally {
      indexSearcherClosable.close();
    }
  }
View Full Code Here

Examples of org.apache.blur.server.IndexSearcherClosable

      }

      @Override
      public void process(IndexAction indexAction) throws IOException {
        final DirectoryReader reader = DirectoryReader.open(mainDirectory);
        IndexSearcherClosable searcherClosable = new IndexSearcherClosable(reader, null) {

          @Override
          public Directory getDirectory() {
            return mainDirectory;
          }
View Full Code Here

Examples of org.apache.blur.server.IndexSearcherClosable

      _indexRefreshReadLock.unlock();
    }
    if (indexReader instanceof ExitableReader) {
      ((ExitableReader) indexReader).reset();
    }
    return new IndexSearcherClosable(indexReader, _searchThreadPool) {

      private boolean _closed;

      @Override
      public Directory getDirectory() {
View Full Code Here

Examples of org.apache.blur.server.IndexSearcherClosable

    _writeLock.lock();
    _writesWaiting.decrementAndGet();
    indexAction.setWritesWaiting(_writesWaiting);
    waitUntilNotNull(_writer);
    BlurIndexWriter writer = _writer.get();
    IndexSearcherClosable indexSearcher = null;
    try {
      indexSearcher = getIndexSearcher();
      indexAction.performMutate(indexSearcher, writer);
      indexAction.doPreCommit(indexSearcher, writer);
      commit();
      indexAction.doPostCommit(writer);
    } catch (Exception e) {
      indexAction.doPreRollback(writer);
      writer.rollback();
      openWriter();
      indexAction.doPostRollback(writer);
      throw new IOException("Unknown error during mutation", e);
    } finally {
      if (indexSearcher != null) {
        indexSearcher.close();
      }
      _writeLock.unlock();
    }
  }
View Full Code Here

Examples of org.apache.blur.server.IndexSearcherClosable

    reader = commitAndReopen(reader, writer);
    assertEquals(2, reader.numDocs());
  }

  private IndexSearcherClosable getSearcher(DirectoryReader reader, final Directory directory) {
    return new IndexSearcherClosable(reader, null) {

      @Override
      public Directory getDirectory() {
        return directory;
      }
View Full Code Here

Examples of org.apache.blur.server.IndexSearcherClosable

    }
    _warmupExecutor.submit(new Runnable() {
      @Override
      public void run() {
        try {
          final IndexSearcherClosable searcher = index.getIndexSearcher();
          IndexReader reader = searcher.getIndexReader();
          _warmup.warmBlurIndex(table, shard, reader, index.isClosed(), new ReleaseReader() {
            @Override
            public void release() throws IOException {
              // this will allow for closing of index
              searcher.close();
            }
          }, _pauseWarmup);
        } catch (Exception e) {
          LOG.error("Unknown error while trying to warmup index [" + index + "]", e);
        }
View Full Code Here

Examples of org.apache.blur.server.IndexSearcherClosable

    ReadInterceptor interceptor = tableContext.getReadInterceptor();
    Filter filter = interceptor.getFilter();
    BlurIndex index = null;
    String shard = null;
    Tracer trace = Trace.trace("manager fetch", Trace.param("table", table));
    IndexSearcherClosable searcher = null;
    try {
      if (selector.getLocationId() == null) {
        // Not looking up by location id so we should resetSearchers.
        ShardServerContext.resetSearchers();
        shard = MutationHelper.getShardName(table, selector.rowId, getNumberOfShards(table), _blurPartitioner);
        index = getBlurIndex(table, shard);
        searcher = index.getIndexSearcher();
        populateSelector(searcher, shard, table, selector);
      }
      String locationId = selector.getLocationId();
      if (locationId.equals(NOT_FOUND)) {
        fetchResult.setDeleted(false);
        fetchResult.setExists(false);
        return;
      }
      if (shard == null) {
        shard = getShard(locationId);
      }
      if (index == null) {
        index = getBlurIndex(table, shard);
      }
    } catch (BlurException e) {
      throw e;
    } catch (Exception e) {
      LOG.error("Unknown error while trying to get the correct index reader for selector [{0}].", e, selector);
      throw new BException(e.getMessage(), e);
    }
    TimerContext timerContext = _fetchTimer.time();
    boolean usedCache = true;
    try {
      ShardServerContext shardServerContext = ShardServerContext.getShardServerContext();
      if (shardServerContext != null) {
        searcher = shardServerContext.getIndexSearcherClosable(table, shard);
      }
      if (searcher == null) {
        // Was not pulled from cache, get a fresh one from the index.
        searcher = index.getIndexSearcher();
        usedCache = false;
      }
      FieldManager fieldManager = tableContext.getFieldManager();

      Query highlightQuery = getHighlightQuery(selector, table, fieldManager);

      fetchRow(searcher.getIndexReader(), table, shard, selector, fetchResult, highlightQuery, fieldManager,
          _maxHeapPerRowFetch, tableContext, filter);
    } catch (Exception e) {
      LOG.error("Unknown error while trying to fetch row.", e);
      throw new BException(e.getMessage(), e);
    } finally {
      trace.done();
      timerContext.stop();
      if (!usedCache && searcher != null) {
        // if the cached search was not used, close the searcher.
        // this will allow for closing of index
        try {
          searcher.close();
        } catch (IOException e) {
          LOG.error("Unknown error trying to call close on searcher [{0}]", e, searcher);
        }
      }
    }
View Full Code Here

Examples of org.apache.blur.server.IndexSearcherClosable

    }
    return ForkJoin.execute(_executor, blurIndexes.entrySet(), new ParallelCall<Entry<String, BlurIndex>, Long>() {
      @Override
      public Long call(Entry<String, BlurIndex> input) throws Exception {
        BlurIndex index = input.getValue();
        IndexSearcherClosable searcher = index.getIndexSearcher();
        try {
          return recordFrequency(searcher.getIndexReader(), columnFamily, columnName, value);
        } finally {
          // this will allow for closing of index
          searcher.close();
        }
      }
    }).merge(new Merger<Long>() {
      @Override
      public Long merge(BlurExecutorCompletionService<Long> service) throws BlurException {
View Full Code Here

Examples of org.apache.blur.server.IndexSearcherClosable

    return ForkJoin.execute(_executor, blurIndexes.entrySet(),
        new ParallelCall<Entry<String, BlurIndex>, List<String>>() {
          @Override
          public List<String> call(Entry<String, BlurIndex> input) throws Exception {
            BlurIndex index = input.getValue();
            IndexSearcherClosable searcher = index.getIndexSearcher();
            try {
              return terms(searcher.getIndexReader(), columnFamily, columnName, startWith, size);
            } finally {
              // this will allow for closing of index
              searcher.close();
            }
          }
        }).merge(new Merger<List<String>>() {
      @Override
      public List<String> merge(BlurExecutorCompletionService<List<String>> service) throws BlurException {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.